[Home] [Help]
PACKAGE BODY: APPS.XLA_00275_AAD_S_000015_PKG
Source
1 PACKAGE BODY XLA_00275_AAD_S_000015_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_000015_PKG |
10 | |
11 | DESCRIPTION |
12 | Package generated From Product Accounting Definition |
13 | Name : Federal Projects AAD |
14 | Code : FV_PROJECTS_AAD |
15 | Owner : PRODUCT |
16 | Version : |
17 | AMB Context Code: DEFAULT |
18 | HISTORY |
19 | Generated at 06-11-2008 at 02:11:22 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_000015_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_000015_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_000015_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
263
260 ,p_module => l_log_module);
261
262 END IF;
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(
361 p_source_code
362 , p_source_type_code
363 , p_source_application_id
364 )
365 ,p_token_4 => 'PRODUCT_NAME'
366 ,p_value_4 => xla_ae_journal_entry_pkg.g_cache_event.application_name
367 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
368 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
369 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
370 );
371 IF (C_LEVEL_ERROR >= g_log_level) THEN
372 trace
373 (p_msg => 'ERROR: XLA_AP_FLEX_VALUE_MEANING'
374 ,p_level => C_LEVEL_ERROR
375 ,p_module => l_log_module);
376 END IF;
377 END CASE;
378 --
379 END IF;
380 --
381 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
382
383 trace
384 (p_msg => 'return value. meaning = '||l_meaning_meaning
385 ,p_level => C_LEVEL_PROCEDURE
386 ,p_module => l_log_module);
387
388 trace
389 (p_msg => 'END of GetMeaning'
390 ,p_level => C_LEVEL_PROCEDURE
391 ,p_module => l_log_module);
392 END IF;
393 --
394 xla_ae_sources_pkg.g_array_meaning := l_array_meaning ;
395 --
396 RETURN l_meaning_meaning ;
397 --
398 EXCEPTION
399 WHEN NO_DATA_FOUND OR TOO_MANY_ROWS THEN
400 --
401 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
405 ,p_token_1 => 'VALUE_SET_NAME'
402 xla_accounting_err_pkg.build_message
403 (p_appli_s_name => 'XLA'
404 ,p_msg_name => 'XLA_AP_FLEX_VALUE_MEANING'
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_000015_PKG.GetMeaning');
435 END GetMeaning;
436 --
437
438 ---------------------------------------
439 --
440 -- PRIVATE FUNCTION
441 -- AcctDerRule_1
442 --
443 ---------------------------------------
444 FUNCTION AcctDerRule_1 (
445 p_application_id IN NUMBER
446 , p_ae_header_id IN NUMBER
447 , p_side IN VARCHAR2
448 --Event Revenue CCID
449 , p_source_1 IN NUMBER
450 , x_transaction_coa_id OUT NOCOPY NUMBER
451 , x_accounting_coa_id OUT NOCOPY NUMBER
452 , x_value_type_code OUT NOCOPY VARCHAR2
453 )
454 RETURN NUMBER
455 IS
456 l_component_type VARCHAR2(80) ;
457 l_component_code VARCHAR2(30) ;
458 l_component_type_code VARCHAR2(1) ;
459 l_component_appl_id INTEGER ;
460 l_amb_context_code VARCHAR2(30) ;
461 l_log_module VARCHAR2(240) ;
462 l_output_value NUMBER ;
463 BEGIN
464 IF g_log_enabled THEN
465 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_1';
466 END IF;
467 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
468 trace
469 (p_msg => 'BEGIN of AcctDerRule_1'
470 ,p_level => C_LEVEL_PROCEDURE
471 ,p_module => l_log_module);
472 END IF;
473 --
474 l_component_type := 'AMB_ADR';
475 l_component_code := 'EVENT_REVENUE_RULE';
476 l_component_type_code := 'S';
477 l_component_appl_id := 275;
478 l_amb_context_code := 'DEFAULT';
479 x_transaction_coa_id := null;
480 x_accounting_coa_id := null;
481 --
482
483 --
484 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
485 trace
486 (p_msg => 'END of AcctDerRule_1'
487 ,p_level => C_LEVEL_PROCEDURE
488 ,p_module => l_log_module);
489 END IF;
490 x_value_type_code := 'S';
491 l_output_value := TO_NUMBER(TO_NUMBER(p_source_1));
492 RETURN l_output_value;
493
494 --
495 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
496 trace
497 (p_msg => 'END of AcctDerRule_1(invalid)'
498 ,p_level => C_LEVEL_PROCEDURE
499 ,p_module => l_log_module);
500 END IF;
501 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
502 x_value_type_code := null;
503 l_output_value := null;
504 xla_accounting_err_pkg.build_message
505 (p_appli_s_name => 'XLA'
506 ,p_msg_name => 'XLA_AP_INVALID_ADR'
507 ,p_token_1 => 'COMPONENT_NAME'
508 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
509 l_component_type
510 , l_component_code
511 , l_component_type_code
512 , l_component_appl_id
513 , l_amb_context_code
514 )
515 ,p_token_2 => 'OWNER'
516 ,p_value_2 => xla_lookups_pkg.get_meaning(
517 'XLA_OWNER_TYPE'
518 ,l_component_type_code
519 )
520 ,p_token_3 => 'PAD_NAME'
521 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
522 ,p_token_4 => 'PAD_OWNER'
523 ,p_value_4 => xla_lookups_pkg.get_meaning(
524 'XLA_OWNER_TYPE'
525 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
529 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
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
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_000015_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 , p_override_seg_flag IN VARCHAR2
553 , x_transaction_coa_id OUT NOCOPY NUMBER
554 , x_accounting_coa_id OUT NOCOPY NUMBER
555 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
556 , x_flex_value_set_id OUT NOCOPY NUMBER
557 , x_value_type_code OUT NOCOPY VARCHAR2
558 , x_value_combination_id OUT NOCOPY NUMBER
559 , x_value_segment_code OUT NOCOPY VARCHAR2
560 )
561 RETURN VARCHAR2
562 IS
563 l_component_type VARCHAR2(80) ;
564 l_component_code VARCHAR2(30) ;
565 l_component_type_code VARCHAR2(1) ;
566 l_component_appl_id INTEGER ;
567 l_amb_context_code VARCHAR2(30) ;
568 l_log_module VARCHAR2(240) ;
569 l_output_value VARCHAR2(30) ;
570 BEGIN
571 IF g_log_enabled THEN
572 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_2';
573 END IF;
574 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
575
576 trace
577 (p_msg => 'BEGIN of AcctDerRule_2'
578 ,p_level => C_LEVEL_PROCEDURE
579 ,p_module => l_log_module);
580
581 END IF;
582
583 l_component_type := 'AMB_ADR';
584 l_component_code := 'FV_422X01_PROJECTS';
585 l_component_type_code := 'S';
586 l_component_appl_id := 275;
587 l_amb_context_code := 'DEFAULT';
588 x_transaction_coa_id := null;
589 x_accounting_coa_id := null;
590 x_flexfield_segment_code := null;
591 x_flex_value_set_id := 1009988 ;
592
593
594 --
595 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
596
597 trace
598 (p_msg => 'END of AcctDerRule_2'
599 ,p_level => C_LEVEL_PROCEDURE
600 ,p_module => l_log_module);
601
602 END IF;
603 x_value_combination_id := null ;
604 x_value_segment_code := null ;
605 x_value_type_code := 'C';
606 l_output_value := '422101';
607 RETURN l_output_value;
608
609 --
610 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
611
612 trace
613 (p_msg => 'END of AcctDerRule_2'
614 ,p_level => C_LEVEL_PROCEDURE
615 ,p_module => l_log_module);
616
617 END IF;
618 x_value_combination_id := null ;
619 x_value_segment_code := null ;
620 x_value_type_code := 'C';
621 l_output_value := '422201';
622 RETURN l_output_value;
623
624
625 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
626
627 trace
628 (p_msg => 'END of AcctDerRule_2(invalid)'
629 ,p_level => C_LEVEL_PROCEDURE
630 ,p_module => l_log_module);
631
632 END IF;
633
634 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
635 x_value_combination_id := null;
636 x_value_segment_code := null;
637 x_value_type_code := null;
638 l_output_value := null;
639 xla_accounting_err_pkg.build_message
640 (p_appli_s_name => 'XLA'
641 ,p_msg_name => 'XLA_AP_INVALID_ADR'
642 ,p_token_1 => 'COMPONENT_NAME'
643 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
644 l_component_type
645 , l_component_code
646 , l_component_type_code
647 , l_component_appl_id
648 , l_amb_context_code
649 )
650 ,p_token_2 => 'OWNER'
651 ,p_value_2 => xla_lookups_pkg.get_meaning(
652 'XLA_OWNER_TYPE'
653 ,l_component_type_code
654 )
655 ,p_token_3 => 'PAD_NAME'
656 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
657 ,p_token_4 => 'PAD_OWNER'
658 ,p_value_4 => xla_lookups_pkg.get_meaning(
659 'XLA_OWNER_TYPE'
660 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
661 )
662 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
666 );
663 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
664 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
665 ,p_ae_header_id => NULL
667 RETURN l_output_value;
668 EXCEPTION
669 WHEN xla_exceptions_pkg.application_exception THEN
670 RAISE;
671 WHEN OTHERS THEN
672 xla_exceptions_pkg.raise_message
673 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctDerRule_2');
674 END AcctDerRule_2;
675 --
676
677 ---------------------------------------
678 --
679 -- PRIVATE FUNCTION
680 -- AcctDerRule_3
681 --
682 ---------------------------------------
683 FUNCTION AcctDerRule_3 (
684 p_application_id IN NUMBER
685 , p_ae_header_id IN NUMBER
686 , p_side IN VARCHAR2
687 , p_override_seg_flag IN VARCHAR2
688 , x_transaction_coa_id OUT NOCOPY NUMBER
689 , x_accounting_coa_id OUT NOCOPY NUMBER
690 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
691 , x_flex_value_set_id OUT NOCOPY NUMBER
692 , x_value_type_code OUT NOCOPY VARCHAR2
693 , x_value_combination_id OUT NOCOPY NUMBER
694 , x_value_segment_code OUT NOCOPY VARCHAR2
695 )
696 RETURN VARCHAR2
697 IS
698 l_component_type VARCHAR2(80) ;
699 l_component_code VARCHAR2(30) ;
700 l_component_type_code VARCHAR2(1) ;
701 l_component_appl_id INTEGER ;
702 l_amb_context_code VARCHAR2(30) ;
703 l_log_module VARCHAR2(240) ;
704 l_output_value VARCHAR2(30) ;
705 BEGIN
706 IF g_log_enabled THEN
707 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_3';
708 END IF;
709 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
710
711 trace
712 (p_msg => 'BEGIN of AcctDerRule_3'
713 ,p_level => C_LEVEL_PROCEDURE
714 ,p_module => l_log_module);
715
716 END IF;
717
718 l_component_type := 'AMB_ADR';
719 l_component_code := 'FV_425X01_PROJECTS';
720 l_component_type_code := 'S';
721 l_component_appl_id := 275;
722 l_amb_context_code := 'DEFAULT';
723 x_transaction_coa_id := null;
724 x_accounting_coa_id := null;
725 x_flexfield_segment_code := null;
726 x_flex_value_set_id := 1009988 ;
727
728
729 --
730 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
731
732 trace
733 (p_msg => 'END of AcctDerRule_3'
734 ,p_level => C_LEVEL_PROCEDURE
735 ,p_module => l_log_module);
736
737 END IF;
738 x_value_combination_id := null ;
739 x_value_segment_code := null ;
740 x_value_type_code := 'C';
741 l_output_value := '425101';
742 RETURN l_output_value;
743
744 --
745 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
746
747 trace
748 (p_msg => 'END of AcctDerRule_3'
749 ,p_level => C_LEVEL_PROCEDURE
750 ,p_module => l_log_module);
751
752 END IF;
753 x_value_combination_id := null ;
754 x_value_segment_code := null ;
755 x_value_type_code := 'C';
756 l_output_value := '425201';
757 RETURN l_output_value;
758
759
760 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
761
762 trace
763 (p_msg => 'END of AcctDerRule_3(invalid)'
764 ,p_level => C_LEVEL_PROCEDURE
765 ,p_module => l_log_module);
766
767 END IF;
768
769 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
770 x_value_combination_id := null;
771 x_value_segment_code := null;
772 x_value_type_code := null;
773 l_output_value := null;
774 xla_accounting_err_pkg.build_message
775 (p_appli_s_name => 'XLA'
776 ,p_msg_name => 'XLA_AP_INVALID_ADR'
777 ,p_token_1 => 'COMPONENT_NAME'
778 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
779 l_component_type
780 , l_component_code
781 , l_component_type_code
782 , l_component_appl_id
783 , l_amb_context_code
784 )
785 ,p_token_2 => 'OWNER'
786 ,p_value_2 => xla_lookups_pkg.get_meaning(
787 'XLA_OWNER_TYPE'
788 ,l_component_type_code
789 )
790 ,p_token_3 => 'PAD_NAME'
791 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
792 ,p_token_4 => 'PAD_OWNER'
793 ,p_value_4 => xla_lookups_pkg.get_meaning(
794 'XLA_OWNER_TYPE'
795 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
796 )
797 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
798 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
799 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
803 EXCEPTION
800 ,p_ae_header_id => NULL
801 );
802 RETURN l_output_value;
804 WHEN xla_exceptions_pkg.application_exception THEN
805 RAISE;
806 WHEN OTHERS THEN
807 xla_exceptions_pkg.raise_message
808 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctDerRule_3');
809 END AcctDerRule_3;
810 --
811
812 ---------------------------------------
813 --
814 -- PRIVATE FUNCTION
815 -- AcctDerRule_4
816 --
817 ---------------------------------------
818 FUNCTION AcctDerRule_4 (
819 p_application_id IN NUMBER
820 , p_ae_header_id IN NUMBER
821 , p_side IN VARCHAR2
822 , p_override_seg_flag IN VARCHAR2
823 , x_transaction_coa_id OUT NOCOPY NUMBER
824 , x_accounting_coa_id OUT NOCOPY NUMBER
825 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
826 , x_flex_value_set_id OUT NOCOPY NUMBER
827 , x_value_type_code OUT NOCOPY VARCHAR2
828 , x_value_combination_id OUT NOCOPY NUMBER
829 , x_value_segment_code OUT NOCOPY VARCHAR2
830 )
831 RETURN VARCHAR2
832 IS
833 l_component_type VARCHAR2(80) ;
834 l_component_code VARCHAR2(30) ;
835 l_component_type_code VARCHAR2(1) ;
836 l_component_appl_id INTEGER ;
837 l_amb_context_code VARCHAR2(30) ;
838 l_log_module VARCHAR2(240) ;
839 l_output_value VARCHAR2(30) ;
840 BEGIN
841 IF g_log_enabled THEN
842 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_4';
843 END IF;
844 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
845
846 trace
847 (p_msg => 'BEGIN of AcctDerRule_4'
848 ,p_level => C_LEVEL_PROCEDURE
849 ,p_module => l_log_module);
850
851 END IF;
852
853 l_component_type := 'AMB_ADR';
854 l_component_code := 'FV_461001_PROJECTS';
855 l_component_type_code := 'S';
856 l_component_appl_id := 275;
857 l_amb_context_code := 'DEFAULT';
858 x_transaction_coa_id := null;
859 x_accounting_coa_id := null;
860 x_flexfield_segment_code := null;
861 x_flex_value_set_id := 1009988 ;
862
863
864 --
865 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
866
867 trace
868 (p_msg => 'END of AcctDerRule_4'
869 ,p_level => C_LEVEL_PROCEDURE
870 ,p_module => l_log_module);
871
872 END IF;
873 x_value_combination_id := null ;
874 x_value_segment_code := null ;
875 x_value_type_code := 'C';
876 l_output_value := '461002';
877 RETURN l_output_value;
878
879
880 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
881
882 trace
883 (p_msg => 'END of AcctDerRule_4(invalid)'
884 ,p_level => C_LEVEL_PROCEDURE
885 ,p_module => l_log_module);
886
887 END IF;
888
889 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
890 x_value_combination_id := null;
891 x_value_segment_code := null;
892 x_value_type_code := null;
893 l_output_value := null;
894 xla_accounting_err_pkg.build_message
895 (p_appli_s_name => 'XLA'
896 ,p_msg_name => 'XLA_AP_INVALID_ADR'
897 ,p_token_1 => 'COMPONENT_NAME'
898 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
899 l_component_type
900 , l_component_code
901 , l_component_type_code
902 , l_component_appl_id
903 , l_amb_context_code
904 )
905 ,p_token_2 => 'OWNER'
906 ,p_value_2 => xla_lookups_pkg.get_meaning(
907 'XLA_OWNER_TYPE'
908 ,l_component_type_code
909 )
910 ,p_token_3 => 'PAD_NAME'
911 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
912 ,p_token_4 => 'PAD_OWNER'
913 ,p_value_4 => xla_lookups_pkg.get_meaning(
914 'XLA_OWNER_TYPE'
915 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
916 )
917 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
918 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
919 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
920 ,p_ae_header_id => NULL
921 );
922 RETURN l_output_value;
923 EXCEPTION
924 WHEN xla_exceptions_pkg.application_exception THEN
925 RAISE;
926 WHEN OTHERS THEN
927 xla_exceptions_pkg.raise_message
928 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctDerRule_4');
929 END AcctDerRule_4;
930 --
931
932 ---------------------------------------
933 --
934 -- PRIVATE FUNCTION
935 -- AcctDerRule_5
936 --
937 ---------------------------------------
938 FUNCTION AcctDerRule_5 (
939 p_application_id IN NUMBER
943 , x_transaction_coa_id OUT NOCOPY NUMBER
940 , p_ae_header_id IN NUMBER
941 , p_side IN VARCHAR2
942 , p_override_seg_flag IN VARCHAR2
944 , x_accounting_coa_id OUT NOCOPY NUMBER
945 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
946 , x_flex_value_set_id OUT NOCOPY NUMBER
947 , x_value_type_code OUT NOCOPY VARCHAR2
948 , x_value_combination_id OUT NOCOPY NUMBER
949 , x_value_segment_code OUT NOCOPY VARCHAR2
950 )
951 RETURN VARCHAR2
952 IS
953 l_component_type VARCHAR2(80) ;
954 l_component_code VARCHAR2(30) ;
955 l_component_type_code VARCHAR2(1) ;
956 l_component_appl_id INTEGER ;
957 l_amb_context_code VARCHAR2(30) ;
958 l_log_module VARCHAR2(240) ;
959 l_output_value VARCHAR2(30) ;
960 BEGIN
961 IF g_log_enabled THEN
962 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_5';
963 END IF;
964 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
965
966 trace
967 (p_msg => 'BEGIN of AcctDerRule_5'
968 ,p_level => C_LEVEL_PROCEDURE
969 ,p_module => l_log_module);
970
971 END IF;
972
973 l_component_type := 'AMB_ADR';
974 l_component_code := 'FV_490201_PROJECTS';
975 l_component_type_code := 'S';
976 l_component_appl_id := 275;
977 l_amb_context_code := 'DEFAULT';
978 x_transaction_coa_id := null;
979 x_accounting_coa_id := null;
980 x_flexfield_segment_code := null;
981 x_flex_value_set_id := 1009988 ;
982
983
984 --
985 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
986
987 trace
988 (p_msg => 'END of AcctDerRule_5'
989 ,p_level => C_LEVEL_PROCEDURE
990 ,p_module => l_log_module);
991
992 END IF;
993 x_value_combination_id := null ;
994 x_value_segment_code := null ;
995 x_value_type_code := 'C';
996 l_output_value := '490201';
997 RETURN l_output_value;
998
999
1000 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1001
1002 trace
1003 (p_msg => 'END of AcctDerRule_5(invalid)'
1004 ,p_level => C_LEVEL_PROCEDURE
1005 ,p_module => l_log_module);
1006
1007 END IF;
1008
1009 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1010 x_value_combination_id := null;
1011 x_value_segment_code := null;
1012 x_value_type_code := null;
1013 l_output_value := null;
1014 xla_accounting_err_pkg.build_message
1015 (p_appli_s_name => 'XLA'
1016 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1017 ,p_token_1 => 'COMPONENT_NAME'
1018 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1019 l_component_type
1020 , l_component_code
1021 , l_component_type_code
1022 , l_component_appl_id
1023 , l_amb_context_code
1024 )
1025 ,p_token_2 => 'OWNER'
1026 ,p_value_2 => xla_lookups_pkg.get_meaning(
1027 'XLA_OWNER_TYPE'
1028 ,l_component_type_code
1029 )
1030 ,p_token_3 => 'PAD_NAME'
1031 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1032 ,p_token_4 => 'PAD_OWNER'
1033 ,p_value_4 => xla_lookups_pkg.get_meaning(
1034 'XLA_OWNER_TYPE'
1035 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1036 )
1037 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1038 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1039 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1040 ,p_ae_header_id => NULL
1041 );
1042 RETURN l_output_value;
1043 EXCEPTION
1044 WHEN xla_exceptions_pkg.application_exception THEN
1045 RAISE;
1046 WHEN OTHERS THEN
1047 xla_exceptions_pkg.raise_message
1048 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctDerRule_5');
1049 END AcctDerRule_5;
1050 --
1051
1052 ---------------------------------------
1053 --
1054 -- PRIVATE FUNCTION
1055 -- AcctDerRule_6
1056 --
1057 ---------------------------------------
1058 FUNCTION AcctDerRule_6 (
1059 p_application_id IN NUMBER
1060 , p_ae_header_id IN NUMBER
1061 , p_side IN VARCHAR2
1062 , p_override_seg_flag IN VARCHAR2
1063 --PO Distribution ID
1064 , p_source_2 IN NUMBER
1065 , x_transaction_coa_id OUT NOCOPY NUMBER
1066 , x_accounting_coa_id OUT NOCOPY NUMBER
1067 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1068 , x_flex_value_set_id OUT NOCOPY NUMBER
1069 , x_value_type_code OUT NOCOPY VARCHAR2
1070 , x_value_combination_id OUT NOCOPY NUMBER
1071 , x_value_segment_code OUT NOCOPY VARCHAR2
1072 )
1073 RETURN VARCHAR2
1074 IS
1075 l_component_type VARCHAR2(80) ;
1079 l_amb_context_code VARCHAR2(30) ;
1076 l_component_code VARCHAR2(30) ;
1077 l_component_type_code VARCHAR2(1) ;
1078 l_component_appl_id INTEGER ;
1080 l_log_module VARCHAR2(240) ;
1081 l_output_value VARCHAR2(30) ;
1082 BEGIN
1083 IF g_log_enabled THEN
1084 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_6';
1085 END IF;
1086 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1087
1088 trace
1089 (p_msg => 'BEGIN of AcctDerRule_6'
1090 ,p_level => C_LEVEL_PROCEDURE
1091 ,p_module => l_log_module);
1092
1093 END IF;
1094
1095 l_component_type := 'AMB_ADR';
1096 l_component_code := 'FV_4XXX_PROJECTS';
1097 l_component_type_code := 'S';
1098 l_component_appl_id := 275;
1099 l_amb_context_code := 'DEFAULT';
1100 x_transaction_coa_id := null;
1101 x_accounting_coa_id := null;
1102 x_flexfield_segment_code := null;
1103 x_flex_value_set_id := 1009988 ;
1104
1105
1106 IF NVL(p_source_2,9E125) = 0
1107 THEN
1108 --
1109 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1110
1111 trace
1112 (p_msg => 'END of AcctDerRule_6'
1113 ,p_level => C_LEVEL_PROCEDURE
1114 ,p_module => l_log_module);
1115
1116 END IF;
1117 x_value_combination_id := null ;
1118 x_value_segment_code := null ;
1119 x_value_type_code := 'C';
1120 l_output_value := '461002';
1121 RETURN l_output_value;
1122
1123 ELSIF NVL(p_source_2,9E125) <> 0
1124 THEN
1125 --
1126 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1127
1128 trace
1129 (p_msg => 'END of AcctDerRule_6'
1130 ,p_level => C_LEVEL_PROCEDURE
1131 ,p_module => l_log_module);
1132
1133 END IF;
1134 x_value_combination_id := null ;
1135 x_value_segment_code := null ;
1136 x_value_type_code := 'C';
1137 l_output_value := '480101';
1138 RETURN l_output_value;
1139
1140 ELSE
1141 IF p_override_seg_flag = 'Y' THEN
1142 RETURN '#$NO_OVERRIDE#$';
1143 END IF;
1144 END IF;
1145
1146 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1147
1148 trace
1149 (p_msg => 'END of AcctDerRule_6(invalid)'
1150 ,p_level => C_LEVEL_PROCEDURE
1151 ,p_module => l_log_module);
1152
1153 END IF;
1154
1155 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1156 x_value_combination_id := null;
1157 x_value_segment_code := null;
1158 x_value_type_code := null;
1159 l_output_value := null;
1160 xla_accounting_err_pkg.build_message
1161 (p_appli_s_name => 'XLA'
1162 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1163 ,p_token_1 => 'COMPONENT_NAME'
1164 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1165 l_component_type
1166 , l_component_code
1167 , l_component_type_code
1168 , l_component_appl_id
1169 , l_amb_context_code
1170 )
1171 ,p_token_2 => 'OWNER'
1172 ,p_value_2 => xla_lookups_pkg.get_meaning(
1173 'XLA_OWNER_TYPE'
1174 ,l_component_type_code
1175 )
1176 ,p_token_3 => 'PAD_NAME'
1177 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1178 ,p_token_4 => 'PAD_OWNER'
1179 ,p_value_4 => xla_lookups_pkg.get_meaning(
1180 'XLA_OWNER_TYPE'
1181 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1182 )
1183 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1184 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1185 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1186 ,p_ae_header_id => NULL
1187 );
1188 RETURN l_output_value;
1189 EXCEPTION
1190 WHEN xla_exceptions_pkg.application_exception THEN
1191 RAISE;
1192 WHEN OTHERS THEN
1193 xla_exceptions_pkg.raise_message
1194 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctDerRule_6');
1195 END AcctDerRule_6;
1196 --
1197
1198 ---------------------------------------
1199 --
1200 -- PRIVATE FUNCTION
1201 -- AcctDerRule_7
1202 --
1203 ---------------------------------------
1204 FUNCTION AcctDerRule_7 (
1205 p_application_id IN NUMBER
1206 , p_ae_header_id IN NUMBER
1207 , p_side IN VARCHAR2
1208 , p_override_seg_flag IN VARCHAR2
1209 , x_transaction_coa_id OUT NOCOPY NUMBER
1210 , x_accounting_coa_id OUT NOCOPY NUMBER
1211 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1212 , x_flex_value_set_id OUT NOCOPY NUMBER
1213 , x_value_type_code OUT NOCOPY VARCHAR2
1214 , x_value_combination_id OUT NOCOPY NUMBER
1215 , x_value_segment_code OUT NOCOPY VARCHAR2
1216 )
1217 RETURN VARCHAR2
1221 l_component_type_code VARCHAR2(1) ;
1218 IS
1219 l_component_type VARCHAR2(80) ;
1220 l_component_code VARCHAR2(30) ;
1222 l_component_appl_id INTEGER ;
1223 l_amb_context_code VARCHAR2(30) ;
1224 l_log_module VARCHAR2(240) ;
1225 l_output_value VARCHAR2(30) ;
1226 BEGIN
1227 IF g_log_enabled THEN
1228 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_7';
1229 END IF;
1230 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1231
1232 trace
1233 (p_msg => 'BEGIN of AcctDerRule_7'
1234 ,p_level => C_LEVEL_PROCEDURE
1235 ,p_module => l_log_module);
1236
1237 END IF;
1238
1239 l_component_type := 'AMB_ADR';
1240 l_component_code := 'PA_421001';
1241 l_component_type_code := 'S';
1242 l_component_appl_id := 275;
1243 l_amb_context_code := 'DEFAULT';
1244 x_transaction_coa_id := null;
1245 x_accounting_coa_id := null;
1246 x_flexfield_segment_code := null;
1247 x_flex_value_set_id := 1009988 ;
1248
1249
1250 --
1251 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1252
1253 trace
1254 (p_msg => 'END of AcctDerRule_7'
1255 ,p_level => C_LEVEL_PROCEDURE
1256 ,p_module => l_log_module);
1257
1258 END IF;
1259 x_value_combination_id := null ;
1260 x_value_segment_code := null ;
1261 x_value_type_code := 'C';
1262 l_output_value := '421001';
1263 RETURN l_output_value;
1264
1265
1266 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1267
1268 trace
1269 (p_msg => 'END of AcctDerRule_7(invalid)'
1270 ,p_level => C_LEVEL_PROCEDURE
1271 ,p_module => l_log_module);
1272
1273 END IF;
1274
1275 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1276 x_value_combination_id := null;
1277 x_value_segment_code := null;
1278 x_value_type_code := null;
1279 l_output_value := null;
1280 xla_accounting_err_pkg.build_message
1281 (p_appli_s_name => 'XLA'
1282 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1283 ,p_token_1 => 'COMPONENT_NAME'
1284 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1285 l_component_type
1286 , l_component_code
1287 , l_component_type_code
1288 , l_component_appl_id
1289 , l_amb_context_code
1290 )
1291 ,p_token_2 => 'OWNER'
1292 ,p_value_2 => xla_lookups_pkg.get_meaning(
1293 'XLA_OWNER_TYPE'
1294 ,l_component_type_code
1295 )
1296 ,p_token_3 => 'PAD_NAME'
1297 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1298 ,p_token_4 => 'PAD_OWNER'
1299 ,p_value_4 => xla_lookups_pkg.get_meaning(
1300 'XLA_OWNER_TYPE'
1301 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1302 )
1303 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1304 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1305 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1306 ,p_ae_header_id => NULL
1307 );
1308 RETURN l_output_value;
1309 EXCEPTION
1310 WHEN xla_exceptions_pkg.application_exception THEN
1311 RAISE;
1312 WHEN OTHERS THEN
1313 xla_exceptions_pkg.raise_message
1314 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctDerRule_7');
1315 END AcctDerRule_7;
1316 --
1317
1318 ---------------------------------------
1319 --
1320 -- PRIVATE FUNCTION
1321 -- AcctDerRule_8
1322 --
1323 ---------------------------------------
1324 FUNCTION AcctDerRule_8 (
1325 p_application_id IN NUMBER
1326 , p_ae_header_id IN NUMBER
1327 , p_side IN VARCHAR2
1328 , p_override_seg_flag IN VARCHAR2
1329 , x_transaction_coa_id OUT NOCOPY NUMBER
1330 , x_accounting_coa_id OUT NOCOPY NUMBER
1331 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1332 , x_flex_value_set_id OUT NOCOPY NUMBER
1333 , x_value_type_code OUT NOCOPY VARCHAR2
1334 , x_value_combination_id OUT NOCOPY NUMBER
1335 , x_value_segment_code OUT NOCOPY VARCHAR2
1336 )
1337 RETURN VARCHAR2
1338 IS
1339 l_component_type VARCHAR2(80) ;
1340 l_component_code VARCHAR2(30) ;
1341 l_component_type_code VARCHAR2(1) ;
1342 l_component_appl_id INTEGER ;
1343 l_amb_context_code VARCHAR2(30) ;
1344 l_log_module VARCHAR2(240) ;
1345 l_output_value VARCHAR2(30) ;
1346 BEGIN
1347 IF g_log_enabled THEN
1348 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_8';
1349 END IF;
1350 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1351
1352 trace
1353 (p_msg => 'BEGIN of AcctDerRule_8'
1354 ,p_level => C_LEVEL_PROCEDURE
1355 ,p_module => l_log_module);
1356
1360 l_component_code := 'PA_421001-C184';
1357 END IF;
1358
1359 l_component_type := 'AMB_ADR';
1361 l_component_type_code := 'S';
1362 l_component_appl_id := 275;
1363 l_amb_context_code := 'DEFAULT';
1364 x_transaction_coa_id := null;
1365 x_accounting_coa_id := null;
1366 x_flexfield_segment_code := null;
1367 x_flex_value_set_id := 1009988 ;
1368
1369
1370 --
1371 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1372
1373 trace
1374 (p_msg => 'END of AcctDerRule_8'
1375 ,p_level => C_LEVEL_PROCEDURE
1376 ,p_module => l_log_module);
1377
1378 END IF;
1379 x_value_combination_id := null ;
1380 x_value_segment_code := null ;
1381 x_value_type_code := 'C';
1382 l_output_value := '421001';
1383 RETURN l_output_value;
1384
1385
1386 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1387
1388 trace
1389 (p_msg => 'END of AcctDerRule_8(invalid)'
1390 ,p_level => C_LEVEL_PROCEDURE
1391 ,p_module => l_log_module);
1392
1393 END IF;
1394
1395 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1396 x_value_combination_id := null;
1397 x_value_segment_code := null;
1398 x_value_type_code := null;
1399 l_output_value := null;
1400 xla_accounting_err_pkg.build_message
1401 (p_appli_s_name => 'XLA'
1402 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1403 ,p_token_1 => 'COMPONENT_NAME'
1404 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1405 l_component_type
1406 , l_component_code
1407 , l_component_type_code
1408 , l_component_appl_id
1409 , l_amb_context_code
1410 )
1411 ,p_token_2 => 'OWNER'
1412 ,p_value_2 => xla_lookups_pkg.get_meaning(
1413 'XLA_OWNER_TYPE'
1414 ,l_component_type_code
1415 )
1416 ,p_token_3 => 'PAD_NAME'
1417 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1418 ,p_token_4 => 'PAD_OWNER'
1419 ,p_value_4 => xla_lookups_pkg.get_meaning(
1420 'XLA_OWNER_TYPE'
1421 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1422 )
1423 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1424 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1425 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1426 ,p_ae_header_id => NULL
1427 );
1428 RETURN l_output_value;
1429 EXCEPTION
1430 WHEN xla_exceptions_pkg.application_exception THEN
1431 RAISE;
1432 WHEN OTHERS THEN
1433 xla_exceptions_pkg.raise_message
1434 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctDerRule_8');
1435 END AcctDerRule_8;
1436 --
1437
1438 ---------------------------------------
1439 --
1440 -- PRIVATE FUNCTION
1441 -- AcctDerRule_9
1442 --
1443 ---------------------------------------
1444 FUNCTION AcctDerRule_9 (
1445 p_application_id IN NUMBER
1446 , p_ae_header_id IN NUMBER
1447 , p_side IN VARCHAR2
1448 , p_override_seg_flag IN VARCHAR2
1449 , x_transaction_coa_id OUT NOCOPY NUMBER
1450 , x_accounting_coa_id OUT NOCOPY NUMBER
1451 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1452 , x_flex_value_set_id OUT NOCOPY NUMBER
1453 , x_value_type_code OUT NOCOPY VARCHAR2
1454 , x_value_combination_id OUT NOCOPY NUMBER
1455 , x_value_segment_code OUT NOCOPY VARCHAR2
1456 )
1457 RETURN VARCHAR2
1458 IS
1459 l_component_type VARCHAR2(80) ;
1460 l_component_code VARCHAR2(30) ;
1461 l_component_type_code VARCHAR2(1) ;
1462 l_component_appl_id INTEGER ;
1463 l_amb_context_code VARCHAR2(30) ;
1464 l_log_module VARCHAR2(240) ;
1465 l_output_value VARCHAR2(30) ;
1466 BEGIN
1467 IF g_log_enabled THEN
1468 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_9';
1469 END IF;
1470 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1471
1472 trace
1473 (p_msg => 'BEGIN of AcctDerRule_9'
1474 ,p_level => C_LEVEL_PROCEDURE
1475 ,p_module => l_log_module);
1476
1477 END IF;
1478
1479 l_component_type := 'AMB_ADR';
1480 l_component_code := 'PA_4221';
1481 l_component_type_code := 'S';
1482 l_component_appl_id := 275;
1483 l_amb_context_code := 'DEFAULT';
1484 x_transaction_coa_id := null;
1485 x_accounting_coa_id := null;
1486 x_flexfield_segment_code := null;
1487 x_flex_value_set_id := 1009988 ;
1488
1489
1490 --
1491 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1492
1493 trace
1494 (p_msg => 'END of AcctDerRule_9'
1495 ,p_level => C_LEVEL_PROCEDURE
1496 ,p_module => l_log_module);
1497
1501 x_value_type_code := 'C';
1498 END IF;
1499 x_value_combination_id := null ;
1500 x_value_segment_code := null ;
1502 l_output_value := '422101';
1503 RETURN l_output_value;
1504
1505
1506 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1507
1508 trace
1509 (p_msg => 'END of AcctDerRule_9(invalid)'
1510 ,p_level => C_LEVEL_PROCEDURE
1511 ,p_module => l_log_module);
1512
1513 END IF;
1514
1515 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1516 x_value_combination_id := null;
1517 x_value_segment_code := null;
1518 x_value_type_code := null;
1519 l_output_value := null;
1520 xla_accounting_err_pkg.build_message
1521 (p_appli_s_name => 'XLA'
1522 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1523 ,p_token_1 => 'COMPONENT_NAME'
1524 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1525 l_component_type
1526 , l_component_code
1527 , l_component_type_code
1528 , l_component_appl_id
1529 , l_amb_context_code
1530 )
1531 ,p_token_2 => 'OWNER'
1532 ,p_value_2 => xla_lookups_pkg.get_meaning(
1533 'XLA_OWNER_TYPE'
1534 ,l_component_type_code
1535 )
1536 ,p_token_3 => 'PAD_NAME'
1537 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1538 ,p_token_4 => 'PAD_OWNER'
1539 ,p_value_4 => xla_lookups_pkg.get_meaning(
1540 'XLA_OWNER_TYPE'
1541 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1542 )
1543 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1544 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1545 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1546 ,p_ae_header_id => NULL
1547 );
1548 RETURN l_output_value;
1549 EXCEPTION
1550 WHEN xla_exceptions_pkg.application_exception THEN
1551 RAISE;
1552 WHEN OTHERS THEN
1553 xla_exceptions_pkg.raise_message
1554 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctDerRule_9');
1555 END AcctDerRule_9;
1556 --
1557
1558 ---------------------------------------
1559 --
1560 -- PRIVATE FUNCTION
1561 -- AcctDerRule_10
1562 --
1563 ---------------------------------------
1564 FUNCTION AcctDerRule_10 (
1565 p_application_id IN NUMBER
1566 , p_ae_header_id IN NUMBER
1567 , p_side IN VARCHAR2
1568 , p_override_seg_flag IN VARCHAR2
1569 , x_transaction_coa_id OUT NOCOPY NUMBER
1570 , x_accounting_coa_id OUT NOCOPY NUMBER
1571 , x_flexfield_segment_code OUT NOCOPY VARCHAR2
1572 , x_flex_value_set_id OUT NOCOPY NUMBER
1573 , x_value_type_code OUT NOCOPY VARCHAR2
1574 , x_value_combination_id OUT NOCOPY NUMBER
1575 , x_value_segment_code OUT NOCOPY VARCHAR2
1576 )
1577 RETURN VARCHAR2
1578 IS
1579 l_component_type VARCHAR2(80) ;
1580 l_component_code VARCHAR2(30) ;
1581 l_component_type_code VARCHAR2(1) ;
1582 l_component_appl_id INTEGER ;
1583 l_amb_context_code VARCHAR2(30) ;
1584 l_log_module VARCHAR2(240) ;
1585 l_output_value VARCHAR2(30) ;
1586 BEGIN
1587 IF g_log_enabled THEN
1588 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_10';
1589 END IF;
1590 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1591
1592 trace
1593 (p_msg => 'BEGIN of AcctDerRule_10'
1594 ,p_level => C_LEVEL_PROCEDURE
1595 ,p_module => l_log_module);
1596
1597 END IF;
1598
1599 l_component_type := 'AMB_ADR';
1600 l_component_code := 'PA_4222';
1601 l_component_type_code := 'S';
1602 l_component_appl_id := 275;
1603 l_amb_context_code := 'DEFAULT';
1604 x_transaction_coa_id := null;
1605 x_accounting_coa_id := null;
1606 x_flexfield_segment_code := null;
1607 x_flex_value_set_id := 1009988 ;
1608
1609
1610 --
1611 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1612
1613 trace
1614 (p_msg => 'END of AcctDerRule_10'
1615 ,p_level => C_LEVEL_PROCEDURE
1616 ,p_module => l_log_module);
1617
1618 END IF;
1619 x_value_combination_id := null ;
1620 x_value_segment_code := null ;
1621 x_value_type_code := 'C';
1622 l_output_value := '422201';
1623 RETURN l_output_value;
1624
1625
1626 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1627
1628 trace
1629 (p_msg => 'END of AcctDerRule_10(invalid)'
1630 ,p_level => C_LEVEL_PROCEDURE
1631 ,p_module => l_log_module);
1632
1633 END IF;
1634
1635 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1636 x_value_combination_id := null;
1637 x_value_segment_code := null;
1641 (p_appli_s_name => 'XLA'
1638 x_value_type_code := null;
1639 l_output_value := null;
1640 xla_accounting_err_pkg.build_message
1642 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1643 ,p_token_1 => 'COMPONENT_NAME'
1644 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1645 l_component_type
1646 , l_component_code
1647 , l_component_type_code
1648 , l_component_appl_id
1649 , l_amb_context_code
1650 )
1651 ,p_token_2 => 'OWNER'
1652 ,p_value_2 => xla_lookups_pkg.get_meaning(
1653 'XLA_OWNER_TYPE'
1654 ,l_component_type_code
1655 )
1656 ,p_token_3 => 'PAD_NAME'
1657 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1658 ,p_token_4 => 'PAD_OWNER'
1659 ,p_value_4 => xla_lookups_pkg.get_meaning(
1660 'XLA_OWNER_TYPE'
1661 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1662 )
1663 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1664 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1665 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1666 ,p_ae_header_id => NULL
1667 );
1668 RETURN l_output_value;
1669 EXCEPTION
1670 WHEN xla_exceptions_pkg.application_exception THEN
1671 RAISE;
1672 WHEN OTHERS THEN
1673 xla_exceptions_pkg.raise_message
1674 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctDerRule_10');
1675 END AcctDerRule_10;
1676 --
1677
1678 ---------------------------------------
1679 --
1680 -- PRIVATE FUNCTION
1681 -- AcctDerRule_11
1682 --
1683 ---------------------------------------
1684 FUNCTION AcctDerRule_11 (
1685 p_application_id IN NUMBER
1686 , p_ae_header_id IN NUMBER
1687 , p_side IN VARCHAR2
1688 --Budget Code Combination ID
1689 , p_source_3 IN NUMBER
1690 , x_transaction_coa_id OUT NOCOPY NUMBER
1691 , x_accounting_coa_id OUT NOCOPY NUMBER
1692 , x_value_type_code OUT NOCOPY VARCHAR2
1693 )
1694 RETURN NUMBER
1695 IS
1696 l_component_type VARCHAR2(80) ;
1697 l_component_code VARCHAR2(30) ;
1698 l_component_type_code VARCHAR2(1) ;
1699 l_component_appl_id INTEGER ;
1700 l_amb_context_code VARCHAR2(30) ;
1701 l_log_module VARCHAR2(240) ;
1702 l_output_value NUMBER ;
1703 BEGIN
1704 IF g_log_enabled THEN
1705 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_11';
1706 END IF;
1707 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1708 trace
1709 (p_msg => 'BEGIN of AcctDerRule_11'
1710 ,p_level => C_LEVEL_PROCEDURE
1711 ,p_module => l_log_module);
1712 END IF;
1713 --
1714 l_component_type := 'AMB_ADR';
1715 l_component_code := 'PA_BUDGET_ACCT_RULE';
1716 l_component_type_code := 'S';
1717 l_component_appl_id := 275;
1718 l_amb_context_code := 'DEFAULT';
1719 x_transaction_coa_id := null;
1720 x_accounting_coa_id := null;
1721 --
1722
1723 --
1724 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1725 trace
1726 (p_msg => 'END of AcctDerRule_11'
1727 ,p_level => C_LEVEL_PROCEDURE
1728 ,p_module => l_log_module);
1729 END IF;
1730 x_value_type_code := 'S';
1731 l_output_value := TO_NUMBER(p_source_3);
1732 RETURN l_output_value;
1733
1734 --
1735 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1736 trace
1737 (p_msg => 'END of AcctDerRule_11(invalid)'
1738 ,p_level => C_LEVEL_PROCEDURE
1739 ,p_module => l_log_module);
1740 END IF;
1741 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1742 x_value_type_code := null;
1743 l_output_value := null;
1744 xla_accounting_err_pkg.build_message
1745 (p_appli_s_name => 'XLA'
1746 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1747 ,p_token_1 => 'COMPONENT_NAME'
1748 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1749 l_component_type
1750 , l_component_code
1751 , l_component_type_code
1752 , l_component_appl_id
1753 , l_amb_context_code
1754 )
1755 ,p_token_2 => 'OWNER'
1756 ,p_value_2 => xla_lookups_pkg.get_meaning(
1757 'XLA_OWNER_TYPE'
1758 ,l_component_type_code
1759 )
1763 ,p_value_4 => xla_lookups_pkg.get_meaning(
1760 ,p_token_3 => 'PAD_NAME'
1761 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1762 ,p_token_4 => 'PAD_OWNER'
1764 'XLA_OWNER_TYPE'
1765 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1766 )
1767 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1768 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1769 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1770 ,p_ae_header_id => NULL
1771 );
1772 RETURN l_output_value;
1773 EXCEPTION
1774 WHEN xla_exceptions_pkg.application_exception THEN
1775 RAISE;
1776 WHEN OTHERS THEN
1777 xla_exceptions_pkg.raise_message
1778 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctDerRule_11');
1779 END AcctDerRule_11;
1780 --
1781
1782 ---------------------------------------
1783 --
1784 -- PRIVATE FUNCTION
1785 -- AcctDerRule_12
1786 --
1787 ---------------------------------------
1788 FUNCTION AcctDerRule_12 (
1789 p_application_id IN NUMBER
1790 , p_ae_header_id IN NUMBER
1791 , p_side IN VARCHAR2
1792 --Cost CCID
1793 , p_source_4 IN NUMBER
1794 --Allow Account Override Flag
1795 , p_source_5 IN VARCHAR2
1796 --Adjustment Cost CCID
1797 , p_source_6 IN NUMBER
1798 , x_transaction_coa_id OUT NOCOPY NUMBER
1799 , x_accounting_coa_id OUT NOCOPY NUMBER
1800 , x_value_type_code OUT NOCOPY VARCHAR2
1801 )
1802 RETURN NUMBER
1803 IS
1804 l_component_type VARCHAR2(80) ;
1805 l_component_code VARCHAR2(30) ;
1806 l_component_type_code VARCHAR2(1) ;
1807 l_component_appl_id INTEGER ;
1808 l_amb_context_code VARCHAR2(30) ;
1809 l_log_module VARCHAR2(240) ;
1810 l_output_value NUMBER ;
1811 BEGIN
1812 IF g_log_enabled THEN
1813 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_12';
1814 END IF;
1815 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1816 trace
1817 (p_msg => 'BEGIN of AcctDerRule_12'
1818 ,p_level => C_LEVEL_PROCEDURE
1819 ,p_module => l_log_module);
1820 END IF;
1821 --
1822 l_component_type := 'AMB_ADR';
1823 l_component_code := 'PA_COST_ACCT_RULE';
1824 l_component_type_code := 'S';
1825 l_component_appl_id := 275;
1826 l_amb_context_code := 'DEFAULT';
1827 x_transaction_coa_id := null;
1828 x_accounting_coa_id := null;
1829 --
1830
1831 IF NVL(p_source_5,'
1832 ') = 'Y'
1833 THEN
1834 --
1835 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1836 trace
1837 (p_msg => 'END of AcctDerRule_12'
1838 ,p_level => C_LEVEL_PROCEDURE
1839 ,p_module => l_log_module);
1840 END IF;
1841 x_value_type_code := 'S';
1842 l_output_value := TO_NUMBER(TO_NUMBER(p_source_4));
1843 RETURN l_output_value;
1844
1845 ELSIF NVL(p_source_5,'
1846 ') = 'N'
1847 THEN
1848 --
1849 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1850 trace
1851 (p_msg => 'END of AcctDerRule_12'
1852 ,p_level => C_LEVEL_PROCEDURE
1853 ,p_module => l_log_module);
1854 END IF;
1855 x_value_type_code := 'S';
1856 l_output_value := TO_NUMBER(TO_NUMBER(p_source_6));
1857 RETURN l_output_value;
1858
1859 END IF;
1860 --
1861 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1862 trace
1863 (p_msg => 'END of AcctDerRule_12(invalid)'
1864 ,p_level => C_LEVEL_PROCEDURE
1865 ,p_module => l_log_module);
1866 END IF;
1867 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1868 x_value_type_code := null;
1869 l_output_value := null;
1870 xla_accounting_err_pkg.build_message
1871 (p_appli_s_name => 'XLA'
1872 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1873 ,p_token_1 => 'COMPONENT_NAME'
1874 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1875 l_component_type
1876 , l_component_code
1877 , l_component_type_code
1878 , l_component_appl_id
1879 , l_amb_context_code
1880 )
1881 ,p_token_2 => 'OWNER'
1882 ,p_value_2 => xla_lookups_pkg.get_meaning(
1883 'XLA_OWNER_TYPE'
1884 ,l_component_type_code
1885 )
1886 ,p_token_3 => 'PAD_NAME'
1887 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1888 ,p_token_4 => 'PAD_OWNER'
1889 ,p_value_4 => xla_lookups_pkg.get_meaning(
1890 'XLA_OWNER_TYPE'
1891 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1895 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1892 )
1893 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1894 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1896 ,p_ae_header_id => NULL
1897 );
1898 RETURN l_output_value;
1899 EXCEPTION
1900 WHEN xla_exceptions_pkg.application_exception THEN
1901 RAISE;
1902 WHEN OTHERS THEN
1903 xla_exceptions_pkg.raise_message
1904 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctDerRule_12');
1905 END AcctDerRule_12;
1906 --
1907
1908 ---------------------------------------
1909 --
1910 -- PRIVATE FUNCTION
1911 -- AcctDerRule_13
1912 --
1913 ---------------------------------------
1914 FUNCTION AcctDerRule_13 (
1915 p_application_id IN NUMBER
1916 , p_ae_header_id IN NUMBER
1917 , p_side IN VARCHAR2
1918 --Allow Account Override Flag
1919 , p_source_5 IN VARCHAR2
1920 --Adjustment Cost CCID
1921 , p_source_6 IN NUMBER
1922 , x_transaction_coa_id OUT NOCOPY NUMBER
1923 , x_accounting_coa_id OUT NOCOPY NUMBER
1924 , x_value_type_code OUT NOCOPY VARCHAR2
1925 )
1926 RETURN NUMBER
1927 IS
1928 l_component_type VARCHAR2(80) ;
1929 l_component_code VARCHAR2(30) ;
1930 l_component_type_code VARCHAR2(1) ;
1931 l_component_appl_id INTEGER ;
1932 l_amb_context_code VARCHAR2(30) ;
1933 l_log_module VARCHAR2(240) ;
1934 l_output_value NUMBER ;
1935 BEGIN
1936 IF g_log_enabled THEN
1937 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_13';
1938 END IF;
1939 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1940 trace
1941 (p_msg => 'BEGIN of AcctDerRule_13'
1942 ,p_level => C_LEVEL_PROCEDURE
1943 ,p_module => l_log_module);
1944 END IF;
1945 --
1946 l_component_type := 'AMB_ADR';
1947 l_component_code := 'PA_COST_ACC_ADJ_RULE';
1948 l_component_type_code := 'S';
1949 l_component_appl_id := 275;
1950 l_amb_context_code := 'DEFAULT';
1951 x_transaction_coa_id := null;
1952 x_accounting_coa_id := null;
1953 --
1954
1955 IF NVL(p_source_5,'
1956 ') = 'N'
1957 THEN
1958 --
1959 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1960 trace
1961 (p_msg => 'END of AcctDerRule_13'
1962 ,p_level => C_LEVEL_PROCEDURE
1963 ,p_module => l_log_module);
1964 END IF;
1965 x_value_type_code := 'S';
1966 l_output_value := TO_NUMBER(TO_NUMBER(p_source_6));
1967 RETURN l_output_value;
1968
1969 END IF;
1970 --
1971 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1972 trace
1973 (p_msg => 'END of AcctDerRule_13(invalid)'
1974 ,p_level => C_LEVEL_PROCEDURE
1975 ,p_module => l_log_module);
1976 END IF;
1977 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1978 x_value_type_code := null;
1979 l_output_value := null;
1980 xla_accounting_err_pkg.build_message
1981 (p_appli_s_name => 'XLA'
1982 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1983 ,p_token_1 => 'COMPONENT_NAME'
1984 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1985 l_component_type
1986 , l_component_code
1987 , l_component_type_code
1988 , l_component_appl_id
1989 , l_amb_context_code
1990 )
1991 ,p_token_2 => 'OWNER'
1992 ,p_value_2 => xla_lookups_pkg.get_meaning(
1993 'XLA_OWNER_TYPE'
1994 ,l_component_type_code
1995 )
1996 ,p_token_3 => 'PAD_NAME'
1997 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1998 ,p_token_4 => 'PAD_OWNER'
1999 ,p_value_4 => xla_lookups_pkg.get_meaning(
2000 'XLA_OWNER_TYPE'
2001 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2002 )
2003 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2004 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2005 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2006 ,p_ae_header_id => NULL
2007 );
2008 RETURN l_output_value;
2009 EXCEPTION
2010 WHEN xla_exceptions_pkg.application_exception THEN
2011 RAISE;
2012 WHEN OTHERS THEN
2013 xla_exceptions_pkg.raise_message
2014 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctDerRule_13');
2015 END AcctDerRule_13;
2016 --
2017
2018 ---------------------------------------
2019 --
2020 -- PRIVATE FUNCTION
2021 -- AcctDerRule_14
2022 --
2023 ---------------------------------------
2024 FUNCTION AcctDerRule_14 (
2025 p_application_id IN NUMBER
2026 , p_ae_header_id IN NUMBER
2030 --Cost Clearing CCID
2027 , p_side IN VARCHAR2
2028 --Allow Account Override Flag
2029 , p_source_5 IN VARCHAR2
2031 , p_source_7 IN NUMBER
2032 --Adjustment Cost Clearing CCID
2033 , p_source_8 IN NUMBER
2034 , x_transaction_coa_id OUT NOCOPY NUMBER
2035 , x_accounting_coa_id OUT NOCOPY NUMBER
2036 , x_value_type_code OUT NOCOPY VARCHAR2
2037 )
2038 RETURN NUMBER
2039 IS
2040 l_component_type VARCHAR2(80) ;
2041 l_component_code VARCHAR2(30) ;
2042 l_component_type_code VARCHAR2(1) ;
2043 l_component_appl_id INTEGER ;
2044 l_amb_context_code VARCHAR2(30) ;
2045 l_log_module VARCHAR2(240) ;
2046 l_output_value NUMBER ;
2047 BEGIN
2048 IF g_log_enabled THEN
2049 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_14';
2050 END IF;
2051 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2052 trace
2053 (p_msg => 'BEGIN of AcctDerRule_14'
2054 ,p_level => C_LEVEL_PROCEDURE
2055 ,p_module => l_log_module);
2056 END IF;
2057 --
2058 l_component_type := 'AMB_ADR';
2059 l_component_code := 'PA_COST_CLEARING_ACCT_RULE';
2060 l_component_type_code := 'S';
2061 l_component_appl_id := 275;
2062 l_amb_context_code := 'DEFAULT';
2063 x_transaction_coa_id := null;
2064 x_accounting_coa_id := null;
2065 --
2066
2067 IF NVL(p_source_5,'
2068 ') = 'Y'
2069 THEN
2070 --
2071 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2072 trace
2073 (p_msg => 'END of AcctDerRule_14'
2074 ,p_level => C_LEVEL_PROCEDURE
2075 ,p_module => l_log_module);
2076 END IF;
2077 x_value_type_code := 'S';
2078 l_output_value := TO_NUMBER(TO_NUMBER(p_source_7));
2079 RETURN l_output_value;
2080
2081 ELSIF NVL(p_source_5,'
2082 ') = 'N'
2083 THEN
2084 --
2085 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2086 trace
2087 (p_msg => 'END of AcctDerRule_14'
2088 ,p_level => C_LEVEL_PROCEDURE
2089 ,p_module => l_log_module);
2090 END IF;
2091 x_value_type_code := 'S';
2092 l_output_value := TO_NUMBER(TO_NUMBER(p_source_8));
2093 RETURN l_output_value;
2094
2095 END IF;
2096 --
2097 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2098 trace
2099 (p_msg => 'END of AcctDerRule_14(invalid)'
2100 ,p_level => C_LEVEL_PROCEDURE
2101 ,p_module => l_log_module);
2102 END IF;
2103 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2104 x_value_type_code := null;
2105 l_output_value := null;
2106 xla_accounting_err_pkg.build_message
2107 (p_appli_s_name => 'XLA'
2108 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2109 ,p_token_1 => 'COMPONENT_NAME'
2110 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2111 l_component_type
2112 , l_component_code
2113 , l_component_type_code
2114 , l_component_appl_id
2115 , l_amb_context_code
2116 )
2117 ,p_token_2 => 'OWNER'
2118 ,p_value_2 => xla_lookups_pkg.get_meaning(
2119 'XLA_OWNER_TYPE'
2120 ,l_component_type_code
2121 )
2122 ,p_token_3 => 'PAD_NAME'
2123 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2124 ,p_token_4 => 'PAD_OWNER'
2125 ,p_value_4 => xla_lookups_pkg.get_meaning(
2126 'XLA_OWNER_TYPE'
2127 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2128 )
2129 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2130 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2131 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2132 ,p_ae_header_id => NULL
2133 );
2134 RETURN l_output_value;
2135 EXCEPTION
2136 WHEN xla_exceptions_pkg.application_exception THEN
2137 RAISE;
2138 WHEN OTHERS THEN
2139 xla_exceptions_pkg.raise_message
2140 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctDerRule_14');
2141 END AcctDerRule_14;
2142 --
2143
2144 ---------------------------------------
2145 --
2146 -- PRIVATE FUNCTION
2147 -- AcctDerRule_15
2148 --
2149 ---------------------------------------
2150 FUNCTION AcctDerRule_15 (
2151 p_application_id IN NUMBER
2152 , p_ae_header_id IN NUMBER
2153 , p_side IN VARCHAR2
2154 --Allow Account Override Flag
2155 , p_source_5 IN VARCHAR2
2156 --Adjustment Cost Clearing CCID
2157 , p_source_8 IN NUMBER
2158 , x_transaction_coa_id OUT NOCOPY NUMBER
2159 , x_accounting_coa_id OUT NOCOPY NUMBER
2160 , x_value_type_code OUT NOCOPY VARCHAR2
2161 )
2162 RETURN NUMBER
2163 IS
2164 l_component_type VARCHAR2(80) ;
2168 l_amb_context_code VARCHAR2(30) ;
2165 l_component_code VARCHAR2(30) ;
2166 l_component_type_code VARCHAR2(1) ;
2167 l_component_appl_id INTEGER ;
2169 l_log_module VARCHAR2(240) ;
2170 l_output_value NUMBER ;
2171 BEGIN
2172 IF g_log_enabled THEN
2173 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_15';
2174 END IF;
2175 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2176 trace
2177 (p_msg => 'BEGIN of AcctDerRule_15'
2178 ,p_level => C_LEVEL_PROCEDURE
2179 ,p_module => l_log_module);
2180 END IF;
2181 --
2182 l_component_type := 'AMB_ADR';
2183 l_component_code := 'PA_COST_CLEARING_ADJ_ACC';
2184 l_component_type_code := 'S';
2185 l_component_appl_id := 275;
2186 l_amb_context_code := 'DEFAULT';
2187 x_transaction_coa_id := null;
2188 x_accounting_coa_id := null;
2189 --
2190
2191 IF NVL(p_source_5,'
2192 ') = 'N'
2193 THEN
2194 --
2195 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2196 trace
2197 (p_msg => 'END of AcctDerRule_15'
2198 ,p_level => C_LEVEL_PROCEDURE
2199 ,p_module => l_log_module);
2200 END IF;
2201 x_value_type_code := 'S';
2202 l_output_value := TO_NUMBER(TO_NUMBER(p_source_8));
2203 RETURN l_output_value;
2204
2205 END IF;
2206 --
2207 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2208 trace
2209 (p_msg => 'END of AcctDerRule_15(invalid)'
2210 ,p_level => C_LEVEL_PROCEDURE
2211 ,p_module => l_log_module);
2212 END IF;
2213 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2214 x_value_type_code := null;
2215 l_output_value := null;
2216 xla_accounting_err_pkg.build_message
2217 (p_appli_s_name => 'XLA'
2218 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2219 ,p_token_1 => 'COMPONENT_NAME'
2220 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2221 l_component_type
2222 , l_component_code
2223 , l_component_type_code
2224 , l_component_appl_id
2225 , l_amb_context_code
2226 )
2227 ,p_token_2 => 'OWNER'
2228 ,p_value_2 => xla_lookups_pkg.get_meaning(
2229 'XLA_OWNER_TYPE'
2230 ,l_component_type_code
2231 )
2232 ,p_token_3 => 'PAD_NAME'
2233 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2234 ,p_token_4 => 'PAD_OWNER'
2235 ,p_value_4 => xla_lookups_pkg.get_meaning(
2236 'XLA_OWNER_TYPE'
2237 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2238 )
2239 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2240 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2241 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2242 ,p_ae_header_id => NULL
2243 );
2244 RETURN l_output_value;
2245 EXCEPTION
2246 WHEN xla_exceptions_pkg.application_exception THEN
2247 RAISE;
2248 WHEN OTHERS THEN
2249 xla_exceptions_pkg.raise_message
2250 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctDerRule_15');
2251 END AcctDerRule_15;
2252 --
2253
2254 ---------------------------------------
2255 --
2256 -- PRIVATE FUNCTION
2257 -- AcctDerRule_16
2258 --
2259 ---------------------------------------
2260 FUNCTION AcctDerRule_16 (
2261 p_application_id IN NUMBER
2262 , p_ae_header_id IN NUMBER
2263 , p_side IN VARCHAR2
2264 --Allow Account Override Flag
2265 , p_source_5 IN VARCHAR2
2266 --Provider Cost/ Revenue CCID
2267 , p_source_9 IN NUMBER
2268 --Adjustment Provider Cost/ Revenue CCID
2269 , p_source_10 IN NUMBER
2270 , x_transaction_coa_id OUT NOCOPY NUMBER
2271 , x_accounting_coa_id OUT NOCOPY NUMBER
2272 , x_value_type_code OUT NOCOPY VARCHAR2
2273 )
2274 RETURN NUMBER
2275 IS
2276 l_component_type VARCHAR2(80) ;
2277 l_component_code VARCHAR2(30) ;
2278 l_component_type_code VARCHAR2(1) ;
2279 l_component_appl_id INTEGER ;
2280 l_amb_context_code VARCHAR2(30) ;
2281 l_log_module VARCHAR2(240) ;
2282 l_output_value NUMBER ;
2283 BEGIN
2284 IF g_log_enabled THEN
2285 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_16';
2286 END IF;
2287 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2288 trace
2289 (p_msg => 'BEGIN of AcctDerRule_16'
2290 ,p_level => C_LEVEL_PROCEDURE
2291 ,p_module => l_log_module);
2292 END IF;
2293 --
2294 l_component_type := 'AMB_ADR';
2295 l_component_code := 'PA_PROV_COST_REV_ACCT_RULE';
2296 l_component_type_code := 'S';
2297 l_component_appl_id := 275;
2298 l_amb_context_code := 'DEFAULT';
2299 x_transaction_coa_id := null;
2300 x_accounting_coa_id := null;
2304 ') = 'Y'
2301 --
2302
2303 IF NVL(p_source_5,'
2305 THEN
2306 --
2307 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2308 trace
2309 (p_msg => 'END of AcctDerRule_16'
2310 ,p_level => C_LEVEL_PROCEDURE
2311 ,p_module => l_log_module);
2312 END IF;
2313 x_value_type_code := 'S';
2314 l_output_value := TO_NUMBER(TO_NUMBER(p_source_9));
2315 RETURN l_output_value;
2316
2317 ELSIF NVL(p_source_5,'
2318 ') = 'N'
2319 THEN
2320 --
2321 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2322 trace
2323 (p_msg => 'END of AcctDerRule_16'
2324 ,p_level => C_LEVEL_PROCEDURE
2325 ,p_module => l_log_module);
2326 END IF;
2327 x_value_type_code := 'S';
2328 l_output_value := TO_NUMBER(TO_NUMBER(p_source_10));
2329 RETURN l_output_value;
2330
2331 END IF;
2332 --
2333 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2334 trace
2335 (p_msg => 'END of AcctDerRule_16(invalid)'
2336 ,p_level => C_LEVEL_PROCEDURE
2337 ,p_module => l_log_module);
2338 END IF;
2339 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2340 x_value_type_code := null;
2341 l_output_value := null;
2342 xla_accounting_err_pkg.build_message
2343 (p_appli_s_name => 'XLA'
2344 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2345 ,p_token_1 => 'COMPONENT_NAME'
2346 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2347 l_component_type
2348 , l_component_code
2349 , l_component_type_code
2350 , l_component_appl_id
2351 , l_amb_context_code
2352 )
2353 ,p_token_2 => 'OWNER'
2354 ,p_value_2 => xla_lookups_pkg.get_meaning(
2355 'XLA_OWNER_TYPE'
2356 ,l_component_type_code
2357 )
2358 ,p_token_3 => 'PAD_NAME'
2359 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2360 ,p_token_4 => 'PAD_OWNER'
2361 ,p_value_4 => xla_lookups_pkg.get_meaning(
2362 'XLA_OWNER_TYPE'
2363 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2364 )
2365 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2366 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2367 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2368 ,p_ae_header_id => NULL
2369 );
2370 RETURN l_output_value;
2371 EXCEPTION
2372 WHEN xla_exceptions_pkg.application_exception THEN
2373 RAISE;
2374 WHEN OTHERS THEN
2375 xla_exceptions_pkg.raise_message
2376 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctDerRule_16');
2377 END AcctDerRule_16;
2378 --
2379
2380 ---------------------------------------
2381 --
2382 -- PRIVATE FUNCTION
2383 -- AcctDerRule_17
2384 --
2385 ---------------------------------------
2386 FUNCTION AcctDerRule_17 (
2387 p_application_id IN NUMBER
2388 , p_ae_header_id IN NUMBER
2389 , p_side IN VARCHAR2
2390 --Allow Account Override Flag
2391 , p_source_5 IN VARCHAR2
2392 --Adjustment Provider Cost/ Revenue CCID
2393 , p_source_10 IN NUMBER
2394 , x_transaction_coa_id OUT NOCOPY NUMBER
2395 , x_accounting_coa_id OUT NOCOPY NUMBER
2396 , x_value_type_code OUT NOCOPY VARCHAR2
2397 )
2398 RETURN NUMBER
2399 IS
2400 l_component_type VARCHAR2(80) ;
2401 l_component_code VARCHAR2(30) ;
2402 l_component_type_code VARCHAR2(1) ;
2403 l_component_appl_id INTEGER ;
2404 l_amb_context_code VARCHAR2(30) ;
2405 l_log_module VARCHAR2(240) ;
2406 l_output_value NUMBER ;
2407 BEGIN
2408 IF g_log_enabled THEN
2409 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_17';
2410 END IF;
2411 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2412 trace
2413 (p_msg => 'BEGIN of AcctDerRule_17'
2414 ,p_level => C_LEVEL_PROCEDURE
2415 ,p_module => l_log_module);
2416 END IF;
2417 --
2418 l_component_type := 'AMB_ADR';
2419 l_component_code := 'PA_PROV_COST_REV_ADJ_ACCT_RULE';
2420 l_component_type_code := 'S';
2421 l_component_appl_id := 275;
2422 l_amb_context_code := 'DEFAULT';
2423 x_transaction_coa_id := null;
2424 x_accounting_coa_id := null;
2425 --
2426
2427 IF NVL(p_source_5,'
2428 ') = 'N'
2429 THEN
2430 --
2431 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2432 trace
2433 (p_msg => 'END of AcctDerRule_17'
2434 ,p_level => C_LEVEL_PROCEDURE
2435 ,p_module => l_log_module);
2436 END IF;
2437 x_value_type_code := 'S';
2438 l_output_value := TO_NUMBER(TO_NUMBER(p_source_10));
2439 RETURN l_output_value;
2440
2441 END IF;
2442 --
2446 ,p_level => C_LEVEL_PROCEDURE
2443 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2444 trace
2445 (p_msg => 'END of AcctDerRule_17(invalid)'
2447 ,p_module => l_log_module);
2448 END IF;
2449 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2450 x_value_type_code := null;
2451 l_output_value := null;
2452 xla_accounting_err_pkg.build_message
2453 (p_appli_s_name => 'XLA'
2454 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2455 ,p_token_1 => 'COMPONENT_NAME'
2456 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2457 l_component_type
2458 , l_component_code
2459 , l_component_type_code
2460 , l_component_appl_id
2461 , l_amb_context_code
2462 )
2463 ,p_token_2 => 'OWNER'
2464 ,p_value_2 => xla_lookups_pkg.get_meaning(
2465 'XLA_OWNER_TYPE'
2466 ,l_component_type_code
2467 )
2468 ,p_token_3 => 'PAD_NAME'
2469 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2470 ,p_token_4 => 'PAD_OWNER'
2471 ,p_value_4 => xla_lookups_pkg.get_meaning(
2472 'XLA_OWNER_TYPE'
2473 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2474 )
2475 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2476 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2477 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2478 ,p_ae_header_id => NULL
2479 );
2480 RETURN l_output_value;
2481 EXCEPTION
2482 WHEN xla_exceptions_pkg.application_exception THEN
2483 RAISE;
2484 WHEN OTHERS THEN
2485 xla_exceptions_pkg.raise_message
2486 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctDerRule_17');
2487 END AcctDerRule_17;
2488 --
2489
2490 ---------------------------------------
2491 --
2492 -- PRIVATE FUNCTION
2493 -- AcctDerRule_18
2494 --
2495 ---------------------------------------
2496 FUNCTION AcctDerRule_18 (
2497 p_application_id IN NUMBER
2498 , p_ae_header_id IN NUMBER
2499 , p_side IN VARCHAR2
2500 --Allow Account Override Flag
2501 , p_source_5 IN VARCHAR2
2502 --Adjustment Receiver Cost/ Revenue CCID
2503 , p_source_11 IN NUMBER
2504 , x_transaction_coa_id OUT NOCOPY NUMBER
2505 , x_accounting_coa_id OUT NOCOPY NUMBER
2506 , x_value_type_code OUT NOCOPY VARCHAR2
2507 )
2508 RETURN NUMBER
2509 IS
2510 l_component_type VARCHAR2(80) ;
2511 l_component_code VARCHAR2(30) ;
2512 l_component_type_code VARCHAR2(1) ;
2513 l_component_appl_id INTEGER ;
2514 l_amb_context_code VARCHAR2(30) ;
2515 l_log_module VARCHAR2(240) ;
2516 l_output_value NUMBER ;
2517 BEGIN
2518 IF g_log_enabled THEN
2519 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_18';
2520 END IF;
2521 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2522 trace
2523 (p_msg => 'BEGIN of AcctDerRule_18'
2524 ,p_level => C_LEVEL_PROCEDURE
2525 ,p_module => l_log_module);
2526 END IF;
2527 --
2528 l_component_type := 'AMB_ADR';
2529 l_component_code := 'PA_RCVR_COST_REV_ADJ_ACCT_RULE';
2530 l_component_type_code := 'S';
2531 l_component_appl_id := 275;
2532 l_amb_context_code := 'DEFAULT';
2533 x_transaction_coa_id := null;
2534 x_accounting_coa_id := null;
2535 --
2536
2537 IF NVL(p_source_5,'
2538 ') = 'N'
2539 THEN
2540 --
2541 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2542 trace
2543 (p_msg => 'END of AcctDerRule_18'
2544 ,p_level => C_LEVEL_PROCEDURE
2545 ,p_module => l_log_module);
2546 END IF;
2547 x_value_type_code := 'S';
2548 l_output_value := TO_NUMBER(TO_NUMBER(p_source_11));
2549 RETURN l_output_value;
2550
2551 END IF;
2552 --
2553 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2554 trace
2555 (p_msg => 'END of AcctDerRule_18(invalid)'
2556 ,p_level => C_LEVEL_PROCEDURE
2557 ,p_module => l_log_module);
2558 END IF;
2559 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2560 x_value_type_code := null;
2561 l_output_value := null;
2562 xla_accounting_err_pkg.build_message
2563 (p_appli_s_name => 'XLA'
2564 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2565 ,p_token_1 => 'COMPONENT_NAME'
2566 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2567 l_component_type
2568 , l_component_code
2569 , l_component_type_code
2570 , l_component_appl_id
2574 ,p_value_2 => xla_lookups_pkg.get_meaning(
2571 , l_amb_context_code
2572 )
2573 ,p_token_2 => 'OWNER'
2575 'XLA_OWNER_TYPE'
2576 ,l_component_type_code
2577 )
2578 ,p_token_3 => 'PAD_NAME'
2579 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2580 ,p_token_4 => 'PAD_OWNER'
2581 ,p_value_4 => xla_lookups_pkg.get_meaning(
2582 'XLA_OWNER_TYPE'
2583 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2584 )
2585 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2586 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2587 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2588 ,p_ae_header_id => NULL
2589 );
2590 RETURN l_output_value;
2591 EXCEPTION
2592 WHEN xla_exceptions_pkg.application_exception THEN
2593 RAISE;
2594 WHEN OTHERS THEN
2595 xla_exceptions_pkg.raise_message
2596 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctDerRule_18');
2597 END AcctDerRule_18;
2598 --
2599
2600 ---------------------------------------
2601 --
2602 -- PRIVATE FUNCTION
2603 -- AcctDerRule_19
2604 --
2605 ---------------------------------------
2606 FUNCTION AcctDerRule_19 (
2607 p_application_id IN NUMBER
2608 , p_ae_header_id IN NUMBER
2609 , p_side IN VARCHAR2
2610 --Allow Account Override Flag
2611 , p_source_5 IN VARCHAR2
2612 --Provider Cost Destination CCID
2613 , p_source_12 IN NUMBER
2614 --Adjustment Provider Cost Destination CCID
2615 , p_source_13 IN NUMBER
2616 , x_transaction_coa_id OUT NOCOPY NUMBER
2617 , x_accounting_coa_id OUT NOCOPY NUMBER
2618 , x_value_type_code OUT NOCOPY VARCHAR2
2619 )
2620 RETURN NUMBER
2621 IS
2622 l_component_type VARCHAR2(80) ;
2623 l_component_code VARCHAR2(30) ;
2624 l_component_type_code VARCHAR2(1) ;
2625 l_component_appl_id INTEGER ;
2626 l_amb_context_code VARCHAR2(30) ;
2627 l_log_module VARCHAR2(240) ;
2628 l_output_value NUMBER ;
2629 BEGIN
2630 IF g_log_enabled THEN
2631 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_19';
2632 END IF;
2633 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2634 trace
2635 (p_msg => 'BEGIN of AcctDerRule_19'
2636 ,p_level => C_LEVEL_PROCEDURE
2637 ,p_module => l_log_module);
2638 END IF;
2639 --
2640 l_component_type := 'AMB_ADR';
2641 l_component_code := 'PA_RECLASS_DEST_ACCT_RULE';
2642 l_component_type_code := 'S';
2643 l_component_appl_id := 275;
2644 l_amb_context_code := 'DEFAULT';
2645 x_transaction_coa_id := null;
2646 x_accounting_coa_id := null;
2647 --
2648
2649 IF NVL(p_source_5,'
2650 ') = 'Y'
2651 THEN
2652 --
2653 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2654 trace
2655 (p_msg => 'END of AcctDerRule_19'
2656 ,p_level => C_LEVEL_PROCEDURE
2657 ,p_module => l_log_module);
2658 END IF;
2659 x_value_type_code := 'S';
2660 l_output_value := TO_NUMBER(TO_NUMBER(p_source_12));
2661 RETURN l_output_value;
2662
2663 ELSIF NVL(p_source_5,'
2664 ') = 'N'
2665 THEN
2666 --
2667 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2668 trace
2669 (p_msg => 'END of AcctDerRule_19'
2670 ,p_level => C_LEVEL_PROCEDURE
2671 ,p_module => l_log_module);
2672 END IF;
2673 x_value_type_code := 'S';
2674 l_output_value := TO_NUMBER(TO_NUMBER(p_source_13));
2675 RETURN l_output_value;
2676
2677 END IF;
2678 --
2679 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2680 trace
2681 (p_msg => 'END of AcctDerRule_19(invalid)'
2682 ,p_level => C_LEVEL_PROCEDURE
2683 ,p_module => l_log_module);
2684 END IF;
2685 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2686 x_value_type_code := null;
2687 l_output_value := null;
2688 xla_accounting_err_pkg.build_message
2689 (p_appli_s_name => 'XLA'
2690 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2691 ,p_token_1 => 'COMPONENT_NAME'
2692 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2693 l_component_type
2694 , l_component_code
2695 , l_component_type_code
2696 , l_component_appl_id
2697 , l_amb_context_code
2698 )
2699 ,p_token_2 => 'OWNER'
2700 ,p_value_2 => xla_lookups_pkg.get_meaning(
2701 'XLA_OWNER_TYPE'
2702 ,l_component_type_code
2703 )
2707 ,p_value_4 => xla_lookups_pkg.get_meaning(
2704 ,p_token_3 => 'PAD_NAME'
2705 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2706 ,p_token_4 => 'PAD_OWNER'
2708 'XLA_OWNER_TYPE'
2709 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2710 )
2711 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2712 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2713 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2714 ,p_ae_header_id => NULL
2715 );
2716 RETURN l_output_value;
2717 EXCEPTION
2718 WHEN xla_exceptions_pkg.application_exception THEN
2719 RAISE;
2720 WHEN OTHERS THEN
2721 xla_exceptions_pkg.raise_message
2722 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctDerRule_19');
2723 END AcctDerRule_19;
2724 --
2725
2726 ---------------------------------------
2727 --
2728 -- PRIVATE FUNCTION
2729 -- AcctDerRule_20
2730 --
2731 ---------------------------------------
2732 FUNCTION AcctDerRule_20 (
2733 p_application_id IN NUMBER
2734 , p_ae_header_id IN NUMBER
2735 , p_side IN VARCHAR2
2736 --Allow Account Override Flag
2737 , p_source_5 IN VARCHAR2
2738 --Adjustment Provider Cost Destination CCID
2739 , p_source_13 IN NUMBER
2740 , x_transaction_coa_id OUT NOCOPY NUMBER
2741 , x_accounting_coa_id OUT NOCOPY NUMBER
2742 , x_value_type_code OUT NOCOPY VARCHAR2
2743 )
2744 RETURN NUMBER
2745 IS
2746 l_component_type VARCHAR2(80) ;
2747 l_component_code VARCHAR2(30) ;
2748 l_component_type_code VARCHAR2(1) ;
2749 l_component_appl_id INTEGER ;
2750 l_amb_context_code VARCHAR2(30) ;
2751 l_log_module VARCHAR2(240) ;
2752 l_output_value NUMBER ;
2753 BEGIN
2754 IF g_log_enabled THEN
2755 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_20';
2756 END IF;
2757 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2758 trace
2759 (p_msg => 'BEGIN of AcctDerRule_20'
2760 ,p_level => C_LEVEL_PROCEDURE
2761 ,p_module => l_log_module);
2762 END IF;
2763 --
2764 l_component_type := 'AMB_ADR';
2765 l_component_code := 'PA_RECLASS_DEST_ADJ_ACCT_RULE';
2766 l_component_type_code := 'S';
2767 l_component_appl_id := 275;
2768 l_amb_context_code := 'DEFAULT';
2769 x_transaction_coa_id := null;
2770 x_accounting_coa_id := null;
2771 --
2772
2773 IF NVL(p_source_5,'
2774 ') = 'N'
2775 THEN
2776 --
2777 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2778 trace
2779 (p_msg => 'END of AcctDerRule_20'
2780 ,p_level => C_LEVEL_PROCEDURE
2781 ,p_module => l_log_module);
2782 END IF;
2783 x_value_type_code := 'S';
2784 l_output_value := TO_NUMBER(TO_NUMBER(p_source_13));
2785 RETURN l_output_value;
2786
2787 END IF;
2788 --
2789 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2790 trace
2791 (p_msg => 'END of AcctDerRule_20(invalid)'
2792 ,p_level => C_LEVEL_PROCEDURE
2793 ,p_module => l_log_module);
2794 END IF;
2795 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2796 x_value_type_code := null;
2797 l_output_value := null;
2798 xla_accounting_err_pkg.build_message
2799 (p_appli_s_name => 'XLA'
2800 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2801 ,p_token_1 => 'COMPONENT_NAME'
2802 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2803 l_component_type
2804 , l_component_code
2805 , l_component_type_code
2806 , l_component_appl_id
2807 , l_amb_context_code
2808 )
2809 ,p_token_2 => 'OWNER'
2810 ,p_value_2 => xla_lookups_pkg.get_meaning(
2811 'XLA_OWNER_TYPE'
2812 ,l_component_type_code
2813 )
2814 ,p_token_3 => 'PAD_NAME'
2815 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2816 ,p_token_4 => 'PAD_OWNER'
2817 ,p_value_4 => xla_lookups_pkg.get_meaning(
2818 'XLA_OWNER_TYPE'
2819 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2820 )
2821 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2822 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2823 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2824 ,p_ae_header_id => NULL
2825 );
2826 RETURN l_output_value;
2827 EXCEPTION
2828 WHEN xla_exceptions_pkg.application_exception THEN
2829 RAISE;
2833 END AcctDerRule_20;
2830 WHEN OTHERS THEN
2831 xla_exceptions_pkg.raise_message
2832 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctDerRule_20');
2834 --
2835
2836 ---------------------------------------
2837 --
2838 -- PRIVATE FUNCTION
2839 -- AcctDerRule_21
2840 --
2841 ---------------------------------------
2842 FUNCTION AcctDerRule_21 (
2843 p_application_id IN NUMBER
2844 , p_ae_header_id IN NUMBER
2845 , p_side IN VARCHAR2
2846 --Allow Account Override Flag
2847 , p_source_5 IN VARCHAR2
2848 --Provider Cost Source CCID
2849 , p_source_14 IN NUMBER
2850 --Adjustment Provider Cost Source CCID
2851 , p_source_15 IN NUMBER
2852 , x_transaction_coa_id OUT NOCOPY NUMBER
2853 , x_accounting_coa_id OUT NOCOPY NUMBER
2854 , x_value_type_code OUT NOCOPY VARCHAR2
2855 )
2856 RETURN NUMBER
2857 IS
2858 l_component_type VARCHAR2(80) ;
2859 l_component_code VARCHAR2(30) ;
2860 l_component_type_code VARCHAR2(1) ;
2861 l_component_appl_id INTEGER ;
2862 l_amb_context_code VARCHAR2(30) ;
2863 l_log_module VARCHAR2(240) ;
2864 l_output_value NUMBER ;
2865 BEGIN
2866 IF g_log_enabled THEN
2867 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_21';
2868 END IF;
2869 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2870 trace
2871 (p_msg => 'BEGIN of AcctDerRule_21'
2872 ,p_level => C_LEVEL_PROCEDURE
2873 ,p_module => l_log_module);
2874 END IF;
2875 --
2876 l_component_type := 'AMB_ADR';
2877 l_component_code := 'PA_RECLASS_SOURCE_ACCT_RULE';
2878 l_component_type_code := 'S';
2879 l_component_appl_id := 275;
2880 l_amb_context_code := 'DEFAULT';
2881 x_transaction_coa_id := null;
2882 x_accounting_coa_id := null;
2883 --
2884
2885 IF NVL(p_source_5,'
2886 ') = 'Y'
2887 THEN
2888 --
2889 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2890 trace
2891 (p_msg => 'END of AcctDerRule_21'
2892 ,p_level => C_LEVEL_PROCEDURE
2893 ,p_module => l_log_module);
2894 END IF;
2895 x_value_type_code := 'S';
2896 l_output_value := TO_NUMBER(TO_NUMBER(p_source_14));
2897 RETURN l_output_value;
2898
2899 ELSIF NVL(p_source_5,'
2900 ') = 'N'
2901 THEN
2902 --
2903 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2904 trace
2905 (p_msg => 'END of AcctDerRule_21'
2906 ,p_level => C_LEVEL_PROCEDURE
2907 ,p_module => l_log_module);
2908 END IF;
2909 x_value_type_code := 'S';
2910 l_output_value := TO_NUMBER(TO_NUMBER(p_source_15));
2911 RETURN l_output_value;
2912
2913 END IF;
2914 --
2915 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2916 trace
2917 (p_msg => 'END of AcctDerRule_21(invalid)'
2918 ,p_level => C_LEVEL_PROCEDURE
2919 ,p_module => l_log_module);
2920 END IF;
2921 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2922 x_value_type_code := null;
2923 l_output_value := null;
2924 xla_accounting_err_pkg.build_message
2925 (p_appli_s_name => 'XLA'
2926 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2927 ,p_token_1 => 'COMPONENT_NAME'
2928 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2929 l_component_type
2930 , l_component_code
2931 , l_component_type_code
2932 , l_component_appl_id
2933 , l_amb_context_code
2934 )
2935 ,p_token_2 => 'OWNER'
2936 ,p_value_2 => xla_lookups_pkg.get_meaning(
2937 'XLA_OWNER_TYPE'
2938 ,l_component_type_code
2939 )
2940 ,p_token_3 => 'PAD_NAME'
2941 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2942 ,p_token_4 => 'PAD_OWNER'
2943 ,p_value_4 => xla_lookups_pkg.get_meaning(
2944 'XLA_OWNER_TYPE'
2945 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2946 )
2947 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2948 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2949 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2950 ,p_ae_header_id => NULL
2951 );
2952 RETURN l_output_value;
2953 EXCEPTION
2954 WHEN xla_exceptions_pkg.application_exception THEN
2955 RAISE;
2956 WHEN OTHERS THEN
2957 xla_exceptions_pkg.raise_message
2958 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctDerRule_21');
2959 END AcctDerRule_21;
2960 --
2961
2962 ---------------------------------------
2963 --
2964 -- PRIVATE FUNCTION
2965 -- AcctDerRule_22
2966 --
2967 ---------------------------------------
2968 FUNCTION AcctDerRule_22 (
2969 p_application_id IN NUMBER
2973 , p_source_5 IN VARCHAR2
2970 , p_ae_header_id IN NUMBER
2971 , p_side IN VARCHAR2
2972 --Allow Account Override Flag
2974 --Adjustment Provider Cost Source CCID
2975 , p_source_15 IN NUMBER
2976 , x_transaction_coa_id OUT NOCOPY NUMBER
2977 , x_accounting_coa_id OUT NOCOPY NUMBER
2978 , x_value_type_code OUT NOCOPY VARCHAR2
2979 )
2980 RETURN NUMBER
2981 IS
2982 l_component_type VARCHAR2(80) ;
2983 l_component_code VARCHAR2(30) ;
2984 l_component_type_code VARCHAR2(1) ;
2985 l_component_appl_id INTEGER ;
2986 l_amb_context_code VARCHAR2(30) ;
2987 l_log_module VARCHAR2(240) ;
2988 l_output_value NUMBER ;
2989 BEGIN
2990 IF g_log_enabled THEN
2991 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_22';
2992 END IF;
2993 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2994 trace
2995 (p_msg => 'BEGIN of AcctDerRule_22'
2996 ,p_level => C_LEVEL_PROCEDURE
2997 ,p_module => l_log_module);
2998 END IF;
2999 --
3000 l_component_type := 'AMB_ADR';
3001 l_component_code := 'PA_RECLASS_SRC_ADJ_ACCT_RULE';
3002 l_component_type_code := 'S';
3003 l_component_appl_id := 275;
3004 l_amb_context_code := 'DEFAULT';
3005 x_transaction_coa_id := null;
3006 x_accounting_coa_id := null;
3007 --
3008
3009 IF NVL(p_source_5,'
3010 ') = 'N'
3011 THEN
3012 --
3013 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3014 trace
3015 (p_msg => 'END of AcctDerRule_22'
3016 ,p_level => C_LEVEL_PROCEDURE
3017 ,p_module => l_log_module);
3018 END IF;
3019 x_value_type_code := 'S';
3020 l_output_value := TO_NUMBER(TO_NUMBER(p_source_15));
3021 RETURN l_output_value;
3022
3023 END IF;
3024 --
3025 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3026 trace
3027 (p_msg => 'END of AcctDerRule_22(invalid)'
3028 ,p_level => C_LEVEL_PROCEDURE
3029 ,p_module => l_log_module);
3030 END IF;
3031 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3032 x_value_type_code := null;
3033 l_output_value := null;
3034 xla_accounting_err_pkg.build_message
3035 (p_appli_s_name => 'XLA'
3036 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3037 ,p_token_1 => 'COMPONENT_NAME'
3038 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3039 l_component_type
3040 , l_component_code
3041 , l_component_type_code
3042 , l_component_appl_id
3043 , l_amb_context_code
3044 )
3045 ,p_token_2 => 'OWNER'
3046 ,p_value_2 => xla_lookups_pkg.get_meaning(
3047 'XLA_OWNER_TYPE'
3048 ,l_component_type_code
3049 )
3050 ,p_token_3 => 'PAD_NAME'
3051 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3052 ,p_token_4 => 'PAD_OWNER'
3053 ,p_value_4 => xla_lookups_pkg.get_meaning(
3054 'XLA_OWNER_TYPE'
3055 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3056 )
3057 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3058 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3059 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3060 ,p_ae_header_id => NULL
3061 );
3062 RETURN l_output_value;
3063 EXCEPTION
3064 WHEN xla_exceptions_pkg.application_exception THEN
3065 RAISE;
3066 WHEN OTHERS THEN
3067 xla_exceptions_pkg.raise_message
3068 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctDerRule_22');
3069 END AcctDerRule_22;
3070 --
3071
3072 ---------------------------------------
3073 --
3074 -- PRIVATE FUNCTION
3075 -- AcctDerRule_23
3076 --
3077 ---------------------------------------
3078 FUNCTION AcctDerRule_23 (
3079 p_application_id IN NUMBER
3080 , p_ae_header_id IN NUMBER
3081 , p_side IN VARCHAR2
3082 --Allow Account Override Flag
3083 , p_source_5 IN VARCHAR2
3084 --Adjustment Receiver Cost/ Revenue CCID
3085 , p_source_11 IN NUMBER
3086 --Receiver Cost/ Revenue CCID
3087 , p_source_16 IN NUMBER
3088 , x_transaction_coa_id OUT NOCOPY NUMBER
3089 , x_accounting_coa_id OUT NOCOPY NUMBER
3090 , x_value_type_code OUT NOCOPY VARCHAR2
3091 )
3092 RETURN NUMBER
3093 IS
3094 l_component_type VARCHAR2(80) ;
3095 l_component_code VARCHAR2(30) ;
3096 l_component_type_code VARCHAR2(1) ;
3097 l_component_appl_id INTEGER ;
3098 l_amb_context_code VARCHAR2(30) ;
3099 l_log_module VARCHAR2(240) ;
3100 l_output_value NUMBER ;
3101 BEGIN
3102 IF g_log_enabled THEN
3103 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_23';
3104 END IF;
3108 ,p_level => C_LEVEL_PROCEDURE
3105 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3106 trace
3107 (p_msg => 'BEGIN of AcctDerRule_23'
3109 ,p_module => l_log_module);
3110 END IF;
3111 --
3112 l_component_type := 'AMB_ADR';
3113 l_component_code := 'PA_RECVR_COST_REV_ACCT_RULE';
3114 l_component_type_code := 'S';
3115 l_component_appl_id := 275;
3116 l_amb_context_code := 'DEFAULT';
3117 x_transaction_coa_id := null;
3118 x_accounting_coa_id := null;
3119 --
3120
3121 IF NVL(p_source_5,'
3122 ') = 'Y'
3123 THEN
3124 --
3125 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3126 trace
3127 (p_msg => 'END of AcctDerRule_23'
3128 ,p_level => C_LEVEL_PROCEDURE
3129 ,p_module => l_log_module);
3130 END IF;
3131 x_value_type_code := 'S';
3132 l_output_value := TO_NUMBER(TO_NUMBER(p_source_16));
3133 RETURN l_output_value;
3134
3135 ELSIF NVL(p_source_5,'
3136 ') = 'N'
3137 THEN
3138 --
3139 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3140 trace
3141 (p_msg => 'END of AcctDerRule_23'
3142 ,p_level => C_LEVEL_PROCEDURE
3143 ,p_module => l_log_module);
3144 END IF;
3145 x_value_type_code := 'S';
3146 l_output_value := TO_NUMBER(TO_NUMBER(p_source_11));
3147 RETURN l_output_value;
3148
3149 END IF;
3150 --
3151 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3152 trace
3153 (p_msg => 'END of AcctDerRule_23(invalid)'
3154 ,p_level => C_LEVEL_PROCEDURE
3155 ,p_module => l_log_module);
3156 END IF;
3157 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3158 x_value_type_code := null;
3159 l_output_value := null;
3160 xla_accounting_err_pkg.build_message
3161 (p_appli_s_name => 'XLA'
3162 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3163 ,p_token_1 => 'COMPONENT_NAME'
3164 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3165 l_component_type
3166 , l_component_code
3167 , l_component_type_code
3168 , l_component_appl_id
3169 , l_amb_context_code
3170 )
3171 ,p_token_2 => 'OWNER'
3172 ,p_value_2 => xla_lookups_pkg.get_meaning(
3173 'XLA_OWNER_TYPE'
3174 ,l_component_type_code
3175 )
3176 ,p_token_3 => 'PAD_NAME'
3177 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3178 ,p_token_4 => 'PAD_OWNER'
3179 ,p_value_4 => xla_lookups_pkg.get_meaning(
3180 'XLA_OWNER_TYPE'
3181 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3182 )
3183 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3184 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3185 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3186 ,p_ae_header_id => NULL
3187 );
3188 RETURN l_output_value;
3189 EXCEPTION
3190 WHEN xla_exceptions_pkg.application_exception THEN
3191 RAISE;
3192 WHEN OTHERS THEN
3193 xla_exceptions_pkg.raise_message
3194 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctDerRule_23');
3195 END AcctDerRule_23;
3196 --
3197
3198 ---------------------------------------
3199 --
3200 -- PRIVATE FUNCTION
3201 -- AcctDerRule_24
3202 --
3203 ---------------------------------------
3204 FUNCTION AcctDerRule_24 (
3205 p_application_id IN NUMBER
3206 , p_ae_header_id IN NUMBER
3207 , p_side IN VARCHAR2
3208 --Realized Gains CCID
3209 , p_source_17 IN NUMBER
3210 , x_transaction_coa_id OUT NOCOPY NUMBER
3211 , x_accounting_coa_id OUT NOCOPY NUMBER
3212 , x_value_type_code OUT NOCOPY VARCHAR2
3213 )
3214 RETURN NUMBER
3215 IS
3216 l_component_type VARCHAR2(80) ;
3217 l_component_code VARCHAR2(30) ;
3218 l_component_type_code VARCHAR2(1) ;
3219 l_component_appl_id INTEGER ;
3220 l_amb_context_code VARCHAR2(30) ;
3221 l_log_module VARCHAR2(240) ;
3222 l_output_value NUMBER ;
3223 BEGIN
3224 IF g_log_enabled THEN
3225 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_24';
3226 END IF;
3227 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3228 trace
3229 (p_msg => 'BEGIN of AcctDerRule_24'
3230 ,p_level => C_LEVEL_PROCEDURE
3231 ,p_module => l_log_module);
3232 END IF;
3233 --
3234 l_component_type := 'AMB_ADR';
3235 l_component_code := 'REALIZED_GAINS_RULE';
3236 l_component_type_code := 'S';
3237 l_component_appl_id := 275;
3238 l_amb_context_code := 'DEFAULT';
3239 x_transaction_coa_id := null;
3240 x_accounting_coa_id := null;
3241 --
3242
3243 --
3244 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3248 ,p_module => l_log_module);
3245 trace
3246 (p_msg => 'END of AcctDerRule_24'
3247 ,p_level => C_LEVEL_PROCEDURE
3249 END IF;
3250 x_value_type_code := 'S';
3251 l_output_value := TO_NUMBER(TO_NUMBER(p_source_17));
3252 RETURN l_output_value;
3253
3254 --
3255 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3256 trace
3257 (p_msg => 'END of AcctDerRule_24(invalid)'
3258 ,p_level => C_LEVEL_PROCEDURE
3259 ,p_module => l_log_module);
3260 END IF;
3261 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3262 x_value_type_code := null;
3263 l_output_value := null;
3264 xla_accounting_err_pkg.build_message
3265 (p_appli_s_name => 'XLA'
3266 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3267 ,p_token_1 => 'COMPONENT_NAME'
3268 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3269 l_component_type
3270 , l_component_code
3271 , l_component_type_code
3272 , l_component_appl_id
3273 , l_amb_context_code
3274 )
3275 ,p_token_2 => 'OWNER'
3276 ,p_value_2 => xla_lookups_pkg.get_meaning(
3277 'XLA_OWNER_TYPE'
3278 ,l_component_type_code
3279 )
3280 ,p_token_3 => 'PAD_NAME'
3281 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3282 ,p_token_4 => 'PAD_OWNER'
3283 ,p_value_4 => xla_lookups_pkg.get_meaning(
3284 'XLA_OWNER_TYPE'
3285 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3286 )
3287 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3288 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3289 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3290 ,p_ae_header_id => NULL
3291 );
3292 RETURN l_output_value;
3293 EXCEPTION
3294 WHEN xla_exceptions_pkg.application_exception THEN
3295 RAISE;
3296 WHEN OTHERS THEN
3297 xla_exceptions_pkg.raise_message
3298 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctDerRule_24');
3299 END AcctDerRule_24;
3300 --
3301
3302 ---------------------------------------
3303 --
3304 -- PRIVATE FUNCTION
3305 -- AcctDerRule_25
3306 --
3307 ---------------------------------------
3308 FUNCTION AcctDerRule_25 (
3309 p_application_id IN NUMBER
3310 , p_ae_header_id IN NUMBER
3311 , p_side IN VARCHAR2
3312 --Realized Losses CCID
3313 , p_source_18 IN NUMBER
3314 , x_transaction_coa_id OUT NOCOPY NUMBER
3315 , x_accounting_coa_id OUT NOCOPY NUMBER
3316 , x_value_type_code OUT NOCOPY VARCHAR2
3317 )
3318 RETURN NUMBER
3319 IS
3320 l_component_type VARCHAR2(80) ;
3321 l_component_code VARCHAR2(30) ;
3322 l_component_type_code VARCHAR2(1) ;
3323 l_component_appl_id INTEGER ;
3324 l_amb_context_code VARCHAR2(30) ;
3325 l_log_module VARCHAR2(240) ;
3326 l_output_value NUMBER ;
3327 BEGIN
3328 IF g_log_enabled THEN
3329 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_25';
3330 END IF;
3331 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3332 trace
3333 (p_msg => 'BEGIN of AcctDerRule_25'
3334 ,p_level => C_LEVEL_PROCEDURE
3335 ,p_module => l_log_module);
3336 END IF;
3337 --
3338 l_component_type := 'AMB_ADR';
3339 l_component_code := 'REALIZED_LOSSES_RULE';
3340 l_component_type_code := 'S';
3341 l_component_appl_id := 275;
3342 l_amb_context_code := 'DEFAULT';
3343 x_transaction_coa_id := null;
3344 x_accounting_coa_id := null;
3345 --
3346
3347 --
3348 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3349 trace
3350 (p_msg => 'END of AcctDerRule_25'
3351 ,p_level => C_LEVEL_PROCEDURE
3352 ,p_module => l_log_module);
3353 END IF;
3354 x_value_type_code := 'S';
3355 l_output_value := TO_NUMBER(TO_NUMBER(p_source_18));
3356 RETURN l_output_value;
3357
3358 --
3359 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3360 trace
3361 (p_msg => 'END of AcctDerRule_25(invalid)'
3362 ,p_level => C_LEVEL_PROCEDURE
3363 ,p_module => l_log_module);
3364 END IF;
3365 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3366 x_value_type_code := null;
3367 l_output_value := null;
3368 xla_accounting_err_pkg.build_message
3369 (p_appli_s_name => 'XLA'
3370 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3371 ,p_token_1 => 'COMPONENT_NAME'
3372 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3373 l_component_type
3374 , l_component_code
3378 )
3375 , l_component_type_code
3376 , l_component_appl_id
3377 , l_amb_context_code
3379 ,p_token_2 => 'OWNER'
3380 ,p_value_2 => xla_lookups_pkg.get_meaning(
3381 'XLA_OWNER_TYPE'
3382 ,l_component_type_code
3383 )
3384 ,p_token_3 => 'PAD_NAME'
3385 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3386 ,p_token_4 => 'PAD_OWNER'
3387 ,p_value_4 => xla_lookups_pkg.get_meaning(
3388 'XLA_OWNER_TYPE'
3389 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3390 )
3391 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3392 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3393 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3394 ,p_ae_header_id => NULL
3395 );
3396 RETURN l_output_value;
3397 EXCEPTION
3398 WHEN xla_exceptions_pkg.application_exception THEN
3399 RAISE;
3400 WHEN OTHERS THEN
3401 xla_exceptions_pkg.raise_message
3402 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctDerRule_25');
3403 END AcctDerRule_25;
3404 --
3405
3406 ---------------------------------------
3407 --
3408 -- PRIVATE FUNCTION
3409 -- AcctDerRule_26
3410 --
3411 ---------------------------------------
3412 FUNCTION AcctDerRule_26 (
3413 p_application_id IN NUMBER
3414 , p_ae_header_id IN NUMBER
3415 , p_side IN VARCHAR2
3416 --Revenue CCID
3417 , p_source_19 IN NUMBER
3418 , x_transaction_coa_id OUT NOCOPY NUMBER
3419 , x_accounting_coa_id OUT NOCOPY NUMBER
3420 , x_value_type_code OUT NOCOPY VARCHAR2
3421 )
3422 RETURN NUMBER
3423 IS
3424 l_component_type VARCHAR2(80) ;
3425 l_component_code VARCHAR2(30) ;
3426 l_component_type_code VARCHAR2(1) ;
3427 l_component_appl_id INTEGER ;
3428 l_amb_context_code VARCHAR2(30) ;
3429 l_log_module VARCHAR2(240) ;
3430 l_output_value NUMBER ;
3431 BEGIN
3432 IF g_log_enabled THEN
3433 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_26';
3434 END IF;
3435 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3436 trace
3437 (p_msg => 'BEGIN of AcctDerRule_26'
3438 ,p_level => C_LEVEL_PROCEDURE
3439 ,p_module => l_log_module);
3440 END IF;
3441 --
3442 l_component_type := 'AMB_ADR';
3443 l_component_code := 'REVENUE_RULE';
3444 l_component_type_code := 'S';
3445 l_component_appl_id := 275;
3446 l_amb_context_code := 'DEFAULT';
3447 x_transaction_coa_id := null;
3448 x_accounting_coa_id := null;
3449 --
3450
3451 --
3452 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3453 trace
3454 (p_msg => 'END of AcctDerRule_26'
3455 ,p_level => C_LEVEL_PROCEDURE
3456 ,p_module => l_log_module);
3457 END IF;
3458 x_value_type_code := 'S';
3459 l_output_value := TO_NUMBER(TO_NUMBER(p_source_19));
3460 RETURN l_output_value;
3461
3462 --
3463 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3464 trace
3465 (p_msg => 'END of AcctDerRule_26(invalid)'
3466 ,p_level => C_LEVEL_PROCEDURE
3467 ,p_module => l_log_module);
3468 END IF;
3469 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3470 x_value_type_code := null;
3471 l_output_value := null;
3472 xla_accounting_err_pkg.build_message
3473 (p_appli_s_name => 'XLA'
3474 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3475 ,p_token_1 => 'COMPONENT_NAME'
3476 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3477 l_component_type
3478 , l_component_code
3479 , l_component_type_code
3480 , l_component_appl_id
3481 , l_amb_context_code
3482 )
3483 ,p_token_2 => 'OWNER'
3484 ,p_value_2 => xla_lookups_pkg.get_meaning(
3485 'XLA_OWNER_TYPE'
3486 ,l_component_type_code
3487 )
3488 ,p_token_3 => 'PAD_NAME'
3489 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3490 ,p_token_4 => 'PAD_OWNER'
3491 ,p_value_4 => xla_lookups_pkg.get_meaning(
3492 'XLA_OWNER_TYPE'
3493 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3494 )
3498 ,p_ae_header_id => NULL
3495 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3496 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3497 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3499 );
3500 RETURN l_output_value;
3501 EXCEPTION
3502 WHEN xla_exceptions_pkg.application_exception THEN
3503 RAISE;
3504 WHEN OTHERS THEN
3505 xla_exceptions_pkg.raise_message
3506 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctDerRule_26');
3507 END AcctDerRule_26;
3508 --
3509
3510 ---------------------------------------
3511 --
3512 -- PRIVATE FUNCTION
3513 -- AcctDerRule_27
3514 --
3515 ---------------------------------------
3516 FUNCTION AcctDerRule_27 (
3517 p_application_id IN NUMBER
3518 , p_ae_header_id IN NUMBER
3519 , p_side IN VARCHAR2
3520 --Unbilled Receivables CCID
3521 , p_source_20 IN NUMBER
3522 , x_transaction_coa_id OUT NOCOPY NUMBER
3523 , x_accounting_coa_id OUT NOCOPY NUMBER
3524 , x_value_type_code OUT NOCOPY VARCHAR2
3525 )
3526 RETURN NUMBER
3527 IS
3528 l_component_type VARCHAR2(80) ;
3529 l_component_code VARCHAR2(30) ;
3530 l_component_type_code VARCHAR2(1) ;
3531 l_component_appl_id INTEGER ;
3532 l_amb_context_code VARCHAR2(30) ;
3533 l_log_module VARCHAR2(240) ;
3534 l_output_value NUMBER ;
3535 BEGIN
3536 IF g_log_enabled THEN
3537 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_27';
3538 END IF;
3539 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3540 trace
3541 (p_msg => 'BEGIN of AcctDerRule_27'
3542 ,p_level => C_LEVEL_PROCEDURE
3543 ,p_module => l_log_module);
3544 END IF;
3545 --
3546 l_component_type := 'AMB_ADR';
3547 l_component_code := 'UBR_RULE';
3548 l_component_type_code := 'S';
3549 l_component_appl_id := 275;
3550 l_amb_context_code := 'DEFAULT';
3551 x_transaction_coa_id := null;
3552 x_accounting_coa_id := null;
3553 --
3554
3555 --
3556 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3557 trace
3558 (p_msg => 'END of AcctDerRule_27'
3559 ,p_level => C_LEVEL_PROCEDURE
3560 ,p_module => l_log_module);
3561 END IF;
3562 x_value_type_code := 'S';
3563 l_output_value := TO_NUMBER(TO_NUMBER(p_source_20));
3564 RETURN l_output_value;
3565
3566 --
3567 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3568 trace
3569 (p_msg => 'END of AcctDerRule_27(invalid)'
3570 ,p_level => C_LEVEL_PROCEDURE
3571 ,p_module => l_log_module);
3572 END IF;
3573 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3574 x_value_type_code := null;
3575 l_output_value := null;
3576 xla_accounting_err_pkg.build_message
3577 (p_appli_s_name => 'XLA'
3578 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3579 ,p_token_1 => 'COMPONENT_NAME'
3580 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3581 l_component_type
3582 , l_component_code
3583 , l_component_type_code
3584 , l_component_appl_id
3585 , l_amb_context_code
3586 )
3587 ,p_token_2 => 'OWNER'
3588 ,p_value_2 => xla_lookups_pkg.get_meaning(
3589 'XLA_OWNER_TYPE'
3590 ,l_component_type_code
3591 )
3592 ,p_token_3 => 'PAD_NAME'
3593 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3594 ,p_token_4 => 'PAD_OWNER'
3595 ,p_value_4 => xla_lookups_pkg.get_meaning(
3596 'XLA_OWNER_TYPE'
3597 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3598 )
3599 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3600 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3601 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3602 ,p_ae_header_id => NULL
3603 );
3604 RETURN l_output_value;
3605 EXCEPTION
3606 WHEN xla_exceptions_pkg.application_exception THEN
3607 RAISE;
3608 WHEN OTHERS THEN
3609 xla_exceptions_pkg.raise_message
3610 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctDerRule_27');
3611 END AcctDerRule_27;
3612 --
3613
3614 ---------------------------------------
3615 --
3616 -- PRIVATE FUNCTION
3617 -- AcctDerRule_28
3618 --
3619 ---------------------------------------
3620 FUNCTION AcctDerRule_28 (
3621 p_application_id IN NUMBER
3622 , p_ae_header_id IN NUMBER
3623 , p_side IN VARCHAR2
3624 --Unearned Revenue CCID
3625 , p_source_21 IN NUMBER
3626 , x_transaction_coa_id OUT NOCOPY NUMBER
3627 , x_accounting_coa_id OUT NOCOPY NUMBER
3631 IS
3628 , x_value_type_code OUT NOCOPY VARCHAR2
3629 )
3630 RETURN NUMBER
3632 l_component_type VARCHAR2(80) ;
3633 l_component_code VARCHAR2(30) ;
3634 l_component_type_code VARCHAR2(1) ;
3635 l_component_appl_id INTEGER ;
3636 l_amb_context_code VARCHAR2(30) ;
3637 l_log_module VARCHAR2(240) ;
3638 l_output_value NUMBER ;
3639 BEGIN
3640 IF g_log_enabled THEN
3641 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_28';
3642 END IF;
3643 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3644 trace
3645 (p_msg => 'BEGIN of AcctDerRule_28'
3646 ,p_level => C_LEVEL_PROCEDURE
3647 ,p_module => l_log_module);
3648 END IF;
3649 --
3650 l_component_type := 'AMB_ADR';
3651 l_component_code := 'UER_RULE';
3652 l_component_type_code := 'S';
3653 l_component_appl_id := 275;
3654 l_amb_context_code := 'DEFAULT';
3655 x_transaction_coa_id := null;
3656 x_accounting_coa_id := null;
3657 --
3658
3659 --
3660 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3661 trace
3662 (p_msg => 'END of AcctDerRule_28'
3663 ,p_level => C_LEVEL_PROCEDURE
3664 ,p_module => l_log_module);
3665 END IF;
3666 x_value_type_code := 'S';
3667 l_output_value := TO_NUMBER(TO_NUMBER(p_source_21));
3668 RETURN l_output_value;
3669
3670 --
3671 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3672 trace
3673 (p_msg => 'END of AcctDerRule_28(invalid)'
3674 ,p_level => C_LEVEL_PROCEDURE
3675 ,p_module => l_log_module);
3676 END IF;
3677 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
3678 x_value_type_code := null;
3679 l_output_value := null;
3680 xla_accounting_err_pkg.build_message
3681 (p_appli_s_name => 'XLA'
3682 ,p_msg_name => 'XLA_AP_INVALID_ADR'
3683 ,p_token_1 => 'COMPONENT_NAME'
3684 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
3685 l_component_type
3686 , l_component_code
3687 , l_component_type_code
3688 , l_component_appl_id
3689 , l_amb_context_code
3690 )
3691 ,p_token_2 => 'OWNER'
3692 ,p_value_2 => xla_lookups_pkg.get_meaning(
3693 'XLA_OWNER_TYPE'
3694 ,l_component_type_code
3695 )
3696 ,p_token_3 => 'PAD_NAME'
3697 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3698 ,p_token_4 => 'PAD_OWNER'
3699 ,p_value_4 => xla_lookups_pkg.get_meaning(
3700 'XLA_OWNER_TYPE'
3701 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3702 )
3703 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3704 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
3705 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3706 ,p_ae_header_id => NULL
3707 );
3708 RETURN l_output_value;
3709 EXCEPTION
3710 WHEN xla_exceptions_pkg.application_exception THEN
3711 RAISE;
3712 WHEN OTHERS THEN
3713 xla_exceptions_pkg.raise_message
3714 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctDerRule_28');
3715 END AcctDerRule_28;
3716 --
3717
3718 ---------------------------------------
3719 --
3720 -- PRIVATE FUNCTION
3721 -- AcctLineType_29
3722 --
3723 ---------------------------------------
3724 PROCEDURE AcctLineType_29 (
3725 p_application_id IN NUMBER
3726 ,p_event_id IN NUMBER
3727 ,p_calculate_acctd_flag IN VARCHAR2
3728 ,p_calculate_g_l_flag IN VARCHAR2
3729 ,p_actual_flag IN OUT VARCHAR2
3730 ,p_balance_type_code OUT VARCHAR2
3731 ,p_gain_or_loss_ref OUT VARCHAR2
3732
3733 --Cost CCID
3734 , p_source_4 IN NUMBER
3735 --Allow Account Override Flag
3736 , p_source_5 IN VARCHAR2
3737 --Adjustment Cost CCID
3738 , p_source_6 IN NUMBER
3739 --Cost Clearing CCID
3740 , p_source_7 IN NUMBER
3741 --Exchange Rate Variance Flag
3742 , p_source_22 IN VARCHAR2
3743 --Reversing Line Flag
3744 , p_source_23 IN VARCHAR2
3745 --Actual Upgrade Credit Accounting Class
3746 , p_source_24 IN VARCHAR2
3747 --Entered Raw Cost
3748 , p_source_25 IN NUMBER
3749 --Entered Currency Code
3750 , p_source_26 IN VARCHAR2
3751 --Accounted Raw Cost
3752 , p_source_27 IN NUMBER
3753 --Exchange Rate Date
3754 , p_source_28 IN DATE
3755 --Exchange Rate
3756 , p_source_29 IN NUMBER
3757 --Exchange Rate Type
3758 , p_source_30 IN VARCHAR2
3759 --Actual Upgrade Debit Accounting Class
3760 , p_source_31 IN VARCHAR2
3761 --Use Actuals Upgrade Attributes Flag
3762 , p_source_32 IN VARCHAR2
3763 --Expenditure Item ID
3764 , p_source_33 IN NUMBER
3768 , p_source_35 IN VARCHAR2
3765 --Cost Distribution Line Number
3766 , p_source_34 IN NUMBER
3767 --Line Type
3769 , p_source_35_meaning IN VARCHAR2
3770 --Reversed Line Number
3771 , p_source_36 IN NUMBER
3772 )
3773 IS
3774
3775 l_component_type VARCHAR2(80);
3776 l_component_code VARCHAR2(30);
3777 l_component_type_code VARCHAR2(1);
3778 l_component_appl_id INTEGER;
3779 l_amb_context_code VARCHAR2(30);
3780 l_entity_code VARCHAR2(30);
3781 l_event_class_code VARCHAR2(30);
3782 l_ae_header_id NUMBER;
3783 l_event_type_code VARCHAR2(30);
3784 l_line_definition_code VARCHAR2(30);
3785 l_line_definition_owner_code VARCHAR2(1);
3786 --
3787 -- adr variables
3788 l_segment VARCHAR2(30);
3789 l_ccid NUMBER;
3790 l_adr_transaction_coa_id NUMBER;
3791 l_adr_accounting_coa_id NUMBER;
3792 l_adr_flexfield_segment_code VARCHAR2(30);
3793 l_adr_flex_value_set_id NUMBER;
3794 l_adr_value_type_code VARCHAR2(30);
3795 l_adr_value_combination_id NUMBER;
3796 l_adr_value_segment_code VARCHAR2(30);
3797
3798 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
3799 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
3800 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
3801 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
3802
3803 -- 4262811 Variables ------------------------------------------------------------------------------------------
3804 l_entered_amt_idx NUMBER;
3805 l_accted_amt_idx NUMBER;
3806 l_acc_rev_flag VARCHAR2(1);
3807 l_accrual_line_num NUMBER;
3808 l_tmp_amt NUMBER;
3809 l_acc_rev_natural_side_code VARCHAR2(1);
3810
3811 l_num_entries NUMBER;
3812 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
3813 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
3814 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
3815 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
3816 l_recog_line_1 NUMBER;
3817 l_recog_line_2 NUMBER;
3818
3819 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
3820 l_bflow_applied_to_amt NUMBER; -- 5132302
3821 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
3822
3823 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
3824
3825 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
3826 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
3827
3828 ---------------------------------------------------------------------------------------------------------------
3829
3830
3831 --
3832 -- bulk performance
3833 --
3834 l_balance_type_code VARCHAR2(1);
3835 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
3836 l_log_module VARCHAR2(240);
3837
3838 --
3839 -- Upgrade strategy
3840 --
3841 l_actual_upg_option VARCHAR2(1);
3842 l_enc_upg_option VARCHAR2(1);
3843
3844 --
3845 BEGIN
3846 --
3847 IF g_log_enabled THEN
3848 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_29';
3849 END IF;
3850 --
3851 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3852
3853 trace
3854 (p_msg => 'BEGIN of AcctLineType_29'
3855 ,p_level => C_LEVEL_PROCEDURE
3856 ,p_module => l_log_module);
3857
3858 END IF;
3859 --
3860 l_component_type := 'AMB_JLT';
3861 l_component_code := 'EXCHANGE_RATE_VARIANCE';
3862 l_component_type_code := 'S';
3863 l_component_appl_id := 275;
3864 l_amb_context_code := 'DEFAULT';
3865 l_entity_code := 'EXPENDITURES';
3866 l_event_class_code := 'SUPPLIER_COST';
3867 l_event_type_code := 'SUPPLIER_COST_ALL';
3868 l_line_definition_owner_code := 'S';
3869 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
3870 --
3871 l_balance_type_code := 'A';
3872 l_segment := NULL;
3873 l_ccid := NULL;
3874 l_adr_transaction_coa_id := NULL;
3875 l_adr_accounting_coa_id := NULL;
3876 l_adr_flexfield_segment_code := NULL;
3877 l_adr_flex_value_set_id := NULL;
3878 l_adr_value_type_code := NULL;
3879 l_adr_value_combination_id := NULL;
3880 l_adr_value_segment_code := NULL;
3881
3882 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
3883 l_bflow_class_code := ''; -- 4219869 Business Flow
3884 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
3885 l_budgetary_control_flag := 'N';
3886
3887 l_bflow_applied_to_amt_idx := NULL; -- 5132302
3888 l_bflow_applied_to_amt := NULL; -- 5132302
3889 l_entered_amt_idx := NULL; -- 4262811
3890 l_accted_amt_idx := NULL; -- 4262811
3891 l_acc_rev_flag := NULL; -- 4262811
3892 l_accrual_line_num := NULL; -- 4262811
3893 l_tmp_amt := NULL; -- 4262811
3894 --
3895 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
3896 (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
3897 return;
3898 END IF;
3899
3903 ') = 'Y'
3900 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
3901 l_balance_type_code <> 'B' THEN
3902 IF NVL(p_source_22,'
3904 THEN
3905
3906 --
3907 XLA_AE_LINES_PKG.SetNewLine;
3908
3909 p_balance_type_code := l_balance_type_code;
3910 -- set the flag so later we will know whether the gain loss line needs to be created
3911
3912 IF(l_balance_type_code = 'A' ) THEN
3913 p_actual_flag :='G';
3914 END IF;
3915
3916 --
3917 -- bulk performance
3918 --
3919 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
3920 p_header_num => 0); -- 4262811
3921 --
3922 -- set accounting line options
3923 --
3924 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
3925 p_natural_side_code => 'D'
3926 , p_gain_or_loss_flag => 'Y'
3927 , p_gl_transfer_mode_code => 'S'
3928 , p_acct_entry_type_code => 'A'
3929 , p_switch_side_flag => 'Y'
3930 , p_merge_duplicate_code => 'N'
3931 );
3932 --
3933 l_acc_rev_natural_side_code := 'C'; -- 4262811
3934 --
3935 --
3936 -- set accounting line type info
3937 --
3938 xla_ae_lines_pkg.SetAcctLineType
3939 (p_component_type => l_component_type
3940 ,p_event_type_code => l_event_type_code
3941 ,p_line_definition_owner_code => l_line_definition_owner_code
3942 ,p_line_definition_code => l_line_definition_code
3943 ,p_accounting_line_code => l_component_code
3944 ,p_accounting_line_type_code => l_component_type_code
3945 ,p_accounting_line_appl_id => l_component_appl_id
3946 ,p_amb_context_code => l_amb_context_code
3947 ,p_entity_code => l_entity_code
3948 ,p_event_class_code => l_event_class_code);
3949 --
3950 -- set accounting class
3951 --
3952 xla_ae_lines_pkg.SetAcctClass(
3953 p_accounting_class_code => 'EXCHANGE_RATE_VARIANCE'
3954 , p_ae_header_id => l_ae_header_id
3955 );
3956
3957 --
3958 -- set rounding class
3959 --
3960 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
3961 'EXCHANGE_RATE_VARIANCE';
3962
3963 --
3964 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
3965 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
3966 --
3967 -- bulk performance
3968 --
3969 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
3970
3971 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
3972 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
3973
3974 -- 4955764
3975 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3976 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
3977
3978 -- 4458381 Public Sector Enh
3979
3980 --
3981 -- set accounting attributes for the line type
3982 --
3983 l_entered_amt_idx := 22;
3984 l_accted_amt_idx := 27;
3985 l_bflow_applied_to_amt_idx := NULL; -- 5132302
3986 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
3987 l_rec_acct_attrs.array_char_value(1) := p_source_23;
3988 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
3989 l_rec_acct_attrs.array_char_value(2) := p_source_24;
3990 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
3991 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
3992 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
3993 l_rec_acct_attrs.array_num_value(4) := p_source_25;
3994 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
3995 l_rec_acct_attrs.array_char_value(5) := p_source_26;
3996 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
3997 l_rec_acct_attrs.array_num_value(6) := p_source_27;
3998 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
3999 l_rec_acct_attrs.array_date_value(7) := p_source_28;
4000 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
4001 l_rec_acct_attrs.array_num_value(8) := p_source_29;
4002 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
4003 l_rec_acct_attrs.array_char_value(9) := p_source_30;
4004 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
4005 l_rec_acct_attrs.array_char_value(10) := p_source_31;
4006 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
4007 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
4008 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
4009 l_rec_acct_attrs.array_num_value(12) := p_source_25;
4010 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
4011 l_rec_acct_attrs.array_char_value(13) := p_source_26;
4012 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
4013 l_rec_acct_attrs.array_num_value(14) := p_source_27;
4014 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
4015 l_rec_acct_attrs.array_date_value(15) := p_source_28;
4016 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
4017 l_rec_acct_attrs.array_num_value(16) := p_source_29;
4018 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
4019 l_rec_acct_attrs.array_char_value(17) := p_source_30;
4020 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
4021 l_rec_acct_attrs.array_char_value(18) := p_source_32;
4025 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
4022 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
4023 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
4024 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
4026 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
4027 l_rec_acct_attrs.array_char_value(21) := p_source_35;
4028 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
4029 l_rec_acct_attrs.array_num_value(22) := p_source_25;
4030 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
4031 l_rec_acct_attrs.array_char_value(23) := p_source_26;
4032 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
4033 l_rec_acct_attrs.array_date_value(24) := p_source_28;
4034 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
4035 l_rec_acct_attrs.array_num_value(25) := p_source_29;
4036 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
4037 l_rec_acct_attrs.array_char_value(26) := p_source_30;
4038 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
4039 l_rec_acct_attrs.array_num_value(27) := p_source_27;
4040 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
4041 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
4042 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
4043 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
4044 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
4045 l_rec_acct_attrs.array_char_value(30) := p_source_35;
4046
4047 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
4048 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
4049
4050 ---------------------------------------------------------------------------------------------------------------
4051 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
4052 ---------------------------------------------------------------------------------------------------------------
4053 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
4054
4055 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4056 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4057
4058 IF xla_accounting_cache_pkg.GetValueChar
4059 (p_source_code => 'LEDGER_CATEGORY_CODE'
4060 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
4061 AND l_bflow_method_code = 'PRIOR_ENTRY'
4062 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
4063 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
4064 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
4065 )
4066 THEN
4067 xla_ae_lines_pkg.BflowUpgEntry
4068 (p_business_method_code => l_bflow_method_code
4069 ,p_business_class_code => l_bflow_class_code
4070 ,p_balance_type => l_balance_type_code);
4071 ELSE
4072 NULL;
4073 -- No business flow processing for business flow method of NONE.
4074 END IF;
4075
4076 --
4077 -- call analytical criteria
4078 --
4079
4080 --
4081 -- call description
4082 --
4083 -- No description or it is inherited.
4084 --
4085 -- call ADRs
4086 -- Bug 4922099
4087 --
4088 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
4089 (NVL(l_actual_upg_option, 'N') = 'O') OR
4090 (NVL(l_enc_upg_option, 'N') = 'O')
4091 )
4092 THEN
4093 NULL;
4094 --
4095 --
4096
4097 l_ccid := AcctDerRule_12(
4098 p_application_id => p_application_id
4099 , p_ae_header_id => l_ae_header_id
4100 , p_source_4 => p_source_4
4101 , p_source_5 => p_source_5
4102 , p_source_6 => p_source_6
4103 , x_transaction_coa_id => l_adr_transaction_coa_id
4104 , x_accounting_coa_id => l_adr_accounting_coa_id
4105 , x_value_type_code => l_adr_value_type_code
4106 , p_side => 'NA'
4107 );
4108
4109 xla_ae_lines_pkg.set_ccid(
4110 p_code_combination_id => l_ccid
4111 , p_value_type_code => l_adr_value_type_code
4112 , p_transaction_coa_id => l_adr_transaction_coa_id
4113 , p_accounting_coa_id => l_adr_accounting_coa_id
4114 , p_adr_code => 'PA_COST_ACCT_RULE'
4115 , p_adr_type_code => 'S'
4116 , p_component_type => l_component_type
4117 , p_component_code => l_component_code
4118 , p_component_type_code => l_component_type_code
4119 , p_component_appl_id => l_component_appl_id
4120 , p_amb_context_code => l_amb_context_code
4121 , p_side => 'NA'
4122 );
4123
4124
4125 --
4126 --
4127 END IF;
4128 --
4129 -- Bug 4922099
4130 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
4131 (NVL(l_enc_upg_option, 'N') = 'O')
4132 ) AND
4133 (l_bflow_method_code = 'PRIOR_ENTRY')
4134 )
4135 THEN
4136 IF
4137 --
4138 1 = 2
4139 --
4140 THEN
4141 xla_accounting_err_pkg.build_message
4142 (p_appli_s_name => 'XLA'
4143 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4144 ,p_token_1 => 'LINE_NUMBER'
4145 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
4149 ,l_component_code
4146 ,p_token_2 => 'LINE_TYPE_NAME'
4147 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
4148 l_component_type
4150 ,l_component_type_code
4151 ,l_component_appl_id
4152 ,l_amb_context_code
4153 ,l_entity_code
4154 ,l_event_class_code
4155 )
4156 ,p_token_3 => 'OWNER'
4157 ,p_value_3 => xla_lookups_pkg.get_meaning(
4158 p_lookup_type => 'XLA_OWNER_TYPE'
4159 ,p_lookup_code => l_component_type_code
4160 )
4161 ,p_token_4 => 'PRODUCT_NAME'
4162 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
4163 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
4164 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
4165 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
4166 ,p_ae_header_id => NULL
4167 );
4168
4169 IF (C_LEVEL_ERROR>= g_log_level) THEN
4170 trace
4171 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4172 ,p_level => C_LEVEL_ERROR
4173 ,p_module => l_log_module);
4174 END IF;
4175 END IF;
4176 END IF;
4177 --
4178 --
4179 ------------------------------------------------------------------------------------------------
4180 -- 4219869 Business Flow
4181 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
4182 -- Prior Entry. Currently, the following code is always generated.
4183 ------------------------------------------------------------------------------------------------
4184 XLA_AE_LINES_PKG.ValidateCurrentLine;
4185
4186 ------------------------------------------------------------------------------------
4187 -- 4219869 Business Flow
4188 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
4189 ------------------------------------------------------------------------------------
4190 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4191
4192 ----------------------------------------------------------------------------------
4193 -- 4219869 Business Flow
4194 -- Update journal entry status -- Need to generate this within IF <condition>
4195 ----------------------------------------------------------------------------------
4196 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4197 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
4198 ,p_balance_type_code => l_balance_type_code
4199 );
4200
4201 -------------------------------------------------------------------------------------------
4202 -- 4262811 - Generate the Accrual Reversal lines
4203 -------------------------------------------------------------------------------------------
4204 BEGIN
4205 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
4206 (g_array_event(p_event_id).array_value_num('header_index'));
4207 IF l_acc_rev_flag IS NULL THEN
4208 l_acc_rev_flag := 'N';
4209 END IF;
4210 EXCEPTION
4211 WHEN OTHERS THEN
4212 l_acc_rev_flag := 'N';
4213 END;
4214 --
4215 IF (l_acc_rev_flag = 'Y') THEN
4216
4217 -- 4645092 ------------------------------------------------------------------------------
4218 -- To allow MPA report to determine if it should generate report process
4219 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
4220 ------------------------------------------------------------------------------------------
4221
4222 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
4223 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
4224
4225 --
4226 -- Update the line information that should be overwritten
4227 --
4228 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
4229 p_header_num => 1);
4230 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
4231
4232 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
4233
4234 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
4235 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
4236 END IF;
4237
4238 --
4239 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
4240 --
4241 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
4242 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
4243 ELSE
4244 ---------------------------------------------------------------------------------------------------
4248 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4245 -- 4262811a Switch Sign
4246 ---------------------------------------------------------------------------------------------------
4247 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
4249 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4250 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4251 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4252 -- 5132302
4253 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
4254 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4255
4256 END IF;
4257
4258 -- 4955764
4259 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4260 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
4261
4262
4263 XLA_AE_LINES_PKG.ValidateCurrentLine;
4264 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4265
4266 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4267 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
4268 ,p_balance_type_code => l_balance_type_code);
4269
4270 END IF;
4271
4272 -----------------------------------------------------------------------------------------
4273 -- 4262811 Multiperiod Accounting
4274 -----------------------------------------------------------------------------------------
4275 -- No MPA option is assigned.
4276
4277
4278 END IF;
4279 END IF;
4280 --
4281
4282 --
4283 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4284 trace
4285 (p_msg => 'END of AcctLineType_29'
4286 ,p_level => C_LEVEL_PROCEDURE
4287 ,p_module => l_log_module);
4288 END IF;
4289 --
4290 EXCEPTION
4291 WHEN xla_exceptions_pkg.application_exception THEN
4292 RAISE;
4293 WHEN OTHERS THEN
4294 xla_exceptions_pkg.raise_message
4295 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_29');
4296 END AcctLineType_29;
4297 --
4298
4299 ---------------------------------------
4300 --
4301 -- PRIVATE FUNCTION
4302 -- AcctLineType_30
4303 --
4304 ---------------------------------------
4305 PROCEDURE AcctLineType_30 (
4306 p_application_id IN NUMBER
4307 ,p_event_id IN NUMBER
4308 ,p_calculate_acctd_flag IN VARCHAR2
4309 ,p_calculate_g_l_flag IN VARCHAR2
4310 ,p_actual_flag IN OUT VARCHAR2
4311 ,p_balance_type_code OUT VARCHAR2
4312 ,p_gain_or_loss_ref OUT VARCHAR2
4313
4314 --Cost CCID
4315 , p_source_4 IN NUMBER
4316 --Allow Account Override Flag
4317 , p_source_5 IN VARCHAR2
4318 --Adjustment Cost CCID
4319 , p_source_6 IN NUMBER
4320 --Cost Clearing CCID
4321 , p_source_7 IN NUMBER
4322 --Exchange Rate Variance Flag
4323 , p_source_22 IN VARCHAR2
4324 --Reversing Line Flag
4325 , p_source_23 IN VARCHAR2
4326 --Actual Upgrade Credit Accounting Class
4327 , p_source_24 IN VARCHAR2
4328 --Entered Raw Cost
4329 , p_source_25 IN NUMBER
4330 --Entered Currency Code
4331 , p_source_26 IN VARCHAR2
4332 --Accounted Raw Cost
4333 , p_source_27 IN NUMBER
4334 --Exchange Rate Date
4335 , p_source_28 IN DATE
4336 --Exchange Rate
4337 , p_source_29 IN NUMBER
4338 --Exchange Rate Type
4339 , p_source_30 IN VARCHAR2
4340 --Actual Upgrade Debit Accounting Class
4341 , p_source_31 IN VARCHAR2
4342 --Use Actuals Upgrade Attributes Flag
4343 , p_source_32 IN VARCHAR2
4344 --Expenditure Item ID
4345 , p_source_33 IN NUMBER
4346 --Cost Distribution Line Number
4347 , p_source_34 IN NUMBER
4348 --Line Type
4349 , p_source_35 IN VARCHAR2
4350 , p_source_35_meaning IN VARCHAR2
4351 --Reversed Line Number
4352 , p_source_36 IN NUMBER
4353 )
4354 IS
4355
4356 l_component_type VARCHAR2(80);
4357 l_component_code VARCHAR2(30);
4358 l_component_type_code VARCHAR2(1);
4359 l_component_appl_id INTEGER;
4360 l_amb_context_code VARCHAR2(30);
4361 l_entity_code VARCHAR2(30);
4362 l_event_class_code VARCHAR2(30);
4363 l_ae_header_id NUMBER;
4364 l_event_type_code VARCHAR2(30);
4365 l_line_definition_code VARCHAR2(30);
4366 l_line_definition_owner_code VARCHAR2(1);
4367 --
4368 -- adr variables
4369 l_segment VARCHAR2(30);
4370 l_ccid NUMBER;
4371 l_adr_transaction_coa_id NUMBER;
4372 l_adr_accounting_coa_id NUMBER;
4373 l_adr_flexfield_segment_code VARCHAR2(30);
4374 l_adr_flex_value_set_id NUMBER;
4375 l_adr_value_type_code VARCHAR2(30);
4376 l_adr_value_combination_id NUMBER;
4377 l_adr_value_segment_code VARCHAR2(30);
4378
4379 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
4380 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
4381 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
4382 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
4383
4384 -- 4262811 Variables ------------------------------------------------------------------------------------------
4385 l_entered_amt_idx NUMBER;
4386 l_accted_amt_idx NUMBER;
4390 l_acc_rev_natural_side_code VARCHAR2(1);
4387 l_acc_rev_flag VARCHAR2(1);
4388 l_accrual_line_num NUMBER;
4389 l_tmp_amt NUMBER;
4391
4392 l_num_entries NUMBER;
4393 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
4394 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
4395 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
4396 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
4397 l_recog_line_1 NUMBER;
4398 l_recog_line_2 NUMBER;
4399
4400 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
4401 l_bflow_applied_to_amt NUMBER; -- 5132302
4402 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
4403
4404 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
4405
4406 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
4407 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
4408
4409 ---------------------------------------------------------------------------------------------------------------
4410
4411
4412 --
4413 -- bulk performance
4414 --
4415 l_balance_type_code VARCHAR2(1);
4416 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
4417 l_log_module VARCHAR2(240);
4418
4419 --
4420 -- Upgrade strategy
4421 --
4422 l_actual_upg_option VARCHAR2(1);
4423 l_enc_upg_option VARCHAR2(1);
4424
4425 --
4426 BEGIN
4427 --
4428 IF g_log_enabled THEN
4429 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_30';
4430 END IF;
4431 --
4432 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4433
4434 trace
4435 (p_msg => 'BEGIN of AcctLineType_30'
4436 ,p_level => C_LEVEL_PROCEDURE
4437 ,p_module => l_log_module);
4438
4439 END IF;
4440 --
4441 l_component_type := 'AMB_JLT';
4442 l_component_code := 'EXCHANGE_RATE_VARIANCE';
4443 l_component_type_code := 'S';
4444 l_component_appl_id := 275;
4445 l_amb_context_code := 'DEFAULT';
4446 l_entity_code := 'EXPENDITURES';
4447 l_event_class_code := 'SUPPLIER_COST_ADJ';
4448 l_event_type_code := 'SUPPLIER_COST_ADJ_ALL';
4449 l_line_definition_owner_code := 'S';
4450 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
4451 --
4452 l_balance_type_code := 'A';
4453 l_segment := NULL;
4454 l_ccid := NULL;
4455 l_adr_transaction_coa_id := NULL;
4456 l_adr_accounting_coa_id := NULL;
4457 l_adr_flexfield_segment_code := NULL;
4458 l_adr_flex_value_set_id := NULL;
4459 l_adr_value_type_code := NULL;
4460 l_adr_value_combination_id := NULL;
4461 l_adr_value_segment_code := NULL;
4462
4463 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
4464 l_bflow_class_code := ''; -- 4219869 Business Flow
4465 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
4466 l_budgetary_control_flag := 'N';
4467
4468 l_bflow_applied_to_amt_idx := NULL; -- 5132302
4469 l_bflow_applied_to_amt := NULL; -- 5132302
4470 l_entered_amt_idx := NULL; -- 4262811
4471 l_accted_amt_idx := NULL; -- 4262811
4472 l_acc_rev_flag := NULL; -- 4262811
4473 l_accrual_line_num := NULL; -- 4262811
4474 l_tmp_amt := NULL; -- 4262811
4475 --
4476 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
4477 (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
4478 return;
4479 END IF;
4480
4481 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
4482 l_balance_type_code <> 'B' THEN
4483 IF NVL(p_source_22,'
4484 ') = 'Y'
4485 THEN
4486
4487 --
4488 XLA_AE_LINES_PKG.SetNewLine;
4489
4490 p_balance_type_code := l_balance_type_code;
4491 -- set the flag so later we will know whether the gain loss line needs to be created
4492
4493 IF(l_balance_type_code = 'A' ) THEN
4494 p_actual_flag :='G';
4495 END IF;
4496
4497 --
4498 -- bulk performance
4499 --
4500 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
4501 p_header_num => 0); -- 4262811
4502 --
4503 -- set accounting line options
4504 --
4505 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
4506 p_natural_side_code => 'D'
4507 , p_gain_or_loss_flag => 'Y'
4508 , p_gl_transfer_mode_code => 'S'
4509 , p_acct_entry_type_code => 'A'
4510 , p_switch_side_flag => 'Y'
4511 , p_merge_duplicate_code => 'N'
4512 );
4513 --
4514 l_acc_rev_natural_side_code := 'C'; -- 4262811
4515 --
4516 --
4517 -- set accounting line type info
4518 --
4519 xla_ae_lines_pkg.SetAcctLineType
4520 (p_component_type => l_component_type
4521 ,p_event_type_code => l_event_type_code
4522 ,p_line_definition_owner_code => l_line_definition_owner_code
4523 ,p_line_definition_code => l_line_definition_code
4524 ,p_accounting_line_code => l_component_code
4525 ,p_accounting_line_type_code => l_component_type_code
4529 ,p_event_class_code => l_event_class_code);
4526 ,p_accounting_line_appl_id => l_component_appl_id
4527 ,p_amb_context_code => l_amb_context_code
4528 ,p_entity_code => l_entity_code
4530 --
4531 -- set accounting class
4532 --
4533 xla_ae_lines_pkg.SetAcctClass(
4534 p_accounting_class_code => 'EXCHANGE_RATE_VARIANCE'
4535 , p_ae_header_id => l_ae_header_id
4536 );
4537
4538 --
4539 -- set rounding class
4540 --
4541 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
4542 'EXCHANGE_RATE_VARIANCE';
4543
4544 --
4545 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
4546 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
4547 --
4548 -- bulk performance
4549 --
4550 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
4551
4552 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
4553 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
4554
4555 -- 4955764
4556 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4557 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
4558
4559 -- 4458381 Public Sector Enh
4560
4561 --
4562 -- set accounting attributes for the line type
4563 --
4564 l_entered_amt_idx := 22;
4565 l_accted_amt_idx := 27;
4566 l_bflow_applied_to_amt_idx := NULL; -- 5132302
4567 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
4568 l_rec_acct_attrs.array_char_value(1) := p_source_23;
4569 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
4570 l_rec_acct_attrs.array_char_value(2) := p_source_24;
4571 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
4572 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
4573 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
4574 l_rec_acct_attrs.array_num_value(4) := p_source_25;
4575 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
4576 l_rec_acct_attrs.array_char_value(5) := p_source_26;
4577 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
4578 l_rec_acct_attrs.array_num_value(6) := p_source_27;
4579 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
4580 l_rec_acct_attrs.array_date_value(7) := p_source_28;
4581 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
4582 l_rec_acct_attrs.array_num_value(8) := p_source_29;
4583 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
4584 l_rec_acct_attrs.array_char_value(9) := p_source_30;
4585 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
4586 l_rec_acct_attrs.array_char_value(10) := p_source_31;
4587 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
4588 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
4589 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
4590 l_rec_acct_attrs.array_num_value(12) := p_source_25;
4591 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
4592 l_rec_acct_attrs.array_char_value(13) := p_source_26;
4593 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
4594 l_rec_acct_attrs.array_num_value(14) := p_source_27;
4595 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
4596 l_rec_acct_attrs.array_date_value(15) := p_source_28;
4597 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
4598 l_rec_acct_attrs.array_num_value(16) := p_source_29;
4599 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
4600 l_rec_acct_attrs.array_char_value(17) := p_source_30;
4601 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
4602 l_rec_acct_attrs.array_char_value(18) := p_source_32;
4603 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
4604 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
4605 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
4606 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
4607 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
4608 l_rec_acct_attrs.array_char_value(21) := p_source_35;
4609 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
4610 l_rec_acct_attrs.array_num_value(22) := p_source_25;
4611 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
4612 l_rec_acct_attrs.array_char_value(23) := p_source_26;
4613 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
4614 l_rec_acct_attrs.array_date_value(24) := p_source_28;
4615 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
4616 l_rec_acct_attrs.array_num_value(25) := p_source_29;
4617 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
4618 l_rec_acct_attrs.array_char_value(26) := p_source_30;
4619 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
4620 l_rec_acct_attrs.array_num_value(27) := p_source_27;
4621 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
4622 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
4623 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
4624 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
4625 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
4626 l_rec_acct_attrs.array_char_value(30) := p_source_35;
4627
4628 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
4629 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
4630
4634 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
4631 ---------------------------------------------------------------------------------------------------------------
4632 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
4633 ---------------------------------------------------------------------------------------------------------------
4635
4636 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4637 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4638
4639 IF xla_accounting_cache_pkg.GetValueChar
4640 (p_source_code => 'LEDGER_CATEGORY_CODE'
4641 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
4642 AND l_bflow_method_code = 'PRIOR_ENTRY'
4643 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
4644 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
4645 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
4646 )
4647 THEN
4648 xla_ae_lines_pkg.BflowUpgEntry
4649 (p_business_method_code => l_bflow_method_code
4650 ,p_business_class_code => l_bflow_class_code
4651 ,p_balance_type => l_balance_type_code);
4652 ELSE
4653 NULL;
4654 -- No business flow processing for business flow method of NONE.
4655 END IF;
4656
4657 --
4658 -- call analytical criteria
4659 --
4660
4661 --
4662 -- call description
4663 --
4664 -- No description or it is inherited.
4665 --
4666 -- call ADRs
4667 -- Bug 4922099
4668 --
4669 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
4670 (NVL(l_actual_upg_option, 'N') = 'O') OR
4671 (NVL(l_enc_upg_option, 'N') = 'O')
4672 )
4673 THEN
4674 NULL;
4675 --
4676 --
4677
4678 l_ccid := AcctDerRule_13(
4679 p_application_id => p_application_id
4680 , p_ae_header_id => l_ae_header_id
4681 , p_source_5 => p_source_5
4682 , p_source_6 => p_source_6
4683 , x_transaction_coa_id => l_adr_transaction_coa_id
4684 , x_accounting_coa_id => l_adr_accounting_coa_id
4685 , x_value_type_code => l_adr_value_type_code
4686 , p_side => 'NA'
4687 );
4688
4689 xla_ae_lines_pkg.set_ccid(
4690 p_code_combination_id => l_ccid
4691 , p_value_type_code => l_adr_value_type_code
4692 , p_transaction_coa_id => l_adr_transaction_coa_id
4693 , p_accounting_coa_id => l_adr_accounting_coa_id
4694 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
4695 , p_adr_type_code => 'S'
4696 , p_component_type => l_component_type
4697 , p_component_code => l_component_code
4698 , p_component_type_code => l_component_type_code
4699 , p_component_appl_id => l_component_appl_id
4700 , p_amb_context_code => l_amb_context_code
4701 , p_side => 'NA'
4702 );
4703
4704
4705 --
4706 --
4707 END IF;
4708 --
4709 -- Bug 4922099
4710 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
4711 (NVL(l_enc_upg_option, 'N') = 'O')
4712 ) AND
4713 (l_bflow_method_code = 'PRIOR_ENTRY')
4714 )
4715 THEN
4716 IF
4717 --
4718 1 = 2
4719 --
4720 THEN
4721 xla_accounting_err_pkg.build_message
4722 (p_appli_s_name => 'XLA'
4723 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4724 ,p_token_1 => 'LINE_NUMBER'
4725 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
4726 ,p_token_2 => 'LINE_TYPE_NAME'
4727 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
4728 l_component_type
4729 ,l_component_code
4730 ,l_component_type_code
4731 ,l_component_appl_id
4732 ,l_amb_context_code
4733 ,l_entity_code
4734 ,l_event_class_code
4735 )
4736 ,p_token_3 => 'OWNER'
4737 ,p_value_3 => xla_lookups_pkg.get_meaning(
4738 p_lookup_type => 'XLA_OWNER_TYPE'
4739 ,p_lookup_code => l_component_type_code
4740 )
4741 ,p_token_4 => 'PRODUCT_NAME'
4742 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
4743 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
4744 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
4745 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
4749 IF (C_LEVEL_ERROR>= g_log_level) THEN
4746 ,p_ae_header_id => NULL
4747 );
4748
4750 trace
4751 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4752 ,p_level => C_LEVEL_ERROR
4753 ,p_module => l_log_module);
4754 END IF;
4755 END IF;
4756 END IF;
4757 --
4758 --
4759 ------------------------------------------------------------------------------------------------
4760 -- 4219869 Business Flow
4761 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
4762 -- Prior Entry. Currently, the following code is always generated.
4763 ------------------------------------------------------------------------------------------------
4764 XLA_AE_LINES_PKG.ValidateCurrentLine;
4765
4766 ------------------------------------------------------------------------------------
4767 -- 4219869 Business Flow
4768 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
4769 ------------------------------------------------------------------------------------
4770 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4771
4772 ----------------------------------------------------------------------------------
4773 -- 4219869 Business Flow
4774 -- Update journal entry status -- Need to generate this within IF <condition>
4775 ----------------------------------------------------------------------------------
4776 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4777 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
4778 ,p_balance_type_code => l_balance_type_code
4779 );
4780
4781 -------------------------------------------------------------------------------------------
4782 -- 4262811 - Generate the Accrual Reversal lines
4783 -------------------------------------------------------------------------------------------
4784 BEGIN
4785 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
4786 (g_array_event(p_event_id).array_value_num('header_index'));
4787 IF l_acc_rev_flag IS NULL THEN
4788 l_acc_rev_flag := 'N';
4789 END IF;
4790 EXCEPTION
4791 WHEN OTHERS THEN
4792 l_acc_rev_flag := 'N';
4793 END;
4794 --
4795 IF (l_acc_rev_flag = 'Y') THEN
4796
4797 -- 4645092 ------------------------------------------------------------------------------
4798 -- To allow MPA report to determine if it should generate report process
4799 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
4800 ------------------------------------------------------------------------------------------
4801
4802 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
4803 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
4804
4805 --
4806 -- Update the line information that should be overwritten
4807 --
4808 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
4809 p_header_num => 1);
4810 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
4811
4812 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
4813
4814 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
4815 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
4816 END IF;
4817
4818 --
4819 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
4820 --
4821 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
4822 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
4823 ELSE
4824 ---------------------------------------------------------------------------------------------------
4825 -- 4262811a Switch Sign
4826 ---------------------------------------------------------------------------------------------------
4827 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
4828 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4829 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4830 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4831 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4832 -- 5132302
4833 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
4834 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4835
4836 END IF;
4837
4838 -- 4955764
4839 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4840 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
4841
4842
4843 XLA_AE_LINES_PKG.ValidateCurrentLine;
4844 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4845
4846 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4847 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
4848 ,p_balance_type_code => l_balance_type_code);
4849
4850 END IF;
4851
4852 -----------------------------------------------------------------------------------------
4853 -- 4262811 Multiperiod Accounting
4854 -----------------------------------------------------------------------------------------
4855 -- No MPA option is assigned.
4856
4857
4858 END IF;
4859 END IF;
4863 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4860 --
4861
4862 --
4864 trace
4865 (p_msg => 'END of AcctLineType_30'
4866 ,p_level => C_LEVEL_PROCEDURE
4867 ,p_module => l_log_module);
4868 END IF;
4869 --
4870 EXCEPTION
4871 WHEN xla_exceptions_pkg.application_exception THEN
4872 RAISE;
4873 WHEN OTHERS THEN
4874 xla_exceptions_pkg.raise_message
4875 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_30');
4876 END AcctLineType_30;
4877 --
4878
4879 ---------------------------------------
4880 --
4881 -- PRIVATE FUNCTION
4882 -- AcctLineType_31
4883 --
4884 ---------------------------------------
4885 PROCEDURE AcctLineType_31 (
4886 p_application_id IN NUMBER
4887 ,p_event_id IN NUMBER
4888 ,p_calculate_acctd_flag IN VARCHAR2
4889 ,p_calculate_g_l_flag IN VARCHAR2
4890 ,p_actual_flag IN OUT VARCHAR2
4891 ,p_balance_type_code OUT VARCHAR2
4892 ,p_gain_or_loss_ref OUT VARCHAR2
4893
4894 --Cost CCID
4895 , p_source_4 IN NUMBER
4896 --Allow Account Override Flag
4897 , p_source_5 IN VARCHAR2
4898 --Cost Clearing CCID
4899 , p_source_7 IN NUMBER
4900 --Adjustment Cost Clearing CCID
4901 , p_source_8 IN NUMBER
4902 --Exchange Rate Variance Flag
4903 , p_source_22 IN VARCHAR2
4904 --Reversing Line Flag
4905 , p_source_23 IN VARCHAR2
4906 --Actual Upgrade Credit Accounting Class
4907 , p_source_24 IN VARCHAR2
4908 --Entered Raw Cost
4909 , p_source_25 IN NUMBER
4910 --Entered Currency Code
4911 , p_source_26 IN VARCHAR2
4912 --Accounted Raw Cost
4913 , p_source_27 IN NUMBER
4914 --Exchange Rate Date
4915 , p_source_28 IN DATE
4916 --Exchange Rate
4917 , p_source_29 IN NUMBER
4918 --Exchange Rate Type
4919 , p_source_30 IN VARCHAR2
4920 --Actual Upgrade Debit Accounting Class
4921 , p_source_31 IN VARCHAR2
4922 --Use Actuals Upgrade Attributes Flag
4923 , p_source_32 IN VARCHAR2
4924 --Expenditure Item ID
4925 , p_source_33 IN NUMBER
4926 --Cost Distribution Line Number
4927 , p_source_34 IN NUMBER
4928 --Line Type
4929 , p_source_35 IN VARCHAR2
4930 , p_source_35_meaning IN VARCHAR2
4931 --Reversed Line Number
4932 , p_source_36 IN NUMBER
4933 )
4934 IS
4935
4936 l_component_type VARCHAR2(80);
4937 l_component_code VARCHAR2(30);
4938 l_component_type_code VARCHAR2(1);
4939 l_component_appl_id INTEGER;
4940 l_amb_context_code VARCHAR2(30);
4941 l_entity_code VARCHAR2(30);
4942 l_event_class_code VARCHAR2(30);
4943 l_ae_header_id NUMBER;
4944 l_event_type_code VARCHAR2(30);
4945 l_line_definition_code VARCHAR2(30);
4946 l_line_definition_owner_code VARCHAR2(1);
4947 --
4948 -- adr variables
4949 l_segment VARCHAR2(30);
4950 l_ccid NUMBER;
4951 l_adr_transaction_coa_id NUMBER;
4952 l_adr_accounting_coa_id NUMBER;
4953 l_adr_flexfield_segment_code VARCHAR2(30);
4954 l_adr_flex_value_set_id NUMBER;
4955 l_adr_value_type_code VARCHAR2(30);
4956 l_adr_value_combination_id NUMBER;
4957 l_adr_value_segment_code VARCHAR2(30);
4958
4959 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
4960 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
4961 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
4962 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
4963
4964 -- 4262811 Variables ------------------------------------------------------------------------------------------
4965 l_entered_amt_idx NUMBER;
4966 l_accted_amt_idx NUMBER;
4967 l_acc_rev_flag VARCHAR2(1);
4968 l_accrual_line_num NUMBER;
4969 l_tmp_amt NUMBER;
4970 l_acc_rev_natural_side_code VARCHAR2(1);
4971
4972 l_num_entries NUMBER;
4973 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
4974 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
4975 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
4976 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
4977 l_recog_line_1 NUMBER;
4978 l_recog_line_2 NUMBER;
4979
4980 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
4981 l_bflow_applied_to_amt NUMBER; -- 5132302
4982 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
4983
4984 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
4985
4986 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
4987 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
4988
4989 ---------------------------------------------------------------------------------------------------------------
4990
4991
4992 --
4993 -- bulk performance
4994 --
4995 l_balance_type_code VARCHAR2(1);
4996 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
4997 l_log_module VARCHAR2(240);
4998
4999 --
5000 -- Upgrade strategy
5001 --
5002 l_actual_upg_option VARCHAR2(1);
5003 l_enc_upg_option VARCHAR2(1);
5004
5005 --
5006 BEGIN
5007 --
5008 IF g_log_enabled THEN
5009 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_31';
5010 END IF;
5011 --
5015 (p_msg => 'BEGIN of AcctLineType_31'
5012 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5013
5014 trace
5016 ,p_level => C_LEVEL_PROCEDURE
5017 ,p_module => l_log_module);
5018
5019 END IF;
5020 --
5021 l_component_type := 'AMB_JLT';
5022 l_component_code := 'EXCHANGE_RATE_VAR_CLEARING';
5023 l_component_type_code := 'S';
5024 l_component_appl_id := 275;
5025 l_amb_context_code := 'DEFAULT';
5026 l_entity_code := 'EXPENDITURES';
5027 l_event_class_code := 'SUPPLIER_COST_ADJ';
5028 l_event_type_code := 'SUPPLIER_COST_ADJ_ALL';
5029 l_line_definition_owner_code := 'S';
5030 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
5031 --
5032 l_balance_type_code := 'A';
5033 l_segment := NULL;
5034 l_ccid := NULL;
5035 l_adr_transaction_coa_id := NULL;
5036 l_adr_accounting_coa_id := NULL;
5037 l_adr_flexfield_segment_code := NULL;
5038 l_adr_flex_value_set_id := NULL;
5039 l_adr_value_type_code := NULL;
5040 l_adr_value_combination_id := NULL;
5041 l_adr_value_segment_code := NULL;
5042
5043 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
5044 l_bflow_class_code := ''; -- 4219869 Business Flow
5045 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
5046 l_budgetary_control_flag := 'N';
5047
5048 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5049 l_bflow_applied_to_amt := NULL; -- 5132302
5050 l_entered_amt_idx := NULL; -- 4262811
5051 l_accted_amt_idx := NULL; -- 4262811
5052 l_acc_rev_flag := NULL; -- 4262811
5053 l_accrual_line_num := NULL; -- 4262811
5054 l_tmp_amt := NULL; -- 4262811
5055 --
5056 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
5057 (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
5058 return;
5059 END IF;
5060
5061 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
5062 l_balance_type_code <> 'B' THEN
5063 IF NVL(p_source_22,'
5064 ') = 'Y'
5065 THEN
5066
5067 --
5068 XLA_AE_LINES_PKG.SetNewLine;
5069
5070 p_balance_type_code := l_balance_type_code;
5071 -- set the flag so later we will know whether the gain loss line needs to be created
5072
5073 IF(l_balance_type_code = 'A' ) THEN
5074 p_actual_flag :='G';
5075 END IF;
5076
5077 --
5078 -- bulk performance
5079 --
5080 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
5081 p_header_num => 0); -- 4262811
5082 --
5083 -- set accounting line options
5084 --
5085 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
5086 p_natural_side_code => 'C'
5087 , p_gain_or_loss_flag => 'Y'
5088 , p_gl_transfer_mode_code => 'S'
5089 , p_acct_entry_type_code => 'A'
5090 , p_switch_side_flag => 'Y'
5091 , p_merge_duplicate_code => 'N'
5092 );
5093 --
5094 l_acc_rev_natural_side_code := 'D'; -- 4262811
5095 --
5096 --
5097 -- set accounting line type info
5098 --
5099 xla_ae_lines_pkg.SetAcctLineType
5100 (p_component_type => l_component_type
5101 ,p_event_type_code => l_event_type_code
5102 ,p_line_definition_owner_code => l_line_definition_owner_code
5103 ,p_line_definition_code => l_line_definition_code
5104 ,p_accounting_line_code => l_component_code
5105 ,p_accounting_line_type_code => l_component_type_code
5106 ,p_accounting_line_appl_id => l_component_appl_id
5107 ,p_amb_context_code => l_amb_context_code
5108 ,p_entity_code => l_entity_code
5109 ,p_event_class_code => l_event_class_code);
5110 --
5111 -- set accounting class
5112 --
5113 xla_ae_lines_pkg.SetAcctClass(
5114 p_accounting_class_code => 'COST_CLEARING'
5115 , p_ae_header_id => l_ae_header_id
5116 );
5117
5118 --
5119 -- set rounding class
5120 --
5121 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
5122 'COST_CLEARING';
5123
5124 --
5125 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
5126 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
5127 --
5128 -- bulk performance
5129 --
5130 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
5131
5132 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
5133 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
5134
5135 -- 4955764
5136 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5137 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
5138
5139 -- 4458381 Public Sector Enh
5140
5141 --
5142 -- set accounting attributes for the line type
5143 --
5144 l_entered_amt_idx := 22;
5145 l_accted_amt_idx := 27;
5146 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5147 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
5148 l_rec_acct_attrs.array_char_value(1) := p_source_23;
5152 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
5149 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
5150 l_rec_acct_attrs.array_char_value(2) := p_source_24;
5151 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
5153 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
5154 l_rec_acct_attrs.array_num_value(4) := p_source_25;
5155 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
5156 l_rec_acct_attrs.array_char_value(5) := p_source_26;
5157 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
5158 l_rec_acct_attrs.array_num_value(6) := p_source_27;
5159 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
5160 l_rec_acct_attrs.array_date_value(7) := p_source_28;
5161 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
5162 l_rec_acct_attrs.array_num_value(8) := p_source_29;
5163 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
5164 l_rec_acct_attrs.array_char_value(9) := p_source_30;
5165 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
5166 l_rec_acct_attrs.array_char_value(10) := p_source_31;
5167 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
5168 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
5169 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
5170 l_rec_acct_attrs.array_num_value(12) := p_source_25;
5171 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
5172 l_rec_acct_attrs.array_char_value(13) := p_source_26;
5173 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
5174 l_rec_acct_attrs.array_num_value(14) := p_source_27;
5175 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
5176 l_rec_acct_attrs.array_date_value(15) := p_source_28;
5177 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
5178 l_rec_acct_attrs.array_num_value(16) := p_source_29;
5179 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
5180 l_rec_acct_attrs.array_char_value(17) := p_source_30;
5181 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
5182 l_rec_acct_attrs.array_char_value(18) := p_source_32;
5183 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
5184 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
5185 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
5186 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
5187 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
5188 l_rec_acct_attrs.array_char_value(21) := p_source_35;
5189 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
5190 l_rec_acct_attrs.array_num_value(22) := p_source_25;
5191 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
5192 l_rec_acct_attrs.array_char_value(23) := p_source_26;
5193 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
5194 l_rec_acct_attrs.array_date_value(24) := p_source_28;
5195 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
5196 l_rec_acct_attrs.array_num_value(25) := p_source_29;
5197 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
5198 l_rec_acct_attrs.array_char_value(26) := p_source_30;
5199 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
5200 l_rec_acct_attrs.array_num_value(27) := p_source_27;
5201 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
5202 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
5203 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
5204 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
5205 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
5206 l_rec_acct_attrs.array_char_value(30) := p_source_35;
5207
5208 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
5209 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
5210
5211 ---------------------------------------------------------------------------------------------------------------
5212 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
5213 ---------------------------------------------------------------------------------------------------------------
5214 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
5215
5216 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5217 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5218
5219 IF xla_accounting_cache_pkg.GetValueChar
5220 (p_source_code => 'LEDGER_CATEGORY_CODE'
5221 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
5222 AND l_bflow_method_code = 'PRIOR_ENTRY'
5223 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
5224 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
5225 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
5226 )
5227 THEN
5228 xla_ae_lines_pkg.BflowUpgEntry
5229 (p_business_method_code => l_bflow_method_code
5230 ,p_business_class_code => l_bflow_class_code
5231 ,p_balance_type => l_balance_type_code);
5232 ELSE
5233 NULL;
5234 -- No business flow processing for business flow method of NONE.
5235 END IF;
5236
5237 --
5238 -- call analytical criteria
5239 --
5240
5241 --
5242 -- call description
5243 --
5244 -- No description or it is inherited.
5245 --
5246 -- call ADRs
5247 -- Bug 4922099
5248 --
5249 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5250 (NVL(l_actual_upg_option, 'N') = 'O') OR
5254 NULL;
5251 (NVL(l_enc_upg_option, 'N') = 'O')
5252 )
5253 THEN
5255 --
5256 --
5257
5258 l_ccid := AcctDerRule_15(
5259 p_application_id => p_application_id
5260 , p_ae_header_id => l_ae_header_id
5261 , p_source_5 => p_source_5
5262 , p_source_8 => p_source_8
5263 , x_transaction_coa_id => l_adr_transaction_coa_id
5264 , x_accounting_coa_id => l_adr_accounting_coa_id
5265 , x_value_type_code => l_adr_value_type_code
5266 , p_side => 'NA'
5267 );
5268
5269 xla_ae_lines_pkg.set_ccid(
5270 p_code_combination_id => l_ccid
5271 , p_value_type_code => l_adr_value_type_code
5272 , p_transaction_coa_id => l_adr_transaction_coa_id
5273 , p_accounting_coa_id => l_adr_accounting_coa_id
5274 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
5275 , p_adr_type_code => 'S'
5276 , p_component_type => l_component_type
5277 , p_component_code => l_component_code
5278 , p_component_type_code => l_component_type_code
5279 , p_component_appl_id => l_component_appl_id
5280 , p_amb_context_code => l_amb_context_code
5281 , p_side => 'NA'
5282 );
5283
5284
5285 --
5286 --
5287 END IF;
5288 --
5289 -- Bug 4922099
5290 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
5291 (NVL(l_enc_upg_option, 'N') = 'O')
5292 ) AND
5293 (l_bflow_method_code = 'PRIOR_ENTRY')
5294 )
5295 THEN
5296 IF
5297 --
5298 1 = 2
5299 --
5300 THEN
5301 xla_accounting_err_pkg.build_message
5302 (p_appli_s_name => 'XLA'
5303 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5304 ,p_token_1 => 'LINE_NUMBER'
5305 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
5306 ,p_token_2 => 'LINE_TYPE_NAME'
5307 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
5308 l_component_type
5309 ,l_component_code
5310 ,l_component_type_code
5311 ,l_component_appl_id
5312 ,l_amb_context_code
5313 ,l_entity_code
5314 ,l_event_class_code
5315 )
5316 ,p_token_3 => 'OWNER'
5317 ,p_value_3 => xla_lookups_pkg.get_meaning(
5318 p_lookup_type => 'XLA_OWNER_TYPE'
5319 ,p_lookup_code => l_component_type_code
5320 )
5321 ,p_token_4 => 'PRODUCT_NAME'
5322 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
5323 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
5324 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
5325 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
5326 ,p_ae_header_id => NULL
5327 );
5328
5329 IF (C_LEVEL_ERROR>= g_log_level) THEN
5330 trace
5331 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5332 ,p_level => C_LEVEL_ERROR
5333 ,p_module => l_log_module);
5334 END IF;
5335 END IF;
5336 END IF;
5337 --
5338 --
5339 ------------------------------------------------------------------------------------------------
5340 -- 4219869 Business Flow
5341 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
5342 -- Prior Entry. Currently, the following code is always generated.
5343 ------------------------------------------------------------------------------------------------
5344 XLA_AE_LINES_PKG.ValidateCurrentLine;
5345
5346 ------------------------------------------------------------------------------------
5347 -- 4219869 Business Flow
5348 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
5349 ------------------------------------------------------------------------------------
5350 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5351
5352 ----------------------------------------------------------------------------------
5353 -- 4219869 Business Flow
5354 -- Update journal entry status -- Need to generate this within IF <condition>
5355 ----------------------------------------------------------------------------------
5356 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5357 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
5358 ,p_balance_type_code => l_balance_type_code
5359 );
5360
5361 -------------------------------------------------------------------------------------------
5365 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
5362 -- 4262811 - Generate the Accrual Reversal lines
5363 -------------------------------------------------------------------------------------------
5364 BEGIN
5366 (g_array_event(p_event_id).array_value_num('header_index'));
5367 IF l_acc_rev_flag IS NULL THEN
5368 l_acc_rev_flag := 'N';
5369 END IF;
5370 EXCEPTION
5371 WHEN OTHERS THEN
5372 l_acc_rev_flag := 'N';
5373 END;
5374 --
5375 IF (l_acc_rev_flag = 'Y') THEN
5376
5377 -- 4645092 ------------------------------------------------------------------------------
5378 -- To allow MPA report to determine if it should generate report process
5379 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
5380 ------------------------------------------------------------------------------------------
5381
5382 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
5383 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
5384
5385 --
5386 -- Update the line information that should be overwritten
5387 --
5388 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
5389 p_header_num => 1);
5390 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
5391
5392 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
5393
5394 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
5395 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
5396 END IF;
5397
5398 --
5399 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
5400 --
5401 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
5402 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
5403 ELSE
5404 ---------------------------------------------------------------------------------------------------
5405 -- 4262811a Switch Sign
5406 ---------------------------------------------------------------------------------------------------
5407 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
5408 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5409 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5410 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5411 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5412 -- 5132302
5413 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
5414 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5415
5416 END IF;
5417
5418 -- 4955764
5419 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5420 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
5421
5422
5423 XLA_AE_LINES_PKG.ValidateCurrentLine;
5424 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5425
5426 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5427 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
5428 ,p_balance_type_code => l_balance_type_code);
5429
5430 END IF;
5431
5432 -----------------------------------------------------------------------------------------
5433 -- 4262811 Multiperiod Accounting
5434 -----------------------------------------------------------------------------------------
5435 -- No MPA option is assigned.
5436
5437
5438 END IF;
5439 END IF;
5440 --
5441
5442 --
5443 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5444 trace
5445 (p_msg => 'END of AcctLineType_31'
5446 ,p_level => C_LEVEL_PROCEDURE
5447 ,p_module => l_log_module);
5448 END IF;
5449 --
5450 EXCEPTION
5451 WHEN xla_exceptions_pkg.application_exception THEN
5452 RAISE;
5453 WHEN OTHERS THEN
5454 xla_exceptions_pkg.raise_message
5455 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_31');
5456 END AcctLineType_31;
5457 --
5458
5459 ---------------------------------------
5460 --
5461 -- PRIVATE FUNCTION
5462 -- AcctLineType_32
5463 --
5464 ---------------------------------------
5465 PROCEDURE AcctLineType_32 (
5466 p_application_id IN NUMBER
5467 ,p_event_id IN NUMBER
5468 ,p_calculate_acctd_flag IN VARCHAR2
5469 ,p_calculate_g_l_flag IN VARCHAR2
5470 ,p_actual_flag IN OUT VARCHAR2
5471 ,p_balance_type_code OUT VARCHAR2
5472 ,p_gain_or_loss_ref OUT VARCHAR2
5473
5474 --Cost CCID
5475 , p_source_4 IN NUMBER
5476 --Allow Account Override Flag
5477 , p_source_5 IN VARCHAR2
5478 --Cost Clearing CCID
5479 , p_source_7 IN NUMBER
5480 --Adjustment Cost Clearing CCID
5481 , p_source_8 IN NUMBER
5482 --Exchange Rate Variance Flag
5483 , p_source_22 IN VARCHAR2
5484 --Reversing Line Flag
5485 , p_source_23 IN VARCHAR2
5486 --Actual Upgrade Credit Accounting Class
5487 , p_source_24 IN VARCHAR2
5488 --Entered Raw Cost
5489 , p_source_25 IN NUMBER
5490 --Entered Currency Code
5491 , p_source_26 IN VARCHAR2
5492 --Accounted Raw Cost
5493 , p_source_27 IN NUMBER
5497 , p_source_29 IN NUMBER
5494 --Exchange Rate Date
5495 , p_source_28 IN DATE
5496 --Exchange Rate
5498 --Exchange Rate Type
5499 , p_source_30 IN VARCHAR2
5500 --Actual Upgrade Debit Accounting Class
5501 , p_source_31 IN VARCHAR2
5502 --Use Actuals Upgrade Attributes Flag
5503 , p_source_32 IN VARCHAR2
5504 --Expenditure Item ID
5505 , p_source_33 IN NUMBER
5506 --Cost Distribution Line Number
5507 , p_source_34 IN NUMBER
5508 --Line Type
5509 , p_source_35 IN VARCHAR2
5510 , p_source_35_meaning IN VARCHAR2
5511 --Reversed Line Number
5512 , p_source_36 IN NUMBER
5513 )
5514 IS
5515
5516 l_component_type VARCHAR2(80);
5517 l_component_code VARCHAR2(30);
5518 l_component_type_code VARCHAR2(1);
5519 l_component_appl_id INTEGER;
5520 l_amb_context_code VARCHAR2(30);
5521 l_entity_code VARCHAR2(30);
5522 l_event_class_code VARCHAR2(30);
5523 l_ae_header_id NUMBER;
5524 l_event_type_code VARCHAR2(30);
5525 l_line_definition_code VARCHAR2(30);
5526 l_line_definition_owner_code VARCHAR2(1);
5527 --
5528 -- adr variables
5529 l_segment VARCHAR2(30);
5530 l_ccid NUMBER;
5531 l_adr_transaction_coa_id NUMBER;
5532 l_adr_accounting_coa_id NUMBER;
5533 l_adr_flexfield_segment_code VARCHAR2(30);
5534 l_adr_flex_value_set_id NUMBER;
5535 l_adr_value_type_code VARCHAR2(30);
5536 l_adr_value_combination_id NUMBER;
5537 l_adr_value_segment_code VARCHAR2(30);
5538
5539 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
5540 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
5541 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
5542 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
5543
5544 -- 4262811 Variables ------------------------------------------------------------------------------------------
5545 l_entered_amt_idx NUMBER;
5546 l_accted_amt_idx NUMBER;
5547 l_acc_rev_flag VARCHAR2(1);
5548 l_accrual_line_num NUMBER;
5549 l_tmp_amt NUMBER;
5550 l_acc_rev_natural_side_code VARCHAR2(1);
5551
5552 l_num_entries NUMBER;
5553 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
5554 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
5555 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
5556 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
5557 l_recog_line_1 NUMBER;
5558 l_recog_line_2 NUMBER;
5559
5560 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
5561 l_bflow_applied_to_amt NUMBER; -- 5132302
5562 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
5563
5564 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
5565
5566 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
5567 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
5568
5569 ---------------------------------------------------------------------------------------------------------------
5570
5571
5572 --
5573 -- bulk performance
5574 --
5575 l_balance_type_code VARCHAR2(1);
5576 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
5577 l_log_module VARCHAR2(240);
5578
5579 --
5580 -- Upgrade strategy
5581 --
5582 l_actual_upg_option VARCHAR2(1);
5583 l_enc_upg_option VARCHAR2(1);
5584
5585 --
5586 BEGIN
5587 --
5588 IF g_log_enabled THEN
5589 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_32';
5590 END IF;
5591 --
5592 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5593
5594 trace
5595 (p_msg => 'BEGIN of AcctLineType_32'
5596 ,p_level => C_LEVEL_PROCEDURE
5597 ,p_module => l_log_module);
5598
5599 END IF;
5600 --
5601 l_component_type := 'AMB_JLT';
5602 l_component_code := 'EXCHANGE_RATE_VAR_CLEARING';
5603 l_component_type_code := 'S';
5604 l_component_appl_id := 275;
5605 l_amb_context_code := 'DEFAULT';
5606 l_entity_code := 'EXPENDITURES';
5607 l_event_class_code := 'SUPPLIER_COST';
5608 l_event_type_code := 'SUPPLIER_COST_ALL';
5609 l_line_definition_owner_code := 'S';
5610 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
5611 --
5612 l_balance_type_code := 'A';
5613 l_segment := NULL;
5614 l_ccid := NULL;
5615 l_adr_transaction_coa_id := NULL;
5616 l_adr_accounting_coa_id := NULL;
5617 l_adr_flexfield_segment_code := NULL;
5618 l_adr_flex_value_set_id := NULL;
5619 l_adr_value_type_code := NULL;
5620 l_adr_value_combination_id := NULL;
5621 l_adr_value_segment_code := NULL;
5622
5623 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
5624 l_bflow_class_code := ''; -- 4219869 Business Flow
5625 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
5626 l_budgetary_control_flag := 'N';
5627
5628 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5629 l_bflow_applied_to_amt := NULL; -- 5132302
5630 l_entered_amt_idx := NULL; -- 4262811
5631 l_accted_amt_idx := NULL; -- 4262811
5632 l_acc_rev_flag := NULL; -- 4262811
5633 l_accrual_line_num := NULL; -- 4262811
5637 (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
5634 l_tmp_amt := NULL; -- 4262811
5635 --
5636 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
5638 return;
5639 END IF;
5640
5641 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
5642 l_balance_type_code <> 'B' THEN
5643 IF NVL(p_source_22,'
5644 ') = 'Y'
5645 THEN
5646
5647 --
5648 XLA_AE_LINES_PKG.SetNewLine;
5649
5650 p_balance_type_code := l_balance_type_code;
5651 -- set the flag so later we will know whether the gain loss line needs to be created
5652
5653 IF(l_balance_type_code = 'A' ) THEN
5654 p_actual_flag :='G';
5655 END IF;
5656
5657 --
5658 -- bulk performance
5659 --
5660 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
5661 p_header_num => 0); -- 4262811
5662 --
5663 -- set accounting line options
5664 --
5665 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
5666 p_natural_side_code => 'C'
5667 , p_gain_or_loss_flag => 'Y'
5668 , p_gl_transfer_mode_code => 'S'
5669 , p_acct_entry_type_code => 'A'
5670 , p_switch_side_flag => 'Y'
5671 , p_merge_duplicate_code => 'N'
5672 );
5673 --
5674 l_acc_rev_natural_side_code := 'D'; -- 4262811
5675 --
5676 --
5677 -- set accounting line type info
5678 --
5679 xla_ae_lines_pkg.SetAcctLineType
5680 (p_component_type => l_component_type
5681 ,p_event_type_code => l_event_type_code
5682 ,p_line_definition_owner_code => l_line_definition_owner_code
5683 ,p_line_definition_code => l_line_definition_code
5684 ,p_accounting_line_code => l_component_code
5685 ,p_accounting_line_type_code => l_component_type_code
5686 ,p_accounting_line_appl_id => l_component_appl_id
5687 ,p_amb_context_code => l_amb_context_code
5688 ,p_entity_code => l_entity_code
5689 ,p_event_class_code => l_event_class_code);
5690 --
5691 -- set accounting class
5692 --
5693 xla_ae_lines_pkg.SetAcctClass(
5694 p_accounting_class_code => 'COST_CLEARING'
5695 , p_ae_header_id => l_ae_header_id
5696 );
5697
5698 --
5699 -- set rounding class
5700 --
5701 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
5702 'COST_CLEARING';
5703
5704 --
5705 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
5706 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
5707 --
5708 -- bulk performance
5709 --
5710 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
5711
5712 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
5713 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
5714
5715 -- 4955764
5716 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5717 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
5718
5719 -- 4458381 Public Sector Enh
5720
5721 --
5722 -- set accounting attributes for the line type
5723 --
5724 l_entered_amt_idx := 22;
5725 l_accted_amt_idx := 27;
5726 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5727 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
5728 l_rec_acct_attrs.array_char_value(1) := p_source_23;
5729 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
5730 l_rec_acct_attrs.array_char_value(2) := p_source_24;
5731 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
5732 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
5733 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
5734 l_rec_acct_attrs.array_num_value(4) := p_source_25;
5735 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
5736 l_rec_acct_attrs.array_char_value(5) := p_source_26;
5737 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
5738 l_rec_acct_attrs.array_num_value(6) := p_source_27;
5739 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
5740 l_rec_acct_attrs.array_date_value(7) := p_source_28;
5741 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
5742 l_rec_acct_attrs.array_num_value(8) := p_source_29;
5743 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
5744 l_rec_acct_attrs.array_char_value(9) := p_source_30;
5745 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
5746 l_rec_acct_attrs.array_char_value(10) := p_source_31;
5747 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
5748 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
5749 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
5750 l_rec_acct_attrs.array_num_value(12) := p_source_25;
5751 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
5752 l_rec_acct_attrs.array_char_value(13) := p_source_26;
5753 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
5754 l_rec_acct_attrs.array_num_value(14) := p_source_27;
5755 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
5759 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
5756 l_rec_acct_attrs.array_date_value(15) := p_source_28;
5757 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
5758 l_rec_acct_attrs.array_num_value(16) := p_source_29;
5760 l_rec_acct_attrs.array_char_value(17) := p_source_30;
5761 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
5762 l_rec_acct_attrs.array_char_value(18) := p_source_32;
5763 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
5764 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
5765 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
5766 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
5767 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
5768 l_rec_acct_attrs.array_char_value(21) := p_source_35;
5769 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
5770 l_rec_acct_attrs.array_num_value(22) := p_source_25;
5771 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
5772 l_rec_acct_attrs.array_char_value(23) := p_source_26;
5773 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
5774 l_rec_acct_attrs.array_date_value(24) := p_source_28;
5775 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
5776 l_rec_acct_attrs.array_num_value(25) := p_source_29;
5777 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
5778 l_rec_acct_attrs.array_char_value(26) := p_source_30;
5779 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
5780 l_rec_acct_attrs.array_num_value(27) := p_source_27;
5781 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
5782 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
5783 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
5784 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
5785 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
5786 l_rec_acct_attrs.array_char_value(30) := p_source_35;
5787
5788 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
5789 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
5790
5791 ---------------------------------------------------------------------------------------------------------------
5792 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
5793 ---------------------------------------------------------------------------------------------------------------
5794 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
5795
5796 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5797 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5798
5799 IF xla_accounting_cache_pkg.GetValueChar
5800 (p_source_code => 'LEDGER_CATEGORY_CODE'
5801 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
5802 AND l_bflow_method_code = 'PRIOR_ENTRY'
5803 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
5804 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
5805 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
5806 )
5807 THEN
5808 xla_ae_lines_pkg.BflowUpgEntry
5809 (p_business_method_code => l_bflow_method_code
5810 ,p_business_class_code => l_bflow_class_code
5811 ,p_balance_type => l_balance_type_code);
5812 ELSE
5813 NULL;
5814 -- No business flow processing for business flow method of NONE.
5815 END IF;
5816
5817 --
5818 -- call analytical criteria
5819 --
5820
5821 --
5822 -- call description
5823 --
5824 -- No description or it is inherited.
5825 --
5826 -- call ADRs
5827 -- Bug 4922099
5828 --
5829 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5830 (NVL(l_actual_upg_option, 'N') = 'O') OR
5831 (NVL(l_enc_upg_option, 'N') = 'O')
5832 )
5833 THEN
5834 NULL;
5835 --
5836 --
5837
5838 l_ccid := AcctDerRule_14(
5839 p_application_id => p_application_id
5840 , p_ae_header_id => l_ae_header_id
5841 , p_source_5 => p_source_5
5842 , p_source_7 => p_source_7
5843 , p_source_8 => p_source_8
5844 , x_transaction_coa_id => l_adr_transaction_coa_id
5845 , x_accounting_coa_id => l_adr_accounting_coa_id
5846 , x_value_type_code => l_adr_value_type_code
5847 , p_side => 'NA'
5848 );
5849
5850 xla_ae_lines_pkg.set_ccid(
5851 p_code_combination_id => l_ccid
5852 , p_value_type_code => l_adr_value_type_code
5853 , p_transaction_coa_id => l_adr_transaction_coa_id
5854 , p_accounting_coa_id => l_adr_accounting_coa_id
5855 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
5856 , p_adr_type_code => 'S'
5857 , p_component_type => l_component_type
5858 , p_component_code => l_component_code
5859 , p_component_type_code => l_component_type_code
5860 , p_component_appl_id => l_component_appl_id
5861 , p_amb_context_code => l_amb_context_code
5862 , p_side => 'NA'
5863 );
5864
5865
5866 --
5867 --
5868 END IF;
5869 --
5870 -- Bug 4922099
5871 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
5872 (NVL(l_enc_upg_option, 'N') = 'O')
5873 ) AND
5874 (l_bflow_method_code = 'PRIOR_ENTRY')
5875 )
5876 THEN
5877 IF
5878 --
5882 xla_accounting_err_pkg.build_message
5879 1 = 2
5880 --
5881 THEN
5883 (p_appli_s_name => 'XLA'
5884 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5885 ,p_token_1 => 'LINE_NUMBER'
5886 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
5887 ,p_token_2 => 'LINE_TYPE_NAME'
5888 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
5889 l_component_type
5890 ,l_component_code
5891 ,l_component_type_code
5892 ,l_component_appl_id
5893 ,l_amb_context_code
5894 ,l_entity_code
5895 ,l_event_class_code
5896 )
5897 ,p_token_3 => 'OWNER'
5898 ,p_value_3 => xla_lookups_pkg.get_meaning(
5899 p_lookup_type => 'XLA_OWNER_TYPE'
5900 ,p_lookup_code => l_component_type_code
5901 )
5902 ,p_token_4 => 'PRODUCT_NAME'
5903 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
5904 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
5905 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
5906 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
5907 ,p_ae_header_id => NULL
5908 );
5909
5910 IF (C_LEVEL_ERROR>= g_log_level) THEN
5911 trace
5912 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5913 ,p_level => C_LEVEL_ERROR
5914 ,p_module => l_log_module);
5915 END IF;
5916 END IF;
5917 END IF;
5918 --
5919 --
5920 ------------------------------------------------------------------------------------------------
5921 -- 4219869 Business Flow
5922 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
5923 -- Prior Entry. Currently, the following code is always generated.
5924 ------------------------------------------------------------------------------------------------
5925 XLA_AE_LINES_PKG.ValidateCurrentLine;
5926
5927 ------------------------------------------------------------------------------------
5928 -- 4219869 Business Flow
5929 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
5930 ------------------------------------------------------------------------------------
5931 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5932
5933 ----------------------------------------------------------------------------------
5934 -- 4219869 Business Flow
5935 -- Update journal entry status -- Need to generate this within IF <condition>
5936 ----------------------------------------------------------------------------------
5937 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5938 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
5939 ,p_balance_type_code => l_balance_type_code
5940 );
5941
5942 -------------------------------------------------------------------------------------------
5943 -- 4262811 - Generate the Accrual Reversal lines
5944 -------------------------------------------------------------------------------------------
5945 BEGIN
5946 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
5947 (g_array_event(p_event_id).array_value_num('header_index'));
5948 IF l_acc_rev_flag IS NULL THEN
5949 l_acc_rev_flag := 'N';
5950 END IF;
5951 EXCEPTION
5952 WHEN OTHERS THEN
5953 l_acc_rev_flag := 'N';
5954 END;
5955 --
5956 IF (l_acc_rev_flag = 'Y') THEN
5957
5958 -- 4645092 ------------------------------------------------------------------------------
5959 -- To allow MPA report to determine if it should generate report process
5960 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
5961 ------------------------------------------------------------------------------------------
5962
5963 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
5964 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
5965
5966 --
5967 -- Update the line information that should be overwritten
5968 --
5969 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
5970 p_header_num => 1);
5971 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
5972
5973 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
5974
5975 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
5976 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
5977 END IF;
5978
5979 --
5983 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
5980 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
5981 --
5982 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
5984 ELSE
5985 ---------------------------------------------------------------------------------------------------
5986 -- 4262811a Switch Sign
5987 ---------------------------------------------------------------------------------------------------
5988 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
5989 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5990 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5991 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5992 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5993 -- 5132302
5994 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
5995 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5996
5997 END IF;
5998
5999 -- 4955764
6000 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6001 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
6002
6003
6004 XLA_AE_LINES_PKG.ValidateCurrentLine;
6005 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6006
6007 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6008 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
6009 ,p_balance_type_code => l_balance_type_code);
6010
6011 END IF;
6012
6013 -----------------------------------------------------------------------------------------
6014 -- 4262811 Multiperiod Accounting
6015 -----------------------------------------------------------------------------------------
6016 -- No MPA option is assigned.
6017
6018
6019 END IF;
6020 END IF;
6021 --
6022
6023 --
6024 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6025 trace
6026 (p_msg => 'END of AcctLineType_32'
6027 ,p_level => C_LEVEL_PROCEDURE
6028 ,p_module => l_log_module);
6029 END IF;
6030 --
6031 EXCEPTION
6032 WHEN xla_exceptions_pkg.application_exception THEN
6033 RAISE;
6034 WHEN OTHERS THEN
6035 xla_exceptions_pkg.raise_message
6036 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_32');
6037 END AcctLineType_32;
6038 --
6039
6040 ---------------------------------------
6041 --
6042 -- PRIVATE FUNCTION
6043 -- AcctLineType_33
6044 --
6045 ---------------------------------------
6046 PROCEDURE AcctLineType_33 (
6047 p_application_id IN NUMBER
6048 ,p_event_id IN NUMBER
6049 ,p_calculate_acctd_flag IN VARCHAR2
6050 ,p_calculate_g_l_flag IN VARCHAR2
6051 ,p_actual_flag IN OUT VARCHAR2
6052 ,p_balance_type_code OUT VARCHAR2
6053 ,p_gain_or_loss_ref OUT VARCHAR2
6054
6055 --Budget Code Combination ID
6056 , p_source_3 IN NUMBER
6057 --Reversing Line Flag
6058 , p_source_23 IN VARCHAR2
6059 --Entered Currency Code
6060 , p_source_26 IN VARCHAR2
6061 --Exchange Rate Date
6062 , p_source_28 IN DATE
6063 --Exchange Rate
6064 , p_source_29 IN NUMBER
6065 --Exchange Rate Type
6066 , p_source_30 IN VARCHAR2
6067 --Line Type
6068 , p_source_35 IN VARCHAR2
6069 , p_source_35_meaning IN VARCHAR2
6070 --Budget Amount Code
6071 , p_source_37 IN VARCHAR2
6072 --Project Type Class
6073 , p_source_38 IN VARCHAR2
6074 , p_source_38_meaning IN VARCHAR2
6075 --Project Budgetary Control Balance Type
6076 , p_source_39 IN VARCHAR2
6077 --Budget Line ID
6078 , p_source_40 IN NUMBER
6079 --Encumbrance Upgrade Credit Accounting Class
6080 , p_source_41 IN VARCHAR2
6081 --Entered Amount
6082 , p_source_42 IN NUMBER
6083 --Accounted Amount
6084 , p_source_43 IN NUMBER
6085 --Use Encumbrance Upgrade Attributes Flag
6086 , p_source_44 IN VARCHAR2
6087 --Upgrade Project Encumbrance Type ID
6088 , p_source_45 IN NUMBER
6089 )
6090 IS
6091
6092 l_component_type VARCHAR2(80);
6093 l_component_code VARCHAR2(30);
6094 l_component_type_code VARCHAR2(1);
6095 l_component_appl_id INTEGER;
6096 l_amb_context_code VARCHAR2(30);
6097 l_entity_code VARCHAR2(30);
6098 l_event_class_code VARCHAR2(30);
6099 l_ae_header_id NUMBER;
6100 l_event_type_code VARCHAR2(30);
6101 l_line_definition_code VARCHAR2(30);
6102 l_line_definition_owner_code VARCHAR2(1);
6103 --
6104 -- adr variables
6105 l_segment VARCHAR2(30);
6106 l_ccid NUMBER;
6107 l_adr_transaction_coa_id NUMBER;
6108 l_adr_accounting_coa_id NUMBER;
6109 l_adr_flexfield_segment_code VARCHAR2(30);
6110 l_adr_flex_value_set_id NUMBER;
6111 l_adr_value_type_code VARCHAR2(30);
6112 l_adr_value_combination_id NUMBER;
6113 l_adr_value_segment_code VARCHAR2(30);
6114
6115 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
6116 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
6117 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
6121 l_entered_amt_idx NUMBER;
6118 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
6119
6120 -- 4262811 Variables ------------------------------------------------------------------------------------------
6122 l_accted_amt_idx NUMBER;
6123 l_acc_rev_flag VARCHAR2(1);
6124 l_accrual_line_num NUMBER;
6125 l_tmp_amt NUMBER;
6126 l_acc_rev_natural_side_code VARCHAR2(1);
6127
6128 l_num_entries NUMBER;
6129 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
6130 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
6131 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
6132 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
6133 l_recog_line_1 NUMBER;
6134 l_recog_line_2 NUMBER;
6135
6136 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
6137 l_bflow_applied_to_amt NUMBER; -- 5132302
6138 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
6139
6140 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
6141
6142 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
6143 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
6144
6145 ---------------------------------------------------------------------------------------------------------------
6146
6147
6148 --
6149 -- bulk performance
6150 --
6151 l_balance_type_code VARCHAR2(1);
6152 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
6153 l_log_module VARCHAR2(240);
6154
6155 --
6156 -- Upgrade strategy
6157 --
6158 l_actual_upg_option VARCHAR2(1);
6159 l_enc_upg_option VARCHAR2(1);
6160
6161 --
6162 BEGIN
6163 --
6164 IF g_log_enabled THEN
6165 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_33';
6166 END IF;
6167 --
6168 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6169
6170 trace
6171 (p_msg => 'BEGIN of AcctLineType_33'
6172 ,p_level => C_LEVEL_PROCEDURE
6173 ,p_module => l_log_module);
6174
6175 END IF;
6176 --
6177 l_component_type := 'AMB_JLT';
6178 l_component_code := 'PA_ANT_REIMB_OTH_INC';
6179 l_component_type_code := 'S';
6180 l_component_appl_id := 275;
6181 l_amb_context_code := 'DEFAULT';
6182 l_entity_code := 'BUDGETS';
6183 l_event_class_code := 'BUDGET';
6184 l_event_type_code := 'BUDGET_ALL';
6185 l_line_definition_owner_code := 'S';
6186 l_line_definition_code := 'PROJECTS_BUD_SLA_JLD';
6187 --
6188 l_balance_type_code := 'A';
6189 l_segment := NULL;
6190 l_ccid := NULL;
6191 l_adr_transaction_coa_id := NULL;
6192 l_adr_accounting_coa_id := NULL;
6193 l_adr_flexfield_segment_code := NULL;
6194 l_adr_flex_value_set_id := NULL;
6195 l_adr_value_type_code := NULL;
6196 l_adr_value_combination_id := NULL;
6197 l_adr_value_segment_code := NULL;
6198
6199 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
6200 l_bflow_class_code := ''; -- 4219869 Business Flow
6201 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
6202 l_budgetary_control_flag := 'N';
6203
6204 l_bflow_applied_to_amt_idx := NULL; -- 5132302
6205 l_bflow_applied_to_amt := NULL; -- 5132302
6206 l_entered_amt_idx := NULL; -- 4262811
6207 l_accted_amt_idx := NULL; -- 4262811
6208 l_acc_rev_flag := NULL; -- 4262811
6209 l_accrual_line_num := NULL; -- 4262811
6210 l_tmp_amt := NULL; -- 4262811
6211 --
6212
6213 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
6214 l_balance_type_code <> 'B' THEN
6215 IF NVL(p_source_37,'
6216 ') = 'R' AND
6217 NVL(p_source_38,'
6218 ') = 'CONTRACT' AND
6219 NVL(p_source_39,'
6220 ') = 'B'
6221 THEN
6222
6223 --
6224 XLA_AE_LINES_PKG.SetNewLine;
6225
6226 p_balance_type_code := l_balance_type_code;
6227 -- set the flag so later we will know whether the gain loss line needs to be created
6228
6229 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
6230 p_actual_flag :='A';
6231 END IF;
6232
6233 --
6234 -- bulk performance
6235 --
6236 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
6237 p_header_num => 0); -- 4262811
6238 --
6239 -- set accounting line options
6240 --
6241 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
6242 p_natural_side_code => 'C'
6243 , p_gain_or_loss_flag => 'N'
6244 , p_gl_transfer_mode_code => 'S'
6245 , p_acct_entry_type_code => 'A'
6246 , p_switch_side_flag => 'Y'
6247 , p_merge_duplicate_code => 'N'
6248 );
6249 --
6250 l_acc_rev_natural_side_code := 'D'; -- 4262811
6251 --
6252 --
6253 -- set accounting line type info
6254 --
6255 xla_ae_lines_pkg.SetAcctLineType
6256 (p_component_type => l_component_type
6257 ,p_event_type_code => l_event_type_code
6258 ,p_line_definition_owner_code => l_line_definition_owner_code
6259 ,p_line_definition_code => l_line_definition_code
6260 ,p_accounting_line_code => l_component_code
6261 ,p_accounting_line_type_code => l_component_type_code
6265 ,p_event_class_code => l_event_class_code);
6262 ,p_accounting_line_appl_id => l_component_appl_id
6263 ,p_amb_context_code => l_amb_context_code
6264 ,p_entity_code => l_entity_code
6266 --
6267 -- set accounting class
6268 --
6269 xla_ae_lines_pkg.SetAcctClass(
6270 p_accounting_class_code => 'PA_BUDGET_EXECUTION_RESERVE_CR'
6271 , p_ae_header_id => l_ae_header_id
6272 );
6273
6274 --
6275 -- set rounding class
6276 --
6277 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
6278 'PA_BUDGET_EXECUTION_RESERVE_CR';
6279
6280 --
6281 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
6282 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
6283 --
6284 -- bulk performance
6285 --
6286 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
6287
6288 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
6289 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
6290
6291 -- 4955764
6292 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6293 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
6294
6295 -- 4458381 Public Sector Enh
6296
6297 --
6298 -- set accounting attributes for the line type
6299 --
6300 l_entered_amt_idx := 10;
6301 l_accted_amt_idx := 15;
6302 l_bflow_applied_to_amt_idx := NULL; -- 5132302
6303 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
6304 l_rec_acct_attrs.array_char_value(1) := p_source_23;
6305 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_1';
6306 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_40);
6307 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
6308 l_rec_acct_attrs.array_char_value(3) := p_source_35;
6309 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENC_UPG_DR_ACCT_CLASS';
6310 l_rec_acct_attrs.array_char_value(4) := p_source_41;
6311 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_DR_CCID';
6312 l_rec_acct_attrs.array_num_value(5) := p_source_3;
6313 l_rec_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_DR_ENTERED_AMT';
6314 l_rec_acct_attrs.array_num_value(6) := p_source_42;
6315 l_rec_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_DR_ENTERED_CURR';
6316 l_rec_acct_attrs.array_char_value(7) := p_source_26;
6317 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_DR_LEDGER_AMT';
6318 l_rec_acct_attrs.array_num_value(8) := p_source_43;
6319 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_OPTION';
6320 l_rec_acct_attrs.array_char_value(9) := p_source_44;
6321 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
6322 l_rec_acct_attrs.array_num_value(10) := p_source_42;
6323 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
6324 l_rec_acct_attrs.array_char_value(11) := p_source_26;
6325 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
6326 l_rec_acct_attrs.array_date_value(12) := p_source_28;
6327 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
6328 l_rec_acct_attrs.array_num_value(13) := p_source_29;
6329 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
6330 l_rec_acct_attrs.array_char_value(14) := p_source_30;
6331 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
6332 l_rec_acct_attrs.array_num_value(15) := p_source_43;
6333 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_ID1';
6334 l_rec_acct_attrs.array_num_value(16) := to_char(p_source_40);
6335 l_rec_acct_attrs.array_acct_attr_code(17) := 'REVERSED_DISTRIBUTION_TYPE';
6336 l_rec_acct_attrs.array_char_value(17) := p_source_35;
6337 l_rec_acct_attrs.array_acct_attr_code(18) := 'UPG_DR_ENC_TYPE_ID';
6338 l_rec_acct_attrs.array_num_value(18) := p_source_45;
6339
6340 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
6341 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
6342
6343 ---------------------------------------------------------------------------------------------------------------
6344 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
6345 ---------------------------------------------------------------------------------------------------------------
6346 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
6347
6348 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6349 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6350
6351 IF xla_accounting_cache_pkg.GetValueChar
6352 (p_source_code => 'LEDGER_CATEGORY_CODE'
6353 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
6354 AND l_bflow_method_code = 'PRIOR_ENTRY'
6355 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
6356 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
6357 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
6358 )
6359 THEN
6360 xla_ae_lines_pkg.BflowUpgEntry
6361 (p_business_method_code => l_bflow_method_code
6362 ,p_business_class_code => l_bflow_class_code
6363 ,p_balance_type => l_balance_type_code);
6364 ELSE
6365 NULL;
6366 -- No business flow processing for business flow method of NONE.
6367 END IF;
6368
6369 --
6370 -- call analytical criteria
6371 --
6372
6373 --
6374 -- call description
6378 -- call ADRs
6375 --
6376 -- No description or it is inherited.
6377 --
6379 -- Bug 4922099
6380 --
6381 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6382 (NVL(l_actual_upg_option, 'N') = 'O') OR
6383 (NVL(l_enc_upg_option, 'N') = 'O')
6384 )
6385 THEN
6386 NULL;
6387 --
6388 --
6389
6390 l_ccid := AcctDerRule_11(
6391 p_application_id => p_application_id
6392 , p_ae_header_id => l_ae_header_id
6393 , p_source_3 => p_source_3
6394 , x_transaction_coa_id => l_adr_transaction_coa_id
6395 , x_accounting_coa_id => l_adr_accounting_coa_id
6396 , x_value_type_code => l_adr_value_type_code
6397 , p_side => 'NA'
6398 );
6399
6400 xla_ae_lines_pkg.set_ccid(
6401 p_code_combination_id => l_ccid
6402 , p_value_type_code => l_adr_value_type_code
6403 , p_transaction_coa_id => l_adr_transaction_coa_id
6404 , p_accounting_coa_id => l_adr_accounting_coa_id
6405 , p_adr_code => 'PA_BUDGET_ACCT_RULE'
6406 , p_adr_type_code => 'S'
6407 , p_component_type => l_component_type
6408 , p_component_code => l_component_code
6409 , p_component_type_code => l_component_type_code
6410 , p_component_appl_id => l_component_appl_id
6411 , p_amb_context_code => l_amb_context_code
6412 , p_side => 'NA'
6413 );
6414
6415
6416 l_segment := AcctDerRule_7(
6417 p_application_id => p_application_id
6418 , p_ae_header_id => l_ae_header_id
6419 , x_transaction_coa_id => l_adr_transaction_coa_id
6420 , x_accounting_coa_id => l_adr_accounting_coa_id
6421 , x_flexfield_segment_code => l_adr_flexfield_segment_code
6422 , x_flex_value_set_id => l_adr_flex_value_set_id
6423 , x_value_type_code => l_adr_value_type_code
6424 , x_value_combination_id => l_adr_value_combination_id
6425 , x_value_segment_code => l_adr_value_segment_code
6426 , p_side => 'NA'
6427 , p_override_seg_flag => 'Y'
6428 );
6429
6430 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
6431
6432 xla_ae_lines_pkg.set_segment(
6433 p_to_segment_code => 'GL_ACCOUNT'
6434 , p_segment_value => l_segment
6435 , p_from_segment_code => l_adr_value_segment_code
6436 , p_from_combination_id => l_adr_value_combination_id
6437 , p_value_type_code => l_adr_value_type_code
6438 , p_transaction_coa_id => l_adr_transaction_coa_id
6439 , p_accounting_coa_id => l_adr_accounting_coa_id
6440 , p_flexfield_segment_code => l_adr_flexfield_segment_code
6441 , p_flex_value_set_id => l_adr_flex_value_set_id
6442 , p_adr_code => 'PA_421001'
6443 , p_adr_type_code => 'S'
6444 , p_component_type => l_component_type
6445 , p_component_code => l_component_code
6446 , p_component_type_code => l_component_type_code
6447 , p_component_appl_id => l_component_appl_id
6448 , p_amb_context_code => l_amb_context_code
6449 , p_entity_code => 'BUDGETS'
6450 , p_event_class_code => 'BUDGET'
6451 , p_side => 'NA'
6452 );
6453
6454 END IF;
6455
6456 --
6457 --
6458 END IF;
6459 --
6460 -- Bug 4922099
6461 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
6462 (NVL(l_enc_upg_option, 'N') = 'O')
6463 ) AND
6464 (l_bflow_method_code = 'PRIOR_ENTRY')
6465 )
6466 THEN
6467 IF
6468 --
6469 1 = 2
6470 --
6471 THEN
6472 xla_accounting_err_pkg.build_message
6473 (p_appli_s_name => 'XLA'
6474 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6475 ,p_token_1 => 'LINE_NUMBER'
6476 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
6477 ,p_token_2 => 'LINE_TYPE_NAME'
6478 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
6479 l_component_type
6480 ,l_component_code
6481 ,l_component_type_code
6482 ,l_component_appl_id
6483 ,l_amb_context_code
6484 ,l_entity_code
6485 ,l_event_class_code
6486 )
6487 ,p_token_3 => 'OWNER'
6488 ,p_value_3 => xla_lookups_pkg.get_meaning(
6489 p_lookup_type => 'XLA_OWNER_TYPE'
6490 ,p_lookup_code => l_component_type_code
6491 )
6492 ,p_token_4 => 'PRODUCT_NAME'
6496 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
6493 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
6494 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
6495 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
6497 ,p_ae_header_id => NULL
6498 );
6499
6500 IF (C_LEVEL_ERROR>= g_log_level) THEN
6501 trace
6502 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6503 ,p_level => C_LEVEL_ERROR
6504 ,p_module => l_log_module);
6505 END IF;
6506 END IF;
6507 END IF;
6508 --
6509 --
6510 ------------------------------------------------------------------------------------------------
6511 -- 4219869 Business Flow
6512 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
6513 -- Prior Entry. Currently, the following code is always generated.
6514 ------------------------------------------------------------------------------------------------
6515 XLA_AE_LINES_PKG.ValidateCurrentLine;
6516
6517 ------------------------------------------------------------------------------------
6518 -- 4219869 Business Flow
6519 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
6520 ------------------------------------------------------------------------------------
6521 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6522
6523 ----------------------------------------------------------------------------------
6524 -- 4219869 Business Flow
6525 -- Update journal entry status -- Need to generate this within IF <condition>
6526 ----------------------------------------------------------------------------------
6527 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6528 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
6529 ,p_balance_type_code => l_balance_type_code
6530 );
6531
6532 -------------------------------------------------------------------------------------------
6533 -- 4262811 - Generate the Accrual Reversal lines
6534 -------------------------------------------------------------------------------------------
6535 BEGIN
6536 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
6537 (g_array_event(p_event_id).array_value_num('header_index'));
6538 IF l_acc_rev_flag IS NULL THEN
6539 l_acc_rev_flag := 'N';
6540 END IF;
6541 EXCEPTION
6542 WHEN OTHERS THEN
6543 l_acc_rev_flag := 'N';
6544 END;
6545 --
6546 IF (l_acc_rev_flag = 'Y') THEN
6547
6548 -- 4645092 ------------------------------------------------------------------------------
6549 -- To allow MPA report to determine if it should generate report process
6550 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
6551 ------------------------------------------------------------------------------------------
6552
6553 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
6554 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
6555
6556 --
6557 -- Update the line information that should be overwritten
6558 --
6559 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
6560 p_header_num => 1);
6561 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
6562
6563 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
6564
6565 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
6566 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
6567 END IF;
6568
6569 --
6570 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
6571 --
6572 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
6573 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
6574 ELSE
6575 ---------------------------------------------------------------------------------------------------
6576 -- 4262811a Switch Sign
6577 ---------------------------------------------------------------------------------------------------
6578 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
6579 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6580 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6581 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6582 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6583 -- 5132302
6584 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
6585 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6586
6587 END IF;
6588
6589 -- 4955764
6590 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6591 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
6592
6593
6594 XLA_AE_LINES_PKG.ValidateCurrentLine;
6595 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6596
6597 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6601 END IF;
6598 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
6599 ,p_balance_type_code => l_balance_type_code);
6600
6602
6603 -----------------------------------------------------------------------------------------
6604 -- 4262811 Multiperiod Accounting
6605 -----------------------------------------------------------------------------------------
6606 -- No MPA option is assigned.
6607
6608
6609 END IF;
6610 END IF;
6611 --
6612
6613 --
6614 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6615 trace
6616 (p_msg => 'END of AcctLineType_33'
6617 ,p_level => C_LEVEL_PROCEDURE
6618 ,p_module => l_log_module);
6619 END IF;
6620 --
6621 EXCEPTION
6622 WHEN xla_exceptions_pkg.application_exception THEN
6623 RAISE;
6624 WHEN OTHERS THEN
6625 xla_exceptions_pkg.raise_message
6626 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_33');
6627 END AcctLineType_33;
6628 --
6629
6630 ---------------------------------------
6631 --
6632 -- PRIVATE FUNCTION
6633 -- AcctLineType_34
6634 --
6635 ---------------------------------------
6636 PROCEDURE AcctLineType_34 (
6637 p_application_id IN NUMBER
6638 ,p_event_id IN NUMBER
6639 ,p_calculate_acctd_flag IN VARCHAR2
6640 ,p_calculate_g_l_flag IN VARCHAR2
6641 ,p_actual_flag IN OUT VARCHAR2
6642 ,p_balance_type_code OUT VARCHAR2
6643 ,p_gain_or_loss_ref OUT VARCHAR2
6644
6645 --Budget Code Combination ID
6646 , p_source_3 IN NUMBER
6647 --Reversing Line Flag
6648 , p_source_23 IN VARCHAR2
6649 --Entered Currency Code
6650 , p_source_26 IN VARCHAR2
6651 --Line Type
6652 , p_source_35 IN VARCHAR2
6653 , p_source_35_meaning IN VARCHAR2
6654 --Budget Amount Code
6655 , p_source_37 IN VARCHAR2
6656 --Project Type Class
6657 , p_source_38 IN VARCHAR2
6658 , p_source_38_meaning IN VARCHAR2
6659 --Project Budgetary Control Balance Type
6660 , p_source_39 IN VARCHAR2
6661 --Budget Line ID
6662 , p_source_40 IN NUMBER
6663 --Encumbrance Upgrade Credit Accounting Class
6664 , p_source_41 IN VARCHAR2
6665 --Entered Amount
6666 , p_source_42 IN NUMBER
6667 --Accounted Amount
6668 , p_source_43 IN NUMBER
6669 --Use Encumbrance Upgrade Attributes Flag
6670 , p_source_44 IN VARCHAR2
6671 )
6672 IS
6673
6674 l_component_type VARCHAR2(80);
6675 l_component_code VARCHAR2(30);
6676 l_component_type_code VARCHAR2(1);
6677 l_component_appl_id INTEGER;
6678 l_amb_context_code VARCHAR2(30);
6679 l_entity_code VARCHAR2(30);
6680 l_event_class_code VARCHAR2(30);
6681 l_ae_header_id NUMBER;
6682 l_event_type_code VARCHAR2(30);
6683 l_line_definition_code VARCHAR2(30);
6684 l_line_definition_owner_code VARCHAR2(1);
6685 --
6686 -- adr variables
6687 l_segment VARCHAR2(30);
6688 l_ccid NUMBER;
6689 l_adr_transaction_coa_id NUMBER;
6690 l_adr_accounting_coa_id NUMBER;
6691 l_adr_flexfield_segment_code VARCHAR2(30);
6692 l_adr_flex_value_set_id NUMBER;
6693 l_adr_value_type_code VARCHAR2(30);
6694 l_adr_value_combination_id NUMBER;
6695 l_adr_value_segment_code VARCHAR2(30);
6696
6697 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
6698 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
6699 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
6700 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
6701
6702 -- 4262811 Variables ------------------------------------------------------------------------------------------
6703 l_entered_amt_idx NUMBER;
6704 l_accted_amt_idx NUMBER;
6705 l_acc_rev_flag VARCHAR2(1);
6706 l_accrual_line_num NUMBER;
6707 l_tmp_amt NUMBER;
6708 l_acc_rev_natural_side_code VARCHAR2(1);
6709
6710 l_num_entries NUMBER;
6711 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
6712 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
6713 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
6714 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
6715 l_recog_line_1 NUMBER;
6716 l_recog_line_2 NUMBER;
6717
6718 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
6719 l_bflow_applied_to_amt NUMBER; -- 5132302
6720 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
6721
6722 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
6723
6724 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
6725 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
6726
6727 ---------------------------------------------------------------------------------------------------------------
6728
6729
6730 --
6731 -- bulk performance
6732 --
6733 l_balance_type_code VARCHAR2(1);
6734 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
6735 l_log_module VARCHAR2(240);
6736
6737 --
6738 -- Upgrade strategy
6739 --
6740 l_actual_upg_option VARCHAR2(1);
6741 l_enc_upg_option VARCHAR2(1);
6742
6743 --
6744 BEGIN
6745 --
6746 IF g_log_enabled THEN
6750 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6747 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_34';
6748 END IF;
6749 --
6751
6752 trace
6753 (p_msg => 'BEGIN of AcctLineType_34'
6754 ,p_level => C_LEVEL_PROCEDURE
6755 ,p_module => l_log_module);
6756
6757 END IF;
6758 --
6759 l_component_type := 'AMB_JLT';
6760 l_component_code := 'PA_ANT_REIMB_OTH_INC_C184';
6761 l_component_type_code := 'S';
6762 l_component_appl_id := 275;
6763 l_amb_context_code := 'DEFAULT';
6764 l_entity_code := 'BUDGETS';
6765 l_event_class_code := 'BUDGET';
6766 l_event_type_code := 'BUDGET_ALL';
6767 l_line_definition_owner_code := 'S';
6768 l_line_definition_code := 'PROJECTS_BUD_SLA_JLD';
6769 --
6770 l_balance_type_code := 'A';
6771 l_segment := NULL;
6772 l_ccid := NULL;
6773 l_adr_transaction_coa_id := NULL;
6774 l_adr_accounting_coa_id := NULL;
6775 l_adr_flexfield_segment_code := NULL;
6776 l_adr_flex_value_set_id := NULL;
6777 l_adr_value_type_code := NULL;
6778 l_adr_value_combination_id := NULL;
6779 l_adr_value_segment_code := NULL;
6780
6781 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
6782 l_bflow_class_code := ''; -- 4219869 Business Flow
6783 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
6784 l_budgetary_control_flag := 'N';
6785
6786 l_bflow_applied_to_amt_idx := NULL; -- 5132302
6787 l_bflow_applied_to_amt := NULL; -- 5132302
6788 l_entered_amt_idx := NULL; -- 4262811
6789 l_accted_amt_idx := NULL; -- 4262811
6790 l_acc_rev_flag := NULL; -- 4262811
6791 l_accrual_line_num := NULL; -- 4262811
6792 l_tmp_amt := NULL; -- 4262811
6793 --
6794
6795 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
6796 l_balance_type_code <> 'B' THEN
6797 IF NVL(p_source_37,'
6798 ') = 'R' AND
6799 NVL(p_source_38,'
6800 ') = 'CONTRACT' AND
6801 NVL(p_source_39,'
6802 ') = 'B'
6803 THEN
6804
6805 --
6806 XLA_AE_LINES_PKG.SetNewLine;
6807
6808 p_balance_type_code := l_balance_type_code;
6809 -- set the flag so later we will know whether the gain loss line needs to be created
6810
6811 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
6812 p_actual_flag :='A';
6813 END IF;
6814
6815 --
6816 -- bulk performance
6817 --
6818 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
6819 p_header_num => 0); -- 4262811
6820 --
6821 -- set accounting line options
6822 --
6823 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
6824 p_natural_side_code => 'C'
6825 , p_gain_or_loss_flag => 'N'
6826 , p_gl_transfer_mode_code => 'S'
6827 , p_acct_entry_type_code => 'A'
6828 , p_switch_side_flag => 'Y'
6829 , p_merge_duplicate_code => 'N'
6830 );
6831 --
6832 l_acc_rev_natural_side_code := 'D'; -- 4262811
6833 --
6834 --
6835 -- set accounting line type info
6836 --
6837 xla_ae_lines_pkg.SetAcctLineType
6838 (p_component_type => l_component_type
6839 ,p_event_type_code => l_event_type_code
6840 ,p_line_definition_owner_code => l_line_definition_owner_code
6841 ,p_line_definition_code => l_line_definition_code
6842 ,p_accounting_line_code => l_component_code
6843 ,p_accounting_line_type_code => l_component_type_code
6844 ,p_accounting_line_appl_id => l_component_appl_id
6845 ,p_amb_context_code => l_amb_context_code
6846 ,p_entity_code => l_entity_code
6847 ,p_event_class_code => l_event_class_code);
6848 --
6849 -- set accounting class
6850 --
6851 xla_ae_lines_pkg.SetAcctClass(
6852 p_accounting_class_code => 'PA_BUDGET_EXECUTION_RESERVE_CR'
6853 , p_ae_header_id => l_ae_header_id
6854 );
6855
6856 --
6857 -- set rounding class
6858 --
6859 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
6860 'PA_BUDGET_EXECUTION_RESERVE_CR';
6861
6862 --
6863 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
6864 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
6865 --
6866 -- bulk performance
6867 --
6868 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
6869
6870 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
6871 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
6872
6873 -- 4955764
6874 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6875 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
6876
6877 -- 4458381 Public Sector Enh
6878
6879 --
6880 -- set accounting attributes for the line type
6881 --
6882
6883 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
6884 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
6885
6886 ---------------------------------------------------------------------------------------------------------------
6890
6887 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
6888 ---------------------------------------------------------------------------------------------------------------
6889 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
6891 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6892 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6893
6894 IF xla_accounting_cache_pkg.GetValueChar
6895 (p_source_code => 'LEDGER_CATEGORY_CODE'
6896 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
6897 AND l_bflow_method_code = 'PRIOR_ENTRY'
6898 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
6899 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
6900 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
6901 )
6902 THEN
6903 xla_ae_lines_pkg.BflowUpgEntry
6904 (p_business_method_code => l_bflow_method_code
6905 ,p_business_class_code => l_bflow_class_code
6906 ,p_balance_type => l_balance_type_code);
6907 ELSE
6908 NULL;
6909 -- No business flow processing for business flow method of NONE.
6910 END IF;
6911
6912 --
6913 -- call analytical criteria
6914 --
6915
6916 --
6917 -- call description
6918 --
6919 -- No description or it is inherited.
6920 --
6921 -- call ADRs
6922 -- Bug 4922099
6923 --
6924 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6925 (NVL(l_actual_upg_option, 'N') = 'O') OR
6926 (NVL(l_enc_upg_option, 'N') = 'O')
6927 )
6928 THEN
6929 NULL;
6930 --
6931 --
6932
6933 l_ccid := AcctDerRule_11(
6934 p_application_id => p_application_id
6935 , p_ae_header_id => l_ae_header_id
6936 , p_source_3 => p_source_3
6937 , x_transaction_coa_id => l_adr_transaction_coa_id
6938 , x_accounting_coa_id => l_adr_accounting_coa_id
6939 , x_value_type_code => l_adr_value_type_code
6940 , p_side => 'NA'
6941 );
6942
6943 xla_ae_lines_pkg.set_ccid(
6944 p_code_combination_id => l_ccid
6945 , p_value_type_code => l_adr_value_type_code
6946 , p_transaction_coa_id => l_adr_transaction_coa_id
6947 , p_accounting_coa_id => l_adr_accounting_coa_id
6948 , p_adr_code => 'PA_BUDGET_ACCT_RULE'
6949 , p_adr_type_code => 'S'
6950 , p_component_type => l_component_type
6951 , p_component_code => l_component_code
6952 , p_component_type_code => l_component_type_code
6953 , p_component_appl_id => l_component_appl_id
6954 , p_amb_context_code => l_amb_context_code
6955 , p_side => 'NA'
6956 );
6957
6958
6959 l_segment := AcctDerRule_8(
6960 p_application_id => p_application_id
6961 , p_ae_header_id => l_ae_header_id
6962 , x_transaction_coa_id => l_adr_transaction_coa_id
6963 , x_accounting_coa_id => l_adr_accounting_coa_id
6964 , x_flexfield_segment_code => l_adr_flexfield_segment_code
6965 , x_flex_value_set_id => l_adr_flex_value_set_id
6966 , x_value_type_code => l_adr_value_type_code
6967 , x_value_combination_id => l_adr_value_combination_id
6968 , x_value_segment_code => l_adr_value_segment_code
6969 , p_side => 'NA'
6970 , p_override_seg_flag => 'Y'
6971 );
6972
6973 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
6974
6975 xla_ae_lines_pkg.set_segment(
6976 p_to_segment_code => 'GL_ACCOUNT'
6977 , p_segment_value => l_segment
6978 , p_from_segment_code => l_adr_value_segment_code
6979 , p_from_combination_id => l_adr_value_combination_id
6980 , p_value_type_code => l_adr_value_type_code
6981 , p_transaction_coa_id => l_adr_transaction_coa_id
6982 , p_accounting_coa_id => l_adr_accounting_coa_id
6983 , p_flexfield_segment_code => l_adr_flexfield_segment_code
6984 , p_flex_value_set_id => l_adr_flex_value_set_id
6985 , p_adr_code => 'PA_421001-C184'
6986 , p_adr_type_code => 'S'
6987 , p_component_type => l_component_type
6988 , p_component_code => l_component_code
6989 , p_component_type_code => l_component_type_code
6990 , p_component_appl_id => l_component_appl_id
6991 , p_amb_context_code => l_amb_context_code
6992 , p_entity_code => 'BUDGETS'
6993 , p_event_class_code => 'BUDGET'
6994 , p_side => 'NA'
6995 );
6996
6997 END IF;
6998
6999 --
7000 --
7001 END IF;
7002 --
7003 -- Bug 4922099
7004 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
7005 (NVL(l_enc_upg_option, 'N') = 'O')
7006 ) AND
7007 (l_bflow_method_code = 'PRIOR_ENTRY')
7008 )
7009 THEN
7010 IF
7011 --
7012 1 = 2
7013 --
7014 THEN
7015 xla_accounting_err_pkg.build_message
7016 (p_appli_s_name => 'XLA'
7017 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7018 ,p_token_1 => 'LINE_NUMBER'
7022 l_component_type
7019 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
7020 ,p_token_2 => 'LINE_TYPE_NAME'
7021 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
7023 ,l_component_code
7024 ,l_component_type_code
7025 ,l_component_appl_id
7026 ,l_amb_context_code
7027 ,l_entity_code
7028 ,l_event_class_code
7029 )
7030 ,p_token_3 => 'OWNER'
7031 ,p_value_3 => xla_lookups_pkg.get_meaning(
7032 p_lookup_type => 'XLA_OWNER_TYPE'
7033 ,p_lookup_code => l_component_type_code
7034 )
7035 ,p_token_4 => 'PRODUCT_NAME'
7036 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
7037 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
7038 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
7039 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
7040 ,p_ae_header_id => NULL
7041 );
7042
7043 IF (C_LEVEL_ERROR>= g_log_level) THEN
7044 trace
7045 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7046 ,p_level => C_LEVEL_ERROR
7047 ,p_module => l_log_module);
7048 END IF;
7049 END IF;
7050 END IF;
7051 --
7052 --
7053 ------------------------------------------------------------------------------------------------
7054 -- 4219869 Business Flow
7055 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
7056 -- Prior Entry. Currently, the following code is always generated.
7057 ------------------------------------------------------------------------------------------------
7058 XLA_AE_LINES_PKG.ValidateCurrentLine;
7059
7060 ------------------------------------------------------------------------------------
7061 -- 4219869 Business Flow
7062 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
7063 ------------------------------------------------------------------------------------
7064 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7065
7066 ----------------------------------------------------------------------------------
7067 -- 4219869 Business Flow
7068 -- Update journal entry status -- Need to generate this within IF <condition>
7069 ----------------------------------------------------------------------------------
7070 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7071 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
7072 ,p_balance_type_code => l_balance_type_code
7073 );
7074
7075 -------------------------------------------------------------------------------------------
7076 -- 4262811 - Generate the Accrual Reversal lines
7077 -------------------------------------------------------------------------------------------
7078 BEGIN
7079 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
7080 (g_array_event(p_event_id).array_value_num('header_index'));
7081 IF l_acc_rev_flag IS NULL THEN
7082 l_acc_rev_flag := 'N';
7083 END IF;
7084 EXCEPTION
7085 WHEN OTHERS THEN
7086 l_acc_rev_flag := 'N';
7087 END;
7088 --
7089 IF (l_acc_rev_flag = 'Y') THEN
7090
7091 -- 4645092 ------------------------------------------------------------------------------
7092 -- To allow MPA report to determine if it should generate report process
7093 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
7094 ------------------------------------------------------------------------------------------
7095
7096 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
7097 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
7098
7099 --
7100 -- Update the line information that should be overwritten
7101 --
7102 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
7103 p_header_num => 1);
7104 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
7105
7106 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
7107
7108 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
7109 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
7110 END IF;
7111
7112 --
7113 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
7114 --
7115 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
7116 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
7117 ELSE
7121 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
7118 ---------------------------------------------------------------------------------------------------
7119 -- 4262811a Switch Sign
7120 ---------------------------------------------------------------------------------------------------
7122 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7123 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7124 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7125 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7126 -- 5132302
7127 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
7128 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7129
7130 END IF;
7131
7132 -- 4955764
7133 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7134 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
7135
7136
7137 XLA_AE_LINES_PKG.ValidateCurrentLine;
7138 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7139
7140 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7141 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
7142 ,p_balance_type_code => l_balance_type_code);
7143
7144 END IF;
7145
7146 -----------------------------------------------------------------------------------------
7147 -- 4262811 Multiperiod Accounting
7148 -----------------------------------------------------------------------------------------
7149 -- No MPA option is assigned.
7150
7151
7152 END IF;
7153 END IF;
7154 --
7155
7156 --
7157 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7158 trace
7159 (p_msg => 'END of AcctLineType_34'
7160 ,p_level => C_LEVEL_PROCEDURE
7161 ,p_module => l_log_module);
7162 END IF;
7163 --
7164 EXCEPTION
7165 WHEN xla_exceptions_pkg.application_exception THEN
7166 RAISE;
7167 WHEN OTHERS THEN
7168 xla_exceptions_pkg.raise_message
7169 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_34');
7170 END AcctLineType_34;
7171 --
7172
7173 ---------------------------------------
7174 --
7175 -- PRIVATE FUNCTION
7176 -- AcctLineType_35
7177 --
7178 ---------------------------------------
7179 PROCEDURE AcctLineType_35 (
7180 p_application_id IN NUMBER
7181 ,p_event_id IN NUMBER
7182 ,p_calculate_acctd_flag IN VARCHAR2
7183 ,p_calculate_g_l_flag IN VARCHAR2
7184 ,p_actual_flag IN OUT VARCHAR2
7185 ,p_balance_type_code OUT VARCHAR2
7186 ,p_gain_or_loss_ref OUT VARCHAR2
7187
7188 --Revenue CCID
7189 , p_source_19 IN NUMBER
7190 --Entered Currency Code
7191 , p_source_26 IN VARCHAR2
7192 --Exchange Rate Date
7193 , p_source_28 IN DATE
7194 --Exchange Rate
7195 , p_source_29 IN NUMBER
7196 --Exchange Rate Type
7197 , p_source_30 IN VARCHAR2
7198 --Entered Amount
7199 , p_source_42 IN NUMBER
7200 --Accounted Amount
7201 , p_source_43 IN NUMBER
7202 --Revenue Distribution Type
7203 , p_source_46 IN VARCHAR2
7204 --System Linkage Function
7205 , p_source_47 IN VARCHAR2
7206 --Crediting Revenue Flag
7207 , p_source_48 IN VARCHAR2
7208 --Revenue First Distribution ID
7209 , p_source_49 IN NUMBER
7210 --Revenue Second Distribution ID
7211 , p_source_50 IN NUMBER
7212 --Event ID
7213 , p_source_51 IN NUMBER
7214 )
7215 IS
7216
7217 l_component_type VARCHAR2(80);
7218 l_component_code VARCHAR2(30);
7219 l_component_type_code VARCHAR2(1);
7220 l_component_appl_id INTEGER;
7221 l_amb_context_code VARCHAR2(30);
7222 l_entity_code VARCHAR2(30);
7223 l_event_class_code VARCHAR2(30);
7224 l_ae_header_id NUMBER;
7225 l_event_type_code VARCHAR2(30);
7226 l_line_definition_code VARCHAR2(30);
7227 l_line_definition_owner_code VARCHAR2(1);
7228 --
7229 -- adr variables
7230 l_segment VARCHAR2(30);
7231 l_ccid NUMBER;
7232 l_adr_transaction_coa_id NUMBER;
7233 l_adr_accounting_coa_id NUMBER;
7234 l_adr_flexfield_segment_code VARCHAR2(30);
7235 l_adr_flex_value_set_id NUMBER;
7236 l_adr_value_type_code VARCHAR2(30);
7237 l_adr_value_combination_id NUMBER;
7238 l_adr_value_segment_code VARCHAR2(30);
7239
7240 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
7241 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
7242 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
7243 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
7244
7245 -- 4262811 Variables ------------------------------------------------------------------------------------------
7246 l_entered_amt_idx NUMBER;
7247 l_accted_amt_idx NUMBER;
7248 l_acc_rev_flag VARCHAR2(1);
7249 l_accrual_line_num NUMBER;
7250 l_tmp_amt NUMBER;
7251 l_acc_rev_natural_side_code VARCHAR2(1);
7252
7253 l_num_entries NUMBER;
7254 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
7255 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
7259 l_recog_line_2 NUMBER;
7256 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
7257 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
7258 l_recog_line_1 NUMBER;
7260
7261 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
7262 l_bflow_applied_to_amt NUMBER; -- 5132302
7263 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
7264
7265 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
7266
7267 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
7268 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
7269
7270 ---------------------------------------------------------------------------------------------------------------
7271
7272
7273 --
7274 -- bulk performance
7275 --
7276 l_balance_type_code VARCHAR2(1);
7277 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
7278 l_log_module VARCHAR2(240);
7279
7280 --
7281 -- Upgrade strategy
7282 --
7283 l_actual_upg_option VARCHAR2(1);
7284 l_enc_upg_option VARCHAR2(1);
7285
7286 --
7287 BEGIN
7288 --
7289 IF g_log_enabled THEN
7290 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_35';
7291 END IF;
7292 --
7293 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7294
7295 trace
7296 (p_msg => 'BEGIN of AcctLineType_35'
7297 ,p_level => C_LEVEL_PROCEDURE
7298 ,p_module => l_log_module);
7299
7300 END IF;
7301 --
7302 l_component_type := 'AMB_JLT';
7303 l_component_code := 'PA_BTC_REV';
7304 l_component_type_code := 'S';
7305 l_component_appl_id := 275;
7306 l_amb_context_code := 'DEFAULT';
7307 l_entity_code := 'REVENUE';
7308 l_event_class_code := 'REVENUE';
7309 l_event_type_code := 'REVENUE_ALL';
7310 l_line_definition_owner_code := 'S';
7311 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
7312 --
7313 l_balance_type_code := 'A';
7314 l_segment := NULL;
7315 l_ccid := NULL;
7316 l_adr_transaction_coa_id := NULL;
7317 l_adr_accounting_coa_id := NULL;
7318 l_adr_flexfield_segment_code := NULL;
7319 l_adr_flex_value_set_id := NULL;
7320 l_adr_value_type_code := NULL;
7321 l_adr_value_combination_id := NULL;
7322 l_adr_value_segment_code := NULL;
7323
7324 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
7325 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
7326 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
7327 l_budgetary_control_flag := 'N';
7328
7329 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7330 l_bflow_applied_to_amt := NULL; -- 5132302
7331 l_entered_amt_idx := NULL; -- 4262811
7332 l_accted_amt_idx := NULL; -- 4262811
7333 l_acc_rev_flag := NULL; -- 4262811
7334 l_accrual_line_num := NULL; -- 4262811
7335 l_tmp_amt := NULL; -- 4262811
7336 --
7337
7338 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
7339 l_balance_type_code <> 'B' THEN
7340 IF NVL(p_source_46,'
7341 ') = 'Revenue - Normal Revenue' AND
7342 NVL(p_source_47,'
7343 ') = 'BTC' AND
7344 NVL(p_source_48,'
7345 ') = 'N'
7346 THEN
7347
7348 --
7349 XLA_AE_LINES_PKG.SetNewLine;
7350
7351 p_balance_type_code := l_balance_type_code;
7352 -- set the flag so later we will know whether the gain loss line needs to be created
7353
7354 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
7355 p_actual_flag :='A';
7356 END IF;
7357
7358 --
7359 -- bulk performance
7360 --
7361 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
7362 p_header_num => 0); -- 4262811
7363 --
7364 -- set accounting line options
7365 --
7366 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
7367 p_natural_side_code => 'C'
7368 , p_gain_or_loss_flag => 'N'
7369 , p_gl_transfer_mode_code => 'S'
7370 , p_acct_entry_type_code => 'A'
7371 , p_switch_side_flag => 'Y'
7372 , p_merge_duplicate_code => 'N'
7373 );
7374 --
7375 l_acc_rev_natural_side_code := 'D'; -- 4262811
7376 --
7377 --
7378 -- set accounting line type info
7379 --
7380 xla_ae_lines_pkg.SetAcctLineType
7381 (p_component_type => l_component_type
7382 ,p_event_type_code => l_event_type_code
7383 ,p_line_definition_owner_code => l_line_definition_owner_code
7384 ,p_line_definition_code => l_line_definition_code
7385 ,p_accounting_line_code => l_component_code
7386 ,p_accounting_line_type_code => l_component_type_code
7387 ,p_accounting_line_appl_id => l_component_appl_id
7388 ,p_amb_context_code => l_amb_context_code
7389 ,p_entity_code => l_entity_code
7390 ,p_event_class_code => l_event_class_code);
7391 --
7392 -- set accounting class
7393 --
7394 xla_ae_lines_pkg.SetAcctClass(
7395 p_accounting_class_code => 'REVENUE'
7396 , p_ae_header_id => l_ae_header_id
7397 );
7398
7399 --
7400 -- set rounding class
7401 --
7405 --
7402 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
7403 'REVENUE';
7404
7406 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
7407 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
7408 --
7409 -- bulk performance
7410 --
7411 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
7412
7413 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
7414 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
7415
7416 -- 4955764
7417 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7418 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
7419
7420 -- 4458381 Public Sector Enh
7421
7422 --
7423 -- set accounting attributes for the line type
7424 --
7425 l_entered_amt_idx := 4;
7426 l_accted_amt_idx := 10;
7427 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7428 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
7429 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_49);
7430 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
7431 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_50);
7432 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
7433 l_rec_acct_attrs.array_char_value(3) := p_source_46;
7434 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
7435 l_rec_acct_attrs.array_num_value(4) := p_source_42;
7436 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
7437 l_rec_acct_attrs.array_char_value(5) := p_source_26;
7438 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
7439 l_rec_acct_attrs.array_date_value(6) := p_source_28;
7440 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
7441 l_rec_acct_attrs.array_num_value(7) := p_source_29;
7442 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
7443 l_rec_acct_attrs.array_char_value(8) := p_source_30;
7444 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
7445 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_51);
7446 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
7447 l_rec_acct_attrs.array_num_value(10) := p_source_43;
7448
7449 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
7450 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
7451
7452 ---------------------------------------------------------------------------------------------------------------
7453 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
7454 ---------------------------------------------------------------------------------------------------------------
7455 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
7456
7457 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7458 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7459
7460 IF xla_accounting_cache_pkg.GetValueChar
7461 (p_source_code => 'LEDGER_CATEGORY_CODE'
7462 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
7463 AND l_bflow_method_code = 'PRIOR_ENTRY'
7464 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
7465 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
7466 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
7467 )
7468 THEN
7469 xla_ae_lines_pkg.BflowUpgEntry
7470 (p_business_method_code => l_bflow_method_code
7471 ,p_business_class_code => l_bflow_class_code
7472 ,p_balance_type => l_balance_type_code);
7473 ELSE
7474 NULL;
7475 -- No business flow processing for business flow method of NONE.
7476 END IF;
7477
7478 --
7479 -- call analytical criteria
7480 --
7481
7482 --
7483 -- call description
7484 --
7485 -- No description or it is inherited.
7486 --
7487 -- call ADRs
7488 -- Bug 4922099
7489 --
7490 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7491 (NVL(l_actual_upg_option, 'N') = 'O') OR
7492 (NVL(l_enc_upg_option, 'N') = 'O')
7493 )
7494 THEN
7495 NULL;
7496 --
7497 --
7498
7499 l_ccid := AcctDerRule_26(
7500 p_application_id => p_application_id
7501 , p_ae_header_id => l_ae_header_id
7502 , p_source_19 => p_source_19
7503 , x_transaction_coa_id => l_adr_transaction_coa_id
7504 , x_accounting_coa_id => l_adr_accounting_coa_id
7505 , x_value_type_code => l_adr_value_type_code
7506 , p_side => 'NA'
7507 );
7508
7509 xla_ae_lines_pkg.set_ccid(
7510 p_code_combination_id => l_ccid
7511 , p_value_type_code => l_adr_value_type_code
7512 , p_transaction_coa_id => l_adr_transaction_coa_id
7513 , p_accounting_coa_id => l_adr_accounting_coa_id
7514 , p_adr_code => 'REVENUE_RULE'
7515 , p_adr_type_code => 'S'
7516 , p_component_type => l_component_type
7517 , p_component_code => l_component_code
7518 , p_component_type_code => l_component_type_code
7519 , p_component_appl_id => l_component_appl_id
7520 , p_amb_context_code => l_amb_context_code
7521 , p_side => 'NA'
7522 );
7523
7524
7528 --
7525 --
7526 --
7527 END IF;
7529 -- Bug 4922099
7530 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
7531 (NVL(l_enc_upg_option, 'N') = 'O')
7532 ) AND
7533 (l_bflow_method_code = 'PRIOR_ENTRY')
7534 )
7535 THEN
7536 IF
7537 --
7538 1 = 2
7539 --
7540 THEN
7541 xla_accounting_err_pkg.build_message
7542 (p_appli_s_name => 'XLA'
7543 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7544 ,p_token_1 => 'LINE_NUMBER'
7545 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
7546 ,p_token_2 => 'LINE_TYPE_NAME'
7547 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
7548 l_component_type
7549 ,l_component_code
7550 ,l_component_type_code
7551 ,l_component_appl_id
7552 ,l_amb_context_code
7553 ,l_entity_code
7554 ,l_event_class_code
7555 )
7556 ,p_token_3 => 'OWNER'
7557 ,p_value_3 => xla_lookups_pkg.get_meaning(
7558 p_lookup_type => 'XLA_OWNER_TYPE'
7559 ,p_lookup_code => l_component_type_code
7560 )
7561 ,p_token_4 => 'PRODUCT_NAME'
7562 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
7563 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
7564 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
7565 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
7566 ,p_ae_header_id => NULL
7567 );
7568
7569 IF (C_LEVEL_ERROR>= g_log_level) THEN
7570 trace
7571 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7572 ,p_level => C_LEVEL_ERROR
7573 ,p_module => l_log_module);
7574 END IF;
7575 END IF;
7576 END IF;
7577 --
7578 --
7579 ------------------------------------------------------------------------------------------------
7580 -- 4219869 Business Flow
7581 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
7582 -- Prior Entry. Currently, the following code is always generated.
7583 ------------------------------------------------------------------------------------------------
7584 XLA_AE_LINES_PKG.ValidateCurrentLine;
7585
7586 ------------------------------------------------------------------------------------
7587 -- 4219869 Business Flow
7588 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
7589 ------------------------------------------------------------------------------------
7590 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7591
7592 ----------------------------------------------------------------------------------
7593 -- 4219869 Business Flow
7594 -- Update journal entry status -- Need to generate this within IF <condition>
7595 ----------------------------------------------------------------------------------
7596 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7597 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
7598 ,p_balance_type_code => l_balance_type_code
7599 );
7600
7601 -------------------------------------------------------------------------------------------
7602 -- 4262811 - Generate the Accrual Reversal lines
7603 -------------------------------------------------------------------------------------------
7604 BEGIN
7605 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
7606 (g_array_event(p_event_id).array_value_num('header_index'));
7607 IF l_acc_rev_flag IS NULL THEN
7608 l_acc_rev_flag := 'N';
7609 END IF;
7610 EXCEPTION
7611 WHEN OTHERS THEN
7612 l_acc_rev_flag := 'N';
7613 END;
7614 --
7615 IF (l_acc_rev_flag = 'Y') THEN
7616
7617 -- 4645092 ------------------------------------------------------------------------------
7618 -- To allow MPA report to determine if it should generate report process
7619 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
7620 ------------------------------------------------------------------------------------------
7621
7622 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
7623 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
7624
7625 --
7626 -- Update the line information that should be overwritten
7627 --
7628 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
7629 p_header_num => 1);
7630 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
7631
7635 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
7632 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
7633
7634 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
7636 END IF;
7637
7638 --
7639 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
7640 --
7641 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
7642 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
7643 ELSE
7644 ---------------------------------------------------------------------------------------------------
7645 -- 4262811a Switch Sign
7646 ---------------------------------------------------------------------------------------------------
7647 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
7648 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7649 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7650 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7651 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7652 -- 5132302
7653 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
7654 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7655
7656 END IF;
7657
7658 -- 4955764
7659 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7660 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
7661
7662
7663 XLA_AE_LINES_PKG.ValidateCurrentLine;
7664 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7665
7666 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7667 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
7668 ,p_balance_type_code => l_balance_type_code);
7669
7670 END IF;
7671
7672 -----------------------------------------------------------------------------------------
7673 -- 4262811 Multiperiod Accounting
7674 -----------------------------------------------------------------------------------------
7675 -- No MPA option is assigned.
7676
7677
7678 END IF;
7679 END IF;
7680 --
7681
7682 --
7683 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7684 trace
7685 (p_msg => 'END of AcctLineType_35'
7686 ,p_level => C_LEVEL_PROCEDURE
7687 ,p_module => l_log_module);
7688 END IF;
7689 --
7690 EXCEPTION
7691 WHEN xla_exceptions_pkg.application_exception THEN
7692 RAISE;
7693 WHEN OTHERS THEN
7694 xla_exceptions_pkg.raise_message
7695 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_35');
7696 END AcctLineType_35;
7697 --
7698
7699 ---------------------------------------
7700 --
7701 -- PRIVATE FUNCTION
7702 -- AcctLineType_36
7703 --
7704 ---------------------------------------
7705 PROCEDURE AcctLineType_36 (
7706 p_application_id IN NUMBER
7707 ,p_event_id IN NUMBER
7708 ,p_calculate_acctd_flag IN VARCHAR2
7709 ,p_calculate_g_l_flag IN VARCHAR2
7710 ,p_actual_flag IN OUT VARCHAR2
7711 ,p_balance_type_code OUT VARCHAR2
7712 ,p_gain_or_loss_ref OUT VARCHAR2
7713
7714 --Budget Code Combination ID
7715 , p_source_3 IN NUMBER
7716 --Cost CCID
7717 , p_source_4 IN NUMBER
7718 --Allow Account Override Flag
7719 , p_source_5 IN VARCHAR2
7720 --Adjustment Cost CCID
7721 , p_source_6 IN NUMBER
7722 --Cost Clearing CCID
7723 , p_source_7 IN NUMBER
7724 --Reversing Line Flag
7725 , p_source_23 IN VARCHAR2
7726 --Actual Upgrade Credit Accounting Class
7727 , p_source_24 IN VARCHAR2
7728 --Entered Currency Code
7729 , p_source_26 IN VARCHAR2
7730 --Exchange Rate Date
7731 , p_source_28 IN DATE
7732 --Exchange Rate
7733 , p_source_29 IN NUMBER
7734 --Exchange Rate Type
7735 , p_source_30 IN VARCHAR2
7736 --Actual Upgrade Debit Accounting Class
7737 , p_source_31 IN VARCHAR2
7738 --Use Actuals Upgrade Attributes Flag
7739 , p_source_32 IN VARCHAR2
7740 --Expenditure Item ID
7741 , p_source_33 IN NUMBER
7742 --Cost Distribution Line Number
7743 , p_source_34 IN NUMBER
7744 --Line Type
7745 , p_source_35 IN VARCHAR2
7746 , p_source_35_meaning IN VARCHAR2
7747 --Reversed Line Number
7748 , p_source_36 IN NUMBER
7749 --Encumbrance Upgrade Credit Accounting Class
7750 , p_source_41 IN VARCHAR2
7751 --Use Encumbrance Upgrade Attributes Flag
7752 , p_source_44 IN VARCHAR2
7753 --Entered Burdened Cost
7754 , p_source_52 IN NUMBER
7755 --Accounted Burdened Cost
7756 , p_source_53 IN NUMBER
7757 --Encumbrance Amount
7758 , p_source_54 IN NUMBER
7759 --Project Encumbrance Applied to Application Identifier
7760 , p_source_55 IN NUMBER
7761 --Project Encumbrance Applied to Distribution Type
7762 , p_source_56 IN VARCHAR2
7763 --Project Encumbrance Applied to Entity Code
7764 , p_source_57 IN VARCHAR2
7765 --Project Encumbrance Applied to First Distribution ID
7766 , p_source_58 IN NUMBER
7767 --Project Encumbrance Applied to First System Transaction ID
7771 --Encumbrance Upgrade Debit Accounting Class
7768 , p_source_59 IN NUMBER
7769 --Project Encumbrance Applied to Second Distribution ID
7770 , p_source_60 IN VARCHAR2
7772 , p_source_61 IN VARCHAR2
7773 --Encumbrance Type ID
7774 , p_source_62 IN NUMBER
7775 --Project Encumbrance Type ID
7776 , p_source_63 IN NUMBER
7777 )
7778 IS
7779
7780 l_component_type VARCHAR2(80);
7781 l_component_code VARCHAR2(30);
7782 l_component_type_code VARCHAR2(1);
7783 l_component_appl_id INTEGER;
7784 l_amb_context_code VARCHAR2(30);
7785 l_entity_code VARCHAR2(30);
7786 l_event_class_code VARCHAR2(30);
7787 l_ae_header_id NUMBER;
7788 l_event_type_code VARCHAR2(30);
7789 l_line_definition_code VARCHAR2(30);
7790 l_line_definition_owner_code VARCHAR2(1);
7791 --
7792 -- adr variables
7793 l_segment VARCHAR2(30);
7794 l_ccid NUMBER;
7795 l_adr_transaction_coa_id NUMBER;
7796 l_adr_accounting_coa_id NUMBER;
7797 l_adr_flexfield_segment_code VARCHAR2(30);
7798 l_adr_flex_value_set_id NUMBER;
7799 l_adr_value_type_code VARCHAR2(30);
7800 l_adr_value_combination_id NUMBER;
7801 l_adr_value_segment_code VARCHAR2(30);
7802
7803 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
7804 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
7805 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
7806 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
7807
7808 -- 4262811 Variables ------------------------------------------------------------------------------------------
7809 l_entered_amt_idx NUMBER;
7810 l_accted_amt_idx NUMBER;
7811 l_acc_rev_flag VARCHAR2(1);
7812 l_accrual_line_num NUMBER;
7813 l_tmp_amt NUMBER;
7814 l_acc_rev_natural_side_code VARCHAR2(1);
7815
7816 l_num_entries NUMBER;
7817 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
7818 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
7819 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
7820 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
7821 l_recog_line_1 NUMBER;
7822 l_recog_line_2 NUMBER;
7823
7824 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
7825 l_bflow_applied_to_amt NUMBER; -- 5132302
7826 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
7827
7828 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
7829
7830 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
7831 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
7832
7833 ---------------------------------------------------------------------------------------------------------------
7834
7835
7836 --
7837 -- bulk performance
7838 --
7839 l_balance_type_code VARCHAR2(1);
7840 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
7841 l_log_module VARCHAR2(240);
7842
7843 --
7844 -- Upgrade strategy
7845 --
7846 l_actual_upg_option VARCHAR2(1);
7847 l_enc_upg_option VARCHAR2(1);
7848
7849 --
7850 BEGIN
7851 --
7852 IF g_log_enabled THEN
7853 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_36';
7854 END IF;
7855 --
7856 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7857
7858 trace
7859 (p_msg => 'BEGIN of AcctLineType_36'
7860 ,p_level => C_LEVEL_PROCEDURE
7861 ,p_module => l_log_module);
7862
7863 END IF;
7864 --
7865 l_component_type := 'AMB_JLT';
7866 l_component_code := 'PA_BURDEN_COST';
7867 l_component_type_code := 'S';
7868 l_component_appl_id := 275;
7869 l_amb_context_code := 'DEFAULT';
7870 l_entity_code := 'EXPENDITURES';
7871 l_event_class_code := 'BURDEN_COST';
7872 l_event_type_code := 'BURDEN_COST_ALL';
7873 l_line_definition_owner_code := 'S';
7874 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
7875 --
7876 l_balance_type_code := 'A';
7877 l_segment := NULL;
7878 l_ccid := NULL;
7879 l_adr_transaction_coa_id := NULL;
7880 l_adr_accounting_coa_id := NULL;
7881 l_adr_flexfield_segment_code := NULL;
7882 l_adr_flex_value_set_id := NULL;
7883 l_adr_value_type_code := NULL;
7884 l_adr_value_combination_id := NULL;
7885 l_adr_value_segment_code := NULL;
7886
7887 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
7888 l_bflow_class_code := ''; -- 4219869 Business Flow
7889 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
7890 l_budgetary_control_flag := 'N';
7891
7892 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7893 l_bflow_applied_to_amt := NULL; -- 5132302
7894 l_entered_amt_idx := NULL; -- 4262811
7895 l_accted_amt_idx := NULL; -- 4262811
7896 l_acc_rev_flag := NULL; -- 4262811
7897 l_accrual_line_num := NULL; -- 4262811
7898 l_tmp_amt := NULL; -- 4262811
7899 --
7900
7901 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
7902 l_balance_type_code <> 'B' THEN
7903 IF NVL(p_source_35,'
7904 ') = 'R'
7905 THEN
7906
7907 --
7908 XLA_AE_LINES_PKG.SetNewLine;
7909
7913 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
7910 p_balance_type_code := l_balance_type_code;
7911 -- set the flag so later we will know whether the gain loss line needs to be created
7912
7914 p_actual_flag :='A';
7915 END IF;
7916
7917 --
7918 -- bulk performance
7919 --
7920 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
7921 p_header_num => 0); -- 4262811
7922 --
7923 -- set accounting line options
7924 --
7925 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
7926 p_natural_side_code => 'D'
7927 , p_gain_or_loss_flag => 'N'
7928 , p_gl_transfer_mode_code => 'S'
7929 , p_acct_entry_type_code => 'A'
7930 , p_switch_side_flag => 'Y'
7931 , p_merge_duplicate_code => 'N'
7932 );
7933 --
7934 l_acc_rev_natural_side_code := 'C'; -- 4262811
7935 --
7936 --
7937 -- set accounting line type info
7938 --
7939 xla_ae_lines_pkg.SetAcctLineType
7940 (p_component_type => l_component_type
7941 ,p_event_type_code => l_event_type_code
7942 ,p_line_definition_owner_code => l_line_definition_owner_code
7943 ,p_line_definition_code => l_line_definition_code
7944 ,p_accounting_line_code => l_component_code
7945 ,p_accounting_line_type_code => l_component_type_code
7946 ,p_accounting_line_appl_id => l_component_appl_id
7947 ,p_amb_context_code => l_amb_context_code
7948 ,p_entity_code => l_entity_code
7949 ,p_event_class_code => l_event_class_code);
7950 --
7951 -- set accounting class
7952 --
7953 xla_ae_lines_pkg.SetAcctClass(
7954 p_accounting_class_code => 'COST'
7955 , p_ae_header_id => l_ae_header_id
7956 );
7957
7958 --
7959 -- set rounding class
7960 --
7961 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
7962 'COST';
7963
7964 --
7965 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
7966 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
7967 --
7968 -- bulk performance
7969 --
7970 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
7971
7972 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
7973 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
7974
7975 -- 4955764
7976 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7977 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
7978
7979 -- 4458381 Public Sector Enh
7980
7981 --
7982 -- set accounting attributes for the line type
7983 --
7984 l_entered_amt_idx := 40;
7985 l_accted_amt_idx := 45;
7986 l_bflow_applied_to_amt_idx := 19; -- 5132302
7987 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
7988 l_rec_acct_attrs.array_char_value(1) := p_source_23;
7989 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
7990 l_rec_acct_attrs.array_char_value(2) := p_source_24;
7991 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
7992 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
7993 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
7994 l_rec_acct_attrs.array_num_value(4) := p_source_52;
7995 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
7996 l_rec_acct_attrs.array_char_value(5) := p_source_26;
7997 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
7998 l_rec_acct_attrs.array_num_value(6) := p_source_53;
7999 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
8000 l_rec_acct_attrs.array_date_value(7) := p_source_28;
8001 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
8002 l_rec_acct_attrs.array_num_value(8) := p_source_29;
8003 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
8004 l_rec_acct_attrs.array_char_value(9) := p_source_30;
8005 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
8006 l_rec_acct_attrs.array_char_value(10) := p_source_31;
8007 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
8008 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
8009 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
8010 l_rec_acct_attrs.array_num_value(12) := p_source_52;
8011 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
8012 l_rec_acct_attrs.array_char_value(13) := p_source_26;
8013 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
8014 l_rec_acct_attrs.array_num_value(14) := p_source_53;
8015 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
8016 l_rec_acct_attrs.array_date_value(15) := p_source_28;
8017 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
8018 l_rec_acct_attrs.array_num_value(16) := p_source_29;
8019 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
8020 l_rec_acct_attrs.array_char_value(17) := p_source_30;
8021 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
8022 l_rec_acct_attrs.array_char_value(18) := p_source_32;
8023 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
8024 l_rec_acct_attrs.array_num_value(19) := p_source_54;
8025 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
8026 l_rec_acct_attrs.array_num_value(20) := p_source_55;
8030 l_rec_acct_attrs.array_char_value(22) := p_source_57;
8027 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
8028 l_rec_acct_attrs.array_char_value(21) := p_source_56;
8029 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
8031 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
8032 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_58);
8033 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
8034 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_59);
8035 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
8036 l_rec_acct_attrs.array_char_value(25) := p_source_60;
8037 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
8038 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_33);
8039 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
8040 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_34);
8041 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
8042 l_rec_acct_attrs.array_char_value(28) := p_source_35;
8043 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
8044 l_rec_acct_attrs.array_char_value(29) := p_source_41;
8045 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
8046 l_rec_acct_attrs.array_num_value(30) := p_source_3;
8047 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
8048 l_rec_acct_attrs.array_num_value(31) := p_source_54;
8049 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
8050 l_rec_acct_attrs.array_char_value(32) := p_source_26;
8051 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
8052 l_rec_acct_attrs.array_num_value(33) := p_source_54;
8053 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
8054 l_rec_acct_attrs.array_char_value(34) := p_source_61;
8055 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
8056 l_rec_acct_attrs.array_num_value(35) := p_source_3;
8057 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
8058 l_rec_acct_attrs.array_num_value(36) := p_source_54;
8059 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
8060 l_rec_acct_attrs.array_char_value(37) := p_source_26;
8061 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
8062 l_rec_acct_attrs.array_num_value(38) := p_source_54;
8063 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
8064 l_rec_acct_attrs.array_char_value(39) := p_source_44;
8065 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
8066 l_rec_acct_attrs.array_num_value(40) := p_source_52;
8067 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
8068 l_rec_acct_attrs.array_char_value(41) := p_source_26;
8069 l_rec_acct_attrs.array_acct_attr_code(42) := 'EXCHANGE_DATE';
8070 l_rec_acct_attrs.array_date_value(42) := p_source_28;
8071 l_rec_acct_attrs.array_acct_attr_code(43) := 'EXCHANGE_RATE';
8072 l_rec_acct_attrs.array_num_value(43) := p_source_29;
8073 l_rec_acct_attrs.array_acct_attr_code(44) := 'EXCHANGE_RATE_TYPE';
8074 l_rec_acct_attrs.array_char_value(44) := p_source_30;
8075 l_rec_acct_attrs.array_acct_attr_code(45) := 'LEDGER_AMOUNT';
8076 l_rec_acct_attrs.array_num_value(45) := p_source_53;
8077 l_rec_acct_attrs.array_acct_attr_code(46) := 'REVERSED_DISTRIBUTION_ID1';
8078 l_rec_acct_attrs.array_num_value(46) := to_char(p_source_33);
8079 l_rec_acct_attrs.array_acct_attr_code(47) := 'REVERSED_DISTRIBUTION_ID2';
8080 l_rec_acct_attrs.array_num_value(47) := to_char(p_source_36);
8081 l_rec_acct_attrs.array_acct_attr_code(48) := 'REVERSED_DISTRIBUTION_TYPE';
8082 l_rec_acct_attrs.array_char_value(48) := p_source_35;
8083 l_rec_acct_attrs.array_acct_attr_code(49) := 'UPG_CR_ENC_TYPE_ID';
8084 l_rec_acct_attrs.array_num_value(49) := p_source_62;
8085 l_rec_acct_attrs.array_acct_attr_code(50) := 'UPG_DR_ENC_TYPE_ID';
8086 l_rec_acct_attrs.array_num_value(50) := p_source_63;
8087
8088 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
8089 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
8090
8091 ---------------------------------------------------------------------------------------------------------------
8092 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
8093 ---------------------------------------------------------------------------------------------------------------
8094 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
8095
8096 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8097 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8098
8099 IF xla_accounting_cache_pkg.GetValueChar
8100 (p_source_code => 'LEDGER_CATEGORY_CODE'
8101 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
8102 AND l_bflow_method_code = 'PRIOR_ENTRY'
8103 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
8104 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
8105 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
8106 )
8107 THEN
8108 xla_ae_lines_pkg.BflowUpgEntry
8109 (p_business_method_code => l_bflow_method_code
8110 ,p_business_class_code => l_bflow_class_code
8111 ,p_balance_type => l_balance_type_code);
8112 ELSE
8113 NULL;
8114 -- No business flow processing for business flow method of NONE.
8115 END IF;
8116
8117 --
8118 -- call analytical criteria
8119 --
8120
8121 --
8122 -- call description
8123 --
8124 -- No description or it is inherited.
8125 --
8126 -- call ADRs
8127 -- Bug 4922099
8128 --
8132 )
8129 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8130 (NVL(l_actual_upg_option, 'N') = 'O') OR
8131 (NVL(l_enc_upg_option, 'N') = 'O')
8133 THEN
8134 NULL;
8135 --
8136 --
8137
8138 l_ccid := AcctDerRule_12(
8139 p_application_id => p_application_id
8140 , p_ae_header_id => l_ae_header_id
8141 , p_source_4 => p_source_4
8142 , p_source_5 => p_source_5
8143 , p_source_6 => p_source_6
8144 , x_transaction_coa_id => l_adr_transaction_coa_id
8145 , x_accounting_coa_id => l_adr_accounting_coa_id
8146 , x_value_type_code => l_adr_value_type_code
8147 , p_side => 'NA'
8148 );
8149
8150 xla_ae_lines_pkg.set_ccid(
8151 p_code_combination_id => l_ccid
8152 , p_value_type_code => l_adr_value_type_code
8153 , p_transaction_coa_id => l_adr_transaction_coa_id
8154 , p_accounting_coa_id => l_adr_accounting_coa_id
8155 , p_adr_code => 'PA_COST_ACCT_RULE'
8156 , p_adr_type_code => 'S'
8157 , p_component_type => l_component_type
8158 , p_component_code => l_component_code
8159 , p_component_type_code => l_component_type_code
8160 , p_component_appl_id => l_component_appl_id
8161 , p_amb_context_code => l_amb_context_code
8162 , p_side => 'NA'
8163 );
8164
8165
8166 --
8167 --
8168 END IF;
8169 --
8170 -- Bug 4922099
8171 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
8172 (NVL(l_enc_upg_option, 'N') = 'O')
8173 ) AND
8174 (l_bflow_method_code = 'PRIOR_ENTRY')
8175 )
8176 THEN
8177 IF
8178 --
8179 1 = 2
8180 --
8181 THEN
8182 xla_accounting_err_pkg.build_message
8183 (p_appli_s_name => 'XLA'
8184 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8185 ,p_token_1 => 'LINE_NUMBER'
8186 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
8187 ,p_token_2 => 'LINE_TYPE_NAME'
8188 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
8189 l_component_type
8190 ,l_component_code
8191 ,l_component_type_code
8192 ,l_component_appl_id
8193 ,l_amb_context_code
8194 ,l_entity_code
8195 ,l_event_class_code
8196 )
8197 ,p_token_3 => 'OWNER'
8198 ,p_value_3 => xla_lookups_pkg.get_meaning(
8199 p_lookup_type => 'XLA_OWNER_TYPE'
8200 ,p_lookup_code => l_component_type_code
8201 )
8202 ,p_token_4 => 'PRODUCT_NAME'
8203 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
8204 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8205 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8206 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
8207 ,p_ae_header_id => NULL
8208 );
8209
8210 IF (C_LEVEL_ERROR>= g_log_level) THEN
8211 trace
8212 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8213 ,p_level => C_LEVEL_ERROR
8214 ,p_module => l_log_module);
8215 END IF;
8216 END IF;
8217 END IF;
8218 --
8219 --
8220 ------------------------------------------------------------------------------------------------
8221 -- 4219869 Business Flow
8222 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
8223 -- Prior Entry. Currently, the following code is always generated.
8224 ------------------------------------------------------------------------------------------------
8225 XLA_AE_LINES_PKG.ValidateCurrentLine;
8226
8227 ------------------------------------------------------------------------------------
8228 -- 4219869 Business Flow
8229 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
8230 ------------------------------------------------------------------------------------
8231 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8232
8233 ----------------------------------------------------------------------------------
8234 -- 4219869 Business Flow
8235 -- Update journal entry status -- Need to generate this within IF <condition>
8236 ----------------------------------------------------------------------------------
8237 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8238 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
8239 ,p_balance_type_code => l_balance_type_code
8243 -- 4262811 - Generate the Accrual Reversal lines
8240 );
8241
8242 -------------------------------------------------------------------------------------------
8244 -------------------------------------------------------------------------------------------
8245 BEGIN
8246 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
8247 (g_array_event(p_event_id).array_value_num('header_index'));
8248 IF l_acc_rev_flag IS NULL THEN
8249 l_acc_rev_flag := 'N';
8250 END IF;
8251 EXCEPTION
8252 WHEN OTHERS THEN
8253 l_acc_rev_flag := 'N';
8254 END;
8255 --
8256 IF (l_acc_rev_flag = 'Y') THEN
8257
8258 -- 4645092 ------------------------------------------------------------------------------
8259 -- To allow MPA report to determine if it should generate report process
8260 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
8261 ------------------------------------------------------------------------------------------
8262
8263 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
8264 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
8265
8266 --
8267 -- Update the line information that should be overwritten
8268 --
8269 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
8270 p_header_num => 1);
8271 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
8272
8273 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
8274
8275 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
8276 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
8277 END IF;
8278
8279 --
8280 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
8281 --
8282 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
8283 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
8284 ELSE
8285 ---------------------------------------------------------------------------------------------------
8286 -- 4262811a Switch Sign
8287 ---------------------------------------------------------------------------------------------------
8288 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
8289 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8290 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8291 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8292 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8293 -- 5132302
8294 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
8295 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8296
8297 END IF;
8298
8299 -- 4955764
8300 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8301 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
8302
8303
8304 XLA_AE_LINES_PKG.ValidateCurrentLine;
8305 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8306
8307 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8308 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
8309 ,p_balance_type_code => l_balance_type_code);
8310
8311 END IF;
8312
8313 -----------------------------------------------------------------------------------------
8314 -- 4262811 Multiperiod Accounting
8315 -----------------------------------------------------------------------------------------
8316 -- No MPA option is assigned.
8317
8318
8319 END IF;
8320 END IF;
8321 --
8322
8323 --
8324 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8325 trace
8326 (p_msg => 'END of AcctLineType_36'
8327 ,p_level => C_LEVEL_PROCEDURE
8328 ,p_module => l_log_module);
8329 END IF;
8330 --
8331 EXCEPTION
8332 WHEN xla_exceptions_pkg.application_exception THEN
8333 RAISE;
8334 WHEN OTHERS THEN
8335 xla_exceptions_pkg.raise_message
8336 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_36');
8337 END AcctLineType_36;
8338 --
8339
8340 ---------------------------------------
8341 --
8342 -- PRIVATE FUNCTION
8343 -- AcctLineType_37
8344 --
8345 ---------------------------------------
8346 PROCEDURE AcctLineType_37 (
8347 p_application_id IN NUMBER
8348 ,p_event_id IN NUMBER
8349 ,p_calculate_acctd_flag IN VARCHAR2
8350 ,p_calculate_g_l_flag IN VARCHAR2
8351 ,p_actual_flag IN OUT VARCHAR2
8352 ,p_balance_type_code OUT VARCHAR2
8353 ,p_gain_or_loss_ref OUT VARCHAR2
8354
8355 --Budget Code Combination ID
8356 , p_source_3 IN NUMBER
8357 --Cost CCID
8358 , p_source_4 IN NUMBER
8359 --Allow Account Override Flag
8360 , p_source_5 IN VARCHAR2
8361 --Adjustment Cost CCID
8362 , p_source_6 IN NUMBER
8363 --Cost Clearing CCID
8364 , p_source_7 IN NUMBER
8365 --Reversing Line Flag
8366 , p_source_23 IN VARCHAR2
8367 --Actual Upgrade Credit Accounting Class
8368 , p_source_24 IN VARCHAR2
8369 --Entered Currency Code
8370 , p_source_26 IN VARCHAR2
8371 --Exchange Rate Date
8375 --Exchange Rate Type
8372 , p_source_28 IN DATE
8373 --Exchange Rate
8374 , p_source_29 IN NUMBER
8376 , p_source_30 IN VARCHAR2
8377 --Actual Upgrade Debit Accounting Class
8378 , p_source_31 IN VARCHAR2
8379 --Use Actuals Upgrade Attributes Flag
8380 , p_source_32 IN VARCHAR2
8381 --Expenditure Item ID
8382 , p_source_33 IN NUMBER
8383 --Cost Distribution Line Number
8384 , p_source_34 IN NUMBER
8385 --Line Type
8386 , p_source_35 IN VARCHAR2
8387 , p_source_35_meaning IN VARCHAR2
8388 --Reversed Line Number
8389 , p_source_36 IN NUMBER
8390 --Encumbrance Upgrade Credit Accounting Class
8391 , p_source_41 IN VARCHAR2
8392 --Use Encumbrance Upgrade Attributes Flag
8393 , p_source_44 IN VARCHAR2
8394 --Entered Burdened Cost
8395 , p_source_52 IN NUMBER
8396 --Accounted Burdened Cost
8397 , p_source_53 IN NUMBER
8398 --Encumbrance Amount
8399 , p_source_54 IN NUMBER
8400 --Project Encumbrance Applied to Application Identifier
8401 , p_source_55 IN NUMBER
8402 --Project Encumbrance Applied to Distribution Type
8403 , p_source_56 IN VARCHAR2
8404 --Project Encumbrance Applied to Entity Code
8405 , p_source_57 IN VARCHAR2
8406 --Project Encumbrance Applied to First Distribution ID
8407 , p_source_58 IN NUMBER
8408 --Project Encumbrance Applied to First System Transaction ID
8409 , p_source_59 IN NUMBER
8410 --Project Encumbrance Applied to Second Distribution ID
8411 , p_source_60 IN VARCHAR2
8412 --Encumbrance Upgrade Debit Accounting Class
8413 , p_source_61 IN VARCHAR2
8414 --Encumbrance Type ID
8415 , p_source_62 IN NUMBER
8416 --Project Encumbrance Type ID
8417 , p_source_63 IN NUMBER
8418 )
8419 IS
8420
8421 l_component_type VARCHAR2(80);
8422 l_component_code VARCHAR2(30);
8423 l_component_type_code VARCHAR2(1);
8424 l_component_appl_id INTEGER;
8425 l_amb_context_code VARCHAR2(30);
8426 l_entity_code VARCHAR2(30);
8427 l_event_class_code VARCHAR2(30);
8428 l_ae_header_id NUMBER;
8429 l_event_type_code VARCHAR2(30);
8430 l_line_definition_code VARCHAR2(30);
8431 l_line_definition_owner_code VARCHAR2(1);
8432 --
8433 -- adr variables
8434 l_segment VARCHAR2(30);
8435 l_ccid NUMBER;
8436 l_adr_transaction_coa_id NUMBER;
8437 l_adr_accounting_coa_id NUMBER;
8438 l_adr_flexfield_segment_code VARCHAR2(30);
8439 l_adr_flex_value_set_id NUMBER;
8440 l_adr_value_type_code VARCHAR2(30);
8441 l_adr_value_combination_id NUMBER;
8442 l_adr_value_segment_code VARCHAR2(30);
8443
8444 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
8445 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
8446 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
8447 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
8448
8449 -- 4262811 Variables ------------------------------------------------------------------------------------------
8450 l_entered_amt_idx NUMBER;
8451 l_accted_amt_idx NUMBER;
8452 l_acc_rev_flag VARCHAR2(1);
8453 l_accrual_line_num NUMBER;
8454 l_tmp_amt NUMBER;
8455 l_acc_rev_natural_side_code VARCHAR2(1);
8456
8457 l_num_entries NUMBER;
8458 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
8459 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
8460 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
8461 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
8462 l_recog_line_1 NUMBER;
8463 l_recog_line_2 NUMBER;
8464
8465 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
8466 l_bflow_applied_to_amt NUMBER; -- 5132302
8467 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
8468
8469 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
8470
8471 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
8472 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
8473
8474 ---------------------------------------------------------------------------------------------------------------
8475
8476
8477 --
8478 -- bulk performance
8479 --
8480 l_balance_type_code VARCHAR2(1);
8481 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
8482 l_log_module VARCHAR2(240);
8483
8484 --
8485 -- Upgrade strategy
8486 --
8487 l_actual_upg_option VARCHAR2(1);
8488 l_enc_upg_option VARCHAR2(1);
8489
8490 --
8491 BEGIN
8492 --
8493 IF g_log_enabled THEN
8494 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_37';
8495 END IF;
8496 --
8497 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8498
8499 trace
8500 (p_msg => 'BEGIN of AcctLineType_37'
8501 ,p_level => C_LEVEL_PROCEDURE
8502 ,p_module => l_log_module);
8503
8504 END IF;
8505 --
8506 l_component_type := 'AMB_JLT';
8507 l_component_code := 'PA_BURDEN_COST_ADJ';
8508 l_component_type_code := 'S';
8509 l_component_appl_id := 275;
8510 l_amb_context_code := 'DEFAULT';
8511 l_entity_code := 'EXPENDITURES';
8512 l_event_class_code := 'BURDEN_COST_ADJ';
8513 l_event_type_code := 'BURDEN_COST_ADJ_ALL';
8517 l_balance_type_code := 'A';
8514 l_line_definition_owner_code := 'S';
8515 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
8516 --
8518 l_segment := NULL;
8519 l_ccid := NULL;
8520 l_adr_transaction_coa_id := NULL;
8521 l_adr_accounting_coa_id := NULL;
8522 l_adr_flexfield_segment_code := NULL;
8523 l_adr_flex_value_set_id := NULL;
8524 l_adr_value_type_code := NULL;
8525 l_adr_value_combination_id := NULL;
8526 l_adr_value_segment_code := NULL;
8527
8528 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
8529 l_bflow_class_code := ''; -- 4219869 Business Flow
8530 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
8531 l_budgetary_control_flag := 'N';
8532
8533 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8534 l_bflow_applied_to_amt := NULL; -- 5132302
8535 l_entered_amt_idx := NULL; -- 4262811
8536 l_accted_amt_idx := NULL; -- 4262811
8537 l_acc_rev_flag := NULL; -- 4262811
8538 l_accrual_line_num := NULL; -- 4262811
8539 l_tmp_amt := NULL; -- 4262811
8540 --
8541
8542 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
8543 l_balance_type_code <> 'B' THEN
8544 IF NVL(p_source_35,'
8545 ') = 'R'
8546 THEN
8547
8548 --
8549 XLA_AE_LINES_PKG.SetNewLine;
8550
8551 p_balance_type_code := l_balance_type_code;
8552 -- set the flag so later we will know whether the gain loss line needs to be created
8553
8554 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
8555 p_actual_flag :='A';
8556 END IF;
8557
8558 --
8559 -- bulk performance
8560 --
8561 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
8562 p_header_num => 0); -- 4262811
8563 --
8564 -- set accounting line options
8565 --
8566 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
8567 p_natural_side_code => 'D'
8568 , p_gain_or_loss_flag => 'N'
8569 , p_gl_transfer_mode_code => 'S'
8570 , p_acct_entry_type_code => 'A'
8571 , p_switch_side_flag => 'Y'
8572 , p_merge_duplicate_code => 'N'
8573 );
8574 --
8575 l_acc_rev_natural_side_code := 'C'; -- 4262811
8576 --
8577 --
8578 -- set accounting line type info
8579 --
8580 xla_ae_lines_pkg.SetAcctLineType
8581 (p_component_type => l_component_type
8582 ,p_event_type_code => l_event_type_code
8583 ,p_line_definition_owner_code => l_line_definition_owner_code
8584 ,p_line_definition_code => l_line_definition_code
8585 ,p_accounting_line_code => l_component_code
8586 ,p_accounting_line_type_code => l_component_type_code
8587 ,p_accounting_line_appl_id => l_component_appl_id
8588 ,p_amb_context_code => l_amb_context_code
8589 ,p_entity_code => l_entity_code
8590 ,p_event_class_code => l_event_class_code);
8591 --
8592 -- set accounting class
8593 --
8594 xla_ae_lines_pkg.SetAcctClass(
8595 p_accounting_class_code => 'COST'
8596 , p_ae_header_id => l_ae_header_id
8597 );
8598
8599 --
8600 -- set rounding class
8601 --
8602 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
8603 'COST';
8604
8605 --
8606 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
8607 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
8608 --
8609 -- bulk performance
8610 --
8611 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
8612
8613 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
8614 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
8615
8616 -- 4955764
8617 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8618 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
8619
8620 -- 4458381 Public Sector Enh
8621
8622 --
8623 -- set accounting attributes for the line type
8624 --
8625 l_entered_amt_idx := 40;
8626 l_accted_amt_idx := 45;
8627 l_bflow_applied_to_amt_idx := 19; -- 5132302
8628 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
8629 l_rec_acct_attrs.array_char_value(1) := p_source_23;
8630 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
8631 l_rec_acct_attrs.array_char_value(2) := p_source_24;
8632 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
8633 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
8634 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
8635 l_rec_acct_attrs.array_num_value(4) := p_source_52;
8636 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
8637 l_rec_acct_attrs.array_char_value(5) := p_source_26;
8638 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
8639 l_rec_acct_attrs.array_num_value(6) := p_source_53;
8640 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
8641 l_rec_acct_attrs.array_date_value(7) := p_source_28;
8642 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
8643 l_rec_acct_attrs.array_num_value(8) := p_source_29;
8644 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
8648 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
8645 l_rec_acct_attrs.array_char_value(9) := p_source_30;
8646 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
8647 l_rec_acct_attrs.array_char_value(10) := p_source_31;
8649 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
8650 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
8651 l_rec_acct_attrs.array_num_value(12) := p_source_52;
8652 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
8653 l_rec_acct_attrs.array_char_value(13) := p_source_26;
8654 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
8655 l_rec_acct_attrs.array_num_value(14) := p_source_53;
8656 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
8657 l_rec_acct_attrs.array_date_value(15) := p_source_28;
8658 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
8659 l_rec_acct_attrs.array_num_value(16) := p_source_29;
8660 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
8661 l_rec_acct_attrs.array_char_value(17) := p_source_30;
8662 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
8663 l_rec_acct_attrs.array_char_value(18) := p_source_32;
8664 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
8665 l_rec_acct_attrs.array_num_value(19) := p_source_54;
8666 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
8667 l_rec_acct_attrs.array_num_value(20) := p_source_55;
8668 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
8669 l_rec_acct_attrs.array_char_value(21) := p_source_56;
8670 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
8671 l_rec_acct_attrs.array_char_value(22) := p_source_57;
8672 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
8673 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_58);
8674 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
8675 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_59);
8676 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
8677 l_rec_acct_attrs.array_char_value(25) := p_source_60;
8678 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
8679 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_33);
8680 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
8681 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_34);
8682 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
8683 l_rec_acct_attrs.array_char_value(28) := p_source_35;
8684 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
8685 l_rec_acct_attrs.array_char_value(29) := p_source_41;
8686 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
8687 l_rec_acct_attrs.array_num_value(30) := p_source_3;
8688 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
8689 l_rec_acct_attrs.array_num_value(31) := p_source_54;
8690 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
8691 l_rec_acct_attrs.array_char_value(32) := p_source_26;
8692 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
8693 l_rec_acct_attrs.array_num_value(33) := p_source_54;
8694 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
8695 l_rec_acct_attrs.array_char_value(34) := p_source_61;
8696 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
8697 l_rec_acct_attrs.array_num_value(35) := p_source_3;
8698 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
8699 l_rec_acct_attrs.array_num_value(36) := p_source_54;
8700 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
8701 l_rec_acct_attrs.array_char_value(37) := p_source_26;
8702 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
8703 l_rec_acct_attrs.array_num_value(38) := p_source_54;
8704 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
8705 l_rec_acct_attrs.array_char_value(39) := p_source_44;
8706 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
8707 l_rec_acct_attrs.array_num_value(40) := p_source_52;
8708 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
8709 l_rec_acct_attrs.array_char_value(41) := p_source_26;
8710 l_rec_acct_attrs.array_acct_attr_code(42) := 'EXCHANGE_DATE';
8711 l_rec_acct_attrs.array_date_value(42) := p_source_28;
8712 l_rec_acct_attrs.array_acct_attr_code(43) := 'EXCHANGE_RATE';
8713 l_rec_acct_attrs.array_num_value(43) := p_source_29;
8714 l_rec_acct_attrs.array_acct_attr_code(44) := 'EXCHANGE_RATE_TYPE';
8715 l_rec_acct_attrs.array_char_value(44) := p_source_30;
8716 l_rec_acct_attrs.array_acct_attr_code(45) := 'LEDGER_AMOUNT';
8717 l_rec_acct_attrs.array_num_value(45) := p_source_53;
8718 l_rec_acct_attrs.array_acct_attr_code(46) := 'REVERSED_DISTRIBUTION_ID1';
8719 l_rec_acct_attrs.array_num_value(46) := to_char(p_source_33);
8720 l_rec_acct_attrs.array_acct_attr_code(47) := 'REVERSED_DISTRIBUTION_ID2';
8721 l_rec_acct_attrs.array_num_value(47) := to_char(p_source_36);
8722 l_rec_acct_attrs.array_acct_attr_code(48) := 'REVERSED_DISTRIBUTION_TYPE';
8723 l_rec_acct_attrs.array_char_value(48) := p_source_35;
8724 l_rec_acct_attrs.array_acct_attr_code(49) := 'UPG_CR_ENC_TYPE_ID';
8725 l_rec_acct_attrs.array_num_value(49) := p_source_62;
8726 l_rec_acct_attrs.array_acct_attr_code(50) := 'UPG_DR_ENC_TYPE_ID';
8727 l_rec_acct_attrs.array_num_value(50) := p_source_63;
8728
8729 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
8730 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
8731
8732 ---------------------------------------------------------------------------------------------------------------
8733 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
8737 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8734 ---------------------------------------------------------------------------------------------------------------
8735 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
8736
8738 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8739
8740 IF xla_accounting_cache_pkg.GetValueChar
8741 (p_source_code => 'LEDGER_CATEGORY_CODE'
8742 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
8743 AND l_bflow_method_code = 'PRIOR_ENTRY'
8744 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
8745 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
8746 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
8747 )
8748 THEN
8749 xla_ae_lines_pkg.BflowUpgEntry
8750 (p_business_method_code => l_bflow_method_code
8751 ,p_business_class_code => l_bflow_class_code
8752 ,p_balance_type => l_balance_type_code);
8753 ELSE
8754 NULL;
8755 -- No business flow processing for business flow method of NONE.
8756 END IF;
8757
8758 --
8759 -- call analytical criteria
8760 --
8761
8762 --
8763 -- call description
8764 --
8765 -- No description or it is inherited.
8766 --
8767 -- call ADRs
8768 -- Bug 4922099
8769 --
8770 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8771 (NVL(l_actual_upg_option, 'N') = 'O') OR
8772 (NVL(l_enc_upg_option, 'N') = 'O')
8773 )
8774 THEN
8775 NULL;
8776 --
8777 --
8778
8779 l_ccid := AcctDerRule_13(
8780 p_application_id => p_application_id
8781 , p_ae_header_id => l_ae_header_id
8782 , p_source_5 => p_source_5
8783 , p_source_6 => p_source_6
8784 , x_transaction_coa_id => l_adr_transaction_coa_id
8785 , x_accounting_coa_id => l_adr_accounting_coa_id
8786 , x_value_type_code => l_adr_value_type_code
8787 , p_side => 'NA'
8788 );
8789
8790 xla_ae_lines_pkg.set_ccid(
8791 p_code_combination_id => l_ccid
8792 , p_value_type_code => l_adr_value_type_code
8793 , p_transaction_coa_id => l_adr_transaction_coa_id
8794 , p_accounting_coa_id => l_adr_accounting_coa_id
8795 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
8796 , p_adr_type_code => 'S'
8797 , p_component_type => l_component_type
8798 , p_component_code => l_component_code
8799 , p_component_type_code => l_component_type_code
8800 , p_component_appl_id => l_component_appl_id
8801 , p_amb_context_code => l_amb_context_code
8802 , p_side => 'NA'
8803 );
8804
8805
8806 --
8807 --
8808 END IF;
8809 --
8810 -- Bug 4922099
8811 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
8812 (NVL(l_enc_upg_option, 'N') = 'O')
8813 ) AND
8814 (l_bflow_method_code = 'PRIOR_ENTRY')
8815 )
8816 THEN
8817 IF
8818 --
8819 1 = 2
8820 --
8821 THEN
8822 xla_accounting_err_pkg.build_message
8823 (p_appli_s_name => 'XLA'
8824 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8825 ,p_token_1 => 'LINE_NUMBER'
8826 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
8827 ,p_token_2 => 'LINE_TYPE_NAME'
8828 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
8829 l_component_type
8830 ,l_component_code
8831 ,l_component_type_code
8832 ,l_component_appl_id
8833 ,l_amb_context_code
8834 ,l_entity_code
8835 ,l_event_class_code
8836 )
8837 ,p_token_3 => 'OWNER'
8838 ,p_value_3 => xla_lookups_pkg.get_meaning(
8839 p_lookup_type => 'XLA_OWNER_TYPE'
8840 ,p_lookup_code => l_component_type_code
8841 )
8842 ,p_token_4 => 'PRODUCT_NAME'
8843 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
8844 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8845 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8846 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
8847 ,p_ae_header_id => NULL
8848 );
8849
8850 IF (C_LEVEL_ERROR>= g_log_level) THEN
8854 ,p_module => l_log_module);
8851 trace
8852 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8853 ,p_level => C_LEVEL_ERROR
8855 END IF;
8856 END IF;
8857 END IF;
8858 --
8859 --
8860 ------------------------------------------------------------------------------------------------
8861 -- 4219869 Business Flow
8862 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
8863 -- Prior Entry. Currently, the following code is always generated.
8864 ------------------------------------------------------------------------------------------------
8865 XLA_AE_LINES_PKG.ValidateCurrentLine;
8866
8867 ------------------------------------------------------------------------------------
8868 -- 4219869 Business Flow
8869 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
8870 ------------------------------------------------------------------------------------
8871 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8872
8873 ----------------------------------------------------------------------------------
8874 -- 4219869 Business Flow
8875 -- Update journal entry status -- Need to generate this within IF <condition>
8876 ----------------------------------------------------------------------------------
8877 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8878 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
8879 ,p_balance_type_code => l_balance_type_code
8880 );
8881
8882 -------------------------------------------------------------------------------------------
8883 -- 4262811 - Generate the Accrual Reversal lines
8884 -------------------------------------------------------------------------------------------
8885 BEGIN
8886 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
8887 (g_array_event(p_event_id).array_value_num('header_index'));
8888 IF l_acc_rev_flag IS NULL THEN
8889 l_acc_rev_flag := 'N';
8890 END IF;
8891 EXCEPTION
8892 WHEN OTHERS THEN
8893 l_acc_rev_flag := 'N';
8894 END;
8895 --
8896 IF (l_acc_rev_flag = 'Y') THEN
8897
8898 -- 4645092 ------------------------------------------------------------------------------
8899 -- To allow MPA report to determine if it should generate report process
8900 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
8901 ------------------------------------------------------------------------------------------
8902
8903 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
8904 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
8905
8906 --
8907 -- Update the line information that should be overwritten
8908 --
8909 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
8910 p_header_num => 1);
8911 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
8912
8913 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
8914
8915 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
8916 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
8917 END IF;
8918
8919 --
8920 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
8921 --
8922 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
8923 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
8924 ELSE
8925 ---------------------------------------------------------------------------------------------------
8926 -- 4262811a Switch Sign
8927 ---------------------------------------------------------------------------------------------------
8928 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
8929 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8930 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8931 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8932 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8933 -- 5132302
8934 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
8935 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8936
8937 END IF;
8938
8939 -- 4955764
8940 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8941 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
8942
8943
8944 XLA_AE_LINES_PKG.ValidateCurrentLine;
8945 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8946
8947 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8948 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
8949 ,p_balance_type_code => l_balance_type_code);
8950
8951 END IF;
8952
8953 -----------------------------------------------------------------------------------------
8954 -- 4262811 Multiperiod Accounting
8955 -----------------------------------------------------------------------------------------
8956 -- No MPA option is assigned.
8957
8958
8959 END IF;
8960 END IF;
8961 --
8962
8963 --
8964 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8965 trace
8966 (p_msg => 'END of AcctLineType_37'
8970 --
8967 ,p_level => C_LEVEL_PROCEDURE
8968 ,p_module => l_log_module);
8969 END IF;
8971 EXCEPTION
8972 WHEN xla_exceptions_pkg.application_exception THEN
8973 RAISE;
8974 WHEN OTHERS THEN
8975 xla_exceptions_pkg.raise_message
8976 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_37');
8977 END AcctLineType_37;
8978 --
8979
8980 ---------------------------------------
8981 --
8982 -- PRIVATE FUNCTION
8983 -- AcctLineType_38
8984 --
8985 ---------------------------------------
8986 PROCEDURE AcctLineType_38 (
8987 p_application_id IN NUMBER
8988 ,p_event_id IN NUMBER
8989 ,p_calculate_acctd_flag IN VARCHAR2
8990 ,p_calculate_g_l_flag IN VARCHAR2
8991 ,p_actual_flag IN OUT VARCHAR2
8992 ,p_balance_type_code OUT VARCHAR2
8993 ,p_gain_or_loss_ref OUT VARCHAR2
8994
8995 --Budget Code Combination ID
8996 , p_source_3 IN NUMBER
8997 --Cost CCID
8998 , p_source_4 IN NUMBER
8999 --Allow Account Override Flag
9000 , p_source_5 IN VARCHAR2
9001 --Cost Clearing CCID
9002 , p_source_7 IN NUMBER
9003 --Adjustment Cost Clearing CCID
9004 , p_source_8 IN NUMBER
9005 --Reversing Line Flag
9006 , p_source_23 IN VARCHAR2
9007 --Actual Upgrade Credit Accounting Class
9008 , p_source_24 IN VARCHAR2
9009 --Entered Currency Code
9010 , p_source_26 IN VARCHAR2
9011 --Exchange Rate Date
9012 , p_source_28 IN DATE
9013 --Exchange Rate
9014 , p_source_29 IN NUMBER
9015 --Exchange Rate Type
9016 , p_source_30 IN VARCHAR2
9017 --Actual Upgrade Debit Accounting Class
9018 , p_source_31 IN VARCHAR2
9019 --Use Actuals Upgrade Attributes Flag
9020 , p_source_32 IN VARCHAR2
9021 --Expenditure Item ID
9022 , p_source_33 IN NUMBER
9023 --Cost Distribution Line Number
9024 , p_source_34 IN NUMBER
9025 --Line Type
9026 , p_source_35 IN VARCHAR2
9027 , p_source_35_meaning IN VARCHAR2
9028 --Reversed Line Number
9029 , p_source_36 IN NUMBER
9030 --Encumbrance Upgrade Credit Accounting Class
9031 , p_source_41 IN VARCHAR2
9032 --Use Encumbrance Upgrade Attributes Flag
9033 , p_source_44 IN VARCHAR2
9034 --Entered Burdened Cost
9035 , p_source_52 IN NUMBER
9036 --Accounted Burdened Cost
9037 , p_source_53 IN NUMBER
9038 --Encumbrance Amount
9039 , p_source_54 IN NUMBER
9040 --Project Encumbrance Applied to Application Identifier
9041 , p_source_55 IN NUMBER
9042 --Project Encumbrance Applied to Distribution Type
9043 , p_source_56 IN VARCHAR2
9044 --Project Encumbrance Applied to Entity Code
9045 , p_source_57 IN VARCHAR2
9046 --Project Encumbrance Applied to First Distribution ID
9047 , p_source_58 IN NUMBER
9048 --Project Encumbrance Applied to First System Transaction ID
9049 , p_source_59 IN NUMBER
9050 --Project Encumbrance Applied to Second Distribution ID
9051 , p_source_60 IN VARCHAR2
9052 --Encumbrance Upgrade Debit Accounting Class
9053 , p_source_61 IN VARCHAR2
9054 --Encumbrance Type ID
9055 , p_source_62 IN NUMBER
9056 --Project Encumbrance Type ID
9057 , p_source_63 IN NUMBER
9058 )
9059 IS
9060
9061 l_component_type VARCHAR2(80);
9062 l_component_code VARCHAR2(30);
9063 l_component_type_code VARCHAR2(1);
9064 l_component_appl_id INTEGER;
9065 l_amb_context_code VARCHAR2(30);
9066 l_entity_code VARCHAR2(30);
9067 l_event_class_code VARCHAR2(30);
9068 l_ae_header_id NUMBER;
9069 l_event_type_code VARCHAR2(30);
9070 l_line_definition_code VARCHAR2(30);
9071 l_line_definition_owner_code VARCHAR2(1);
9072 --
9073 -- adr variables
9074 l_segment VARCHAR2(30);
9075 l_ccid NUMBER;
9076 l_adr_transaction_coa_id NUMBER;
9077 l_adr_accounting_coa_id NUMBER;
9078 l_adr_flexfield_segment_code VARCHAR2(30);
9079 l_adr_flex_value_set_id NUMBER;
9080 l_adr_value_type_code VARCHAR2(30);
9081 l_adr_value_combination_id NUMBER;
9082 l_adr_value_segment_code VARCHAR2(30);
9083
9084 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
9085 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
9086 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
9087 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
9088
9089 -- 4262811 Variables ------------------------------------------------------------------------------------------
9090 l_entered_amt_idx NUMBER;
9091 l_accted_amt_idx NUMBER;
9092 l_acc_rev_flag VARCHAR2(1);
9093 l_accrual_line_num NUMBER;
9094 l_tmp_amt NUMBER;
9095 l_acc_rev_natural_side_code VARCHAR2(1);
9096
9097 l_num_entries NUMBER;
9098 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
9099 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
9100 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
9101 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
9102 l_recog_line_1 NUMBER;
9103 l_recog_line_2 NUMBER;
9104
9105 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
9106 l_bflow_applied_to_amt NUMBER; -- 5132302
9107 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
9108
9112 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
9109 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
9110
9111 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
9113
9114 ---------------------------------------------------------------------------------------------------------------
9115
9116
9117 --
9118 -- bulk performance
9119 --
9120 l_balance_type_code VARCHAR2(1);
9121 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
9122 l_log_module VARCHAR2(240);
9123
9124 --
9125 -- Upgrade strategy
9126 --
9127 l_actual_upg_option VARCHAR2(1);
9128 l_enc_upg_option VARCHAR2(1);
9129
9130 --
9131 BEGIN
9132 --
9133 IF g_log_enabled THEN
9134 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_38';
9135 END IF;
9136 --
9137 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9138
9139 trace
9140 (p_msg => 'BEGIN of AcctLineType_38'
9141 ,p_level => C_LEVEL_PROCEDURE
9142 ,p_module => l_log_module);
9143
9144 END IF;
9145 --
9146 l_component_type := 'AMB_JLT';
9147 l_component_code := 'PA_BURDEN_COST_ADJ_CLEARING';
9148 l_component_type_code := 'S';
9149 l_component_appl_id := 275;
9150 l_amb_context_code := 'DEFAULT';
9151 l_entity_code := 'EXPENDITURES';
9152 l_event_class_code := 'BURDEN_COST_ADJ';
9153 l_event_type_code := 'BURDEN_COST_ADJ_ALL';
9154 l_line_definition_owner_code := 'S';
9155 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
9156 --
9157 l_balance_type_code := 'A';
9158 l_segment := NULL;
9159 l_ccid := NULL;
9160 l_adr_transaction_coa_id := NULL;
9161 l_adr_accounting_coa_id := NULL;
9162 l_adr_flexfield_segment_code := NULL;
9163 l_adr_flex_value_set_id := NULL;
9164 l_adr_value_type_code := NULL;
9165 l_adr_value_combination_id := NULL;
9166 l_adr_value_segment_code := NULL;
9167
9168 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
9169 l_bflow_class_code := ''; -- 4219869 Business Flow
9170 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
9171 l_budgetary_control_flag := 'N';
9172
9173 l_bflow_applied_to_amt_idx := NULL; -- 5132302
9174 l_bflow_applied_to_amt := NULL; -- 5132302
9175 l_entered_amt_idx := NULL; -- 4262811
9176 l_accted_amt_idx := NULL; -- 4262811
9177 l_acc_rev_flag := NULL; -- 4262811
9178 l_accrual_line_num := NULL; -- 4262811
9179 l_tmp_amt := NULL; -- 4262811
9180 --
9181
9182 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
9183 l_balance_type_code <> 'B' THEN
9184 IF NVL(p_source_35,'
9185 ') = 'R'
9186 THEN
9187
9188 --
9189 XLA_AE_LINES_PKG.SetNewLine;
9190
9191 p_balance_type_code := l_balance_type_code;
9192 -- set the flag so later we will know whether the gain loss line needs to be created
9193
9194 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
9195 p_actual_flag :='A';
9196 END IF;
9197
9198 --
9199 -- bulk performance
9200 --
9201 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
9202 p_header_num => 0); -- 4262811
9203 --
9204 -- set accounting line options
9205 --
9206 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
9207 p_natural_side_code => 'C'
9208 , p_gain_or_loss_flag => 'N'
9209 , p_gl_transfer_mode_code => 'S'
9210 , p_acct_entry_type_code => 'A'
9211 , p_switch_side_flag => 'Y'
9212 , p_merge_duplicate_code => 'N'
9213 );
9214 --
9215 l_acc_rev_natural_side_code := 'D'; -- 4262811
9216 --
9217 --
9218 -- set accounting line type info
9219 --
9220 xla_ae_lines_pkg.SetAcctLineType
9221 (p_component_type => l_component_type
9222 ,p_event_type_code => l_event_type_code
9223 ,p_line_definition_owner_code => l_line_definition_owner_code
9224 ,p_line_definition_code => l_line_definition_code
9225 ,p_accounting_line_code => l_component_code
9226 ,p_accounting_line_type_code => l_component_type_code
9227 ,p_accounting_line_appl_id => l_component_appl_id
9228 ,p_amb_context_code => l_amb_context_code
9229 ,p_entity_code => l_entity_code
9230 ,p_event_class_code => l_event_class_code);
9231 --
9232 -- set accounting class
9233 --
9234 xla_ae_lines_pkg.SetAcctClass(
9235 p_accounting_class_code => 'COST_CLEARING'
9236 , p_ae_header_id => l_ae_header_id
9237 );
9238
9239 --
9240 -- set rounding class
9241 --
9242 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
9243 'COST_CLEARING';
9244
9245 --
9246 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
9247 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
9248 --
9249 -- bulk performance
9250 --
9251 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
9252
9253 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
9257 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9254 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9255
9256 -- 4955764
9258 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
9259
9260 -- 4458381 Public Sector Enh
9261
9262 --
9263 -- set accounting attributes for the line type
9264 --
9265 l_entered_amt_idx := 40;
9266 l_accted_amt_idx := 45;
9267 l_bflow_applied_to_amt_idx := 19; -- 5132302
9268 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
9269 l_rec_acct_attrs.array_char_value(1) := p_source_23;
9270 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
9271 l_rec_acct_attrs.array_char_value(2) := p_source_24;
9272 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
9273 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
9274 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
9275 l_rec_acct_attrs.array_num_value(4) := p_source_52;
9276 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
9277 l_rec_acct_attrs.array_char_value(5) := p_source_26;
9278 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
9279 l_rec_acct_attrs.array_num_value(6) := p_source_53;
9280 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
9281 l_rec_acct_attrs.array_date_value(7) := p_source_28;
9282 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
9283 l_rec_acct_attrs.array_num_value(8) := p_source_29;
9284 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
9285 l_rec_acct_attrs.array_char_value(9) := p_source_30;
9286 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
9287 l_rec_acct_attrs.array_char_value(10) := p_source_31;
9288 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
9289 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
9290 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
9291 l_rec_acct_attrs.array_num_value(12) := p_source_52;
9292 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
9293 l_rec_acct_attrs.array_char_value(13) := p_source_26;
9294 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
9295 l_rec_acct_attrs.array_num_value(14) := p_source_53;
9296 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
9297 l_rec_acct_attrs.array_date_value(15) := p_source_28;
9298 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
9299 l_rec_acct_attrs.array_num_value(16) := p_source_29;
9300 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
9301 l_rec_acct_attrs.array_char_value(17) := p_source_30;
9302 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
9303 l_rec_acct_attrs.array_char_value(18) := p_source_32;
9304 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
9305 l_rec_acct_attrs.array_num_value(19) := p_source_54;
9306 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
9307 l_rec_acct_attrs.array_num_value(20) := p_source_55;
9308 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
9309 l_rec_acct_attrs.array_char_value(21) := p_source_56;
9310 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
9311 l_rec_acct_attrs.array_char_value(22) := p_source_57;
9312 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
9313 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_58);
9314 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
9315 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_59);
9316 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
9317 l_rec_acct_attrs.array_char_value(25) := p_source_60;
9318 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
9319 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_33);
9320 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
9321 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_34);
9322 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
9323 l_rec_acct_attrs.array_char_value(28) := p_source_35;
9324 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
9325 l_rec_acct_attrs.array_char_value(29) := p_source_41;
9326 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
9327 l_rec_acct_attrs.array_num_value(30) := p_source_3;
9328 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
9329 l_rec_acct_attrs.array_num_value(31) := p_source_54;
9330 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
9331 l_rec_acct_attrs.array_char_value(32) := p_source_26;
9332 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
9333 l_rec_acct_attrs.array_num_value(33) := p_source_54;
9334 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
9335 l_rec_acct_attrs.array_char_value(34) := p_source_61;
9336 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
9337 l_rec_acct_attrs.array_num_value(35) := p_source_3;
9338 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
9339 l_rec_acct_attrs.array_num_value(36) := p_source_54;
9340 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
9341 l_rec_acct_attrs.array_char_value(37) := p_source_26;
9342 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
9343 l_rec_acct_attrs.array_num_value(38) := p_source_54;
9344 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
9345 l_rec_acct_attrs.array_char_value(39) := p_source_44;
9346 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
9347 l_rec_acct_attrs.array_num_value(40) := p_source_52;
9348 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
9352 l_rec_acct_attrs.array_acct_attr_code(43) := 'EXCHANGE_RATE';
9349 l_rec_acct_attrs.array_char_value(41) := p_source_26;
9350 l_rec_acct_attrs.array_acct_attr_code(42) := 'EXCHANGE_DATE';
9351 l_rec_acct_attrs.array_date_value(42) := p_source_28;
9353 l_rec_acct_attrs.array_num_value(43) := p_source_29;
9354 l_rec_acct_attrs.array_acct_attr_code(44) := 'EXCHANGE_RATE_TYPE';
9355 l_rec_acct_attrs.array_char_value(44) := p_source_30;
9356 l_rec_acct_attrs.array_acct_attr_code(45) := 'LEDGER_AMOUNT';
9357 l_rec_acct_attrs.array_num_value(45) := p_source_53;
9358 l_rec_acct_attrs.array_acct_attr_code(46) := 'REVERSED_DISTRIBUTION_ID1';
9359 l_rec_acct_attrs.array_num_value(46) := to_char(p_source_33);
9360 l_rec_acct_attrs.array_acct_attr_code(47) := 'REVERSED_DISTRIBUTION_ID2';
9361 l_rec_acct_attrs.array_num_value(47) := to_char(p_source_36);
9362 l_rec_acct_attrs.array_acct_attr_code(48) := 'REVERSED_DISTRIBUTION_TYPE';
9363 l_rec_acct_attrs.array_char_value(48) := p_source_35;
9364 l_rec_acct_attrs.array_acct_attr_code(49) := 'UPG_CR_ENC_TYPE_ID';
9365 l_rec_acct_attrs.array_num_value(49) := p_source_62;
9366 l_rec_acct_attrs.array_acct_attr_code(50) := 'UPG_DR_ENC_TYPE_ID';
9367 l_rec_acct_attrs.array_num_value(50) := p_source_63;
9368
9369 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
9370 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
9371
9372 ---------------------------------------------------------------------------------------------------------------
9373 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
9374 ---------------------------------------------------------------------------------------------------------------
9375 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
9376
9377 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9378 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9379
9380 IF xla_accounting_cache_pkg.GetValueChar
9381 (p_source_code => 'LEDGER_CATEGORY_CODE'
9382 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9383 AND l_bflow_method_code = 'PRIOR_ENTRY'
9384 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
9385 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
9386 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
9387 )
9388 THEN
9389 xla_ae_lines_pkg.BflowUpgEntry
9390 (p_business_method_code => l_bflow_method_code
9391 ,p_business_class_code => l_bflow_class_code
9392 ,p_balance_type => l_balance_type_code);
9393 ELSE
9394 NULL;
9395 -- No business flow processing for business flow method of NONE.
9396 END IF;
9397
9398 --
9399 -- call analytical criteria
9400 --
9401
9402 --
9403 -- call description
9404 --
9405 -- No description or it is inherited.
9406 --
9407 -- call ADRs
9408 -- Bug 4922099
9409 --
9410 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9411 (NVL(l_actual_upg_option, 'N') = 'O') OR
9412 (NVL(l_enc_upg_option, 'N') = 'O')
9413 )
9414 THEN
9415 NULL;
9416 --
9417 --
9418
9419 l_ccid := AcctDerRule_15(
9420 p_application_id => p_application_id
9421 , p_ae_header_id => l_ae_header_id
9422 , p_source_5 => p_source_5
9423 , p_source_8 => p_source_8
9424 , x_transaction_coa_id => l_adr_transaction_coa_id
9425 , x_accounting_coa_id => l_adr_accounting_coa_id
9426 , x_value_type_code => l_adr_value_type_code
9427 , p_side => 'NA'
9428 );
9429
9430 xla_ae_lines_pkg.set_ccid(
9431 p_code_combination_id => l_ccid
9432 , p_value_type_code => l_adr_value_type_code
9433 , p_transaction_coa_id => l_adr_transaction_coa_id
9434 , p_accounting_coa_id => l_adr_accounting_coa_id
9435 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
9436 , p_adr_type_code => 'S'
9437 , p_component_type => l_component_type
9438 , p_component_code => l_component_code
9439 , p_component_type_code => l_component_type_code
9440 , p_component_appl_id => l_component_appl_id
9441 , p_amb_context_code => l_amb_context_code
9442 , p_side => 'NA'
9443 );
9444
9445
9446 --
9447 --
9448 END IF;
9449 --
9450 -- Bug 4922099
9451 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
9452 (NVL(l_enc_upg_option, 'N') = 'O')
9453 ) AND
9454 (l_bflow_method_code = 'PRIOR_ENTRY')
9455 )
9456 THEN
9457 IF
9458 --
9459 1 = 2
9460 --
9461 THEN
9462 xla_accounting_err_pkg.build_message
9463 (p_appli_s_name => 'XLA'
9464 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9465 ,p_token_1 => 'LINE_NUMBER'
9466 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
9467 ,p_token_2 => 'LINE_TYPE_NAME'
9468 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
9469 l_component_type
9470 ,l_component_code
9474 ,l_entity_code
9471 ,l_component_type_code
9472 ,l_component_appl_id
9473 ,l_amb_context_code
9475 ,l_event_class_code
9476 )
9477 ,p_token_3 => 'OWNER'
9478 ,p_value_3 => xla_lookups_pkg.get_meaning(
9479 p_lookup_type => 'XLA_OWNER_TYPE'
9480 ,p_lookup_code => l_component_type_code
9481 )
9482 ,p_token_4 => 'PRODUCT_NAME'
9483 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
9484 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
9485 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
9486 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
9487 ,p_ae_header_id => NULL
9488 );
9489
9490 IF (C_LEVEL_ERROR>= g_log_level) THEN
9491 trace
9492 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9493 ,p_level => C_LEVEL_ERROR
9494 ,p_module => l_log_module);
9495 END IF;
9496 END IF;
9497 END IF;
9498 --
9499 --
9500 ------------------------------------------------------------------------------------------------
9501 -- 4219869 Business Flow
9502 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
9503 -- Prior Entry. Currently, the following code is always generated.
9504 ------------------------------------------------------------------------------------------------
9505 XLA_AE_LINES_PKG.ValidateCurrentLine;
9506
9507 ------------------------------------------------------------------------------------
9508 -- 4219869 Business Flow
9509 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
9510 ------------------------------------------------------------------------------------
9511 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9512
9513 ----------------------------------------------------------------------------------
9514 -- 4219869 Business Flow
9515 -- Update journal entry status -- Need to generate this within IF <condition>
9516 ----------------------------------------------------------------------------------
9517 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9518 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
9519 ,p_balance_type_code => l_balance_type_code
9520 );
9521
9522 -------------------------------------------------------------------------------------------
9523 -- 4262811 - Generate the Accrual Reversal lines
9524 -------------------------------------------------------------------------------------------
9525 BEGIN
9526 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
9527 (g_array_event(p_event_id).array_value_num('header_index'));
9528 IF l_acc_rev_flag IS NULL THEN
9529 l_acc_rev_flag := 'N';
9530 END IF;
9531 EXCEPTION
9532 WHEN OTHERS THEN
9533 l_acc_rev_flag := 'N';
9534 END;
9535 --
9536 IF (l_acc_rev_flag = 'Y') THEN
9537
9538 -- 4645092 ------------------------------------------------------------------------------
9539 -- To allow MPA report to determine if it should generate report process
9540 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
9541 ------------------------------------------------------------------------------------------
9542
9543 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
9544 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
9545
9546 --
9547 -- Update the line information that should be overwritten
9548 --
9549 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
9550 p_header_num => 1);
9551 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
9552
9553 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
9554
9555 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
9556 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
9557 END IF;
9558
9559 --
9560 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
9561 --
9562 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
9563 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
9564 ELSE
9565 ---------------------------------------------------------------------------------------------------
9566 -- 4262811a Switch Sign
9567 ---------------------------------------------------------------------------------------------------
9568 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
9569 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9573 -- 5132302
9570 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9571 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9572 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9574 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
9575 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9576
9577 END IF;
9578
9579 -- 4955764
9580 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9581 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
9582
9583
9584 XLA_AE_LINES_PKG.ValidateCurrentLine;
9585 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9586
9587 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9588 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
9589 ,p_balance_type_code => l_balance_type_code);
9590
9591 END IF;
9592
9593 -----------------------------------------------------------------------------------------
9594 -- 4262811 Multiperiod Accounting
9595 -----------------------------------------------------------------------------------------
9596 -- No MPA option is assigned.
9597
9598
9599 END IF;
9600 END IF;
9601 --
9602
9603 --
9604 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9605 trace
9606 (p_msg => 'END of AcctLineType_38'
9607 ,p_level => C_LEVEL_PROCEDURE
9608 ,p_module => l_log_module);
9609 END IF;
9610 --
9611 EXCEPTION
9612 WHEN xla_exceptions_pkg.application_exception THEN
9613 RAISE;
9614 WHEN OTHERS THEN
9615 xla_exceptions_pkg.raise_message
9616 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_38');
9617 END AcctLineType_38;
9618 --
9619
9620 ---------------------------------------
9621 --
9622 -- PRIVATE FUNCTION
9623 -- AcctLineType_39
9624 --
9625 ---------------------------------------
9626 PROCEDURE AcctLineType_39 (
9627 p_application_id IN NUMBER
9628 ,p_event_id IN NUMBER
9629 ,p_calculate_acctd_flag IN VARCHAR2
9630 ,p_calculate_g_l_flag IN VARCHAR2
9631 ,p_actual_flag IN OUT VARCHAR2
9632 ,p_balance_type_code OUT VARCHAR2
9633 ,p_gain_or_loss_ref OUT VARCHAR2
9634
9635 --Budget Code Combination ID
9636 , p_source_3 IN NUMBER
9637 --Cost CCID
9638 , p_source_4 IN NUMBER
9639 --Allow Account Override Flag
9640 , p_source_5 IN VARCHAR2
9641 --Cost Clearing CCID
9642 , p_source_7 IN NUMBER
9643 --Adjustment Cost Clearing CCID
9644 , p_source_8 IN NUMBER
9645 --Reversing Line Flag
9646 , p_source_23 IN VARCHAR2
9647 --Actual Upgrade Credit Accounting Class
9648 , p_source_24 IN VARCHAR2
9649 --Entered Currency Code
9650 , p_source_26 IN VARCHAR2
9651 --Exchange Rate Date
9652 , p_source_28 IN DATE
9653 --Exchange Rate
9654 , p_source_29 IN NUMBER
9655 --Exchange Rate Type
9656 , p_source_30 IN VARCHAR2
9657 --Actual Upgrade Debit Accounting Class
9658 , p_source_31 IN VARCHAR2
9659 --Use Actuals Upgrade Attributes Flag
9660 , p_source_32 IN VARCHAR2
9661 --Expenditure Item ID
9662 , p_source_33 IN NUMBER
9663 --Cost Distribution Line Number
9664 , p_source_34 IN NUMBER
9665 --Line Type
9666 , p_source_35 IN VARCHAR2
9667 , p_source_35_meaning IN VARCHAR2
9668 --Reversed Line Number
9669 , p_source_36 IN NUMBER
9670 --Encumbrance Upgrade Credit Accounting Class
9671 , p_source_41 IN VARCHAR2
9672 --Use Encumbrance Upgrade Attributes Flag
9673 , p_source_44 IN VARCHAR2
9674 --Entered Burdened Cost
9675 , p_source_52 IN NUMBER
9676 --Accounted Burdened Cost
9677 , p_source_53 IN NUMBER
9678 --Encumbrance Amount
9679 , p_source_54 IN NUMBER
9680 --Project Encumbrance Applied to Application Identifier
9681 , p_source_55 IN NUMBER
9682 --Project Encumbrance Applied to Distribution Type
9683 , p_source_56 IN VARCHAR2
9684 --Project Encumbrance Applied to Entity Code
9685 , p_source_57 IN VARCHAR2
9686 --Project Encumbrance Applied to First Distribution ID
9687 , p_source_58 IN NUMBER
9688 --Project Encumbrance Applied to First System Transaction ID
9689 , p_source_59 IN NUMBER
9690 --Project Encumbrance Applied to Second Distribution ID
9691 , p_source_60 IN VARCHAR2
9692 --Encumbrance Upgrade Debit Accounting Class
9693 , p_source_61 IN VARCHAR2
9694 --Encumbrance Type ID
9695 , p_source_62 IN NUMBER
9696 --Project Encumbrance Type ID
9697 , p_source_63 IN NUMBER
9698 )
9699 IS
9700
9701 l_component_type VARCHAR2(80);
9702 l_component_code VARCHAR2(30);
9703 l_component_type_code VARCHAR2(1);
9704 l_component_appl_id INTEGER;
9705 l_amb_context_code VARCHAR2(30);
9706 l_entity_code VARCHAR2(30);
9707 l_event_class_code VARCHAR2(30);
9708 l_ae_header_id NUMBER;
9709 l_event_type_code VARCHAR2(30);
9710 l_line_definition_code VARCHAR2(30);
9711 l_line_definition_owner_code VARCHAR2(1);
9712 --
9713 -- adr variables
9714 l_segment VARCHAR2(30);
9715 l_ccid NUMBER;
9716 l_adr_transaction_coa_id NUMBER;
9720 l_adr_value_type_code VARCHAR2(30);
9717 l_adr_accounting_coa_id NUMBER;
9718 l_adr_flexfield_segment_code VARCHAR2(30);
9719 l_adr_flex_value_set_id NUMBER;
9721 l_adr_value_combination_id NUMBER;
9722 l_adr_value_segment_code VARCHAR2(30);
9723
9724 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
9725 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
9726 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
9727 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
9728
9729 -- 4262811 Variables ------------------------------------------------------------------------------------------
9730 l_entered_amt_idx NUMBER;
9731 l_accted_amt_idx NUMBER;
9732 l_acc_rev_flag VARCHAR2(1);
9733 l_accrual_line_num NUMBER;
9734 l_tmp_amt NUMBER;
9735 l_acc_rev_natural_side_code VARCHAR2(1);
9736
9737 l_num_entries NUMBER;
9738 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
9739 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
9740 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
9741 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
9742 l_recog_line_1 NUMBER;
9743 l_recog_line_2 NUMBER;
9744
9745 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
9746 l_bflow_applied_to_amt NUMBER; -- 5132302
9747 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
9748
9749 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
9750
9751 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
9752 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
9753
9754 ---------------------------------------------------------------------------------------------------------------
9755
9756
9757 --
9758 -- bulk performance
9759 --
9760 l_balance_type_code VARCHAR2(1);
9761 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
9762 l_log_module VARCHAR2(240);
9763
9764 --
9765 -- Upgrade strategy
9766 --
9767 l_actual_upg_option VARCHAR2(1);
9768 l_enc_upg_option VARCHAR2(1);
9769
9770 --
9771 BEGIN
9772 --
9773 IF g_log_enabled THEN
9774 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_39';
9775 END IF;
9776 --
9777 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9778
9779 trace
9780 (p_msg => 'BEGIN of AcctLineType_39'
9781 ,p_level => C_LEVEL_PROCEDURE
9782 ,p_module => l_log_module);
9783
9784 END IF;
9785 --
9786 l_component_type := 'AMB_JLT';
9787 l_component_code := 'PA_BURDEN_COST_ADJ_CLEAR_FED';
9788 l_component_type_code := 'S';
9789 l_component_appl_id := 275;
9790 l_amb_context_code := 'DEFAULT';
9791 l_entity_code := 'EXPENDITURES';
9792 l_event_class_code := 'BURDEN_COST_ADJ';
9793 l_event_type_code := 'BURDEN_COST_ADJ_ALL';
9794 l_line_definition_owner_code := 'S';
9795 l_line_definition_code := 'FV_BUDGET_JLD';
9796 --
9797 l_balance_type_code := 'A';
9798 l_segment := NULL;
9799 l_ccid := NULL;
9800 l_adr_transaction_coa_id := NULL;
9801 l_adr_accounting_coa_id := NULL;
9802 l_adr_flexfield_segment_code := NULL;
9803 l_adr_flex_value_set_id := NULL;
9804 l_adr_value_type_code := NULL;
9805 l_adr_value_combination_id := NULL;
9806 l_adr_value_segment_code := NULL;
9807
9808 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
9809 l_bflow_class_code := ''; -- 4219869 Business Flow
9810 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
9811 l_budgetary_control_flag := 'N';
9812
9813 l_bflow_applied_to_amt_idx := NULL; -- 5132302
9814 l_bflow_applied_to_amt := NULL; -- 5132302
9815 l_entered_amt_idx := NULL; -- 4262811
9816 l_accted_amt_idx := NULL; -- 4262811
9817 l_acc_rev_flag := NULL; -- 4262811
9818 l_accrual_line_num := NULL; -- 4262811
9819 l_tmp_amt := NULL; -- 4262811
9820 --
9821
9822 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
9823 l_balance_type_code <> 'B' THEN
9824 IF NVL(p_source_35,'
9825 ') = 'R'
9826 THEN
9827
9828 --
9829 XLA_AE_LINES_PKG.SetNewLine;
9830
9831 p_balance_type_code := l_balance_type_code;
9832 -- set the flag so later we will know whether the gain loss line needs to be created
9833
9834 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
9835 p_actual_flag :='A';
9836 END IF;
9837
9838 --
9839 -- bulk performance
9840 --
9841 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
9842 p_header_num => 0); -- 4262811
9843 --
9844 -- set accounting line options
9845 --
9846 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
9847 p_natural_side_code => 'C'
9848 , p_gain_or_loss_flag => 'N'
9849 , p_gl_transfer_mode_code => 'S'
9850 , p_acct_entry_type_code => 'A'
9851 , p_switch_side_flag => 'Y'
9852 , p_merge_duplicate_code => 'N'
9853 );
9854 --
9855 l_acc_rev_natural_side_code := 'D'; -- 4262811
9856 --
9857 --
9858 -- set accounting line type info
9859 --
9863 ,p_line_definition_owner_code => l_line_definition_owner_code
9860 xla_ae_lines_pkg.SetAcctLineType
9861 (p_component_type => l_component_type
9862 ,p_event_type_code => l_event_type_code
9864 ,p_line_definition_code => l_line_definition_code
9865 ,p_accounting_line_code => l_component_code
9866 ,p_accounting_line_type_code => l_component_type_code
9867 ,p_accounting_line_appl_id => l_component_appl_id
9868 ,p_amb_context_code => l_amb_context_code
9869 ,p_entity_code => l_entity_code
9870 ,p_event_class_code => l_event_class_code);
9871 --
9872 -- set accounting class
9873 --
9874 xla_ae_lines_pkg.SetAcctClass(
9875 p_accounting_class_code => 'FEDERAL_PROJECT_COST_CLEARING'
9876 , p_ae_header_id => l_ae_header_id
9877 );
9878
9879 --
9880 -- set rounding class
9881 --
9882 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
9883 'FEDERAL_PROJECT_COST_CLEARING';
9884
9885 --
9886 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
9887 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
9888 --
9889 -- bulk performance
9890 --
9891 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
9892
9893 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
9894 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9895
9896 -- 4955764
9897 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9898 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
9899
9900 -- 4458381 Public Sector Enh
9901
9902 --
9903 -- set accounting attributes for the line type
9904 --
9905 l_entered_amt_idx := 40;
9906 l_accted_amt_idx := 45;
9907 l_bflow_applied_to_amt_idx := 19; -- 5132302
9908 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
9909 l_rec_acct_attrs.array_char_value(1) := p_source_23;
9910 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
9911 l_rec_acct_attrs.array_char_value(2) := p_source_24;
9912 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
9913 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
9914 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
9915 l_rec_acct_attrs.array_num_value(4) := p_source_52;
9916 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
9917 l_rec_acct_attrs.array_char_value(5) := p_source_26;
9918 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
9919 l_rec_acct_attrs.array_num_value(6) := p_source_53;
9920 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
9921 l_rec_acct_attrs.array_date_value(7) := p_source_28;
9922 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
9923 l_rec_acct_attrs.array_num_value(8) := p_source_29;
9924 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
9925 l_rec_acct_attrs.array_char_value(9) := p_source_30;
9926 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
9927 l_rec_acct_attrs.array_char_value(10) := p_source_31;
9928 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
9929 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
9930 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
9931 l_rec_acct_attrs.array_num_value(12) := p_source_52;
9932 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
9933 l_rec_acct_attrs.array_char_value(13) := p_source_26;
9934 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
9935 l_rec_acct_attrs.array_num_value(14) := p_source_53;
9936 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
9937 l_rec_acct_attrs.array_date_value(15) := p_source_28;
9938 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
9939 l_rec_acct_attrs.array_num_value(16) := p_source_29;
9940 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
9941 l_rec_acct_attrs.array_char_value(17) := p_source_30;
9942 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
9943 l_rec_acct_attrs.array_char_value(18) := p_source_32;
9944 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
9945 l_rec_acct_attrs.array_num_value(19) := p_source_54;
9946 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
9947 l_rec_acct_attrs.array_num_value(20) := p_source_55;
9948 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
9949 l_rec_acct_attrs.array_char_value(21) := p_source_56;
9950 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
9951 l_rec_acct_attrs.array_char_value(22) := p_source_57;
9952 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
9953 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_58);
9954 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
9955 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_59);
9956 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
9957 l_rec_acct_attrs.array_char_value(25) := p_source_60;
9958 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
9959 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_33);
9960 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
9961 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_34);
9962 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
9963 l_rec_acct_attrs.array_char_value(28) := p_source_35;
9967 l_rec_acct_attrs.array_num_value(30) := p_source_3;
9964 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
9965 l_rec_acct_attrs.array_char_value(29) := p_source_41;
9966 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
9968 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
9969 l_rec_acct_attrs.array_num_value(31) := p_source_54;
9970 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
9971 l_rec_acct_attrs.array_char_value(32) := p_source_26;
9972 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
9973 l_rec_acct_attrs.array_num_value(33) := p_source_54;
9974 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
9975 l_rec_acct_attrs.array_char_value(34) := p_source_61;
9976 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
9977 l_rec_acct_attrs.array_num_value(35) := p_source_3;
9978 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
9979 l_rec_acct_attrs.array_num_value(36) := p_source_54;
9980 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
9981 l_rec_acct_attrs.array_char_value(37) := p_source_26;
9982 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
9983 l_rec_acct_attrs.array_num_value(38) := p_source_54;
9984 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
9985 l_rec_acct_attrs.array_char_value(39) := p_source_44;
9986 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
9987 l_rec_acct_attrs.array_num_value(40) := p_source_52;
9988 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
9989 l_rec_acct_attrs.array_char_value(41) := p_source_26;
9990 l_rec_acct_attrs.array_acct_attr_code(42) := 'EXCHANGE_DATE';
9991 l_rec_acct_attrs.array_date_value(42) := p_source_28;
9992 l_rec_acct_attrs.array_acct_attr_code(43) := 'EXCHANGE_RATE';
9993 l_rec_acct_attrs.array_num_value(43) := p_source_29;
9994 l_rec_acct_attrs.array_acct_attr_code(44) := 'EXCHANGE_RATE_TYPE';
9995 l_rec_acct_attrs.array_char_value(44) := p_source_30;
9996 l_rec_acct_attrs.array_acct_attr_code(45) := 'LEDGER_AMOUNT';
9997 l_rec_acct_attrs.array_num_value(45) := p_source_53;
9998 l_rec_acct_attrs.array_acct_attr_code(46) := 'REVERSED_DISTRIBUTION_ID1';
9999 l_rec_acct_attrs.array_num_value(46) := to_char(p_source_33);
10000 l_rec_acct_attrs.array_acct_attr_code(47) := 'REVERSED_DISTRIBUTION_ID2';
10001 l_rec_acct_attrs.array_num_value(47) := to_char(p_source_36);
10002 l_rec_acct_attrs.array_acct_attr_code(48) := 'REVERSED_DISTRIBUTION_TYPE';
10003 l_rec_acct_attrs.array_char_value(48) := p_source_35;
10004 l_rec_acct_attrs.array_acct_attr_code(49) := 'UPG_CR_ENC_TYPE_ID';
10005 l_rec_acct_attrs.array_num_value(49) := p_source_62;
10006 l_rec_acct_attrs.array_acct_attr_code(50) := 'UPG_DR_ENC_TYPE_ID';
10007 l_rec_acct_attrs.array_num_value(50) := p_source_63;
10008
10009 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
10010 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
10011
10012 ---------------------------------------------------------------------------------------------------------------
10013 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
10014 ---------------------------------------------------------------------------------------------------------------
10015 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
10016
10017 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10018 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10019
10020 IF xla_accounting_cache_pkg.GetValueChar
10021 (p_source_code => 'LEDGER_CATEGORY_CODE'
10022 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
10023 AND l_bflow_method_code = 'PRIOR_ENTRY'
10024 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
10025 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
10026 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
10027 )
10028 THEN
10029 xla_ae_lines_pkg.BflowUpgEntry
10030 (p_business_method_code => l_bflow_method_code
10031 ,p_business_class_code => l_bflow_class_code
10032 ,p_balance_type => l_balance_type_code);
10033 ELSE
10034 NULL;
10035 -- No business flow processing for business flow method of NONE.
10036 END IF;
10037
10038 --
10039 -- call analytical criteria
10040 --
10041
10042 --
10043 -- call description
10044 --
10045 -- No description or it is inherited.
10046 --
10047 -- call ADRs
10048 -- Bug 4922099
10049 --
10050 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10051 (NVL(l_actual_upg_option, 'N') = 'O') OR
10052 (NVL(l_enc_upg_option, 'N') = 'O')
10053 )
10054 THEN
10055 NULL;
10056 --
10057 --
10058
10059 l_ccid := AcctDerRule_15(
10060 p_application_id => p_application_id
10061 , p_ae_header_id => l_ae_header_id
10062 , p_source_5 => p_source_5
10063 , p_source_8 => p_source_8
10064 , x_transaction_coa_id => l_adr_transaction_coa_id
10065 , x_accounting_coa_id => l_adr_accounting_coa_id
10066 , x_value_type_code => l_adr_value_type_code
10067 , p_side => 'NA'
10068 );
10069
10070 xla_ae_lines_pkg.set_ccid(
10071 p_code_combination_id => l_ccid
10072 , p_value_type_code => l_adr_value_type_code
10073 , p_transaction_coa_id => l_adr_transaction_coa_id
10074 , p_accounting_coa_id => l_adr_accounting_coa_id
10078 , p_component_code => l_component_code
10075 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
10076 , p_adr_type_code => 'S'
10077 , p_component_type => l_component_type
10079 , p_component_type_code => l_component_type_code
10080 , p_component_appl_id => l_component_appl_id
10081 , p_amb_context_code => l_amb_context_code
10082 , p_side => 'NA'
10083 );
10084
10085
10086 l_segment := AcctDerRule_5(
10087 p_application_id => p_application_id
10088 , p_ae_header_id => l_ae_header_id
10089 , x_transaction_coa_id => l_adr_transaction_coa_id
10090 , x_accounting_coa_id => l_adr_accounting_coa_id
10091 , x_flexfield_segment_code => l_adr_flexfield_segment_code
10092 , x_flex_value_set_id => l_adr_flex_value_set_id
10093 , x_value_type_code => l_adr_value_type_code
10094 , x_value_combination_id => l_adr_value_combination_id
10095 , x_value_segment_code => l_adr_value_segment_code
10096 , p_side => 'NA'
10097 , p_override_seg_flag => 'Y'
10098 );
10099
10100 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
10101
10102 xla_ae_lines_pkg.set_segment(
10103 p_to_segment_code => 'GL_ACCOUNT'
10104 , p_segment_value => l_segment
10105 , p_from_segment_code => l_adr_value_segment_code
10106 , p_from_combination_id => l_adr_value_combination_id
10107 , p_value_type_code => l_adr_value_type_code
10108 , p_transaction_coa_id => l_adr_transaction_coa_id
10109 , p_accounting_coa_id => l_adr_accounting_coa_id
10110 , p_flexfield_segment_code => l_adr_flexfield_segment_code
10111 , p_flex_value_set_id => l_adr_flex_value_set_id
10112 , p_adr_code => 'FV_490201_PROJECTS'
10113 , p_adr_type_code => 'S'
10114 , p_component_type => l_component_type
10115 , p_component_code => l_component_code
10116 , p_component_type_code => l_component_type_code
10117 , p_component_appl_id => l_component_appl_id
10118 , p_amb_context_code => l_amb_context_code
10119 , p_entity_code => 'EXPENDITURES'
10120 , p_event_class_code => 'BURDEN_COST_ADJ'
10121 , p_side => 'NA'
10122 );
10123
10124 END IF;
10125
10126 --
10127 --
10128 END IF;
10129 --
10130 -- Bug 4922099
10131 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
10132 (NVL(l_enc_upg_option, 'N') = 'O')
10133 ) AND
10134 (l_bflow_method_code = 'PRIOR_ENTRY')
10135 )
10136 THEN
10137 IF
10138 --
10139 1 = 2
10140 --
10141 THEN
10142 xla_accounting_err_pkg.build_message
10143 (p_appli_s_name => 'XLA'
10144 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10145 ,p_token_1 => 'LINE_NUMBER'
10146 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
10147 ,p_token_2 => 'LINE_TYPE_NAME'
10148 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
10149 l_component_type
10150 ,l_component_code
10151 ,l_component_type_code
10152 ,l_component_appl_id
10153 ,l_amb_context_code
10154 ,l_entity_code
10155 ,l_event_class_code
10156 )
10157 ,p_token_3 => 'OWNER'
10158 ,p_value_3 => xla_lookups_pkg.get_meaning(
10159 p_lookup_type => 'XLA_OWNER_TYPE'
10160 ,p_lookup_code => l_component_type_code
10161 )
10162 ,p_token_4 => 'PRODUCT_NAME'
10163 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
10164 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
10165 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
10166 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
10167 ,p_ae_header_id => NULL
10168 );
10169
10170 IF (C_LEVEL_ERROR>= g_log_level) THEN
10171 trace
10172 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10173 ,p_level => C_LEVEL_ERROR
10174 ,p_module => l_log_module);
10175 END IF;
10176 END IF;
10177 END IF;
10178 --
10179 --
10180 ------------------------------------------------------------------------------------------------
10181 -- 4219869 Business Flow
10185 XLA_AE_LINES_PKG.ValidateCurrentLine;
10182 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
10183 -- Prior Entry. Currently, the following code is always generated.
10184 ------------------------------------------------------------------------------------------------
10186
10187 ------------------------------------------------------------------------------------
10188 -- 4219869 Business Flow
10189 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
10190 ------------------------------------------------------------------------------------
10191 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10192
10193 ----------------------------------------------------------------------------------
10194 -- 4219869 Business Flow
10195 -- Update journal entry status -- Need to generate this within IF <condition>
10196 ----------------------------------------------------------------------------------
10197 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10198 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
10199 ,p_balance_type_code => l_balance_type_code
10200 );
10201
10202 -------------------------------------------------------------------------------------------
10203 -- 4262811 - Generate the Accrual Reversal lines
10204 -------------------------------------------------------------------------------------------
10205 BEGIN
10206 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
10207 (g_array_event(p_event_id).array_value_num('header_index'));
10208 IF l_acc_rev_flag IS NULL THEN
10209 l_acc_rev_flag := 'N';
10210 END IF;
10211 EXCEPTION
10212 WHEN OTHERS THEN
10213 l_acc_rev_flag := 'N';
10214 END;
10215 --
10216 IF (l_acc_rev_flag = 'Y') THEN
10217
10218 -- 4645092 ------------------------------------------------------------------------------
10219 -- To allow MPA report to determine if it should generate report process
10220 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
10221 ------------------------------------------------------------------------------------------
10222
10223 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
10224 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
10225
10226 --
10227 -- Update the line information that should be overwritten
10228 --
10229 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
10230 p_header_num => 1);
10231 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
10232
10233 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
10234
10235 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
10236 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
10237 END IF;
10238
10239 --
10240 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
10241 --
10242 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
10243 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
10244 ELSE
10245 ---------------------------------------------------------------------------------------------------
10246 -- 4262811a Switch Sign
10247 ---------------------------------------------------------------------------------------------------
10248 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
10249 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10250 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10251 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10252 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10253 -- 5132302
10254 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
10255 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10256
10257 END IF;
10258
10259 -- 4955764
10260 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10261 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
10262
10263
10264 XLA_AE_LINES_PKG.ValidateCurrentLine;
10265 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10266
10267 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10268 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
10269 ,p_balance_type_code => l_balance_type_code);
10270
10271 END IF;
10272
10273 -----------------------------------------------------------------------------------------
10274 -- 4262811 Multiperiod Accounting
10275 -----------------------------------------------------------------------------------------
10276 -- No MPA option is assigned.
10277
10278
10279 END IF;
10280 END IF;
10281 --
10282
10283 --
10284 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10285 trace
10286 (p_msg => 'END of AcctLineType_39'
10287 ,p_level => C_LEVEL_PROCEDURE
10288 ,p_module => l_log_module);
10289 END IF;
10290 --
10291 EXCEPTION
10292 WHEN xla_exceptions_pkg.application_exception THEN
10293 RAISE;
10294 WHEN OTHERS THEN
10295 xla_exceptions_pkg.raise_message
10296 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_39');
10300 ---------------------------------------
10297 END AcctLineType_39;
10298 --
10299
10301 --
10302 -- PRIVATE FUNCTION
10303 -- AcctLineType_40
10304 --
10305 ---------------------------------------
10306 PROCEDURE AcctLineType_40 (
10307 p_application_id IN NUMBER
10308 ,p_event_id IN NUMBER
10309 ,p_calculate_acctd_flag IN VARCHAR2
10310 ,p_calculate_g_l_flag IN VARCHAR2
10311 ,p_actual_flag IN OUT VARCHAR2
10312 ,p_balance_type_code OUT VARCHAR2
10313 ,p_gain_or_loss_ref OUT VARCHAR2
10314
10315 --Budget Code Combination ID
10316 , p_source_3 IN NUMBER
10317 --Cost CCID
10318 , p_source_4 IN NUMBER
10319 --Allow Account Override Flag
10320 , p_source_5 IN VARCHAR2
10321 --Adjustment Cost CCID
10322 , p_source_6 IN NUMBER
10323 --Cost Clearing CCID
10324 , p_source_7 IN NUMBER
10325 --Reversing Line Flag
10326 , p_source_23 IN VARCHAR2
10327 --Actual Upgrade Credit Accounting Class
10328 , p_source_24 IN VARCHAR2
10329 --Entered Currency Code
10330 , p_source_26 IN VARCHAR2
10331 --Exchange Rate Date
10332 , p_source_28 IN DATE
10333 --Exchange Rate
10334 , p_source_29 IN NUMBER
10335 --Exchange Rate Type
10336 , p_source_30 IN VARCHAR2
10337 --Actual Upgrade Debit Accounting Class
10338 , p_source_31 IN VARCHAR2
10339 --Use Actuals Upgrade Attributes Flag
10340 , p_source_32 IN VARCHAR2
10341 --Expenditure Item ID
10342 , p_source_33 IN NUMBER
10343 --Cost Distribution Line Number
10344 , p_source_34 IN NUMBER
10345 --Line Type
10346 , p_source_35 IN VARCHAR2
10347 , p_source_35_meaning IN VARCHAR2
10348 --Reversed Line Number
10349 , p_source_36 IN NUMBER
10350 --Encumbrance Upgrade Credit Accounting Class
10351 , p_source_41 IN VARCHAR2
10352 --Use Encumbrance Upgrade Attributes Flag
10353 , p_source_44 IN VARCHAR2
10354 --Entered Burdened Cost
10355 , p_source_52 IN NUMBER
10356 --Accounted Burdened Cost
10357 , p_source_53 IN NUMBER
10358 --Encumbrance Amount
10359 , p_source_54 IN NUMBER
10360 --Project Encumbrance Applied to Application Identifier
10361 , p_source_55 IN NUMBER
10362 --Project Encumbrance Applied to Distribution Type
10363 , p_source_56 IN VARCHAR2
10364 --Project Encumbrance Applied to Entity Code
10365 , p_source_57 IN VARCHAR2
10366 --Project Encumbrance Applied to First Distribution ID
10367 , p_source_58 IN NUMBER
10368 --Project Encumbrance Applied to First System Transaction ID
10369 , p_source_59 IN NUMBER
10370 --Project Encumbrance Applied to Second Distribution ID
10371 , p_source_60 IN VARCHAR2
10372 --Encumbrance Upgrade Debit Accounting Class
10373 , p_source_61 IN VARCHAR2
10374 --Encumbrance Type ID
10375 , p_source_62 IN NUMBER
10376 --Project Encumbrance Type ID
10377 , p_source_63 IN NUMBER
10378 )
10379 IS
10380
10381 l_component_type VARCHAR2(80);
10382 l_component_code VARCHAR2(30);
10383 l_component_type_code VARCHAR2(1);
10384 l_component_appl_id INTEGER;
10385 l_amb_context_code VARCHAR2(30);
10386 l_entity_code VARCHAR2(30);
10387 l_event_class_code VARCHAR2(30);
10388 l_ae_header_id NUMBER;
10389 l_event_type_code VARCHAR2(30);
10390 l_line_definition_code VARCHAR2(30);
10391 l_line_definition_owner_code VARCHAR2(1);
10392 --
10393 -- adr variables
10394 l_segment VARCHAR2(30);
10395 l_ccid NUMBER;
10396 l_adr_transaction_coa_id NUMBER;
10397 l_adr_accounting_coa_id NUMBER;
10398 l_adr_flexfield_segment_code VARCHAR2(30);
10399 l_adr_flex_value_set_id NUMBER;
10400 l_adr_value_type_code VARCHAR2(30);
10401 l_adr_value_combination_id NUMBER;
10402 l_adr_value_segment_code VARCHAR2(30);
10403
10404 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
10405 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
10406 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
10407 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
10408
10409 -- 4262811 Variables ------------------------------------------------------------------------------------------
10410 l_entered_amt_idx NUMBER;
10411 l_accted_amt_idx NUMBER;
10412 l_acc_rev_flag VARCHAR2(1);
10413 l_accrual_line_num NUMBER;
10414 l_tmp_amt NUMBER;
10415 l_acc_rev_natural_side_code VARCHAR2(1);
10416
10417 l_num_entries NUMBER;
10418 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
10419 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
10420 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
10421 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
10422 l_recog_line_1 NUMBER;
10423 l_recog_line_2 NUMBER;
10424
10425 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
10426 l_bflow_applied_to_amt NUMBER; -- 5132302
10427 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
10428
10429 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
10430
10431 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
10432 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
10433
10437 --
10434 ---------------------------------------------------------------------------------------------------------------
10435
10436
10438 -- bulk performance
10439 --
10440 l_balance_type_code VARCHAR2(1);
10441 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
10442 l_log_module VARCHAR2(240);
10443
10444 --
10445 -- Upgrade strategy
10446 --
10447 l_actual_upg_option VARCHAR2(1);
10448 l_enc_upg_option VARCHAR2(1);
10449
10450 --
10451 BEGIN
10452 --
10453 IF g_log_enabled THEN
10454 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_40';
10455 END IF;
10456 --
10457 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10458
10459 trace
10460 (p_msg => 'BEGIN of AcctLineType_40'
10461 ,p_level => C_LEVEL_PROCEDURE
10462 ,p_module => l_log_module);
10463
10464 END IF;
10465 --
10466 l_component_type := 'AMB_JLT';
10467 l_component_code := 'PA_BURDEN_COST_ADJ_FED';
10468 l_component_type_code := 'S';
10469 l_component_appl_id := 275;
10470 l_amb_context_code := 'DEFAULT';
10471 l_entity_code := 'EXPENDITURES';
10472 l_event_class_code := 'BURDEN_COST_ADJ';
10473 l_event_type_code := 'BURDEN_COST_ADJ_ALL';
10474 l_line_definition_owner_code := 'S';
10475 l_line_definition_code := 'FV_BUDGET_JLD';
10476 --
10477 l_balance_type_code := 'A';
10478 l_segment := NULL;
10479 l_ccid := NULL;
10480 l_adr_transaction_coa_id := NULL;
10481 l_adr_accounting_coa_id := NULL;
10482 l_adr_flexfield_segment_code := NULL;
10483 l_adr_flex_value_set_id := NULL;
10484 l_adr_value_type_code := NULL;
10485 l_adr_value_combination_id := NULL;
10486 l_adr_value_segment_code := NULL;
10487
10488 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
10489 l_bflow_class_code := ''; -- 4219869 Business Flow
10490 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
10491 l_budgetary_control_flag := 'N';
10492
10493 l_bflow_applied_to_amt_idx := NULL; -- 5132302
10494 l_bflow_applied_to_amt := NULL; -- 5132302
10495 l_entered_amt_idx := NULL; -- 4262811
10496 l_accted_amt_idx := NULL; -- 4262811
10497 l_acc_rev_flag := NULL; -- 4262811
10498 l_accrual_line_num := NULL; -- 4262811
10499 l_tmp_amt := NULL; -- 4262811
10500 --
10501
10502 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
10503 l_balance_type_code <> 'B' THEN
10504 IF NVL(p_source_35,'
10505 ') = 'R'
10506 THEN
10507
10508 --
10509 XLA_AE_LINES_PKG.SetNewLine;
10510
10511 p_balance_type_code := l_balance_type_code;
10512 -- set the flag so later we will know whether the gain loss line needs to be created
10513
10514 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
10515 p_actual_flag :='A';
10516 END IF;
10517
10518 --
10519 -- bulk performance
10520 --
10521 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
10522 p_header_num => 0); -- 4262811
10523 --
10524 -- set accounting line options
10525 --
10526 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
10527 p_natural_side_code => 'D'
10528 , p_gain_or_loss_flag => 'N'
10529 , p_gl_transfer_mode_code => 'S'
10530 , p_acct_entry_type_code => 'A'
10531 , p_switch_side_flag => 'Y'
10532 , p_merge_duplicate_code => 'N'
10533 );
10534 --
10535 l_acc_rev_natural_side_code := 'C'; -- 4262811
10536 --
10537 --
10538 -- set accounting line type info
10539 --
10540 xla_ae_lines_pkg.SetAcctLineType
10541 (p_component_type => l_component_type
10542 ,p_event_type_code => l_event_type_code
10543 ,p_line_definition_owner_code => l_line_definition_owner_code
10544 ,p_line_definition_code => l_line_definition_code
10545 ,p_accounting_line_code => l_component_code
10546 ,p_accounting_line_type_code => l_component_type_code
10547 ,p_accounting_line_appl_id => l_component_appl_id
10548 ,p_amb_context_code => l_amb_context_code
10549 ,p_entity_code => l_entity_code
10550 ,p_event_class_code => l_event_class_code);
10551 --
10552 -- set accounting class
10553 --
10554 xla_ae_lines_pkg.SetAcctClass(
10555 p_accounting_class_code => 'FEDERAL_PROJECT_COST'
10556 , p_ae_header_id => l_ae_header_id
10557 );
10558
10559 --
10560 -- set rounding class
10561 --
10562 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
10563 'FEDERAL_PROJECT_COST';
10564
10565 --
10566 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
10567 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
10568 --
10569 -- bulk performance
10570 --
10571 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
10572
10573 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
10574 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
10575
10576 -- 4955764
10577 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10581
10578 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
10579
10580 -- 4458381 Public Sector Enh
10582 --
10583 -- set accounting attributes for the line type
10584 --
10585 l_entered_amt_idx := 40;
10586 l_accted_amt_idx := 45;
10587 l_bflow_applied_to_amt_idx := 19; -- 5132302
10588 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
10589 l_rec_acct_attrs.array_char_value(1) := p_source_23;
10590 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
10591 l_rec_acct_attrs.array_char_value(2) := p_source_24;
10592 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
10593 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
10594 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
10595 l_rec_acct_attrs.array_num_value(4) := p_source_52;
10596 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
10597 l_rec_acct_attrs.array_char_value(5) := p_source_26;
10598 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
10599 l_rec_acct_attrs.array_num_value(6) := p_source_53;
10600 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
10601 l_rec_acct_attrs.array_date_value(7) := p_source_28;
10602 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
10603 l_rec_acct_attrs.array_num_value(8) := p_source_29;
10604 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
10605 l_rec_acct_attrs.array_char_value(9) := p_source_30;
10606 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
10607 l_rec_acct_attrs.array_char_value(10) := p_source_31;
10608 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
10609 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
10610 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
10611 l_rec_acct_attrs.array_num_value(12) := p_source_52;
10612 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
10613 l_rec_acct_attrs.array_char_value(13) := p_source_26;
10614 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
10615 l_rec_acct_attrs.array_num_value(14) := p_source_53;
10616 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
10617 l_rec_acct_attrs.array_date_value(15) := p_source_28;
10618 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
10619 l_rec_acct_attrs.array_num_value(16) := p_source_29;
10620 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
10621 l_rec_acct_attrs.array_char_value(17) := p_source_30;
10622 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
10623 l_rec_acct_attrs.array_char_value(18) := p_source_32;
10624 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
10625 l_rec_acct_attrs.array_num_value(19) := p_source_54;
10626 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
10627 l_rec_acct_attrs.array_num_value(20) := p_source_55;
10628 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
10629 l_rec_acct_attrs.array_char_value(21) := p_source_56;
10630 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
10631 l_rec_acct_attrs.array_char_value(22) := p_source_57;
10632 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
10633 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_58);
10634 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
10635 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_59);
10636 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
10637 l_rec_acct_attrs.array_char_value(25) := p_source_60;
10638 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
10639 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_33);
10640 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
10641 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_34);
10642 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
10643 l_rec_acct_attrs.array_char_value(28) := p_source_35;
10644 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
10645 l_rec_acct_attrs.array_char_value(29) := p_source_41;
10646 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
10647 l_rec_acct_attrs.array_num_value(30) := p_source_3;
10648 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
10649 l_rec_acct_attrs.array_num_value(31) := p_source_54;
10650 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
10651 l_rec_acct_attrs.array_char_value(32) := p_source_26;
10652 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
10653 l_rec_acct_attrs.array_num_value(33) := p_source_54;
10654 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
10655 l_rec_acct_attrs.array_char_value(34) := p_source_61;
10656 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
10657 l_rec_acct_attrs.array_num_value(35) := p_source_3;
10658 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
10659 l_rec_acct_attrs.array_num_value(36) := p_source_54;
10660 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
10661 l_rec_acct_attrs.array_char_value(37) := p_source_26;
10662 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
10663 l_rec_acct_attrs.array_num_value(38) := p_source_54;
10664 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
10665 l_rec_acct_attrs.array_char_value(39) := p_source_44;
10666 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
10667 l_rec_acct_attrs.array_num_value(40) := p_source_52;
10668 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
10669 l_rec_acct_attrs.array_char_value(41) := p_source_26;
10673 l_rec_acct_attrs.array_num_value(43) := p_source_29;
10670 l_rec_acct_attrs.array_acct_attr_code(42) := 'EXCHANGE_DATE';
10671 l_rec_acct_attrs.array_date_value(42) := p_source_28;
10672 l_rec_acct_attrs.array_acct_attr_code(43) := 'EXCHANGE_RATE';
10674 l_rec_acct_attrs.array_acct_attr_code(44) := 'EXCHANGE_RATE_TYPE';
10675 l_rec_acct_attrs.array_char_value(44) := p_source_30;
10676 l_rec_acct_attrs.array_acct_attr_code(45) := 'LEDGER_AMOUNT';
10677 l_rec_acct_attrs.array_num_value(45) := p_source_53;
10678 l_rec_acct_attrs.array_acct_attr_code(46) := 'REVERSED_DISTRIBUTION_ID1';
10679 l_rec_acct_attrs.array_num_value(46) := to_char(p_source_33);
10680 l_rec_acct_attrs.array_acct_attr_code(47) := 'REVERSED_DISTRIBUTION_ID2';
10681 l_rec_acct_attrs.array_num_value(47) := to_char(p_source_36);
10682 l_rec_acct_attrs.array_acct_attr_code(48) := 'REVERSED_DISTRIBUTION_TYPE';
10683 l_rec_acct_attrs.array_char_value(48) := p_source_35;
10684 l_rec_acct_attrs.array_acct_attr_code(49) := 'UPG_CR_ENC_TYPE_ID';
10685 l_rec_acct_attrs.array_num_value(49) := p_source_62;
10686 l_rec_acct_attrs.array_acct_attr_code(50) := 'UPG_DR_ENC_TYPE_ID';
10687 l_rec_acct_attrs.array_num_value(50) := p_source_63;
10688
10689 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
10690 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
10691
10692 ---------------------------------------------------------------------------------------------------------------
10693 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
10694 ---------------------------------------------------------------------------------------------------------------
10695 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
10696
10697 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10698 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10699
10700 IF xla_accounting_cache_pkg.GetValueChar
10701 (p_source_code => 'LEDGER_CATEGORY_CODE'
10702 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
10703 AND l_bflow_method_code = 'PRIOR_ENTRY'
10704 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
10705 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
10706 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
10707 )
10708 THEN
10709 xla_ae_lines_pkg.BflowUpgEntry
10710 (p_business_method_code => l_bflow_method_code
10711 ,p_business_class_code => l_bflow_class_code
10712 ,p_balance_type => l_balance_type_code);
10713 ELSE
10714 NULL;
10715 -- No business flow processing for business flow method of NONE.
10716 END IF;
10717
10718 --
10719 -- call analytical criteria
10720 --
10721
10722 --
10723 -- call description
10724 --
10725 -- No description or it is inherited.
10726 --
10727 -- call ADRs
10728 -- Bug 4922099
10729 --
10730 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10731 (NVL(l_actual_upg_option, 'N') = 'O') OR
10732 (NVL(l_enc_upg_option, 'N') = 'O')
10733 )
10734 THEN
10735 NULL;
10736 --
10737 --
10738
10739 l_ccid := AcctDerRule_13(
10740 p_application_id => p_application_id
10741 , p_ae_header_id => l_ae_header_id
10742 , p_source_5 => p_source_5
10743 , p_source_6 => p_source_6
10744 , x_transaction_coa_id => l_adr_transaction_coa_id
10745 , x_accounting_coa_id => l_adr_accounting_coa_id
10746 , x_value_type_code => l_adr_value_type_code
10747 , p_side => 'NA'
10748 );
10749
10750 xla_ae_lines_pkg.set_ccid(
10751 p_code_combination_id => l_ccid
10752 , p_value_type_code => l_adr_value_type_code
10753 , p_transaction_coa_id => l_adr_transaction_coa_id
10754 , p_accounting_coa_id => l_adr_accounting_coa_id
10755 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
10756 , p_adr_type_code => 'S'
10757 , p_component_type => l_component_type
10758 , p_component_code => l_component_code
10759 , p_component_type_code => l_component_type_code
10760 , p_component_appl_id => l_component_appl_id
10761 , p_amb_context_code => l_amb_context_code
10762 , p_side => 'NA'
10763 );
10764
10765
10766 l_segment := AcctDerRule_4(
10767 p_application_id => p_application_id
10768 , p_ae_header_id => l_ae_header_id
10769 , x_transaction_coa_id => l_adr_transaction_coa_id
10770 , x_accounting_coa_id => l_adr_accounting_coa_id
10771 , x_flexfield_segment_code => l_adr_flexfield_segment_code
10772 , x_flex_value_set_id => l_adr_flex_value_set_id
10773 , x_value_type_code => l_adr_value_type_code
10774 , x_value_combination_id => l_adr_value_combination_id
10775 , x_value_segment_code => l_adr_value_segment_code
10776 , p_side => 'NA'
10777 , p_override_seg_flag => 'Y'
10778 );
10779
10780 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
10781
10782 xla_ae_lines_pkg.set_segment(
10783 p_to_segment_code => 'GL_ACCOUNT'
10784 , p_segment_value => l_segment
10785 , p_from_segment_code => l_adr_value_segment_code
10786 , p_from_combination_id => l_adr_value_combination_id
10787 , p_value_type_code => l_adr_value_type_code
10791 , p_flex_value_set_id => l_adr_flex_value_set_id
10788 , p_transaction_coa_id => l_adr_transaction_coa_id
10789 , p_accounting_coa_id => l_adr_accounting_coa_id
10790 , p_flexfield_segment_code => l_adr_flexfield_segment_code
10792 , p_adr_code => 'FV_461001_PROJECTS'
10793 , p_adr_type_code => 'S'
10794 , p_component_type => l_component_type
10795 , p_component_code => l_component_code
10796 , p_component_type_code => l_component_type_code
10797 , p_component_appl_id => l_component_appl_id
10798 , p_amb_context_code => l_amb_context_code
10799 , p_entity_code => 'EXPENDITURES'
10800 , p_event_class_code => 'BURDEN_COST_ADJ'
10801 , p_side => 'NA'
10802 );
10803
10804 END IF;
10805
10806 --
10807 --
10808 END IF;
10809 --
10810 -- Bug 4922099
10811 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
10812 (NVL(l_enc_upg_option, 'N') = 'O')
10813 ) AND
10814 (l_bflow_method_code = 'PRIOR_ENTRY')
10815 )
10816 THEN
10817 IF
10818 --
10819 1 = 2
10820 --
10821 THEN
10822 xla_accounting_err_pkg.build_message
10823 (p_appli_s_name => 'XLA'
10824 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10825 ,p_token_1 => 'LINE_NUMBER'
10826 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
10827 ,p_token_2 => 'LINE_TYPE_NAME'
10828 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
10829 l_component_type
10830 ,l_component_code
10831 ,l_component_type_code
10832 ,l_component_appl_id
10833 ,l_amb_context_code
10834 ,l_entity_code
10835 ,l_event_class_code
10836 )
10837 ,p_token_3 => 'OWNER'
10838 ,p_value_3 => xla_lookups_pkg.get_meaning(
10839 p_lookup_type => 'XLA_OWNER_TYPE'
10840 ,p_lookup_code => l_component_type_code
10841 )
10842 ,p_token_4 => 'PRODUCT_NAME'
10843 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
10844 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
10845 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
10846 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
10847 ,p_ae_header_id => NULL
10848 );
10849
10850 IF (C_LEVEL_ERROR>= g_log_level) THEN
10851 trace
10852 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10853 ,p_level => C_LEVEL_ERROR
10854 ,p_module => l_log_module);
10855 END IF;
10856 END IF;
10857 END IF;
10858 --
10859 --
10860 ------------------------------------------------------------------------------------------------
10861 -- 4219869 Business Flow
10862 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
10863 -- Prior Entry. Currently, the following code is always generated.
10864 ------------------------------------------------------------------------------------------------
10865 XLA_AE_LINES_PKG.ValidateCurrentLine;
10866
10867 ------------------------------------------------------------------------------------
10868 -- 4219869 Business Flow
10869 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
10870 ------------------------------------------------------------------------------------
10871 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10872
10873 ----------------------------------------------------------------------------------
10874 -- 4219869 Business Flow
10875 -- Update journal entry status -- Need to generate this within IF <condition>
10876 ----------------------------------------------------------------------------------
10877 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10878 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
10879 ,p_balance_type_code => l_balance_type_code
10880 );
10881
10882 -------------------------------------------------------------------------------------------
10883 -- 4262811 - Generate the Accrual Reversal lines
10884 -------------------------------------------------------------------------------------------
10885 BEGIN
10886 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
10887 (g_array_event(p_event_id).array_value_num('header_index'));
10888 IF l_acc_rev_flag IS NULL THEN
10889 l_acc_rev_flag := 'N';
10890 END IF;
10894 END;
10891 EXCEPTION
10892 WHEN OTHERS THEN
10893 l_acc_rev_flag := 'N';
10895 --
10896 IF (l_acc_rev_flag = 'Y') THEN
10897
10898 -- 4645092 ------------------------------------------------------------------------------
10899 -- To allow MPA report to determine if it should generate report process
10900 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
10901 ------------------------------------------------------------------------------------------
10902
10903 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
10904 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
10905
10906 --
10907 -- Update the line information that should be overwritten
10908 --
10909 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
10910 p_header_num => 1);
10911 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
10912
10913 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
10914
10915 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
10916 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
10917 END IF;
10918
10919 --
10920 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
10921 --
10922 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
10923 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
10924 ELSE
10925 ---------------------------------------------------------------------------------------------------
10926 -- 4262811a Switch Sign
10927 ---------------------------------------------------------------------------------------------------
10928 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
10929 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10930 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10931 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10932 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10933 -- 5132302
10934 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
10935 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10936
10937 END IF;
10938
10939 -- 4955764
10940 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10941 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
10942
10943
10944 XLA_AE_LINES_PKG.ValidateCurrentLine;
10945 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10946
10947 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10948 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
10949 ,p_balance_type_code => l_balance_type_code);
10950
10951 END IF;
10952
10953 -----------------------------------------------------------------------------------------
10954 -- 4262811 Multiperiod Accounting
10955 -----------------------------------------------------------------------------------------
10956 -- No MPA option is assigned.
10957
10958
10959 END IF;
10960 END IF;
10961 --
10962
10963 --
10964 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10965 trace
10966 (p_msg => 'END of AcctLineType_40'
10967 ,p_level => C_LEVEL_PROCEDURE
10968 ,p_module => l_log_module);
10969 END IF;
10970 --
10971 EXCEPTION
10972 WHEN xla_exceptions_pkg.application_exception THEN
10973 RAISE;
10974 WHEN OTHERS THEN
10975 xla_exceptions_pkg.raise_message
10976 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_40');
10977 END AcctLineType_40;
10978 --
10979
10980 ---------------------------------------
10981 --
10982 -- PRIVATE FUNCTION
10983 -- AcctLineType_41
10984 --
10985 ---------------------------------------
10986 PROCEDURE AcctLineType_41 (
10987 p_application_id IN NUMBER
10988 ,p_event_id IN NUMBER
10989 ,p_calculate_acctd_flag IN VARCHAR2
10990 ,p_calculate_g_l_flag IN VARCHAR2
10991 ,p_actual_flag IN OUT VARCHAR2
10992 ,p_balance_type_code OUT VARCHAR2
10993 ,p_gain_or_loss_ref OUT VARCHAR2
10994
10995 --Budget Code Combination ID
10996 , p_source_3 IN NUMBER
10997 --Cost CCID
10998 , p_source_4 IN NUMBER
10999 --Allow Account Override Flag
11000 , p_source_5 IN VARCHAR2
11001 --Cost Clearing CCID
11002 , p_source_7 IN NUMBER
11003 --Adjustment Cost Clearing CCID
11004 , p_source_8 IN NUMBER
11005 --Reversing Line Flag
11006 , p_source_23 IN VARCHAR2
11007 --Actual Upgrade Credit Accounting Class
11008 , p_source_24 IN VARCHAR2
11009 --Entered Currency Code
11010 , p_source_26 IN VARCHAR2
11011 --Exchange Rate Date
11012 , p_source_28 IN DATE
11013 --Exchange Rate
11014 , p_source_29 IN NUMBER
11015 --Exchange Rate Type
11016 , p_source_30 IN VARCHAR2
11017 --Actual Upgrade Debit Accounting Class
11018 , p_source_31 IN VARCHAR2
11019 --Use Actuals Upgrade Attributes Flag
11020 , p_source_32 IN VARCHAR2
11021 --Expenditure Item ID
11022 , p_source_33 IN NUMBER
11023 --Cost Distribution Line Number
11027 , p_source_35_meaning IN VARCHAR2
11024 , p_source_34 IN NUMBER
11025 --Line Type
11026 , p_source_35 IN VARCHAR2
11028 --Reversed Line Number
11029 , p_source_36 IN NUMBER
11030 --Encumbrance Upgrade Credit Accounting Class
11031 , p_source_41 IN VARCHAR2
11032 --Use Encumbrance Upgrade Attributes Flag
11033 , p_source_44 IN VARCHAR2
11034 --Entered Burdened Cost
11035 , p_source_52 IN NUMBER
11036 --Accounted Burdened Cost
11037 , p_source_53 IN NUMBER
11038 --Encumbrance Amount
11039 , p_source_54 IN NUMBER
11040 --Project Encumbrance Applied to Application Identifier
11041 , p_source_55 IN NUMBER
11042 --Project Encumbrance Applied to Distribution Type
11043 , p_source_56 IN VARCHAR2
11044 --Project Encumbrance Applied to Entity Code
11045 , p_source_57 IN VARCHAR2
11046 --Project Encumbrance Applied to First Distribution ID
11047 , p_source_58 IN NUMBER
11048 --Project Encumbrance Applied to First System Transaction ID
11049 , p_source_59 IN NUMBER
11050 --Project Encumbrance Applied to Second Distribution ID
11051 , p_source_60 IN VARCHAR2
11052 --Encumbrance Upgrade Debit Accounting Class
11053 , p_source_61 IN VARCHAR2
11054 --Encumbrance Type ID
11055 , p_source_62 IN NUMBER
11056 --Project Encumbrance Type ID
11057 , p_source_63 IN NUMBER
11058 )
11059 IS
11060
11061 l_component_type VARCHAR2(80);
11062 l_component_code VARCHAR2(30);
11063 l_component_type_code VARCHAR2(1);
11064 l_component_appl_id INTEGER;
11065 l_amb_context_code VARCHAR2(30);
11066 l_entity_code VARCHAR2(30);
11067 l_event_class_code VARCHAR2(30);
11068 l_ae_header_id NUMBER;
11069 l_event_type_code VARCHAR2(30);
11070 l_line_definition_code VARCHAR2(30);
11071 l_line_definition_owner_code VARCHAR2(1);
11072 --
11073 -- adr variables
11074 l_segment VARCHAR2(30);
11075 l_ccid NUMBER;
11076 l_adr_transaction_coa_id NUMBER;
11077 l_adr_accounting_coa_id NUMBER;
11078 l_adr_flexfield_segment_code VARCHAR2(30);
11079 l_adr_flex_value_set_id NUMBER;
11080 l_adr_value_type_code VARCHAR2(30);
11081 l_adr_value_combination_id NUMBER;
11082 l_adr_value_segment_code VARCHAR2(30);
11083
11084 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
11085 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
11086 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
11087 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
11088
11089 -- 4262811 Variables ------------------------------------------------------------------------------------------
11090 l_entered_amt_idx NUMBER;
11091 l_accted_amt_idx NUMBER;
11092 l_acc_rev_flag VARCHAR2(1);
11093 l_accrual_line_num NUMBER;
11094 l_tmp_amt NUMBER;
11095 l_acc_rev_natural_side_code VARCHAR2(1);
11096
11097 l_num_entries NUMBER;
11098 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
11099 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
11100 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
11101 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
11102 l_recog_line_1 NUMBER;
11103 l_recog_line_2 NUMBER;
11104
11105 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
11106 l_bflow_applied_to_amt NUMBER; -- 5132302
11107 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
11108
11109 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
11110
11111 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
11112 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
11113
11114 ---------------------------------------------------------------------------------------------------------------
11115
11116
11117 --
11118 -- bulk performance
11119 --
11120 l_balance_type_code VARCHAR2(1);
11121 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
11122 l_log_module VARCHAR2(240);
11123
11124 --
11125 -- Upgrade strategy
11126 --
11127 l_actual_upg_option VARCHAR2(1);
11128 l_enc_upg_option VARCHAR2(1);
11129
11130 --
11131 BEGIN
11132 --
11133 IF g_log_enabled THEN
11134 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_41';
11135 END IF;
11136 --
11137 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11138
11139 trace
11140 (p_msg => 'BEGIN of AcctLineType_41'
11141 ,p_level => C_LEVEL_PROCEDURE
11142 ,p_module => l_log_module);
11143
11144 END IF;
11145 --
11146 l_component_type := 'AMB_JLT';
11147 l_component_code := 'PA_BURDEN_COST_CLEARING';
11148 l_component_type_code := 'S';
11149 l_component_appl_id := 275;
11150 l_amb_context_code := 'DEFAULT';
11151 l_entity_code := 'EXPENDITURES';
11152 l_event_class_code := 'BURDEN_COST';
11153 l_event_type_code := 'BURDEN_COST_ALL';
11154 l_line_definition_owner_code := 'S';
11155 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
11156 --
11157 l_balance_type_code := 'A';
11158 l_segment := NULL;
11159 l_ccid := NULL;
11160 l_adr_transaction_coa_id := NULL;
11161 l_adr_accounting_coa_id := NULL;
11165 l_adr_value_combination_id := NULL;
11162 l_adr_flexfield_segment_code := NULL;
11163 l_adr_flex_value_set_id := NULL;
11164 l_adr_value_type_code := NULL;
11166 l_adr_value_segment_code := NULL;
11167
11168 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
11169 l_bflow_class_code := ''; -- 4219869 Business Flow
11170 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
11171 l_budgetary_control_flag := 'N';
11172
11173 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11174 l_bflow_applied_to_amt := NULL; -- 5132302
11175 l_entered_amt_idx := NULL; -- 4262811
11176 l_accted_amt_idx := NULL; -- 4262811
11177 l_acc_rev_flag := NULL; -- 4262811
11178 l_accrual_line_num := NULL; -- 4262811
11179 l_tmp_amt := NULL; -- 4262811
11180 --
11181
11182 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
11183 l_balance_type_code <> 'B' THEN
11184 IF NVL(p_source_35,'
11185 ') = 'R'
11186 THEN
11187
11188 --
11189 XLA_AE_LINES_PKG.SetNewLine;
11190
11191 p_balance_type_code := l_balance_type_code;
11192 -- set the flag so later we will know whether the gain loss line needs to be created
11193
11194 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
11195 p_actual_flag :='A';
11196 END IF;
11197
11198 --
11199 -- bulk performance
11200 --
11201 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
11202 p_header_num => 0); -- 4262811
11203 --
11204 -- set accounting line options
11205 --
11206 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
11207 p_natural_side_code => 'C'
11208 , p_gain_or_loss_flag => 'N'
11209 , p_gl_transfer_mode_code => 'S'
11210 , p_acct_entry_type_code => 'A'
11211 , p_switch_side_flag => 'Y'
11212 , p_merge_duplicate_code => 'N'
11213 );
11214 --
11215 l_acc_rev_natural_side_code := 'D'; -- 4262811
11216 --
11217 --
11218 -- set accounting line type info
11219 --
11220 xla_ae_lines_pkg.SetAcctLineType
11221 (p_component_type => l_component_type
11222 ,p_event_type_code => l_event_type_code
11223 ,p_line_definition_owner_code => l_line_definition_owner_code
11224 ,p_line_definition_code => l_line_definition_code
11225 ,p_accounting_line_code => l_component_code
11226 ,p_accounting_line_type_code => l_component_type_code
11227 ,p_accounting_line_appl_id => l_component_appl_id
11228 ,p_amb_context_code => l_amb_context_code
11229 ,p_entity_code => l_entity_code
11230 ,p_event_class_code => l_event_class_code);
11231 --
11232 -- set accounting class
11233 --
11234 xla_ae_lines_pkg.SetAcctClass(
11235 p_accounting_class_code => 'COST_CLEARING'
11236 , p_ae_header_id => l_ae_header_id
11237 );
11238
11239 --
11240 -- set rounding class
11241 --
11242 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
11243 'COST_CLEARING';
11244
11245 --
11246 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
11247 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
11248 --
11249 -- bulk performance
11250 --
11251 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
11252
11253 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
11254 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
11255
11256 -- 4955764
11257 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11258 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
11259
11260 -- 4458381 Public Sector Enh
11261
11262 --
11263 -- set accounting attributes for the line type
11264 --
11265 l_entered_amt_idx := 40;
11266 l_accted_amt_idx := 45;
11267 l_bflow_applied_to_amt_idx := 19; -- 5132302
11268 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
11269 l_rec_acct_attrs.array_char_value(1) := p_source_23;
11270 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
11271 l_rec_acct_attrs.array_char_value(2) := p_source_24;
11272 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
11273 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
11274 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
11275 l_rec_acct_attrs.array_num_value(4) := p_source_52;
11276 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
11277 l_rec_acct_attrs.array_char_value(5) := p_source_26;
11278 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
11279 l_rec_acct_attrs.array_num_value(6) := p_source_53;
11280 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
11281 l_rec_acct_attrs.array_date_value(7) := p_source_28;
11282 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
11283 l_rec_acct_attrs.array_num_value(8) := p_source_29;
11284 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
11285 l_rec_acct_attrs.array_char_value(9) := p_source_30;
11286 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
11287 l_rec_acct_attrs.array_char_value(10) := p_source_31;
11291 l_rec_acct_attrs.array_num_value(12) := p_source_52;
11288 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
11289 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
11290 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
11292 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
11293 l_rec_acct_attrs.array_char_value(13) := p_source_26;
11294 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
11295 l_rec_acct_attrs.array_num_value(14) := p_source_53;
11296 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
11297 l_rec_acct_attrs.array_date_value(15) := p_source_28;
11298 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
11299 l_rec_acct_attrs.array_num_value(16) := p_source_29;
11300 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
11301 l_rec_acct_attrs.array_char_value(17) := p_source_30;
11302 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
11303 l_rec_acct_attrs.array_char_value(18) := p_source_32;
11304 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
11305 l_rec_acct_attrs.array_num_value(19) := p_source_54;
11306 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
11307 l_rec_acct_attrs.array_num_value(20) := p_source_55;
11308 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
11309 l_rec_acct_attrs.array_char_value(21) := p_source_56;
11310 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
11311 l_rec_acct_attrs.array_char_value(22) := p_source_57;
11312 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
11313 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_58);
11314 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
11315 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_59);
11316 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
11317 l_rec_acct_attrs.array_char_value(25) := p_source_60;
11318 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
11319 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_33);
11320 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
11321 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_34);
11322 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
11323 l_rec_acct_attrs.array_char_value(28) := p_source_35;
11324 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
11325 l_rec_acct_attrs.array_char_value(29) := p_source_41;
11326 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
11327 l_rec_acct_attrs.array_num_value(30) := p_source_3;
11328 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
11329 l_rec_acct_attrs.array_num_value(31) := p_source_54;
11330 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
11331 l_rec_acct_attrs.array_char_value(32) := p_source_26;
11332 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
11333 l_rec_acct_attrs.array_num_value(33) := p_source_54;
11334 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
11335 l_rec_acct_attrs.array_char_value(34) := p_source_61;
11336 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
11337 l_rec_acct_attrs.array_num_value(35) := p_source_3;
11338 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
11339 l_rec_acct_attrs.array_num_value(36) := p_source_54;
11340 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
11341 l_rec_acct_attrs.array_char_value(37) := p_source_26;
11342 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
11343 l_rec_acct_attrs.array_num_value(38) := p_source_54;
11344 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
11345 l_rec_acct_attrs.array_char_value(39) := p_source_44;
11346 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
11347 l_rec_acct_attrs.array_num_value(40) := p_source_52;
11348 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
11349 l_rec_acct_attrs.array_char_value(41) := p_source_26;
11350 l_rec_acct_attrs.array_acct_attr_code(42) := 'EXCHANGE_DATE';
11351 l_rec_acct_attrs.array_date_value(42) := p_source_28;
11352 l_rec_acct_attrs.array_acct_attr_code(43) := 'EXCHANGE_RATE';
11353 l_rec_acct_attrs.array_num_value(43) := p_source_29;
11354 l_rec_acct_attrs.array_acct_attr_code(44) := 'EXCHANGE_RATE_TYPE';
11355 l_rec_acct_attrs.array_char_value(44) := p_source_30;
11356 l_rec_acct_attrs.array_acct_attr_code(45) := 'LEDGER_AMOUNT';
11357 l_rec_acct_attrs.array_num_value(45) := p_source_53;
11358 l_rec_acct_attrs.array_acct_attr_code(46) := 'REVERSED_DISTRIBUTION_ID1';
11359 l_rec_acct_attrs.array_num_value(46) := to_char(p_source_33);
11360 l_rec_acct_attrs.array_acct_attr_code(47) := 'REVERSED_DISTRIBUTION_ID2';
11361 l_rec_acct_attrs.array_num_value(47) := to_char(p_source_36);
11362 l_rec_acct_attrs.array_acct_attr_code(48) := 'REVERSED_DISTRIBUTION_TYPE';
11363 l_rec_acct_attrs.array_char_value(48) := p_source_35;
11364 l_rec_acct_attrs.array_acct_attr_code(49) := 'UPG_CR_ENC_TYPE_ID';
11365 l_rec_acct_attrs.array_num_value(49) := p_source_62;
11366 l_rec_acct_attrs.array_acct_attr_code(50) := 'UPG_DR_ENC_TYPE_ID';
11367 l_rec_acct_attrs.array_num_value(50) := p_source_63;
11368
11369 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
11370 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
11371
11372 ---------------------------------------------------------------------------------------------------------------
11373 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
11374 ---------------------------------------------------------------------------------------------------------------
11378 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11375 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
11376
11377 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11379
11380 IF xla_accounting_cache_pkg.GetValueChar
11381 (p_source_code => 'LEDGER_CATEGORY_CODE'
11382 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
11383 AND l_bflow_method_code = 'PRIOR_ENTRY'
11384 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
11385 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
11386 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
11387 )
11388 THEN
11389 xla_ae_lines_pkg.BflowUpgEntry
11390 (p_business_method_code => l_bflow_method_code
11391 ,p_business_class_code => l_bflow_class_code
11392 ,p_balance_type => l_balance_type_code);
11393 ELSE
11394 NULL;
11395 -- No business flow processing for business flow method of NONE.
11396 END IF;
11397
11398 --
11399 -- call analytical criteria
11400 --
11401
11402 --
11403 -- call description
11404 --
11405 -- No description or it is inherited.
11406 --
11407 -- call ADRs
11408 -- Bug 4922099
11409 --
11410 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11411 (NVL(l_actual_upg_option, 'N') = 'O') OR
11412 (NVL(l_enc_upg_option, 'N') = 'O')
11413 )
11414 THEN
11415 NULL;
11416 --
11417 --
11418
11419 l_ccid := AcctDerRule_14(
11420 p_application_id => p_application_id
11421 , p_ae_header_id => l_ae_header_id
11422 , p_source_5 => p_source_5
11423 , p_source_7 => p_source_7
11424 , p_source_8 => p_source_8
11425 , x_transaction_coa_id => l_adr_transaction_coa_id
11426 , x_accounting_coa_id => l_adr_accounting_coa_id
11427 , x_value_type_code => l_adr_value_type_code
11428 , p_side => 'NA'
11429 );
11430
11431 xla_ae_lines_pkg.set_ccid(
11432 p_code_combination_id => l_ccid
11433 , p_value_type_code => l_adr_value_type_code
11434 , p_transaction_coa_id => l_adr_transaction_coa_id
11435 , p_accounting_coa_id => l_adr_accounting_coa_id
11436 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
11437 , p_adr_type_code => 'S'
11438 , p_component_type => l_component_type
11439 , p_component_code => l_component_code
11440 , p_component_type_code => l_component_type_code
11441 , p_component_appl_id => l_component_appl_id
11442 , p_amb_context_code => l_amb_context_code
11443 , p_side => 'NA'
11444 );
11445
11446
11447 --
11448 --
11449 END IF;
11450 --
11451 -- Bug 4922099
11452 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
11453 (NVL(l_enc_upg_option, 'N') = 'O')
11454 ) AND
11455 (l_bflow_method_code = 'PRIOR_ENTRY')
11456 )
11457 THEN
11458 IF
11459 --
11460 1 = 2
11461 --
11462 THEN
11463 xla_accounting_err_pkg.build_message
11464 (p_appli_s_name => 'XLA'
11465 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11466 ,p_token_1 => 'LINE_NUMBER'
11467 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
11468 ,p_token_2 => 'LINE_TYPE_NAME'
11469 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
11470 l_component_type
11471 ,l_component_code
11472 ,l_component_type_code
11473 ,l_component_appl_id
11474 ,l_amb_context_code
11475 ,l_entity_code
11476 ,l_event_class_code
11477 )
11478 ,p_token_3 => 'OWNER'
11479 ,p_value_3 => xla_lookups_pkg.get_meaning(
11480 p_lookup_type => 'XLA_OWNER_TYPE'
11481 ,p_lookup_code => l_component_type_code
11482 )
11483 ,p_token_4 => 'PRODUCT_NAME'
11484 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
11485 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
11486 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
11487 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
11488 ,p_ae_header_id => NULL
11489 );
11490
11491 IF (C_LEVEL_ERROR>= g_log_level) THEN
11495 ,p_module => l_log_module);
11492 trace
11493 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11494 ,p_level => C_LEVEL_ERROR
11496 END IF;
11497 END IF;
11498 END IF;
11499 --
11500 --
11501 ------------------------------------------------------------------------------------------------
11502 -- 4219869 Business Flow
11503 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
11504 -- Prior Entry. Currently, the following code is always generated.
11505 ------------------------------------------------------------------------------------------------
11506 XLA_AE_LINES_PKG.ValidateCurrentLine;
11507
11508 ------------------------------------------------------------------------------------
11509 -- 4219869 Business Flow
11510 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
11511 ------------------------------------------------------------------------------------
11512 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11513
11514 ----------------------------------------------------------------------------------
11515 -- 4219869 Business Flow
11516 -- Update journal entry status -- Need to generate this within IF <condition>
11517 ----------------------------------------------------------------------------------
11518 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11519 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
11520 ,p_balance_type_code => l_balance_type_code
11521 );
11522
11523 -------------------------------------------------------------------------------------------
11524 -- 4262811 - Generate the Accrual Reversal lines
11525 -------------------------------------------------------------------------------------------
11526 BEGIN
11527 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
11528 (g_array_event(p_event_id).array_value_num('header_index'));
11529 IF l_acc_rev_flag IS NULL THEN
11530 l_acc_rev_flag := 'N';
11531 END IF;
11532 EXCEPTION
11533 WHEN OTHERS THEN
11534 l_acc_rev_flag := 'N';
11535 END;
11536 --
11537 IF (l_acc_rev_flag = 'Y') THEN
11538
11539 -- 4645092 ------------------------------------------------------------------------------
11540 -- To allow MPA report to determine if it should generate report process
11541 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
11542 ------------------------------------------------------------------------------------------
11543
11544 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
11545 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
11546
11547 --
11548 -- Update the line information that should be overwritten
11549 --
11550 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
11551 p_header_num => 1);
11552 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
11553
11554 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
11555
11556 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
11557 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
11558 END IF;
11559
11560 --
11561 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
11562 --
11563 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
11564 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
11565 ELSE
11566 ---------------------------------------------------------------------------------------------------
11567 -- 4262811a Switch Sign
11568 ---------------------------------------------------------------------------------------------------
11569 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
11570 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11571 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11572 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11573 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11574 -- 5132302
11575 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
11576 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11577
11578 END IF;
11579
11580 -- 4955764
11581 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11582 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
11583
11584
11585 XLA_AE_LINES_PKG.ValidateCurrentLine;
11586 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11587
11588 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11589 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
11590 ,p_balance_type_code => l_balance_type_code);
11591
11592 END IF;
11593
11594 -----------------------------------------------------------------------------------------
11595 -- 4262811 Multiperiod Accounting
11596 -----------------------------------------------------------------------------------------
11597 -- No MPA option is assigned.
11598
11599
11600 END IF;
11601 END IF;
11602 --
11603
11604 --
11605 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11609 ,p_module => l_log_module);
11606 trace
11607 (p_msg => 'END of AcctLineType_41'
11608 ,p_level => C_LEVEL_PROCEDURE
11610 END IF;
11611 --
11612 EXCEPTION
11613 WHEN xla_exceptions_pkg.application_exception THEN
11614 RAISE;
11615 WHEN OTHERS THEN
11616 xla_exceptions_pkg.raise_message
11617 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_41');
11618 END AcctLineType_41;
11619 --
11620
11621 ---------------------------------------
11622 --
11623 -- PRIVATE FUNCTION
11624 -- AcctLineType_42
11625 --
11626 ---------------------------------------
11627 PROCEDURE AcctLineType_42 (
11628 p_application_id IN NUMBER
11629 ,p_event_id IN NUMBER
11630 ,p_calculate_acctd_flag IN VARCHAR2
11631 ,p_calculate_g_l_flag IN VARCHAR2
11632 ,p_actual_flag IN OUT VARCHAR2
11633 ,p_balance_type_code OUT VARCHAR2
11634 ,p_gain_or_loss_ref OUT VARCHAR2
11635
11636 --Budget Code Combination ID
11637 , p_source_3 IN NUMBER
11638 --Cost CCID
11639 , p_source_4 IN NUMBER
11640 --Allow Account Override Flag
11641 , p_source_5 IN VARCHAR2
11642 --Cost Clearing CCID
11643 , p_source_7 IN NUMBER
11644 --Adjustment Cost Clearing CCID
11645 , p_source_8 IN NUMBER
11646 --Reversing Line Flag
11647 , p_source_23 IN VARCHAR2
11648 --Actual Upgrade Credit Accounting Class
11649 , p_source_24 IN VARCHAR2
11650 --Entered Currency Code
11651 , p_source_26 IN VARCHAR2
11652 --Exchange Rate Date
11653 , p_source_28 IN DATE
11654 --Exchange Rate
11655 , p_source_29 IN NUMBER
11656 --Exchange Rate Type
11657 , p_source_30 IN VARCHAR2
11658 --Actual Upgrade Debit Accounting Class
11659 , p_source_31 IN VARCHAR2
11660 --Use Actuals Upgrade Attributes Flag
11661 , p_source_32 IN VARCHAR2
11662 --Expenditure Item ID
11663 , p_source_33 IN NUMBER
11664 --Cost Distribution Line Number
11665 , p_source_34 IN NUMBER
11666 --Line Type
11667 , p_source_35 IN VARCHAR2
11668 , p_source_35_meaning IN VARCHAR2
11669 --Reversed Line Number
11670 , p_source_36 IN NUMBER
11671 --Encumbrance Upgrade Credit Accounting Class
11672 , p_source_41 IN VARCHAR2
11673 --Use Encumbrance Upgrade Attributes Flag
11674 , p_source_44 IN VARCHAR2
11675 --Entered Burdened Cost
11676 , p_source_52 IN NUMBER
11677 --Accounted Burdened Cost
11678 , p_source_53 IN NUMBER
11679 --Encumbrance Amount
11680 , p_source_54 IN NUMBER
11681 --Project Encumbrance Applied to Application Identifier
11682 , p_source_55 IN NUMBER
11683 --Project Encumbrance Applied to Distribution Type
11684 , p_source_56 IN VARCHAR2
11685 --Project Encumbrance Applied to Entity Code
11686 , p_source_57 IN VARCHAR2
11687 --Project Encumbrance Applied to First Distribution ID
11688 , p_source_58 IN NUMBER
11689 --Project Encumbrance Applied to First System Transaction ID
11690 , p_source_59 IN NUMBER
11691 --Project Encumbrance Applied to Second Distribution ID
11692 , p_source_60 IN VARCHAR2
11693 --Encumbrance Upgrade Debit Accounting Class
11694 , p_source_61 IN VARCHAR2
11695 --Encumbrance Type ID
11696 , p_source_62 IN NUMBER
11697 --Project Encumbrance Type ID
11698 , p_source_63 IN NUMBER
11699 )
11700 IS
11701
11702 l_component_type VARCHAR2(80);
11703 l_component_code VARCHAR2(30);
11704 l_component_type_code VARCHAR2(1);
11705 l_component_appl_id INTEGER;
11706 l_amb_context_code VARCHAR2(30);
11707 l_entity_code VARCHAR2(30);
11708 l_event_class_code VARCHAR2(30);
11709 l_ae_header_id NUMBER;
11710 l_event_type_code VARCHAR2(30);
11711 l_line_definition_code VARCHAR2(30);
11712 l_line_definition_owner_code VARCHAR2(1);
11713 --
11714 -- adr variables
11715 l_segment VARCHAR2(30);
11716 l_ccid NUMBER;
11717 l_adr_transaction_coa_id NUMBER;
11718 l_adr_accounting_coa_id NUMBER;
11719 l_adr_flexfield_segment_code VARCHAR2(30);
11720 l_adr_flex_value_set_id NUMBER;
11721 l_adr_value_type_code VARCHAR2(30);
11722 l_adr_value_combination_id NUMBER;
11723 l_adr_value_segment_code VARCHAR2(30);
11724
11725 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
11726 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
11727 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
11728 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
11729
11730 -- 4262811 Variables ------------------------------------------------------------------------------------------
11731 l_entered_amt_idx NUMBER;
11732 l_accted_amt_idx NUMBER;
11733 l_acc_rev_flag VARCHAR2(1);
11734 l_accrual_line_num NUMBER;
11735 l_tmp_amt NUMBER;
11736 l_acc_rev_natural_side_code VARCHAR2(1);
11737
11738 l_num_entries NUMBER;
11739 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
11740 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
11741 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
11742 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
11743 l_recog_line_1 NUMBER;
11744 l_recog_line_2 NUMBER;
11745
11746 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
11750 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
11747 l_bflow_applied_to_amt NUMBER; -- 5132302
11748 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
11749
11751
11752 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
11753 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
11754
11755 ---------------------------------------------------------------------------------------------------------------
11756
11757
11758 --
11759 -- bulk performance
11760 --
11761 l_balance_type_code VARCHAR2(1);
11762 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
11763 l_log_module VARCHAR2(240);
11764
11765 --
11766 -- Upgrade strategy
11767 --
11768 l_actual_upg_option VARCHAR2(1);
11769 l_enc_upg_option VARCHAR2(1);
11770
11771 --
11772 BEGIN
11773 --
11774 IF g_log_enabled THEN
11775 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_42';
11776 END IF;
11777 --
11778 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11779
11780 trace
11781 (p_msg => 'BEGIN of AcctLineType_42'
11782 ,p_level => C_LEVEL_PROCEDURE
11783 ,p_module => l_log_module);
11784
11785 END IF;
11786 --
11787 l_component_type := 'AMB_JLT';
11788 l_component_code := 'PA_BURDEN_COST_CLEAR_FED';
11789 l_component_type_code := 'S';
11790 l_component_appl_id := 275;
11791 l_amb_context_code := 'DEFAULT';
11792 l_entity_code := 'EXPENDITURES';
11793 l_event_class_code := 'BURDEN_COST';
11794 l_event_type_code := 'BURDEN_COST_ALL';
11795 l_line_definition_owner_code := 'S';
11796 l_line_definition_code := 'FV_PROJECTS_JLD';
11797 --
11798 l_balance_type_code := 'A';
11799 l_segment := NULL;
11800 l_ccid := NULL;
11801 l_adr_transaction_coa_id := NULL;
11802 l_adr_accounting_coa_id := NULL;
11803 l_adr_flexfield_segment_code := NULL;
11804 l_adr_flex_value_set_id := NULL;
11805 l_adr_value_type_code := NULL;
11806 l_adr_value_combination_id := NULL;
11807 l_adr_value_segment_code := NULL;
11808
11809 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
11810 l_bflow_class_code := ''; -- 4219869 Business Flow
11811 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
11812 l_budgetary_control_flag := 'N';
11813
11814 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11815 l_bflow_applied_to_amt := NULL; -- 5132302
11816 l_entered_amt_idx := NULL; -- 4262811
11817 l_accted_amt_idx := NULL; -- 4262811
11818 l_acc_rev_flag := NULL; -- 4262811
11819 l_accrual_line_num := NULL; -- 4262811
11820 l_tmp_amt := NULL; -- 4262811
11821 --
11822
11823 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
11824 l_balance_type_code <> 'B' THEN
11825 IF NVL(p_source_35,'
11826 ') = 'R'
11827 THEN
11828
11829 --
11830 XLA_AE_LINES_PKG.SetNewLine;
11831
11832 p_balance_type_code := l_balance_type_code;
11833 -- set the flag so later we will know whether the gain loss line needs to be created
11834
11835 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
11836 p_actual_flag :='A';
11837 END IF;
11838
11839 --
11840 -- bulk performance
11841 --
11842 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
11843 p_header_num => 0); -- 4262811
11844 --
11845 -- set accounting line options
11846 --
11847 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
11848 p_natural_side_code => 'C'
11849 , p_gain_or_loss_flag => 'N'
11850 , p_gl_transfer_mode_code => 'S'
11851 , p_acct_entry_type_code => 'A'
11852 , p_switch_side_flag => 'Y'
11853 , p_merge_duplicate_code => 'N'
11854 );
11855 --
11856 l_acc_rev_natural_side_code := 'D'; -- 4262811
11857 --
11858 --
11859 -- set accounting line type info
11860 --
11861 xla_ae_lines_pkg.SetAcctLineType
11862 (p_component_type => l_component_type
11863 ,p_event_type_code => l_event_type_code
11864 ,p_line_definition_owner_code => l_line_definition_owner_code
11865 ,p_line_definition_code => l_line_definition_code
11866 ,p_accounting_line_code => l_component_code
11867 ,p_accounting_line_type_code => l_component_type_code
11868 ,p_accounting_line_appl_id => l_component_appl_id
11869 ,p_amb_context_code => l_amb_context_code
11870 ,p_entity_code => l_entity_code
11871 ,p_event_class_code => l_event_class_code);
11872 --
11873 -- set accounting class
11874 --
11875 xla_ae_lines_pkg.SetAcctClass(
11876 p_accounting_class_code => 'FEDERAL_PROJECT_COST_CLEARING'
11877 , p_ae_header_id => l_ae_header_id
11878 );
11879
11880 --
11881 -- set rounding class
11882 --
11883 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
11884 'FEDERAL_PROJECT_COST_CLEARING';
11885
11886 --
11887 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
11891 --
11888 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
11889 --
11890 -- bulk performance
11892 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
11893
11894 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
11895 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
11896
11897 -- 4955764
11898 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11899 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
11900
11901 -- 4458381 Public Sector Enh
11902
11903 --
11904 -- set accounting attributes for the line type
11905 --
11906 l_entered_amt_idx := 39;
11907 l_accted_amt_idx := 44;
11908 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11909 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
11910 l_rec_acct_attrs.array_char_value(1) := p_source_23;
11911 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
11912 l_rec_acct_attrs.array_char_value(2) := p_source_24;
11913 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
11914 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
11915 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
11916 l_rec_acct_attrs.array_num_value(4) := p_source_52;
11917 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
11918 l_rec_acct_attrs.array_char_value(5) := p_source_26;
11919 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
11920 l_rec_acct_attrs.array_num_value(6) := p_source_53;
11921 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
11922 l_rec_acct_attrs.array_date_value(7) := p_source_28;
11923 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
11924 l_rec_acct_attrs.array_num_value(8) := p_source_29;
11925 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
11926 l_rec_acct_attrs.array_char_value(9) := p_source_30;
11927 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
11928 l_rec_acct_attrs.array_char_value(10) := p_source_31;
11929 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
11930 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
11931 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
11932 l_rec_acct_attrs.array_num_value(12) := p_source_52;
11933 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
11934 l_rec_acct_attrs.array_char_value(13) := p_source_26;
11935 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
11936 l_rec_acct_attrs.array_num_value(14) := p_source_53;
11937 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
11938 l_rec_acct_attrs.array_date_value(15) := p_source_28;
11939 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
11940 l_rec_acct_attrs.array_num_value(16) := p_source_29;
11941 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
11942 l_rec_acct_attrs.array_char_value(17) := p_source_30;
11943 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
11944 l_rec_acct_attrs.array_char_value(18) := p_source_32;
11945 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_APPLICATION_ID';
11946 l_rec_acct_attrs.array_num_value(19) := p_source_55;
11947 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_DISTRIBUTION_TYPE';
11948 l_rec_acct_attrs.array_char_value(20) := p_source_56;
11949 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_ENTITY_CODE';
11950 l_rec_acct_attrs.array_char_value(21) := p_source_57;
11951 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_DIST_ID';
11952 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_58);
11953 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
11954 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_59);
11955 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_DIST_ID';
11956 l_rec_acct_attrs.array_char_value(24) := p_source_60;
11957 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
11958 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_33);
11959 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
11960 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_34);
11961 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
11962 l_rec_acct_attrs.array_char_value(27) := p_source_35;
11963 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENC_UPG_CR_ACCT_CLASS';
11964 l_rec_acct_attrs.array_char_value(28) := p_source_41;
11965 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_CCID';
11966 l_rec_acct_attrs.array_num_value(29) := p_source_3;
11967 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_ENTERED_AMT';
11968 l_rec_acct_attrs.array_num_value(30) := p_source_54;
11969 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_CURR';
11970 l_rec_acct_attrs.array_char_value(31) := p_source_26;
11971 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_LEDGER_AMT';
11972 l_rec_acct_attrs.array_num_value(32) := p_source_54;
11973 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_DR_ACCT_CLASS';
11974 l_rec_acct_attrs.array_char_value(33) := p_source_61;
11975 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_CCID';
11976 l_rec_acct_attrs.array_num_value(34) := p_source_3;
11977 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_ENTERED_AMT';
11978 l_rec_acct_attrs.array_num_value(35) := p_source_54;
11979 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_CURR';
11980 l_rec_acct_attrs.array_char_value(36) := p_source_26;
11981 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_LEDGER_AMT';
11982 l_rec_acct_attrs.array_num_value(37) := p_source_54;
11986 l_rec_acct_attrs.array_num_value(39) := p_source_52;
11983 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_OPTION';
11984 l_rec_acct_attrs.array_char_value(38) := p_source_44;
11985 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENTERED_CURRENCY_AMOUNT';
11987 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_CODE';
11988 l_rec_acct_attrs.array_char_value(40) := p_source_26;
11989 l_rec_acct_attrs.array_acct_attr_code(41) := 'EXCHANGE_DATE';
11990 l_rec_acct_attrs.array_date_value(41) := p_source_28;
11991 l_rec_acct_attrs.array_acct_attr_code(42) := 'EXCHANGE_RATE';
11992 l_rec_acct_attrs.array_num_value(42) := p_source_29;
11993 l_rec_acct_attrs.array_acct_attr_code(43) := 'EXCHANGE_RATE_TYPE';
11994 l_rec_acct_attrs.array_char_value(43) := p_source_30;
11995 l_rec_acct_attrs.array_acct_attr_code(44) := 'LEDGER_AMOUNT';
11996 l_rec_acct_attrs.array_num_value(44) := p_source_53;
11997 l_rec_acct_attrs.array_acct_attr_code(45) := 'REVERSED_DISTRIBUTION_ID1';
11998 l_rec_acct_attrs.array_num_value(45) := to_char(p_source_33);
11999 l_rec_acct_attrs.array_acct_attr_code(46) := 'REVERSED_DISTRIBUTION_ID2';
12000 l_rec_acct_attrs.array_num_value(46) := to_char(p_source_36);
12001 l_rec_acct_attrs.array_acct_attr_code(47) := 'REVERSED_DISTRIBUTION_TYPE';
12002 l_rec_acct_attrs.array_char_value(47) := p_source_35;
12003 l_rec_acct_attrs.array_acct_attr_code(48) := 'UPG_CR_ENC_TYPE_ID';
12004 l_rec_acct_attrs.array_num_value(48) := p_source_62;
12005 l_rec_acct_attrs.array_acct_attr_code(49) := 'UPG_DR_ENC_TYPE_ID';
12006 l_rec_acct_attrs.array_num_value(49) := p_source_63;
12007
12008 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
12009 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
12010
12011 ---------------------------------------------------------------------------------------------------------------
12012 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
12013 ---------------------------------------------------------------------------------------------------------------
12014 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
12015
12016 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12017 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12018
12019 IF xla_accounting_cache_pkg.GetValueChar
12020 (p_source_code => 'LEDGER_CATEGORY_CODE'
12021 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
12022 AND l_bflow_method_code = 'PRIOR_ENTRY'
12023 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
12024 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
12025 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
12026 )
12027 THEN
12028 xla_ae_lines_pkg.BflowUpgEntry
12029 (p_business_method_code => l_bflow_method_code
12030 ,p_business_class_code => l_bflow_class_code
12031 ,p_balance_type => l_balance_type_code);
12032 ELSE
12033 NULL;
12034 -- No business flow processing for business flow method of NONE.
12035 END IF;
12036
12037 --
12038 -- call analytical criteria
12039 --
12040
12041 --
12042 -- call description
12043 --
12044 -- No description or it is inherited.
12045 --
12046 -- call ADRs
12047 -- Bug 4922099
12048 --
12049 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12050 (NVL(l_actual_upg_option, 'N') = 'O') OR
12051 (NVL(l_enc_upg_option, 'N') = 'O')
12052 )
12053 THEN
12054 NULL;
12055 --
12056 --
12057
12058 l_ccid := AcctDerRule_14(
12059 p_application_id => p_application_id
12060 , p_ae_header_id => l_ae_header_id
12061 , p_source_5 => p_source_5
12062 , p_source_7 => p_source_7
12063 , p_source_8 => p_source_8
12064 , x_transaction_coa_id => l_adr_transaction_coa_id
12065 , x_accounting_coa_id => l_adr_accounting_coa_id
12066 , x_value_type_code => l_adr_value_type_code
12067 , p_side => 'NA'
12068 );
12069
12070 xla_ae_lines_pkg.set_ccid(
12071 p_code_combination_id => l_ccid
12072 , p_value_type_code => l_adr_value_type_code
12073 , p_transaction_coa_id => l_adr_transaction_coa_id
12074 , p_accounting_coa_id => l_adr_accounting_coa_id
12075 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
12076 , p_adr_type_code => 'S'
12077 , p_component_type => l_component_type
12078 , p_component_code => l_component_code
12079 , p_component_type_code => l_component_type_code
12080 , p_component_appl_id => l_component_appl_id
12081 , p_amb_context_code => l_amb_context_code
12082 , p_side => 'NA'
12083 );
12084
12085
12086 l_segment := AcctDerRule_5(
12087 p_application_id => p_application_id
12088 , p_ae_header_id => l_ae_header_id
12089 , x_transaction_coa_id => l_adr_transaction_coa_id
12090 , x_accounting_coa_id => l_adr_accounting_coa_id
12091 , x_flexfield_segment_code => l_adr_flexfield_segment_code
12092 , x_flex_value_set_id => l_adr_flex_value_set_id
12093 , x_value_type_code => l_adr_value_type_code
12094 , x_value_combination_id => l_adr_value_combination_id
12095 , x_value_segment_code => l_adr_value_segment_code
12096 , p_side => 'NA'
12097 , p_override_seg_flag => 'Y'
12098 );
12099
12103 p_to_segment_code => 'GL_ACCOUNT'
12100 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
12101
12102 xla_ae_lines_pkg.set_segment(
12104 , p_segment_value => l_segment
12105 , p_from_segment_code => l_adr_value_segment_code
12106 , p_from_combination_id => l_adr_value_combination_id
12107 , p_value_type_code => l_adr_value_type_code
12108 , p_transaction_coa_id => l_adr_transaction_coa_id
12109 , p_accounting_coa_id => l_adr_accounting_coa_id
12110 , p_flexfield_segment_code => l_adr_flexfield_segment_code
12111 , p_flex_value_set_id => l_adr_flex_value_set_id
12112 , p_adr_code => 'FV_490201_PROJECTS'
12113 , p_adr_type_code => 'S'
12114 , p_component_type => l_component_type
12115 , p_component_code => l_component_code
12116 , p_component_type_code => l_component_type_code
12117 , p_component_appl_id => l_component_appl_id
12118 , p_amb_context_code => l_amb_context_code
12119 , p_entity_code => 'EXPENDITURES'
12120 , p_event_class_code => 'BURDEN_COST'
12121 , p_side => 'NA'
12122 );
12123
12124 END IF;
12125
12126 --
12127 --
12128 END IF;
12129 --
12130 -- Bug 4922099
12131 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
12132 (NVL(l_enc_upg_option, 'N') = 'O')
12133 ) AND
12134 (l_bflow_method_code = 'PRIOR_ENTRY')
12135 )
12136 THEN
12137 IF
12138 --
12139 1 = 2
12140 --
12141 THEN
12142 xla_accounting_err_pkg.build_message
12143 (p_appli_s_name => 'XLA'
12144 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12145 ,p_token_1 => 'LINE_NUMBER'
12146 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
12147 ,p_token_2 => 'LINE_TYPE_NAME'
12148 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
12149 l_component_type
12150 ,l_component_code
12151 ,l_component_type_code
12152 ,l_component_appl_id
12153 ,l_amb_context_code
12154 ,l_entity_code
12155 ,l_event_class_code
12156 )
12157 ,p_token_3 => 'OWNER'
12158 ,p_value_3 => xla_lookups_pkg.get_meaning(
12159 p_lookup_type => 'XLA_OWNER_TYPE'
12160 ,p_lookup_code => l_component_type_code
12161 )
12162 ,p_token_4 => 'PRODUCT_NAME'
12163 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
12164 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
12165 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
12166 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
12167 ,p_ae_header_id => NULL
12168 );
12169
12170 IF (C_LEVEL_ERROR>= g_log_level) THEN
12171 trace
12172 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12173 ,p_level => C_LEVEL_ERROR
12174 ,p_module => l_log_module);
12175 END IF;
12176 END IF;
12177 END IF;
12178 --
12179 --
12180 ------------------------------------------------------------------------------------------------
12181 -- 4219869 Business Flow
12182 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
12183 -- Prior Entry. Currently, the following code is always generated.
12184 ------------------------------------------------------------------------------------------------
12185 XLA_AE_LINES_PKG.ValidateCurrentLine;
12186
12187 ------------------------------------------------------------------------------------
12188 -- 4219869 Business Flow
12189 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
12190 ------------------------------------------------------------------------------------
12191 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12192
12193 ----------------------------------------------------------------------------------
12194 -- 4219869 Business Flow
12195 -- Update journal entry status -- Need to generate this within IF <condition>
12196 ----------------------------------------------------------------------------------
12197 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12198 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
12199 ,p_balance_type_code => l_balance_type_code
12200 );
12201
12202 -------------------------------------------------------------------------------------------
12206 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
12203 -- 4262811 - Generate the Accrual Reversal lines
12204 -------------------------------------------------------------------------------------------
12205 BEGIN
12207 (g_array_event(p_event_id).array_value_num('header_index'));
12208 IF l_acc_rev_flag IS NULL THEN
12209 l_acc_rev_flag := 'N';
12210 END IF;
12211 EXCEPTION
12212 WHEN OTHERS THEN
12213 l_acc_rev_flag := 'N';
12214 END;
12215 --
12216 IF (l_acc_rev_flag = 'Y') THEN
12217
12218 -- 4645092 ------------------------------------------------------------------------------
12219 -- To allow MPA report to determine if it should generate report process
12220 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
12221 ------------------------------------------------------------------------------------------
12222
12223 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
12224 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
12225
12226 --
12227 -- Update the line information that should be overwritten
12228 --
12229 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
12230 p_header_num => 1);
12231 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
12232
12233 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
12234
12235 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
12236 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
12237 END IF;
12238
12239 --
12240 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
12241 --
12242 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
12243 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
12244 ELSE
12245 ---------------------------------------------------------------------------------------------------
12246 -- 4262811a Switch Sign
12247 ---------------------------------------------------------------------------------------------------
12248 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
12249 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12250 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12251 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12252 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12253 -- 5132302
12254 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
12255 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12256
12257 END IF;
12258
12259 -- 4955764
12260 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12261 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
12262
12263
12264 XLA_AE_LINES_PKG.ValidateCurrentLine;
12265 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12266
12267 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12268 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
12269 ,p_balance_type_code => l_balance_type_code);
12270
12271 END IF;
12272
12273 -----------------------------------------------------------------------------------------
12274 -- 4262811 Multiperiod Accounting
12275 -----------------------------------------------------------------------------------------
12276 -- No MPA option is assigned.
12277
12278
12279 END IF;
12280 END IF;
12281 --
12282
12283 --
12284 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12285 trace
12286 (p_msg => 'END of AcctLineType_42'
12287 ,p_level => C_LEVEL_PROCEDURE
12288 ,p_module => l_log_module);
12289 END IF;
12290 --
12291 EXCEPTION
12292 WHEN xla_exceptions_pkg.application_exception THEN
12293 RAISE;
12294 WHEN OTHERS THEN
12295 xla_exceptions_pkg.raise_message
12296 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_42');
12297 END AcctLineType_42;
12298 --
12299
12300 ---------------------------------------
12301 --
12302 -- PRIVATE FUNCTION
12303 -- AcctLineType_43
12304 --
12305 ---------------------------------------
12306 PROCEDURE AcctLineType_43 (
12307 p_application_id IN NUMBER
12308 ,p_event_id IN NUMBER
12309 ,p_calculate_acctd_flag IN VARCHAR2
12310 ,p_calculate_g_l_flag IN VARCHAR2
12311 ,p_actual_flag IN OUT VARCHAR2
12312 ,p_balance_type_code OUT VARCHAR2
12313 ,p_gain_or_loss_ref OUT VARCHAR2
12314
12315 --Budget Code Combination ID
12316 , p_source_3 IN NUMBER
12317 --Cost CCID
12318 , p_source_4 IN NUMBER
12319 --Allow Account Override Flag
12320 , p_source_5 IN VARCHAR2
12321 --Adjustment Cost CCID
12322 , p_source_6 IN NUMBER
12323 --Cost Clearing CCID
12324 , p_source_7 IN NUMBER
12325 --Reversing Line Flag
12326 , p_source_23 IN VARCHAR2
12327 --Actual Upgrade Credit Accounting Class
12328 , p_source_24 IN VARCHAR2
12329 --Entered Currency Code
12330 , p_source_26 IN VARCHAR2
12331 --Exchange Rate Date
12335 --Exchange Rate Type
12332 , p_source_28 IN DATE
12333 --Exchange Rate
12334 , p_source_29 IN NUMBER
12336 , p_source_30 IN VARCHAR2
12337 --Actual Upgrade Debit Accounting Class
12338 , p_source_31 IN VARCHAR2
12339 --Use Actuals Upgrade Attributes Flag
12340 , p_source_32 IN VARCHAR2
12341 --Expenditure Item ID
12342 , p_source_33 IN NUMBER
12343 --Cost Distribution Line Number
12344 , p_source_34 IN NUMBER
12345 --Line Type
12346 , p_source_35 IN VARCHAR2
12347 , p_source_35_meaning IN VARCHAR2
12348 --Reversed Line Number
12349 , p_source_36 IN NUMBER
12350 --Encumbrance Upgrade Credit Accounting Class
12351 , p_source_41 IN VARCHAR2
12352 --Use Encumbrance Upgrade Attributes Flag
12353 , p_source_44 IN VARCHAR2
12354 --Entered Burdened Cost
12355 , p_source_52 IN NUMBER
12356 --Accounted Burdened Cost
12357 , p_source_53 IN NUMBER
12358 --Encumbrance Amount
12359 , p_source_54 IN NUMBER
12360 --Project Encumbrance Applied to Application Identifier
12361 , p_source_55 IN NUMBER
12362 --Project Encumbrance Applied to Distribution Type
12363 , p_source_56 IN VARCHAR2
12364 --Project Encumbrance Applied to Entity Code
12365 , p_source_57 IN VARCHAR2
12366 --Project Encumbrance Applied to First Distribution ID
12367 , p_source_58 IN NUMBER
12368 --Project Encumbrance Applied to First System Transaction ID
12369 , p_source_59 IN NUMBER
12370 --Project Encumbrance Applied to Second Distribution ID
12371 , p_source_60 IN VARCHAR2
12372 --Encumbrance Upgrade Debit Accounting Class
12373 , p_source_61 IN VARCHAR2
12374 --Encumbrance Type ID
12375 , p_source_62 IN NUMBER
12376 --Project Encumbrance Type ID
12377 , p_source_63 IN NUMBER
12378 )
12379 IS
12380
12381 l_component_type VARCHAR2(80);
12382 l_component_code VARCHAR2(30);
12383 l_component_type_code VARCHAR2(1);
12384 l_component_appl_id INTEGER;
12385 l_amb_context_code VARCHAR2(30);
12386 l_entity_code VARCHAR2(30);
12387 l_event_class_code VARCHAR2(30);
12388 l_ae_header_id NUMBER;
12389 l_event_type_code VARCHAR2(30);
12390 l_line_definition_code VARCHAR2(30);
12391 l_line_definition_owner_code VARCHAR2(1);
12392 --
12393 -- adr variables
12394 l_segment VARCHAR2(30);
12395 l_ccid NUMBER;
12396 l_adr_transaction_coa_id NUMBER;
12397 l_adr_accounting_coa_id NUMBER;
12398 l_adr_flexfield_segment_code VARCHAR2(30);
12399 l_adr_flex_value_set_id NUMBER;
12400 l_adr_value_type_code VARCHAR2(30);
12401 l_adr_value_combination_id NUMBER;
12402 l_adr_value_segment_code VARCHAR2(30);
12403
12404 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
12405 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
12406 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
12407 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
12408
12409 -- 4262811 Variables ------------------------------------------------------------------------------------------
12410 l_entered_amt_idx NUMBER;
12411 l_accted_amt_idx NUMBER;
12412 l_acc_rev_flag VARCHAR2(1);
12413 l_accrual_line_num NUMBER;
12414 l_tmp_amt NUMBER;
12415 l_acc_rev_natural_side_code VARCHAR2(1);
12416
12417 l_num_entries NUMBER;
12418 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
12419 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
12420 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
12421 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
12422 l_recog_line_1 NUMBER;
12423 l_recog_line_2 NUMBER;
12424
12425 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
12426 l_bflow_applied_to_amt NUMBER; -- 5132302
12427 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
12428
12429 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
12430
12431 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
12432 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
12433
12434 ---------------------------------------------------------------------------------------------------------------
12435
12436
12437 --
12438 -- bulk performance
12439 --
12440 l_balance_type_code VARCHAR2(1);
12441 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
12442 l_log_module VARCHAR2(240);
12443
12444 --
12445 -- Upgrade strategy
12446 --
12447 l_actual_upg_option VARCHAR2(1);
12448 l_enc_upg_option VARCHAR2(1);
12449
12450 --
12451 BEGIN
12452 --
12453 IF g_log_enabled THEN
12454 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_43';
12455 END IF;
12456 --
12457 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12458
12459 trace
12460 (p_msg => 'BEGIN of AcctLineType_43'
12461 ,p_level => C_LEVEL_PROCEDURE
12462 ,p_module => l_log_module);
12463
12464 END IF;
12465 --
12466 l_component_type := 'AMB_JLT';
12467 l_component_code := 'PA_BURDEN_COST_FED';
12468 l_component_type_code := 'S';
12469 l_component_appl_id := 275;
12470 l_amb_context_code := 'DEFAULT';
12471 l_entity_code := 'EXPENDITURES';
12475 l_line_definition_code := 'FV_PROJECTS_JLD';
12472 l_event_class_code := 'BURDEN_COST';
12473 l_event_type_code := 'BURDEN_COST_ALL';
12474 l_line_definition_owner_code := 'S';
12476 --
12477 l_balance_type_code := 'A';
12478 l_segment := NULL;
12479 l_ccid := NULL;
12480 l_adr_transaction_coa_id := NULL;
12481 l_adr_accounting_coa_id := NULL;
12482 l_adr_flexfield_segment_code := NULL;
12483 l_adr_flex_value_set_id := NULL;
12484 l_adr_value_type_code := NULL;
12485 l_adr_value_combination_id := NULL;
12486 l_adr_value_segment_code := NULL;
12487
12488 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
12489 l_bflow_class_code := ''; -- 4219869 Business Flow
12490 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
12491 l_budgetary_control_flag := 'N';
12492
12493 l_bflow_applied_to_amt_idx := NULL; -- 5132302
12494 l_bflow_applied_to_amt := NULL; -- 5132302
12495 l_entered_amt_idx := NULL; -- 4262811
12496 l_accted_amt_idx := NULL; -- 4262811
12497 l_acc_rev_flag := NULL; -- 4262811
12498 l_accrual_line_num := NULL; -- 4262811
12499 l_tmp_amt := NULL; -- 4262811
12500 --
12501
12502 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
12503 l_balance_type_code <> 'B' THEN
12504 IF NVL(p_source_35,'
12505 ') = 'R'
12506 THEN
12507
12508 --
12509 XLA_AE_LINES_PKG.SetNewLine;
12510
12511 p_balance_type_code := l_balance_type_code;
12512 -- set the flag so later we will know whether the gain loss line needs to be created
12513
12514 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
12515 p_actual_flag :='A';
12516 END IF;
12517
12518 --
12519 -- bulk performance
12520 --
12521 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
12522 p_header_num => 0); -- 4262811
12523 --
12524 -- set accounting line options
12525 --
12526 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
12527 p_natural_side_code => 'D'
12528 , p_gain_or_loss_flag => 'N'
12529 , p_gl_transfer_mode_code => 'S'
12530 , p_acct_entry_type_code => 'A'
12531 , p_switch_side_flag => 'Y'
12532 , p_merge_duplicate_code => 'N'
12533 );
12534 --
12535 l_acc_rev_natural_side_code := 'C'; -- 4262811
12536 --
12537 --
12538 -- set accounting line type info
12539 --
12540 xla_ae_lines_pkg.SetAcctLineType
12541 (p_component_type => l_component_type
12542 ,p_event_type_code => l_event_type_code
12543 ,p_line_definition_owner_code => l_line_definition_owner_code
12544 ,p_line_definition_code => l_line_definition_code
12545 ,p_accounting_line_code => l_component_code
12546 ,p_accounting_line_type_code => l_component_type_code
12547 ,p_accounting_line_appl_id => l_component_appl_id
12548 ,p_amb_context_code => l_amb_context_code
12549 ,p_entity_code => l_entity_code
12550 ,p_event_class_code => l_event_class_code);
12551 --
12552 -- set accounting class
12553 --
12554 xla_ae_lines_pkg.SetAcctClass(
12555 p_accounting_class_code => 'FEDERAL_PROJECT_COST'
12556 , p_ae_header_id => l_ae_header_id
12557 );
12558
12559 --
12560 -- set rounding class
12561 --
12562 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
12563 'FEDERAL_PROJECT_COST';
12564
12565 --
12566 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
12567 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
12568 --
12569 -- bulk performance
12570 --
12571 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
12572
12573 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
12574 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
12575
12576 -- 4955764
12577 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12578 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
12579
12580 -- 4458381 Public Sector Enh
12581
12582 --
12583 -- set accounting attributes for the line type
12584 --
12585 l_entered_amt_idx := 39;
12586 l_accted_amt_idx := 44;
12587 l_bflow_applied_to_amt_idx := NULL; -- 5132302
12588 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
12589 l_rec_acct_attrs.array_char_value(1) := p_source_23;
12590 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
12591 l_rec_acct_attrs.array_char_value(2) := p_source_24;
12592 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
12593 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
12594 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
12595 l_rec_acct_attrs.array_num_value(4) := p_source_52;
12596 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
12597 l_rec_acct_attrs.array_char_value(5) := p_source_26;
12598 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
12599 l_rec_acct_attrs.array_num_value(6) := p_source_53;
12600 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
12604 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
12601 l_rec_acct_attrs.array_date_value(7) := p_source_28;
12602 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
12603 l_rec_acct_attrs.array_num_value(8) := p_source_29;
12605 l_rec_acct_attrs.array_char_value(9) := p_source_30;
12606 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
12607 l_rec_acct_attrs.array_char_value(10) := p_source_31;
12608 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
12609 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
12610 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
12611 l_rec_acct_attrs.array_num_value(12) := p_source_52;
12612 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
12613 l_rec_acct_attrs.array_char_value(13) := p_source_26;
12614 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
12615 l_rec_acct_attrs.array_num_value(14) := p_source_53;
12616 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
12617 l_rec_acct_attrs.array_date_value(15) := p_source_28;
12618 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
12619 l_rec_acct_attrs.array_num_value(16) := p_source_29;
12620 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
12621 l_rec_acct_attrs.array_char_value(17) := p_source_30;
12622 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
12623 l_rec_acct_attrs.array_char_value(18) := p_source_32;
12624 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_APPLICATION_ID';
12625 l_rec_acct_attrs.array_num_value(19) := p_source_55;
12626 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_DISTRIBUTION_TYPE';
12627 l_rec_acct_attrs.array_char_value(20) := p_source_56;
12628 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_ENTITY_CODE';
12629 l_rec_acct_attrs.array_char_value(21) := p_source_57;
12630 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_DIST_ID';
12631 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_58);
12632 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
12633 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_59);
12634 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_DIST_ID';
12635 l_rec_acct_attrs.array_char_value(24) := p_source_60;
12636 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
12637 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_33);
12638 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
12639 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_34);
12640 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
12641 l_rec_acct_attrs.array_char_value(27) := p_source_35;
12642 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENC_UPG_CR_ACCT_CLASS';
12643 l_rec_acct_attrs.array_char_value(28) := p_source_41;
12644 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_CCID';
12645 l_rec_acct_attrs.array_num_value(29) := p_source_3;
12646 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_ENTERED_AMT';
12647 l_rec_acct_attrs.array_num_value(30) := p_source_54;
12648 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_CURR';
12649 l_rec_acct_attrs.array_char_value(31) := p_source_26;
12650 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_LEDGER_AMT';
12651 l_rec_acct_attrs.array_num_value(32) := p_source_54;
12652 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_DR_ACCT_CLASS';
12653 l_rec_acct_attrs.array_char_value(33) := p_source_61;
12654 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_CCID';
12655 l_rec_acct_attrs.array_num_value(34) := p_source_3;
12656 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_ENTERED_AMT';
12657 l_rec_acct_attrs.array_num_value(35) := p_source_54;
12658 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_CURR';
12659 l_rec_acct_attrs.array_char_value(36) := p_source_26;
12660 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_LEDGER_AMT';
12661 l_rec_acct_attrs.array_num_value(37) := p_source_54;
12662 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_OPTION';
12663 l_rec_acct_attrs.array_char_value(38) := p_source_44;
12664 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENTERED_CURRENCY_AMOUNT';
12665 l_rec_acct_attrs.array_num_value(39) := p_source_52;
12666 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_CODE';
12667 l_rec_acct_attrs.array_char_value(40) := p_source_26;
12668 l_rec_acct_attrs.array_acct_attr_code(41) := 'EXCHANGE_DATE';
12669 l_rec_acct_attrs.array_date_value(41) := p_source_28;
12670 l_rec_acct_attrs.array_acct_attr_code(42) := 'EXCHANGE_RATE';
12671 l_rec_acct_attrs.array_num_value(42) := p_source_29;
12672 l_rec_acct_attrs.array_acct_attr_code(43) := 'EXCHANGE_RATE_TYPE';
12673 l_rec_acct_attrs.array_char_value(43) := p_source_30;
12674 l_rec_acct_attrs.array_acct_attr_code(44) := 'LEDGER_AMOUNT';
12675 l_rec_acct_attrs.array_num_value(44) := p_source_53;
12676 l_rec_acct_attrs.array_acct_attr_code(45) := 'REVERSED_DISTRIBUTION_ID1';
12677 l_rec_acct_attrs.array_num_value(45) := to_char(p_source_33);
12678 l_rec_acct_attrs.array_acct_attr_code(46) := 'REVERSED_DISTRIBUTION_ID2';
12679 l_rec_acct_attrs.array_num_value(46) := to_char(p_source_36);
12680 l_rec_acct_attrs.array_acct_attr_code(47) := 'REVERSED_DISTRIBUTION_TYPE';
12681 l_rec_acct_attrs.array_char_value(47) := p_source_35;
12682 l_rec_acct_attrs.array_acct_attr_code(48) := 'UPG_CR_ENC_TYPE_ID';
12683 l_rec_acct_attrs.array_num_value(48) := p_source_62;
12684 l_rec_acct_attrs.array_acct_attr_code(49) := 'UPG_DR_ENC_TYPE_ID';
12685 l_rec_acct_attrs.array_num_value(49) := p_source_63;
12686
12687 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
12688 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
12689
12693 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
12690 ---------------------------------------------------------------------------------------------------------------
12691 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
12692 ---------------------------------------------------------------------------------------------------------------
12694
12695 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12696 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12697
12698 IF xla_accounting_cache_pkg.GetValueChar
12699 (p_source_code => 'LEDGER_CATEGORY_CODE'
12700 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
12701 AND l_bflow_method_code = 'PRIOR_ENTRY'
12702 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
12703 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
12704 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
12705 )
12706 THEN
12707 xla_ae_lines_pkg.BflowUpgEntry
12708 (p_business_method_code => l_bflow_method_code
12709 ,p_business_class_code => l_bflow_class_code
12710 ,p_balance_type => l_balance_type_code);
12711 ELSE
12712 NULL;
12713 -- No business flow processing for business flow method of NONE.
12714 END IF;
12715
12716 --
12717 -- call analytical criteria
12718 --
12719
12720 --
12721 -- call description
12722 --
12723 -- No description or it is inherited.
12724 --
12725 -- call ADRs
12726 -- Bug 4922099
12727 --
12728 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12729 (NVL(l_actual_upg_option, 'N') = 'O') OR
12730 (NVL(l_enc_upg_option, 'N') = 'O')
12731 )
12732 THEN
12733 NULL;
12734 --
12735 --
12736
12737 l_ccid := AcctDerRule_12(
12738 p_application_id => p_application_id
12739 , p_ae_header_id => l_ae_header_id
12740 , p_source_4 => p_source_4
12741 , p_source_5 => p_source_5
12742 , p_source_6 => p_source_6
12743 , x_transaction_coa_id => l_adr_transaction_coa_id
12744 , x_accounting_coa_id => l_adr_accounting_coa_id
12745 , x_value_type_code => l_adr_value_type_code
12746 , p_side => 'NA'
12747 );
12748
12749 xla_ae_lines_pkg.set_ccid(
12750 p_code_combination_id => l_ccid
12751 , p_value_type_code => l_adr_value_type_code
12752 , p_transaction_coa_id => l_adr_transaction_coa_id
12753 , p_accounting_coa_id => l_adr_accounting_coa_id
12754 , p_adr_code => 'PA_COST_ACCT_RULE'
12755 , p_adr_type_code => 'S'
12756 , p_component_type => l_component_type
12757 , p_component_code => l_component_code
12758 , p_component_type_code => l_component_type_code
12759 , p_component_appl_id => l_component_appl_id
12760 , p_amb_context_code => l_amb_context_code
12761 , p_side => 'NA'
12762 );
12763
12764
12765 l_segment := AcctDerRule_4(
12766 p_application_id => p_application_id
12767 , p_ae_header_id => l_ae_header_id
12768 , x_transaction_coa_id => l_adr_transaction_coa_id
12769 , x_accounting_coa_id => l_adr_accounting_coa_id
12770 , x_flexfield_segment_code => l_adr_flexfield_segment_code
12771 , x_flex_value_set_id => l_adr_flex_value_set_id
12772 , x_value_type_code => l_adr_value_type_code
12773 , x_value_combination_id => l_adr_value_combination_id
12774 , x_value_segment_code => l_adr_value_segment_code
12775 , p_side => 'NA'
12776 , p_override_seg_flag => 'Y'
12777 );
12778
12779 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
12780
12781 xla_ae_lines_pkg.set_segment(
12782 p_to_segment_code => 'GL_ACCOUNT'
12783 , p_segment_value => l_segment
12784 , p_from_segment_code => l_adr_value_segment_code
12785 , p_from_combination_id => l_adr_value_combination_id
12786 , p_value_type_code => l_adr_value_type_code
12787 , p_transaction_coa_id => l_adr_transaction_coa_id
12788 , p_accounting_coa_id => l_adr_accounting_coa_id
12789 , p_flexfield_segment_code => l_adr_flexfield_segment_code
12790 , p_flex_value_set_id => l_adr_flex_value_set_id
12791 , p_adr_code => 'FV_461001_PROJECTS'
12792 , p_adr_type_code => 'S'
12793 , p_component_type => l_component_type
12794 , p_component_code => l_component_code
12795 , p_component_type_code => l_component_type_code
12796 , p_component_appl_id => l_component_appl_id
12797 , p_amb_context_code => l_amb_context_code
12798 , p_entity_code => 'EXPENDITURES'
12799 , p_event_class_code => 'BURDEN_COST'
12800 , p_side => 'NA'
12801 );
12802
12803 END IF;
12804
12805 --
12806 --
12807 END IF;
12808 --
12809 -- Bug 4922099
12810 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
12811 (NVL(l_enc_upg_option, 'N') = 'O')
12812 ) AND
12813 (l_bflow_method_code = 'PRIOR_ENTRY')
12814 )
12815 THEN
12816 IF
12817 --
12818 1 = 2
12819 --
12820 THEN
12824 ,p_token_1 => 'LINE_NUMBER'
12821 xla_accounting_err_pkg.build_message
12822 (p_appli_s_name => 'XLA'
12823 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12825 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
12826 ,p_token_2 => 'LINE_TYPE_NAME'
12827 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
12828 l_component_type
12829 ,l_component_code
12830 ,l_component_type_code
12831 ,l_component_appl_id
12832 ,l_amb_context_code
12833 ,l_entity_code
12834 ,l_event_class_code
12835 )
12836 ,p_token_3 => 'OWNER'
12837 ,p_value_3 => xla_lookups_pkg.get_meaning(
12838 p_lookup_type => 'XLA_OWNER_TYPE'
12839 ,p_lookup_code => l_component_type_code
12840 )
12841 ,p_token_4 => 'PRODUCT_NAME'
12842 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
12843 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
12844 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
12845 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
12846 ,p_ae_header_id => NULL
12847 );
12848
12849 IF (C_LEVEL_ERROR>= g_log_level) THEN
12850 trace
12851 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12852 ,p_level => C_LEVEL_ERROR
12853 ,p_module => l_log_module);
12854 END IF;
12855 END IF;
12856 END IF;
12857 --
12858 --
12859 ------------------------------------------------------------------------------------------------
12860 -- 4219869 Business Flow
12861 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
12862 -- Prior Entry. Currently, the following code is always generated.
12863 ------------------------------------------------------------------------------------------------
12864 XLA_AE_LINES_PKG.ValidateCurrentLine;
12865
12866 ------------------------------------------------------------------------------------
12867 -- 4219869 Business Flow
12868 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
12869 ------------------------------------------------------------------------------------
12870 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12871
12872 ----------------------------------------------------------------------------------
12873 -- 4219869 Business Flow
12874 -- Update journal entry status -- Need to generate this within IF <condition>
12875 ----------------------------------------------------------------------------------
12876 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12877 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
12878 ,p_balance_type_code => l_balance_type_code
12879 );
12880
12881 -------------------------------------------------------------------------------------------
12882 -- 4262811 - Generate the Accrual Reversal lines
12883 -------------------------------------------------------------------------------------------
12884 BEGIN
12885 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
12886 (g_array_event(p_event_id).array_value_num('header_index'));
12887 IF l_acc_rev_flag IS NULL THEN
12888 l_acc_rev_flag := 'N';
12889 END IF;
12890 EXCEPTION
12891 WHEN OTHERS THEN
12892 l_acc_rev_flag := 'N';
12893 END;
12894 --
12895 IF (l_acc_rev_flag = 'Y') THEN
12896
12897 -- 4645092 ------------------------------------------------------------------------------
12898 -- To allow MPA report to determine if it should generate report process
12899 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
12900 ------------------------------------------------------------------------------------------
12901
12902 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
12903 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
12904
12905 --
12906 -- Update the line information that should be overwritten
12907 --
12908 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
12909 p_header_num => 1);
12910 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
12911
12912 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
12913
12914 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
12915 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
12916 END IF;
12917
12921 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
12918 --
12919 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
12920 --
12922 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
12923 ELSE
12924 ---------------------------------------------------------------------------------------------------
12925 -- 4262811a Switch Sign
12926 ---------------------------------------------------------------------------------------------------
12927 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
12928 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12929 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12930 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12931 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12932 -- 5132302
12933 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
12934 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12935
12936 END IF;
12937
12938 -- 4955764
12939 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12940 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
12941
12942
12943 XLA_AE_LINES_PKG.ValidateCurrentLine;
12944 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12945
12946 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12947 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
12948 ,p_balance_type_code => l_balance_type_code);
12949
12950 END IF;
12951
12952 -----------------------------------------------------------------------------------------
12953 -- 4262811 Multiperiod Accounting
12954 -----------------------------------------------------------------------------------------
12955 -- No MPA option is assigned.
12956
12957
12958 END IF;
12959 END IF;
12960 --
12961
12962 --
12963 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12964 trace
12965 (p_msg => 'END of AcctLineType_43'
12966 ,p_level => C_LEVEL_PROCEDURE
12967 ,p_module => l_log_module);
12968 END IF;
12969 --
12970 EXCEPTION
12971 WHEN xla_exceptions_pkg.application_exception THEN
12972 RAISE;
12973 WHEN OTHERS THEN
12974 xla_exceptions_pkg.raise_message
12975 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_43');
12976 END AcctLineType_43;
12977 --
12978
12979 ---------------------------------------
12980 --
12981 -- PRIVATE FUNCTION
12982 -- AcctLineType_44
12983 --
12984 ---------------------------------------
12985 PROCEDURE AcctLineType_44 (
12986 p_application_id IN NUMBER
12987 ,p_event_id IN NUMBER
12988 ,p_calculate_acctd_flag IN VARCHAR2
12989 ,p_calculate_g_l_flag IN VARCHAR2
12990 ,p_actual_flag IN OUT VARCHAR2
12991 ,p_balance_type_code OUT VARCHAR2
12992 ,p_gain_or_loss_ref OUT VARCHAR2
12993
12994 --Revenue CCID
12995 , p_source_19 IN NUMBER
12996 --Actual Upgrade Credit Accounting Class
12997 , p_source_24 IN VARCHAR2
12998 --Entered Currency Code
12999 , p_source_26 IN VARCHAR2
13000 --Exchange Rate Date
13001 , p_source_28 IN DATE
13002 --Exchange Rate
13003 , p_source_29 IN NUMBER
13004 --Exchange Rate Type
13005 , p_source_30 IN VARCHAR2
13006 --Actual Upgrade Debit Accounting Class
13007 , p_source_31 IN VARCHAR2
13008 --Use Actuals Upgrade Attributes Flag
13009 , p_source_32 IN VARCHAR2
13010 --Entered Amount
13011 , p_source_42 IN NUMBER
13012 --Accounted Amount
13013 , p_source_43 IN NUMBER
13014 --Revenue Distribution Type
13015 , p_source_46 IN VARCHAR2
13016 --Crediting Revenue Flag
13017 , p_source_48 IN VARCHAR2
13018 --Revenue First Distribution ID
13019 , p_source_49 IN NUMBER
13020 --Revenue Second Distribution ID
13021 , p_source_50 IN NUMBER
13022 --Event ID
13023 , p_source_51 IN NUMBER
13024 --Actual Upgrade Credit CCID
13025 , p_source_64 IN NUMBER
13026 --Actual Upgrade Debit CCID
13027 , p_source_65 IN NUMBER
13028 --Application ID
13029 , p_source_66 IN NUMBER
13030 --Revenue Entity Code
13031 , p_source_67 IN VARCHAR2
13032 --Crediting Revenue First Distribution ID
13033 , p_source_68 IN NUMBER
13034 --Project ID
13035 , p_source_69 IN NUMBER
13036 --Crediting Revenue Second Distribution ID
13037 , p_source_70 IN NUMBER
13038 --Draft Revenue Number Credited
13039 , p_source_71 IN NUMBER
13040 )
13041 IS
13042
13043 l_component_type VARCHAR2(80);
13044 l_component_code VARCHAR2(30);
13045 l_component_type_code VARCHAR2(1);
13046 l_component_appl_id INTEGER;
13047 l_amb_context_code VARCHAR2(30);
13048 l_entity_code VARCHAR2(30);
13049 l_event_class_code VARCHAR2(30);
13050 l_ae_header_id NUMBER;
13051 l_event_type_code VARCHAR2(30);
13052 l_line_definition_code VARCHAR2(30);
13053 l_line_definition_owner_code VARCHAR2(1);
13054 --
13055 -- adr variables
13056 l_segment VARCHAR2(30);
13060 l_adr_flexfield_segment_code VARCHAR2(30);
13057 l_ccid NUMBER;
13058 l_adr_transaction_coa_id NUMBER;
13059 l_adr_accounting_coa_id NUMBER;
13061 l_adr_flex_value_set_id NUMBER;
13062 l_adr_value_type_code VARCHAR2(30);
13063 l_adr_value_combination_id NUMBER;
13064 l_adr_value_segment_code VARCHAR2(30);
13065
13066 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
13067 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
13068 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
13069 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
13070
13071 -- 4262811 Variables ------------------------------------------------------------------------------------------
13072 l_entered_amt_idx NUMBER;
13073 l_accted_amt_idx NUMBER;
13074 l_acc_rev_flag VARCHAR2(1);
13075 l_accrual_line_num NUMBER;
13076 l_tmp_amt NUMBER;
13077 l_acc_rev_natural_side_code VARCHAR2(1);
13078
13079 l_num_entries NUMBER;
13080 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
13081 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
13082 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
13083 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
13084 l_recog_line_1 NUMBER;
13085 l_recog_line_2 NUMBER;
13086
13087 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
13088 l_bflow_applied_to_amt NUMBER; -- 5132302
13089 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
13090
13091 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
13092
13093 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
13094 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
13095
13096 ---------------------------------------------------------------------------------------------------------------
13097
13098
13099 --
13100 -- bulk performance
13101 --
13102 l_balance_type_code VARCHAR2(1);
13103 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
13104 l_log_module VARCHAR2(240);
13105
13106 --
13107 -- Upgrade strategy
13108 --
13109 l_actual_upg_option VARCHAR2(1);
13110 l_enc_upg_option VARCHAR2(1);
13111
13112 --
13113 BEGIN
13114 --
13115 IF g_log_enabled THEN
13116 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_44';
13117 END IF;
13118 --
13119 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13120
13121 trace
13122 (p_msg => 'BEGIN of AcctLineType_44'
13123 ,p_level => C_LEVEL_PROCEDURE
13124 ,p_module => l_log_module);
13125
13126 END IF;
13127 --
13128 l_component_type := 'AMB_JLT';
13129 l_component_code := 'PA_COST_REV_ADJ_FED';
13130 l_component_type_code := 'S';
13131 l_component_appl_id := 275;
13132 l_amb_context_code := 'DEFAULT';
13133 l_entity_code := 'REVENUE';
13134 l_event_class_code := 'REVENUE_ADJ';
13135 l_event_type_code := 'REVENUE_ADJ_ALL';
13136 l_line_definition_owner_code := 'S';
13137 l_line_definition_code := 'FV_PROJECTS_JLD';
13138 --
13139 l_balance_type_code := 'A';
13140 l_segment := NULL;
13141 l_ccid := NULL;
13142 l_adr_transaction_coa_id := NULL;
13143 l_adr_accounting_coa_id := NULL;
13144 l_adr_flexfield_segment_code := NULL;
13145 l_adr_flex_value_set_id := NULL;
13146 l_adr_value_type_code := NULL;
13147 l_adr_value_combination_id := NULL;
13148 l_adr_value_segment_code := NULL;
13149
13150 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
13151 l_bflow_class_code := ''; -- 4219869 Business Flow
13152 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
13153 l_budgetary_control_flag := 'N';
13154
13155 l_bflow_applied_to_amt_idx := NULL; -- 5132302
13156 l_bflow_applied_to_amt := NULL; -- 5132302
13157 l_entered_amt_idx := NULL; -- 4262811
13158 l_accted_amt_idx := NULL; -- 4262811
13159 l_acc_rev_flag := NULL; -- 4262811
13160 l_accrual_line_num := NULL; -- 4262811
13161 l_tmp_amt := NULL; -- 4262811
13162 --
13163
13164 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
13165 l_balance_type_code <> 'B' THEN
13166 IF NVL(p_source_46,'
13167 ') = 'Revenue - Normal Revenue' AND
13168 NVL(p_source_48,'
13169 ') = 'Y'
13170 THEN
13171
13172 --
13173 XLA_AE_LINES_PKG.SetNewLine;
13174
13175 p_balance_type_code := l_balance_type_code;
13176 -- set the flag so later we will know whether the gain loss line needs to be created
13177
13178 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
13179 p_actual_flag :='A';
13180 END IF;
13181
13182 --
13183 -- bulk performance
13184 --
13185 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
13186 p_header_num => 0); -- 4262811
13187 --
13188 -- set accounting line options
13189 --
13190 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
13191 p_natural_side_code => 'D'
13192 , p_gain_or_loss_flag => 'N'
13193 , p_gl_transfer_mode_code => 'S'
13194 , p_acct_entry_type_code => 'A'
13198 --
13195 , p_switch_side_flag => 'Y'
13196 , p_merge_duplicate_code => 'N'
13197 );
13199 l_acc_rev_natural_side_code := 'C'; -- 4262811
13200 --
13201 --
13202 -- set accounting line type info
13203 --
13204 xla_ae_lines_pkg.SetAcctLineType
13205 (p_component_type => l_component_type
13206 ,p_event_type_code => l_event_type_code
13207 ,p_line_definition_owner_code => l_line_definition_owner_code
13208 ,p_line_definition_code => l_line_definition_code
13209 ,p_accounting_line_code => l_component_code
13210 ,p_accounting_line_type_code => l_component_type_code
13211 ,p_accounting_line_appl_id => l_component_appl_id
13212 ,p_amb_context_code => l_amb_context_code
13213 ,p_entity_code => l_entity_code
13214 ,p_event_class_code => l_event_class_code);
13215 --
13216 -- set accounting class
13217 --
13218 xla_ae_lines_pkg.SetAcctClass(
13219 p_accounting_class_code => 'FEDERAL_REVENUE_ADJUSTMENT'
13220 , p_ae_header_id => l_ae_header_id
13221 );
13222
13223 --
13224 -- set rounding class
13225 --
13226 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
13227 'FEDERAL_REVENUE_ADJUSTMENT';
13228
13229 --
13230 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
13231 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
13232 --
13233 -- bulk performance
13234 --
13235 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
13236
13237 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
13238 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
13239
13240 -- 4955764
13241 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13242 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
13243
13244 -- 4458381 Public Sector Enh
13245
13246 --
13247 -- set accounting attributes for the line type
13248 --
13249 l_entered_amt_idx := 28;
13250 l_accted_amt_idx := 31;
13251 l_bflow_applied_to_amt_idx := NULL; -- 5132302
13252 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACTUAL_UPG_CR_ACCT_CLASS';
13253 l_rec_acct_attrs.array_char_value(1) := p_source_24;
13254 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_CCID';
13255 l_rec_acct_attrs.array_num_value(2) := TO_NUMBER(p_source_64);
13256 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ENTERED_AMT';
13257 l_rec_acct_attrs.array_num_value(3) := p_source_42;
13258 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_CURR';
13259 l_rec_acct_attrs.array_char_value(4) := p_source_26;
13260 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_LEDGER_AMT';
13261 l_rec_acct_attrs.array_num_value(5) := p_source_43;
13262 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_XDATE';
13263 l_rec_acct_attrs.array_date_value(6) := p_source_28;
13264 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XRATE';
13265 l_rec_acct_attrs.array_num_value(7) := p_source_29;
13266 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE_TYPE';
13267 l_rec_acct_attrs.array_char_value(8) := p_source_30;
13268 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_DR_ACCT_CLASS';
13269 l_rec_acct_attrs.array_char_value(9) := p_source_31;
13270 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_CCID';
13271 l_rec_acct_attrs.array_num_value(10) := TO_NUMBER(p_source_65);
13272 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ENTERED_AMT';
13273 l_rec_acct_attrs.array_num_value(11) := p_source_42;
13274 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_CURR';
13275 l_rec_acct_attrs.array_char_value(12) := p_source_26;
13276 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_LEDGER_AMT';
13277 l_rec_acct_attrs.array_num_value(13) := p_source_43;
13278 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_XDATE';
13279 l_rec_acct_attrs.array_date_value(14) := p_source_28;
13280 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XRATE';
13281 l_rec_acct_attrs.array_num_value(15) := p_source_29;
13282 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE_TYPE';
13283 l_rec_acct_attrs.array_char_value(16) := p_source_30;
13284 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_OPTION';
13285 l_rec_acct_attrs.array_char_value(17) := p_source_32;
13286 l_rec_acct_attrs.array_acct_attr_code(18) := 'APPLIED_TO_APPLICATION_ID';
13287 l_rec_acct_attrs.array_num_value(18) := p_source_66;
13288 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_DISTRIBUTION_TYPE';
13289 l_rec_acct_attrs.array_char_value(19) := p_source_46;
13290 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_ENTITY_CODE';
13291 l_rec_acct_attrs.array_char_value(20) := p_source_67;
13292 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_FIRST_DIST_ID';
13293 l_rec_acct_attrs.array_num_value(21) := to_char(p_source_68);
13294 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
13295 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_69);
13296 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_SECOND_DIST_ID';
13297 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_70);
13298 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
13299 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_71);
13300 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
13301 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_49);
13305 l_rec_acct_attrs.array_char_value(27) := p_source_46;
13302 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
13303 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_50);
13304 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
13306 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
13307 l_rec_acct_attrs.array_num_value(28) := p_source_42;
13308 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
13309 l_rec_acct_attrs.array_char_value(29) := p_source_26;
13310 l_rec_acct_attrs.array_acct_attr_code(30) := 'GAIN_LOSS_REFERENCE';
13311 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_51);
13312 l_rec_acct_attrs.array_acct_attr_code(31) := 'LEDGER_AMOUNT';
13313 l_rec_acct_attrs.array_num_value(31) := p_source_43;
13314
13315 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
13316 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
13317
13318 ---------------------------------------------------------------------------------------------------------------
13319 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
13320 ---------------------------------------------------------------------------------------------------------------
13321 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
13322
13323 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13324 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13325
13326 IF xla_accounting_cache_pkg.GetValueChar
13327 (p_source_code => 'LEDGER_CATEGORY_CODE'
13328 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
13329 AND l_bflow_method_code = 'PRIOR_ENTRY'
13330 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
13331 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
13332 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
13333 )
13334 THEN
13335 xla_ae_lines_pkg.BflowUpgEntry
13336 (p_business_method_code => l_bflow_method_code
13337 ,p_business_class_code => l_bflow_class_code
13338 ,p_balance_type => l_balance_type_code);
13339 ELSE
13340 NULL;
13341 -- No business flow processing for business flow method of NONE.
13342 END IF;
13343
13344 --
13345 -- call analytical criteria
13346 --
13347
13348 --
13349 -- call description
13350 --
13351 -- No description or it is inherited.
13352 --
13353 -- call ADRs
13354 -- Bug 4922099
13355 --
13356 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13357 (NVL(l_actual_upg_option, 'N') = 'O') OR
13358 (NVL(l_enc_upg_option, 'N') = 'O')
13359 )
13360 THEN
13361 NULL;
13362 --
13363 --
13364
13365 l_ccid := AcctDerRule_26(
13366 p_application_id => p_application_id
13367 , p_ae_header_id => l_ae_header_id
13368 , p_source_19 => p_source_19
13369 , x_transaction_coa_id => l_adr_transaction_coa_id
13370 , x_accounting_coa_id => l_adr_accounting_coa_id
13371 , x_value_type_code => l_adr_value_type_code
13372 , p_side => 'NA'
13373 );
13374
13375 xla_ae_lines_pkg.set_ccid(
13376 p_code_combination_id => l_ccid
13377 , p_value_type_code => l_adr_value_type_code
13378 , p_transaction_coa_id => l_adr_transaction_coa_id
13379 , p_accounting_coa_id => l_adr_accounting_coa_id
13380 , p_adr_code => 'REVENUE_RULE'
13381 , p_adr_type_code => 'S'
13382 , p_component_type => l_component_type
13383 , p_component_code => l_component_code
13384 , p_component_type_code => l_component_type_code
13385 , p_component_appl_id => l_component_appl_id
13386 , p_amb_context_code => l_amb_context_code
13387 , p_side => 'NA'
13388 );
13389
13390
13391 l_segment := AcctDerRule_2(
13392 p_application_id => p_application_id
13393 , p_ae_header_id => l_ae_header_id
13394 , x_transaction_coa_id => l_adr_transaction_coa_id
13395 , x_accounting_coa_id => l_adr_accounting_coa_id
13396 , x_flexfield_segment_code => l_adr_flexfield_segment_code
13397 , x_flex_value_set_id => l_adr_flex_value_set_id
13398 , x_value_type_code => l_adr_value_type_code
13399 , x_value_combination_id => l_adr_value_combination_id
13400 , x_value_segment_code => l_adr_value_segment_code
13401 , p_side => 'NA'
13402 , p_override_seg_flag => 'Y'
13403 );
13404
13405 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
13406
13407 xla_ae_lines_pkg.set_segment(
13408 p_to_segment_code => 'GL_ACCOUNT'
13409 , p_segment_value => l_segment
13410 , p_from_segment_code => l_adr_value_segment_code
13411 , p_from_combination_id => l_adr_value_combination_id
13412 , p_value_type_code => l_adr_value_type_code
13413 , p_transaction_coa_id => l_adr_transaction_coa_id
13414 , p_accounting_coa_id => l_adr_accounting_coa_id
13415 , p_flexfield_segment_code => l_adr_flexfield_segment_code
13416 , p_flex_value_set_id => l_adr_flex_value_set_id
13417 , p_adr_code => 'FV_422X01_PROJECTS'
13418 , p_adr_type_code => 'S'
13419 , p_component_type => l_component_type
13423 , p_amb_context_code => l_amb_context_code
13420 , p_component_code => l_component_code
13421 , p_component_type_code => l_component_type_code
13422 , p_component_appl_id => l_component_appl_id
13424 , p_entity_code => 'REVENUE'
13425 , p_event_class_code => 'REVENUE_ADJ'
13426 , p_side => 'NA'
13427 );
13428
13429 END IF;
13430
13431 --
13432 --
13433 END IF;
13434 --
13435 -- Bug 4922099
13436 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
13437 (NVL(l_enc_upg_option, 'N') = 'O')
13438 ) AND
13439 (l_bflow_method_code = 'PRIOR_ENTRY')
13440 )
13441 THEN
13442 IF
13443 --
13444 1 = 2
13445 --
13446 THEN
13447 xla_accounting_err_pkg.build_message
13448 (p_appli_s_name => 'XLA'
13449 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13450 ,p_token_1 => 'LINE_NUMBER'
13451 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
13452 ,p_token_2 => 'LINE_TYPE_NAME'
13453 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
13454 l_component_type
13455 ,l_component_code
13456 ,l_component_type_code
13457 ,l_component_appl_id
13458 ,l_amb_context_code
13459 ,l_entity_code
13460 ,l_event_class_code
13461 )
13462 ,p_token_3 => 'OWNER'
13463 ,p_value_3 => xla_lookups_pkg.get_meaning(
13464 p_lookup_type => 'XLA_OWNER_TYPE'
13465 ,p_lookup_code => l_component_type_code
13466 )
13467 ,p_token_4 => 'PRODUCT_NAME'
13468 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
13469 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13470 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
13471 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
13472 ,p_ae_header_id => NULL
13473 );
13474
13475 IF (C_LEVEL_ERROR>= g_log_level) THEN
13476 trace
13477 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13478 ,p_level => C_LEVEL_ERROR
13479 ,p_module => l_log_module);
13480 END IF;
13481 END IF;
13482 END IF;
13483 --
13484 --
13485 ------------------------------------------------------------------------------------------------
13486 -- 4219869 Business Flow
13487 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
13488 -- Prior Entry. Currently, the following code is always generated.
13489 ------------------------------------------------------------------------------------------------
13490 XLA_AE_LINES_PKG.ValidateCurrentLine;
13491
13492 ------------------------------------------------------------------------------------
13493 -- 4219869 Business Flow
13494 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
13495 ------------------------------------------------------------------------------------
13496 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13497
13498 ----------------------------------------------------------------------------------
13499 -- 4219869 Business Flow
13500 -- Update journal entry status -- Need to generate this within IF <condition>
13501 ----------------------------------------------------------------------------------
13502 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13503 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
13504 ,p_balance_type_code => l_balance_type_code
13505 );
13506
13507 -------------------------------------------------------------------------------------------
13508 -- 4262811 - Generate the Accrual Reversal lines
13509 -------------------------------------------------------------------------------------------
13510 BEGIN
13511 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
13512 (g_array_event(p_event_id).array_value_num('header_index'));
13513 IF l_acc_rev_flag IS NULL THEN
13514 l_acc_rev_flag := 'N';
13515 END IF;
13516 EXCEPTION
13517 WHEN OTHERS THEN
13518 l_acc_rev_flag := 'N';
13519 END;
13520 --
13521 IF (l_acc_rev_flag = 'Y') THEN
13522
13523 -- 4645092 ------------------------------------------------------------------------------
13524 -- To allow MPA report to determine if it should generate report process
13525 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
13529 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
13526 ------------------------------------------------------------------------------------------
13527
13528 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
13530
13531 --
13532 -- Update the line information that should be overwritten
13533 --
13534 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
13535 p_header_num => 1);
13536 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
13537
13538 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
13539
13540 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
13541 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
13542 END IF;
13543
13544 --
13545 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
13546 --
13547 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
13548 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
13549 ELSE
13550 ---------------------------------------------------------------------------------------------------
13551 -- 4262811a Switch Sign
13552 ---------------------------------------------------------------------------------------------------
13553 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
13554 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13555 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13556 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13557 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13558 -- 5132302
13559 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
13560 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13561
13562 END IF;
13563
13564 -- 4955764
13565 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13566 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
13567
13568
13569 XLA_AE_LINES_PKG.ValidateCurrentLine;
13570 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13571
13572 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13573 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
13574 ,p_balance_type_code => l_balance_type_code);
13575
13576 END IF;
13577
13578 -----------------------------------------------------------------------------------------
13579 -- 4262811 Multiperiod Accounting
13580 -----------------------------------------------------------------------------------------
13581 -- No MPA option is assigned.
13582
13583
13584 END IF;
13585 END IF;
13586 --
13587
13588 --
13589 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13590 trace
13591 (p_msg => 'END of AcctLineType_44'
13592 ,p_level => C_LEVEL_PROCEDURE
13593 ,p_module => l_log_module);
13594 END IF;
13595 --
13596 EXCEPTION
13597 WHEN xla_exceptions_pkg.application_exception THEN
13598 RAISE;
13599 WHEN OTHERS THEN
13600 xla_exceptions_pkg.raise_message
13601 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_44');
13602 END AcctLineType_44;
13603 --
13604
13605 ---------------------------------------
13606 --
13607 -- PRIVATE FUNCTION
13608 -- AcctLineType_45
13609 --
13610 ---------------------------------------
13611 PROCEDURE AcctLineType_45 (
13612 p_application_id IN NUMBER
13613 ,p_event_id IN NUMBER
13614 ,p_calculate_acctd_flag IN VARCHAR2
13615 ,p_calculate_g_l_flag IN VARCHAR2
13616 ,p_actual_flag IN OUT VARCHAR2
13617 ,p_balance_type_code OUT VARCHAR2
13618 ,p_gain_or_loss_ref OUT VARCHAR2
13619
13620 --Revenue CCID
13621 , p_source_19 IN NUMBER
13622 --Entered Currency Code
13623 , p_source_26 IN VARCHAR2
13624 --Entered Amount
13625 , p_source_42 IN NUMBER
13626 --Accounted Amount
13627 , p_source_43 IN NUMBER
13628 --Revenue Distribution Type
13629 , p_source_46 IN VARCHAR2
13630 --Crediting Revenue Flag
13631 , p_source_48 IN VARCHAR2
13632 --Revenue First Distribution ID
13633 , p_source_49 IN NUMBER
13634 --Revenue Second Distribution ID
13635 , p_source_50 IN NUMBER
13636 --Event ID
13637 , p_source_51 IN NUMBER
13638 )
13639 IS
13640
13641 l_component_type VARCHAR2(80);
13642 l_component_code VARCHAR2(30);
13643 l_component_type_code VARCHAR2(1);
13644 l_component_appl_id INTEGER;
13645 l_amb_context_code VARCHAR2(30);
13646 l_entity_code VARCHAR2(30);
13647 l_event_class_code VARCHAR2(30);
13648 l_ae_header_id NUMBER;
13649 l_event_type_code VARCHAR2(30);
13650 l_line_definition_code VARCHAR2(30);
13651 l_line_definition_owner_code VARCHAR2(1);
13652 --
13653 -- adr variables
13654 l_segment VARCHAR2(30);
13655 l_ccid NUMBER;
13656 l_adr_transaction_coa_id NUMBER;
13657 l_adr_accounting_coa_id NUMBER;
13658 l_adr_flexfield_segment_code VARCHAR2(30);
13662 l_adr_value_segment_code VARCHAR2(30);
13659 l_adr_flex_value_set_id NUMBER;
13660 l_adr_value_type_code VARCHAR2(30);
13661 l_adr_value_combination_id NUMBER;
13663
13664 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
13665 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
13666 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
13667 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
13668
13669 -- 4262811 Variables ------------------------------------------------------------------------------------------
13670 l_entered_amt_idx NUMBER;
13671 l_accted_amt_idx NUMBER;
13672 l_acc_rev_flag VARCHAR2(1);
13673 l_accrual_line_num NUMBER;
13674 l_tmp_amt NUMBER;
13675 l_acc_rev_natural_side_code VARCHAR2(1);
13676
13677 l_num_entries NUMBER;
13678 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
13679 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
13680 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
13681 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
13682 l_recog_line_1 NUMBER;
13683 l_recog_line_2 NUMBER;
13684
13685 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
13686 l_bflow_applied_to_amt NUMBER; -- 5132302
13687 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
13688
13689 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
13690
13691 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
13692 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
13693
13694 ---------------------------------------------------------------------------------------------------------------
13695
13696
13697 --
13698 -- bulk performance
13699 --
13700 l_balance_type_code VARCHAR2(1);
13701 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
13702 l_log_module VARCHAR2(240);
13703
13704 --
13705 -- Upgrade strategy
13706 --
13707 l_actual_upg_option VARCHAR2(1);
13708 l_enc_upg_option VARCHAR2(1);
13709
13710 --
13711 BEGIN
13712 --
13713 IF g_log_enabled THEN
13714 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_45';
13715 END IF;
13716 --
13717 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13718
13719 trace
13720 (p_msg => 'BEGIN of AcctLineType_45'
13721 ,p_level => C_LEVEL_PROCEDURE
13722 ,p_module => l_log_module);
13723
13724 END IF;
13725 --
13726 l_component_type := 'AMB_JLT';
13727 l_component_code := 'PA_COST_REV_FED';
13728 l_component_type_code := 'S';
13729 l_component_appl_id := 275;
13730 l_amb_context_code := 'DEFAULT';
13731 l_entity_code := 'REVENUE';
13732 l_event_class_code := 'REVENUE';
13733 l_event_type_code := 'REVENUE_ALL';
13734 l_line_definition_owner_code := 'S';
13735 l_line_definition_code := 'FV_PROJECTS_JLD';
13736 --
13737 l_balance_type_code := 'A';
13738 l_segment := NULL;
13739 l_ccid := NULL;
13740 l_adr_transaction_coa_id := NULL;
13741 l_adr_accounting_coa_id := NULL;
13742 l_adr_flexfield_segment_code := NULL;
13743 l_adr_flex_value_set_id := NULL;
13744 l_adr_value_type_code := NULL;
13745 l_adr_value_combination_id := NULL;
13746 l_adr_value_segment_code := NULL;
13747
13748 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
13749 l_bflow_class_code := ''; -- 4219869 Business Flow
13750 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
13751 l_budgetary_control_flag := 'N';
13752
13753 l_bflow_applied_to_amt_idx := NULL; -- 5132302
13754 l_bflow_applied_to_amt := NULL; -- 5132302
13755 l_entered_amt_idx := NULL; -- 4262811
13756 l_accted_amt_idx := NULL; -- 4262811
13757 l_acc_rev_flag := NULL; -- 4262811
13758 l_accrual_line_num := NULL; -- 4262811
13759 l_tmp_amt := NULL; -- 4262811
13760 --
13761
13762 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
13763 l_balance_type_code <> 'B' THEN
13764 IF NVL(p_source_46,'
13765 ') = 'Revenue - Normal Revenue' AND
13766 NVL(p_source_48,'
13767 ') = 'N'
13768 THEN
13769
13770 --
13771 XLA_AE_LINES_PKG.SetNewLine;
13772
13773 p_balance_type_code := l_balance_type_code;
13774 -- set the flag so later we will know whether the gain loss line needs to be created
13775
13776 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
13777 p_actual_flag :='A';
13778 END IF;
13779
13780 --
13781 -- bulk performance
13782 --
13783 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
13784 p_header_num => 0); -- 4262811
13785 --
13786 -- set accounting line options
13787 --
13788 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
13789 p_natural_side_code => 'C'
13790 , p_gain_or_loss_flag => 'N'
13791 , p_gl_transfer_mode_code => 'S'
13792 , p_acct_entry_type_code => 'A'
13793 , p_switch_side_flag => 'Y'
13794 , p_merge_duplicate_code => 'N'
13795 );
13796 --
13797 l_acc_rev_natural_side_code := 'D'; -- 4262811
13798 --
13802 xla_ae_lines_pkg.SetAcctLineType
13799 --
13800 -- set accounting line type info
13801 --
13803 (p_component_type => l_component_type
13804 ,p_event_type_code => l_event_type_code
13805 ,p_line_definition_owner_code => l_line_definition_owner_code
13806 ,p_line_definition_code => l_line_definition_code
13807 ,p_accounting_line_code => l_component_code
13808 ,p_accounting_line_type_code => l_component_type_code
13809 ,p_accounting_line_appl_id => l_component_appl_id
13810 ,p_amb_context_code => l_amb_context_code
13811 ,p_entity_code => l_entity_code
13812 ,p_event_class_code => l_event_class_code);
13813 --
13814 -- set accounting class
13815 --
13816 xla_ae_lines_pkg.SetAcctClass(
13817 p_accounting_class_code => 'FEDERAL_REVENUE'
13818 , p_ae_header_id => l_ae_header_id
13819 );
13820
13821 --
13822 -- set rounding class
13823 --
13824 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
13825 'FEDERAL_REVENUE';
13826
13827 --
13828 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
13829 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
13830 --
13831 -- bulk performance
13832 --
13833 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
13834
13835 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
13836 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
13837
13838 -- 4955764
13839 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13840 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
13841
13842 -- 4458381 Public Sector Enh
13843
13844 --
13845 -- set accounting attributes for the line type
13846 --
13847 l_entered_amt_idx := 4;
13848 l_accted_amt_idx := 7;
13849 l_bflow_applied_to_amt_idx := NULL; -- 5132302
13850 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
13851 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_49);
13852 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
13853 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_50);
13854 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
13855 l_rec_acct_attrs.array_char_value(3) := p_source_46;
13856 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
13857 l_rec_acct_attrs.array_num_value(4) := p_source_42;
13858 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
13859 l_rec_acct_attrs.array_char_value(5) := p_source_26;
13860 l_rec_acct_attrs.array_acct_attr_code(6) := 'GAIN_LOSS_REFERENCE';
13861 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_51);
13862 l_rec_acct_attrs.array_acct_attr_code(7) := 'LEDGER_AMOUNT';
13863 l_rec_acct_attrs.array_num_value(7) := p_source_43;
13864
13865 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
13866 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
13867
13868 ---------------------------------------------------------------------------------------------------------------
13869 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
13870 ---------------------------------------------------------------------------------------------------------------
13871 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
13872
13873 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13874 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13875
13876 IF xla_accounting_cache_pkg.GetValueChar
13877 (p_source_code => 'LEDGER_CATEGORY_CODE'
13878 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
13879 AND l_bflow_method_code = 'PRIOR_ENTRY'
13880 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
13881 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
13882 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
13883 )
13884 THEN
13885 xla_ae_lines_pkg.BflowUpgEntry
13886 (p_business_method_code => l_bflow_method_code
13887 ,p_business_class_code => l_bflow_class_code
13888 ,p_balance_type => l_balance_type_code);
13889 ELSE
13890 NULL;
13891 -- No business flow processing for business flow method of NONE.
13892 END IF;
13893
13894 --
13895 -- call analytical criteria
13896 --
13897
13898 --
13899 -- call description
13900 --
13901 -- No description or it is inherited.
13902 --
13903 -- call ADRs
13904 -- Bug 4922099
13905 --
13906 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13907 (NVL(l_actual_upg_option, 'N') = 'O') OR
13908 (NVL(l_enc_upg_option, 'N') = 'O')
13909 )
13910 THEN
13911 NULL;
13912 --
13913 --
13914
13915 l_ccid := AcctDerRule_26(
13916 p_application_id => p_application_id
13917 , p_ae_header_id => l_ae_header_id
13918 , p_source_19 => p_source_19
13919 , x_transaction_coa_id => l_adr_transaction_coa_id
13920 , x_accounting_coa_id => l_adr_accounting_coa_id
13921 , x_value_type_code => l_adr_value_type_code
13922 , p_side => 'NA'
13923 );
13927 , p_value_type_code => l_adr_value_type_code
13924
13925 xla_ae_lines_pkg.set_ccid(
13926 p_code_combination_id => l_ccid
13928 , p_transaction_coa_id => l_adr_transaction_coa_id
13929 , p_accounting_coa_id => l_adr_accounting_coa_id
13930 , p_adr_code => 'REVENUE_RULE'
13931 , p_adr_type_code => 'S'
13932 , p_component_type => l_component_type
13933 , p_component_code => l_component_code
13934 , p_component_type_code => l_component_type_code
13935 , p_component_appl_id => l_component_appl_id
13936 , p_amb_context_code => l_amb_context_code
13937 , p_side => 'NA'
13938 );
13939
13940
13941 l_segment := AcctDerRule_2(
13942 p_application_id => p_application_id
13943 , p_ae_header_id => l_ae_header_id
13944 , x_transaction_coa_id => l_adr_transaction_coa_id
13945 , x_accounting_coa_id => l_adr_accounting_coa_id
13946 , x_flexfield_segment_code => l_adr_flexfield_segment_code
13947 , x_flex_value_set_id => l_adr_flex_value_set_id
13948 , x_value_type_code => l_adr_value_type_code
13949 , x_value_combination_id => l_adr_value_combination_id
13950 , x_value_segment_code => l_adr_value_segment_code
13951 , p_side => 'NA'
13952 , p_override_seg_flag => 'Y'
13953 );
13954
13955 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
13956
13957 xla_ae_lines_pkg.set_segment(
13958 p_to_segment_code => 'GL_ACCOUNT'
13959 , p_segment_value => l_segment
13960 , p_from_segment_code => l_adr_value_segment_code
13961 , p_from_combination_id => l_adr_value_combination_id
13962 , p_value_type_code => l_adr_value_type_code
13963 , p_transaction_coa_id => l_adr_transaction_coa_id
13964 , p_accounting_coa_id => l_adr_accounting_coa_id
13965 , p_flexfield_segment_code => l_adr_flexfield_segment_code
13966 , p_flex_value_set_id => l_adr_flex_value_set_id
13967 , p_adr_code => 'FV_422X01_PROJECTS'
13968 , p_adr_type_code => 'S'
13969 , p_component_type => l_component_type
13970 , p_component_code => l_component_code
13971 , p_component_type_code => l_component_type_code
13972 , p_component_appl_id => l_component_appl_id
13973 , p_amb_context_code => l_amb_context_code
13974 , p_entity_code => 'REVENUE'
13975 , p_event_class_code => 'REVENUE'
13976 , p_side => 'NA'
13977 );
13978
13979 END IF;
13980
13981 --
13982 --
13983 END IF;
13984 --
13985 -- Bug 4922099
13986 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
13987 (NVL(l_enc_upg_option, 'N') = 'O')
13988 ) AND
13989 (l_bflow_method_code = 'PRIOR_ENTRY')
13990 )
13991 THEN
13992 IF
13993 --
13994 1 = 2
13995 --
13996 THEN
13997 xla_accounting_err_pkg.build_message
13998 (p_appli_s_name => 'XLA'
13999 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14000 ,p_token_1 => 'LINE_NUMBER'
14001 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
14002 ,p_token_2 => 'LINE_TYPE_NAME'
14003 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
14004 l_component_type
14005 ,l_component_code
14006 ,l_component_type_code
14007 ,l_component_appl_id
14008 ,l_amb_context_code
14009 ,l_entity_code
14010 ,l_event_class_code
14011 )
14012 ,p_token_3 => 'OWNER'
14013 ,p_value_3 => xla_lookups_pkg.get_meaning(
14014 p_lookup_type => 'XLA_OWNER_TYPE'
14015 ,p_lookup_code => l_component_type_code
14016 )
14017 ,p_token_4 => 'PRODUCT_NAME'
14018 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
14019 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
14020 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
14021 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
14022 ,p_ae_header_id => NULL
14023 );
14024
14025 IF (C_LEVEL_ERROR>= g_log_level) THEN
14026 trace
14027 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14028 ,p_level => C_LEVEL_ERROR
14029 ,p_module => l_log_module);
14033 --
14030 END IF;
14031 END IF;
14032 END IF;
14034 --
14035 ------------------------------------------------------------------------------------------------
14036 -- 4219869 Business Flow
14037 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
14038 -- Prior Entry. Currently, the following code is always generated.
14039 ------------------------------------------------------------------------------------------------
14040 XLA_AE_LINES_PKG.ValidateCurrentLine;
14041
14042 ------------------------------------------------------------------------------------
14043 -- 4219869 Business Flow
14044 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
14045 ------------------------------------------------------------------------------------
14046 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14047
14048 ----------------------------------------------------------------------------------
14049 -- 4219869 Business Flow
14050 -- Update journal entry status -- Need to generate this within IF <condition>
14051 ----------------------------------------------------------------------------------
14052 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14053 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
14054 ,p_balance_type_code => l_balance_type_code
14055 );
14056
14057 -------------------------------------------------------------------------------------------
14058 -- 4262811 - Generate the Accrual Reversal lines
14059 -------------------------------------------------------------------------------------------
14060 BEGIN
14061 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
14062 (g_array_event(p_event_id).array_value_num('header_index'));
14063 IF l_acc_rev_flag IS NULL THEN
14064 l_acc_rev_flag := 'N';
14065 END IF;
14066 EXCEPTION
14067 WHEN OTHERS THEN
14068 l_acc_rev_flag := 'N';
14069 END;
14070 --
14071 IF (l_acc_rev_flag = 'Y') THEN
14072
14073 -- 4645092 ------------------------------------------------------------------------------
14074 -- To allow MPA report to determine if it should generate report process
14075 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
14076 ------------------------------------------------------------------------------------------
14077
14078 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
14079 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
14080
14081 --
14082 -- Update the line information that should be overwritten
14083 --
14084 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
14085 p_header_num => 1);
14086 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
14087
14088 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
14089
14090 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
14091 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
14092 END IF;
14093
14094 --
14095 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
14096 --
14097 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
14098 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
14099 ELSE
14100 ---------------------------------------------------------------------------------------------------
14101 -- 4262811a Switch Sign
14102 ---------------------------------------------------------------------------------------------------
14103 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
14104 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14105 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14106 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14107 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14108 -- 5132302
14109 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
14110 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14111
14112 END IF;
14113
14114 -- 4955764
14115 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14116 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
14117
14118
14119 XLA_AE_LINES_PKG.ValidateCurrentLine;
14120 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14121
14122 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14123 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
14124 ,p_balance_type_code => l_balance_type_code);
14125
14126 END IF;
14127
14128 -----------------------------------------------------------------------------------------
14129 -- 4262811 Multiperiod Accounting
14130 -----------------------------------------------------------------------------------------
14131 -- No MPA option is assigned.
14132
14133
14134 END IF;
14135 END IF;
14136 --
14137
14138 --
14139 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14140 trace
14141 (p_msg => 'END of AcctLineType_45'
14142 ,p_level => C_LEVEL_PROCEDURE
14143 ,p_module => l_log_module);
14144 END IF;
14145 --
14146 EXCEPTION
14150 xla_exceptions_pkg.raise_message
14147 WHEN xla_exceptions_pkg.application_exception THEN
14148 RAISE;
14149 WHEN OTHERS THEN
14151 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_45');
14152 END AcctLineType_45;
14153 --
14154
14155 ---------------------------------------
14156 --
14157 -- PRIVATE FUNCTION
14158 -- AcctLineType_46
14159 --
14160 ---------------------------------------
14161 PROCEDURE AcctLineType_46 (
14162 p_application_id IN NUMBER
14163 ,p_event_id IN NUMBER
14164 ,p_calculate_acctd_flag IN VARCHAR2
14165 ,p_calculate_g_l_flag IN VARCHAR2
14166 ,p_actual_flag IN OUT VARCHAR2
14167 ,p_balance_type_code OUT VARCHAR2
14168 ,p_gain_or_loss_ref OUT VARCHAR2
14169
14170 --Revenue CCID
14171 , p_source_19 IN NUMBER
14172 --Entered Currency Code
14173 , p_source_26 IN VARCHAR2
14174 --Exchange Rate Date
14175 , p_source_28 IN DATE
14176 --Exchange Rate
14177 , p_source_29 IN NUMBER
14178 --Exchange Rate Type
14179 , p_source_30 IN VARCHAR2
14180 --Entered Amount
14181 , p_source_42 IN NUMBER
14182 --Accounted Amount
14183 , p_source_43 IN NUMBER
14184 --Revenue Distribution Type
14185 , p_source_46 IN VARCHAR2
14186 --System Linkage Function
14187 , p_source_47 IN VARCHAR2
14188 --Crediting Revenue Flag
14189 , p_source_48 IN VARCHAR2
14190 --Revenue First Distribution ID
14191 , p_source_49 IN NUMBER
14192 --Revenue Second Distribution ID
14193 , p_source_50 IN NUMBER
14194 --Event ID
14195 , p_source_51 IN NUMBER
14196 )
14197 IS
14198
14199 l_component_type VARCHAR2(80);
14200 l_component_code VARCHAR2(30);
14201 l_component_type_code VARCHAR2(1);
14202 l_component_appl_id INTEGER;
14203 l_amb_context_code VARCHAR2(30);
14204 l_entity_code VARCHAR2(30);
14205 l_event_class_code VARCHAR2(30);
14206 l_ae_header_id NUMBER;
14207 l_event_type_code VARCHAR2(30);
14208 l_line_definition_code VARCHAR2(30);
14209 l_line_definition_owner_code VARCHAR2(1);
14210 --
14211 -- adr variables
14212 l_segment VARCHAR2(30);
14213 l_ccid NUMBER;
14214 l_adr_transaction_coa_id NUMBER;
14215 l_adr_accounting_coa_id NUMBER;
14216 l_adr_flexfield_segment_code VARCHAR2(30);
14217 l_adr_flex_value_set_id NUMBER;
14218 l_adr_value_type_code VARCHAR2(30);
14219 l_adr_value_combination_id NUMBER;
14220 l_adr_value_segment_code VARCHAR2(30);
14221
14222 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
14223 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
14224 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
14225 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
14226
14227 -- 4262811 Variables ------------------------------------------------------------------------------------------
14228 l_entered_amt_idx NUMBER;
14229 l_accted_amt_idx NUMBER;
14230 l_acc_rev_flag VARCHAR2(1);
14231 l_accrual_line_num NUMBER;
14232 l_tmp_amt NUMBER;
14233 l_acc_rev_natural_side_code VARCHAR2(1);
14234
14235 l_num_entries NUMBER;
14236 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
14237 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
14238 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
14239 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
14240 l_recog_line_1 NUMBER;
14241 l_recog_line_2 NUMBER;
14242
14243 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
14244 l_bflow_applied_to_amt NUMBER; -- 5132302
14245 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
14246
14247 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
14248
14249 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
14250 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
14251
14252 ---------------------------------------------------------------------------------------------------------------
14253
14254
14255 --
14256 -- bulk performance
14257 --
14258 l_balance_type_code VARCHAR2(1);
14259 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
14260 l_log_module VARCHAR2(240);
14261
14262 --
14263 -- Upgrade strategy
14264 --
14265 l_actual_upg_option VARCHAR2(1);
14266 l_enc_upg_option VARCHAR2(1);
14267
14268 --
14269 BEGIN
14270 --
14271 IF g_log_enabled THEN
14272 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_46';
14273 END IF;
14274 --
14275 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14276
14277 trace
14278 (p_msg => 'BEGIN of AcctLineType_46'
14279 ,p_level => C_LEVEL_PROCEDURE
14280 ,p_module => l_log_module);
14281
14282 END IF;
14283 --
14284 l_component_type := 'AMB_JLT';
14285 l_component_code := 'PA_ER_REV';
14286 l_component_type_code := 'S';
14287 l_component_appl_id := 275;
14288 l_amb_context_code := 'DEFAULT';
14289 l_entity_code := 'REVENUE';
14290 l_event_class_code := 'REVENUE';
14291 l_event_type_code := 'REVENUE_ALL';
14292 l_line_definition_owner_code := 'S';
14296 l_segment := NULL;
14293 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
14294 --
14295 l_balance_type_code := 'A';
14297 l_ccid := NULL;
14298 l_adr_transaction_coa_id := NULL;
14299 l_adr_accounting_coa_id := NULL;
14300 l_adr_flexfield_segment_code := NULL;
14301 l_adr_flex_value_set_id := NULL;
14302 l_adr_value_type_code := NULL;
14303 l_adr_value_combination_id := NULL;
14304 l_adr_value_segment_code := NULL;
14305
14306 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
14307 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
14308 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
14309 l_budgetary_control_flag := 'N';
14310
14311 l_bflow_applied_to_amt_idx := NULL; -- 5132302
14312 l_bflow_applied_to_amt := NULL; -- 5132302
14313 l_entered_amt_idx := NULL; -- 4262811
14314 l_accted_amt_idx := NULL; -- 4262811
14315 l_acc_rev_flag := NULL; -- 4262811
14316 l_accrual_line_num := NULL; -- 4262811
14317 l_tmp_amt := NULL; -- 4262811
14318 --
14319
14320 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
14321 l_balance_type_code <> 'B' THEN
14322 IF NVL(p_source_46,'
14323 ') = 'Revenue - Normal Revenue' AND
14324 NVL(p_source_47,'
14325 ') = 'ER' AND
14326 NVL(p_source_48,'
14327 ') = 'N'
14328 THEN
14329
14330 --
14331 XLA_AE_LINES_PKG.SetNewLine;
14332
14333 p_balance_type_code := l_balance_type_code;
14334 -- set the flag so later we will know whether the gain loss line needs to be created
14335
14336 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
14337 p_actual_flag :='A';
14338 END IF;
14339
14340 --
14341 -- bulk performance
14342 --
14343 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
14344 p_header_num => 0); -- 4262811
14345 --
14346 -- set accounting line options
14347 --
14348 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
14349 p_natural_side_code => 'C'
14350 , p_gain_or_loss_flag => 'N'
14351 , p_gl_transfer_mode_code => 'S'
14352 , p_acct_entry_type_code => 'A'
14353 , p_switch_side_flag => 'Y'
14354 , p_merge_duplicate_code => 'N'
14355 );
14356 --
14357 l_acc_rev_natural_side_code := 'D'; -- 4262811
14358 --
14359 --
14360 -- set accounting line type info
14361 --
14362 xla_ae_lines_pkg.SetAcctLineType
14363 (p_component_type => l_component_type
14364 ,p_event_type_code => l_event_type_code
14365 ,p_line_definition_owner_code => l_line_definition_owner_code
14366 ,p_line_definition_code => l_line_definition_code
14367 ,p_accounting_line_code => l_component_code
14368 ,p_accounting_line_type_code => l_component_type_code
14369 ,p_accounting_line_appl_id => l_component_appl_id
14370 ,p_amb_context_code => l_amb_context_code
14371 ,p_entity_code => l_entity_code
14372 ,p_event_class_code => l_event_class_code);
14373 --
14374 -- set accounting class
14375 --
14376 xla_ae_lines_pkg.SetAcctClass(
14377 p_accounting_class_code => 'REVENUE'
14378 , p_ae_header_id => l_ae_header_id
14379 );
14380
14381 --
14382 -- set rounding class
14383 --
14384 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
14385 'REVENUE';
14386
14387 --
14388 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
14389 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
14390 --
14391 -- bulk performance
14392 --
14393 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
14394
14395 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
14396 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
14397
14398 -- 4955764
14399 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14400 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
14401
14402 -- 4458381 Public Sector Enh
14403
14404 --
14405 -- set accounting attributes for the line type
14406 --
14407 l_entered_amt_idx := 4;
14408 l_accted_amt_idx := 10;
14409 l_bflow_applied_to_amt_idx := NULL; -- 5132302
14410 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
14411 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_49);
14412 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
14413 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_50);
14414 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
14415 l_rec_acct_attrs.array_char_value(3) := p_source_46;
14416 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
14417 l_rec_acct_attrs.array_num_value(4) := p_source_42;
14418 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
14419 l_rec_acct_attrs.array_char_value(5) := p_source_26;
14420 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
14421 l_rec_acct_attrs.array_date_value(6) := p_source_28;
14422 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
14423 l_rec_acct_attrs.array_num_value(7) := p_source_29;
14427 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_51);
14424 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
14425 l_rec_acct_attrs.array_char_value(8) := p_source_30;
14426 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
14428 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
14429 l_rec_acct_attrs.array_num_value(10) := p_source_43;
14430
14431 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
14432 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
14433
14434 ---------------------------------------------------------------------------------------------------------------
14435 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
14436 ---------------------------------------------------------------------------------------------------------------
14437 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
14438
14439 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14440 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14441
14442 IF xla_accounting_cache_pkg.GetValueChar
14443 (p_source_code => 'LEDGER_CATEGORY_CODE'
14444 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
14445 AND l_bflow_method_code = 'PRIOR_ENTRY'
14446 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
14447 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
14448 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
14449 )
14450 THEN
14451 xla_ae_lines_pkg.BflowUpgEntry
14452 (p_business_method_code => l_bflow_method_code
14453 ,p_business_class_code => l_bflow_class_code
14454 ,p_balance_type => l_balance_type_code);
14455 ELSE
14456 NULL;
14457 -- No business flow processing for business flow method of NONE.
14458 END IF;
14459
14460 --
14461 -- call analytical criteria
14462 --
14463
14464 --
14465 -- call description
14466 --
14467 -- No description or it is inherited.
14468 --
14469 -- call ADRs
14470 -- Bug 4922099
14471 --
14472 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14473 (NVL(l_actual_upg_option, 'N') = 'O') OR
14474 (NVL(l_enc_upg_option, 'N') = 'O')
14475 )
14476 THEN
14477 NULL;
14478 --
14479 --
14480
14481 l_ccid := AcctDerRule_26(
14482 p_application_id => p_application_id
14483 , p_ae_header_id => l_ae_header_id
14484 , p_source_19 => p_source_19
14485 , x_transaction_coa_id => l_adr_transaction_coa_id
14486 , x_accounting_coa_id => l_adr_accounting_coa_id
14487 , x_value_type_code => l_adr_value_type_code
14488 , p_side => 'NA'
14489 );
14490
14491 xla_ae_lines_pkg.set_ccid(
14492 p_code_combination_id => l_ccid
14493 , p_value_type_code => l_adr_value_type_code
14494 , p_transaction_coa_id => l_adr_transaction_coa_id
14495 , p_accounting_coa_id => l_adr_accounting_coa_id
14496 , p_adr_code => 'REVENUE_RULE'
14497 , p_adr_type_code => 'S'
14498 , p_component_type => l_component_type
14499 , p_component_code => l_component_code
14500 , p_component_type_code => l_component_type_code
14501 , p_component_appl_id => l_component_appl_id
14502 , p_amb_context_code => l_amb_context_code
14503 , p_side => 'NA'
14504 );
14505
14506
14507 --
14508 --
14509 END IF;
14510 --
14511 -- Bug 4922099
14512 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
14513 (NVL(l_enc_upg_option, 'N') = 'O')
14514 ) AND
14515 (l_bflow_method_code = 'PRIOR_ENTRY')
14516 )
14517 THEN
14518 IF
14519 --
14520 1 = 2
14521 --
14522 THEN
14523 xla_accounting_err_pkg.build_message
14524 (p_appli_s_name => 'XLA'
14525 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14526 ,p_token_1 => 'LINE_NUMBER'
14527 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
14528 ,p_token_2 => 'LINE_TYPE_NAME'
14529 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
14530 l_component_type
14531 ,l_component_code
14532 ,l_component_type_code
14533 ,l_component_appl_id
14534 ,l_amb_context_code
14535 ,l_entity_code
14536 ,l_event_class_code
14537 )
14538 ,p_token_3 => 'OWNER'
14539 ,p_value_3 => xla_lookups_pkg.get_meaning(
14540 p_lookup_type => 'XLA_OWNER_TYPE'
14544 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
14541 ,p_lookup_code => l_component_type_code
14542 )
14543 ,p_token_4 => 'PRODUCT_NAME'
14545 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
14546 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
14547 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
14548 ,p_ae_header_id => NULL
14549 );
14550
14551 IF (C_LEVEL_ERROR>= g_log_level) THEN
14552 trace
14553 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14554 ,p_level => C_LEVEL_ERROR
14555 ,p_module => l_log_module);
14556 END IF;
14557 END IF;
14558 END IF;
14559 --
14560 --
14561 ------------------------------------------------------------------------------------------------
14562 -- 4219869 Business Flow
14563 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
14564 -- Prior Entry. Currently, the following code is always generated.
14565 ------------------------------------------------------------------------------------------------
14566 XLA_AE_LINES_PKG.ValidateCurrentLine;
14567
14568 ------------------------------------------------------------------------------------
14569 -- 4219869 Business Flow
14570 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
14571 ------------------------------------------------------------------------------------
14572 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14573
14574 ----------------------------------------------------------------------------------
14575 -- 4219869 Business Flow
14576 -- Update journal entry status -- Need to generate this within IF <condition>
14577 ----------------------------------------------------------------------------------
14578 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14579 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
14580 ,p_balance_type_code => l_balance_type_code
14581 );
14582
14583 -------------------------------------------------------------------------------------------
14584 -- 4262811 - Generate the Accrual Reversal lines
14585 -------------------------------------------------------------------------------------------
14586 BEGIN
14587 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
14588 (g_array_event(p_event_id).array_value_num('header_index'));
14589 IF l_acc_rev_flag IS NULL THEN
14590 l_acc_rev_flag := 'N';
14591 END IF;
14592 EXCEPTION
14593 WHEN OTHERS THEN
14594 l_acc_rev_flag := 'N';
14595 END;
14596 --
14597 IF (l_acc_rev_flag = 'Y') THEN
14598
14599 -- 4645092 ------------------------------------------------------------------------------
14600 -- To allow MPA report to determine if it should generate report process
14601 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
14602 ------------------------------------------------------------------------------------------
14603
14604 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
14605 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
14606
14607 --
14608 -- Update the line information that should be overwritten
14609 --
14610 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
14611 p_header_num => 1);
14612 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
14613
14614 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
14615
14616 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
14617 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
14618 END IF;
14619
14620 --
14621 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
14622 --
14623 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
14624 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
14625 ELSE
14626 ---------------------------------------------------------------------------------------------------
14627 -- 4262811a Switch Sign
14628 ---------------------------------------------------------------------------------------------------
14629 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
14630 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14631 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14632 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14633 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14634 -- 5132302
14635 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
14636 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14637
14638 END IF;
14639
14640 -- 4955764
14641 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14645 XLA_AE_LINES_PKG.ValidateCurrentLine;
14642 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
14643
14644
14646 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14647
14648 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14649 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
14650 ,p_balance_type_code => l_balance_type_code);
14651
14652 END IF;
14653
14654 -----------------------------------------------------------------------------------------
14655 -- 4262811 Multiperiod Accounting
14656 -----------------------------------------------------------------------------------------
14657 -- No MPA option is assigned.
14658
14659
14660 END IF;
14661 END IF;
14662 --
14663
14664 --
14665 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14666 trace
14667 (p_msg => 'END of AcctLineType_46'
14668 ,p_level => C_LEVEL_PROCEDURE
14669 ,p_module => l_log_module);
14670 END IF;
14671 --
14672 EXCEPTION
14673 WHEN xla_exceptions_pkg.application_exception THEN
14674 RAISE;
14675 WHEN OTHERS THEN
14676 xla_exceptions_pkg.raise_message
14677 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_46');
14678 END AcctLineType_46;
14679 --
14680
14681 ---------------------------------------
14682 --
14683 -- PRIVATE FUNCTION
14684 -- AcctLineType_47
14685 --
14686 ---------------------------------------
14687 PROCEDURE AcctLineType_47 (
14688 p_application_id IN NUMBER
14689 ,p_event_id IN NUMBER
14690 ,p_calculate_acctd_flag IN VARCHAR2
14691 ,p_calculate_g_l_flag IN VARCHAR2
14692 ,p_actual_flag IN OUT VARCHAR2
14693 ,p_balance_type_code OUT VARCHAR2
14694 ,p_gain_or_loss_ref OUT VARCHAR2
14695
14696 --Event Revenue CCID
14697 , p_source_1 IN NUMBER
14698 --Entered Currency Code
14699 , p_source_26 IN VARCHAR2
14700 --Exchange Rate Date
14701 , p_source_28 IN DATE
14702 --Exchange Rate
14703 , p_source_29 IN NUMBER
14704 --Exchange Rate Type
14705 , p_source_30 IN VARCHAR2
14706 --Entered Amount
14707 , p_source_42 IN NUMBER
14708 --Accounted Amount
14709 , p_source_43 IN NUMBER
14710 --Revenue Distribution Type
14711 , p_source_46 IN VARCHAR2
14712 --Crediting Revenue Flag
14713 , p_source_48 IN VARCHAR2
14714 --Revenue First Distribution ID
14715 , p_source_49 IN NUMBER
14716 --Revenue Second Distribution ID
14717 , p_source_50 IN NUMBER
14718 --Event ID
14719 , p_source_51 IN NUMBER
14720 --Revenue Event Type Classification
14721 , p_source_72 IN VARCHAR2
14722 , p_source_72_meaning IN VARCHAR2
14723 )
14724 IS
14725
14726 l_component_type VARCHAR2(80);
14727 l_component_code VARCHAR2(30);
14728 l_component_type_code VARCHAR2(1);
14729 l_component_appl_id INTEGER;
14730 l_amb_context_code VARCHAR2(30);
14731 l_entity_code VARCHAR2(30);
14732 l_event_class_code VARCHAR2(30);
14733 l_ae_header_id NUMBER;
14734 l_event_type_code VARCHAR2(30);
14735 l_line_definition_code VARCHAR2(30);
14736 l_line_definition_owner_code VARCHAR2(1);
14737 --
14738 -- adr variables
14739 l_segment VARCHAR2(30);
14740 l_ccid NUMBER;
14741 l_adr_transaction_coa_id NUMBER;
14742 l_adr_accounting_coa_id NUMBER;
14743 l_adr_flexfield_segment_code VARCHAR2(30);
14744 l_adr_flex_value_set_id NUMBER;
14745 l_adr_value_type_code VARCHAR2(30);
14746 l_adr_value_combination_id NUMBER;
14747 l_adr_value_segment_code VARCHAR2(30);
14748
14749 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
14750 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
14751 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
14752 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
14753
14754 -- 4262811 Variables ------------------------------------------------------------------------------------------
14755 l_entered_amt_idx NUMBER;
14756 l_accted_amt_idx NUMBER;
14757 l_acc_rev_flag VARCHAR2(1);
14758 l_accrual_line_num NUMBER;
14759 l_tmp_amt NUMBER;
14760 l_acc_rev_natural_side_code VARCHAR2(1);
14761
14762 l_num_entries NUMBER;
14763 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
14764 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
14765 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
14766 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
14767 l_recog_line_1 NUMBER;
14768 l_recog_line_2 NUMBER;
14769
14770 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
14771 l_bflow_applied_to_amt NUMBER; -- 5132302
14772 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
14773
14774 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
14775
14776 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
14777 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
14778
14779 ---------------------------------------------------------------------------------------------------------------
14780
14781
14782 --
14783 -- bulk performance
14784 --
14788
14785 l_balance_type_code VARCHAR2(1);
14786 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
14787 l_log_module VARCHAR2(240);
14789 --
14790 -- Upgrade strategy
14791 --
14792 l_actual_upg_option VARCHAR2(1);
14793 l_enc_upg_option VARCHAR2(1);
14794
14795 --
14796 BEGIN
14797 --
14798 IF g_log_enabled THEN
14799 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_47';
14800 END IF;
14801 --
14802 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14803
14804 trace
14805 (p_msg => 'BEGIN of AcctLineType_47'
14806 ,p_level => C_LEVEL_PROCEDURE
14807 ,p_module => l_log_module);
14808
14809 END IF;
14810 --
14811 l_component_type := 'AMB_JLT';
14812 l_component_code := 'PA_EVENT_REV';
14813 l_component_type_code := 'S';
14814 l_component_appl_id := 275;
14815 l_amb_context_code := 'DEFAULT';
14816 l_entity_code := 'REVENUE';
14817 l_event_class_code := 'REVENUE';
14818 l_event_type_code := 'REVENUE_ALL';
14819 l_line_definition_owner_code := 'S';
14820 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
14821 --
14822 l_balance_type_code := 'A';
14823 l_segment := NULL;
14824 l_ccid := NULL;
14825 l_adr_transaction_coa_id := NULL;
14826 l_adr_accounting_coa_id := NULL;
14827 l_adr_flexfield_segment_code := NULL;
14828 l_adr_flex_value_set_id := NULL;
14829 l_adr_value_type_code := NULL;
14830 l_adr_value_combination_id := NULL;
14831 l_adr_value_segment_code := NULL;
14832
14833 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
14834 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
14835 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
14836 l_budgetary_control_flag := 'N';
14837
14838 l_bflow_applied_to_amt_idx := NULL; -- 5132302
14839 l_bflow_applied_to_amt := NULL; -- 5132302
14840 l_entered_amt_idx := NULL; -- 4262811
14841 l_accted_amt_idx := NULL; -- 4262811
14842 l_acc_rev_flag := NULL; -- 4262811
14843 l_accrual_line_num := NULL; -- 4262811
14844 l_tmp_amt := NULL; -- 4262811
14845 --
14846
14847 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
14848 l_balance_type_code <> 'B' THEN
14849 IF NVL(p_source_46,'
14850 ') = 'Revenue - Event Revenue' AND
14851 NVL(p_source_72,'
14852 ') <> 'WRITE OFF' AND
14853 NVL(p_source_48,'
14854 ') = 'N'
14855 THEN
14856
14857 --
14858 XLA_AE_LINES_PKG.SetNewLine;
14859
14860 p_balance_type_code := l_balance_type_code;
14861 -- set the flag so later we will know whether the gain loss line needs to be created
14862
14863 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
14864 p_actual_flag :='A';
14865 END IF;
14866
14867 --
14868 -- bulk performance
14869 --
14870 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
14871 p_header_num => 0); -- 4262811
14872 --
14873 -- set accounting line options
14874 --
14875 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
14876 p_natural_side_code => 'C'
14877 , p_gain_or_loss_flag => 'N'
14878 , p_gl_transfer_mode_code => 'S'
14879 , p_acct_entry_type_code => 'A'
14880 , p_switch_side_flag => 'Y'
14881 , p_merge_duplicate_code => 'N'
14882 );
14883 --
14884 l_acc_rev_natural_side_code := 'D'; -- 4262811
14885 --
14886 --
14887 -- set accounting line type info
14888 --
14889 xla_ae_lines_pkg.SetAcctLineType
14890 (p_component_type => l_component_type
14891 ,p_event_type_code => l_event_type_code
14892 ,p_line_definition_owner_code => l_line_definition_owner_code
14893 ,p_line_definition_code => l_line_definition_code
14894 ,p_accounting_line_code => l_component_code
14895 ,p_accounting_line_type_code => l_component_type_code
14896 ,p_accounting_line_appl_id => l_component_appl_id
14897 ,p_amb_context_code => l_amb_context_code
14898 ,p_entity_code => l_entity_code
14899 ,p_event_class_code => l_event_class_code);
14900 --
14901 -- set accounting class
14902 --
14903 xla_ae_lines_pkg.SetAcctClass(
14904 p_accounting_class_code => 'REVENUE'
14905 , p_ae_header_id => l_ae_header_id
14906 );
14907
14908 --
14909 -- set rounding class
14910 --
14911 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
14912 'REVENUE';
14913
14914 --
14915 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
14916 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
14917 --
14918 -- bulk performance
14919 --
14920 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
14921
14922 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
14923 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
14924
14925 -- 4955764
14926 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14927 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
14931 --
14928
14929 -- 4458381 Public Sector Enh
14930
14932 -- set accounting attributes for the line type
14933 --
14934 l_entered_amt_idx := 4;
14935 l_accted_amt_idx := 10;
14936 l_bflow_applied_to_amt_idx := NULL; -- 5132302
14937 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
14938 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_49);
14939 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
14940 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_50);
14941 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
14942 l_rec_acct_attrs.array_char_value(3) := p_source_46;
14943 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
14944 l_rec_acct_attrs.array_num_value(4) := p_source_42;
14945 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
14946 l_rec_acct_attrs.array_char_value(5) := p_source_26;
14947 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
14948 l_rec_acct_attrs.array_date_value(6) := p_source_28;
14949 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
14950 l_rec_acct_attrs.array_num_value(7) := p_source_29;
14951 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
14952 l_rec_acct_attrs.array_char_value(8) := p_source_30;
14953 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
14954 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_51);
14955 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
14956 l_rec_acct_attrs.array_num_value(10) := p_source_43;
14957
14958 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
14959 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
14960
14961 ---------------------------------------------------------------------------------------------------------------
14962 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
14963 ---------------------------------------------------------------------------------------------------------------
14964 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
14965
14966 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14967 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14968
14969 IF xla_accounting_cache_pkg.GetValueChar
14970 (p_source_code => 'LEDGER_CATEGORY_CODE'
14971 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
14972 AND l_bflow_method_code = 'PRIOR_ENTRY'
14973 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
14974 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
14975 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
14976 )
14977 THEN
14978 xla_ae_lines_pkg.BflowUpgEntry
14979 (p_business_method_code => l_bflow_method_code
14980 ,p_business_class_code => l_bflow_class_code
14981 ,p_balance_type => l_balance_type_code);
14982 ELSE
14983 NULL;
14984 -- No business flow processing for business flow method of NONE.
14985 END IF;
14986
14987 --
14988 -- call analytical criteria
14989 --
14990
14991 --
14992 -- call description
14993 --
14994 -- No description or it is inherited.
14995 --
14996 -- call ADRs
14997 -- Bug 4922099
14998 --
14999 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15000 (NVL(l_actual_upg_option, 'N') = 'O') OR
15001 (NVL(l_enc_upg_option, 'N') = 'O')
15002 )
15003 THEN
15004 NULL;
15005 --
15006 --
15007
15008 l_ccid := AcctDerRule_1(
15009 p_application_id => p_application_id
15010 , p_ae_header_id => l_ae_header_id
15011 , p_source_1 => p_source_1
15012 , x_transaction_coa_id => l_adr_transaction_coa_id
15013 , x_accounting_coa_id => l_adr_accounting_coa_id
15014 , x_value_type_code => l_adr_value_type_code
15015 , p_side => 'NA'
15016 );
15017
15018 xla_ae_lines_pkg.set_ccid(
15019 p_code_combination_id => l_ccid
15020 , p_value_type_code => l_adr_value_type_code
15021 , p_transaction_coa_id => l_adr_transaction_coa_id
15022 , p_accounting_coa_id => l_adr_accounting_coa_id
15023 , p_adr_code => 'EVENT_REVENUE_RULE'
15024 , p_adr_type_code => 'S'
15025 , p_component_type => l_component_type
15026 , p_component_code => l_component_code
15027 , p_component_type_code => l_component_type_code
15028 , p_component_appl_id => l_component_appl_id
15029 , p_amb_context_code => l_amb_context_code
15030 , p_side => 'NA'
15031 );
15032
15033
15034 --
15035 --
15036 END IF;
15037 --
15038 -- Bug 4922099
15039 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
15040 (NVL(l_enc_upg_option, 'N') = 'O')
15041 ) AND
15042 (l_bflow_method_code = 'PRIOR_ENTRY')
15043 )
15044 THEN
15045 IF
15046 --
15047 1 = 2
15048 --
15049 THEN
15050 xla_accounting_err_pkg.build_message
15051 (p_appli_s_name => 'XLA'
15052 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15053 ,p_token_1 => 'LINE_NUMBER'
15054 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
15058 ,l_component_code
15055 ,p_token_2 => 'LINE_TYPE_NAME'
15056 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
15057 l_component_type
15059 ,l_component_type_code
15060 ,l_component_appl_id
15061 ,l_amb_context_code
15062 ,l_entity_code
15063 ,l_event_class_code
15064 )
15065 ,p_token_3 => 'OWNER'
15066 ,p_value_3 => xla_lookups_pkg.get_meaning(
15067 p_lookup_type => 'XLA_OWNER_TYPE'
15068 ,p_lookup_code => l_component_type_code
15069 )
15070 ,p_token_4 => 'PRODUCT_NAME'
15071 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
15072 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
15073 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
15074 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
15075 ,p_ae_header_id => NULL
15076 );
15077
15078 IF (C_LEVEL_ERROR>= g_log_level) THEN
15079 trace
15080 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15081 ,p_level => C_LEVEL_ERROR
15082 ,p_module => l_log_module);
15083 END IF;
15084 END IF;
15085 END IF;
15086 --
15087 --
15088 ------------------------------------------------------------------------------------------------
15089 -- 4219869 Business Flow
15090 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
15091 -- Prior Entry. Currently, the following code is always generated.
15092 ------------------------------------------------------------------------------------------------
15093 XLA_AE_LINES_PKG.ValidateCurrentLine;
15094
15095 ------------------------------------------------------------------------------------
15096 -- 4219869 Business Flow
15097 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
15098 ------------------------------------------------------------------------------------
15099 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15100
15101 ----------------------------------------------------------------------------------
15102 -- 4219869 Business Flow
15103 -- Update journal entry status -- Need to generate this within IF <condition>
15104 ----------------------------------------------------------------------------------
15105 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15106 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
15107 ,p_balance_type_code => l_balance_type_code
15108 );
15109
15110 -------------------------------------------------------------------------------------------
15111 -- 4262811 - Generate the Accrual Reversal lines
15112 -------------------------------------------------------------------------------------------
15113 BEGIN
15114 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
15115 (g_array_event(p_event_id).array_value_num('header_index'));
15116 IF l_acc_rev_flag IS NULL THEN
15117 l_acc_rev_flag := 'N';
15118 END IF;
15119 EXCEPTION
15120 WHEN OTHERS THEN
15121 l_acc_rev_flag := 'N';
15122 END;
15123 --
15124 IF (l_acc_rev_flag = 'Y') THEN
15125
15126 -- 4645092 ------------------------------------------------------------------------------
15127 -- To allow MPA report to determine if it should generate report process
15128 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
15129 ------------------------------------------------------------------------------------------
15130
15131 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
15132 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
15133
15134 --
15135 -- Update the line information that should be overwritten
15136 --
15137 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
15138 p_header_num => 1);
15139 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
15140
15141 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
15142
15143 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
15144 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
15145 END IF;
15146
15147 --
15148 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
15149 --
15150 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
15151 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
15152 ELSE
15156 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
15153 ---------------------------------------------------------------------------------------------------
15154 -- 4262811a Switch Sign
15155 ---------------------------------------------------------------------------------------------------
15157 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15158 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15159 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15160 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15161 -- 5132302
15162 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
15163 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15164
15165 END IF;
15166
15167 -- 4955764
15168 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15169 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
15170
15171
15172 XLA_AE_LINES_PKG.ValidateCurrentLine;
15173 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15174
15175 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15176 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
15177 ,p_balance_type_code => l_balance_type_code);
15178
15179 END IF;
15180
15181 -----------------------------------------------------------------------------------------
15182 -- 4262811 Multiperiod Accounting
15183 -----------------------------------------------------------------------------------------
15184 -- No MPA option is assigned.
15185
15186
15187 END IF;
15188 END IF;
15189 --
15190
15191 --
15192 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15193 trace
15194 (p_msg => 'END of AcctLineType_47'
15195 ,p_level => C_LEVEL_PROCEDURE
15196 ,p_module => l_log_module);
15197 END IF;
15198 --
15199 EXCEPTION
15200 WHEN xla_exceptions_pkg.application_exception THEN
15201 RAISE;
15202 WHEN OTHERS THEN
15203 xla_exceptions_pkg.raise_message
15204 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_47');
15205 END AcctLineType_47;
15206 --
15207
15208 ---------------------------------------
15209 --
15210 -- PRIVATE FUNCTION
15211 -- AcctLineType_48
15212 --
15213 ---------------------------------------
15214 PROCEDURE AcctLineType_48 (
15215 p_application_id IN NUMBER
15216 ,p_event_id IN NUMBER
15217 ,p_calculate_acctd_flag IN VARCHAR2
15218 ,p_calculate_g_l_flag IN VARCHAR2
15219 ,p_actual_flag IN OUT VARCHAR2
15220 ,p_balance_type_code OUT VARCHAR2
15221 ,p_gain_or_loss_ref OUT VARCHAR2
15222
15223 --Actual Upgrade Credit Accounting Class
15224 , p_source_24 IN VARCHAR2
15225 --Entered Currency Code
15226 , p_source_26 IN VARCHAR2
15227 --Exchange Rate Date
15228 , p_source_28 IN DATE
15229 --Exchange Rate
15230 , p_source_29 IN NUMBER
15231 --Exchange Rate Type
15232 , p_source_30 IN VARCHAR2
15233 --Actual Upgrade Debit Accounting Class
15234 , p_source_31 IN VARCHAR2
15235 --Use Actuals Upgrade Attributes Flag
15236 , p_source_32 IN VARCHAR2
15237 --Entered Amount
15238 , p_source_42 IN NUMBER
15239 --Accounted Amount
15240 , p_source_43 IN NUMBER
15241 --Revenue Distribution Type
15242 , p_source_46 IN VARCHAR2
15243 --Crediting Revenue Flag
15244 , p_source_48 IN VARCHAR2
15245 --Revenue First Distribution ID
15246 , p_source_49 IN NUMBER
15247 --Revenue Second Distribution ID
15248 , p_source_50 IN NUMBER
15249 --Event ID
15250 , p_source_51 IN NUMBER
15251 --Actual Upgrade Credit CCID
15252 , p_source_64 IN NUMBER
15253 --Actual Upgrade Debit CCID
15254 , p_source_65 IN NUMBER
15255 --Application ID
15256 , p_source_66 IN NUMBER
15257 --Revenue Entity Code
15258 , p_source_67 IN VARCHAR2
15259 --Crediting Revenue First Distribution ID
15260 , p_source_68 IN NUMBER
15261 --Project ID
15262 , p_source_69 IN NUMBER
15263 --Crediting Revenue Second Distribution ID
15264 , p_source_70 IN NUMBER
15265 --Draft Revenue Number Credited
15266 , p_source_71 IN NUMBER
15267 --Revenue Event Type Classification
15268 , p_source_72 IN VARCHAR2
15269 , p_source_72_meaning IN VARCHAR2
15270 )
15271 IS
15272
15273 l_component_type VARCHAR2(80);
15274 l_component_code VARCHAR2(30);
15275 l_component_type_code VARCHAR2(1);
15276 l_component_appl_id INTEGER;
15277 l_amb_context_code VARCHAR2(30);
15278 l_entity_code VARCHAR2(30);
15279 l_event_class_code VARCHAR2(30);
15280 l_ae_header_id NUMBER;
15281 l_event_type_code VARCHAR2(30);
15282 l_line_definition_code VARCHAR2(30);
15283 l_line_definition_owner_code VARCHAR2(1);
15284 --
15285 -- adr variables
15286 l_segment VARCHAR2(30);
15287 l_ccid NUMBER;
15288 l_adr_transaction_coa_id NUMBER;
15289 l_adr_accounting_coa_id NUMBER;
15290 l_adr_flexfield_segment_code VARCHAR2(30);
15291 l_adr_flex_value_set_id NUMBER;
15292 l_adr_value_type_code VARCHAR2(30);
15293 l_adr_value_combination_id NUMBER;
15297 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
15294 l_adr_value_segment_code VARCHAR2(30);
15295
15296 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
15298 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
15299 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
15300
15301 -- 4262811 Variables ------------------------------------------------------------------------------------------
15302 l_entered_amt_idx NUMBER;
15303 l_accted_amt_idx NUMBER;
15304 l_acc_rev_flag VARCHAR2(1);
15305 l_accrual_line_num NUMBER;
15306 l_tmp_amt NUMBER;
15307 l_acc_rev_natural_side_code VARCHAR2(1);
15308
15309 l_num_entries NUMBER;
15310 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
15311 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
15312 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
15313 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
15314 l_recog_line_1 NUMBER;
15315 l_recog_line_2 NUMBER;
15316
15317 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
15318 l_bflow_applied_to_amt NUMBER; -- 5132302
15319 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
15320
15321 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
15322
15323 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
15324 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
15325
15326 ---------------------------------------------------------------------------------------------------------------
15327
15328
15329 --
15330 -- bulk performance
15331 --
15332 l_balance_type_code VARCHAR2(1);
15333 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
15334 l_log_module VARCHAR2(240);
15335
15336 --
15337 -- Upgrade strategy
15338 --
15339 l_actual_upg_option VARCHAR2(1);
15340 l_enc_upg_option VARCHAR2(1);
15341
15342 --
15343 BEGIN
15344 --
15345 IF g_log_enabled THEN
15346 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_48';
15347 END IF;
15348 --
15349 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15350
15351 trace
15352 (p_msg => 'BEGIN of AcctLineType_48'
15353 ,p_level => C_LEVEL_PROCEDURE
15354 ,p_module => l_log_module);
15355
15356 END IF;
15357 --
15358 l_component_type := 'AMB_JLT';
15359 l_component_code := 'PA_EVENT_REV_ADJ';
15360 l_component_type_code := 'S';
15361 l_component_appl_id := 275;
15362 l_amb_context_code := 'DEFAULT';
15363 l_entity_code := 'REVENUE';
15364 l_event_class_code := 'REVENUE_ADJ';
15365 l_event_type_code := 'REVENUE_ADJ_ALL';
15366 l_line_definition_owner_code := 'S';
15367 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
15368 --
15369 l_balance_type_code := 'A';
15370 l_segment := NULL;
15371 l_ccid := NULL;
15372 l_adr_transaction_coa_id := NULL;
15373 l_adr_accounting_coa_id := NULL;
15374 l_adr_flexfield_segment_code := NULL;
15375 l_adr_flex_value_set_id := NULL;
15376 l_adr_value_type_code := NULL;
15377 l_adr_value_combination_id := NULL;
15378 l_adr_value_segment_code := NULL;
15379
15380 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
15381 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
15382 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
15383 l_budgetary_control_flag := 'N';
15384
15385 l_bflow_applied_to_amt_idx := NULL; -- 5132302
15386 l_bflow_applied_to_amt := NULL; -- 5132302
15387 l_entered_amt_idx := NULL; -- 4262811
15388 l_accted_amt_idx := NULL; -- 4262811
15389 l_acc_rev_flag := NULL; -- 4262811
15390 l_accrual_line_num := NULL; -- 4262811
15391 l_tmp_amt := NULL; -- 4262811
15392 --
15393
15394 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
15395 l_balance_type_code <> 'B' THEN
15396 IF NVL(p_source_46,'
15397 ') = 'Revenue - Event Revenue' AND
15398 NVL(p_source_72,'
15399 ') <> 'WRITE OFF' AND
15400 NVL(p_source_48,'
15401 ') = 'Y'
15402 THEN
15403
15404 --
15405 XLA_AE_LINES_PKG.SetNewLine;
15406
15407 p_balance_type_code := l_balance_type_code;
15408 -- set the flag so later we will know whether the gain loss line needs to be created
15409
15410 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
15411 p_actual_flag :='A';
15412 END IF;
15413
15414 --
15415 -- bulk performance
15416 --
15417 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
15418 p_header_num => 0); -- 4262811
15419 --
15420 -- set accounting line options
15421 --
15422 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
15423 p_natural_side_code => 'D'
15424 , p_gain_or_loss_flag => 'N'
15425 , p_gl_transfer_mode_code => 'S'
15426 , p_acct_entry_type_code => 'A'
15427 , p_switch_side_flag => 'Y'
15428 , p_merge_duplicate_code => 'N'
15429 );
15430 --
15431 l_acc_rev_natural_side_code := 'C'; -- 4262811
15432 --
15433 --
15434 -- set accounting line type info
15438 ,p_event_type_code => l_event_type_code
15435 --
15436 xla_ae_lines_pkg.SetAcctLineType
15437 (p_component_type => l_component_type
15439 ,p_line_definition_owner_code => l_line_definition_owner_code
15440 ,p_line_definition_code => l_line_definition_code
15441 ,p_accounting_line_code => l_component_code
15442 ,p_accounting_line_type_code => l_component_type_code
15443 ,p_accounting_line_appl_id => l_component_appl_id
15444 ,p_amb_context_code => l_amb_context_code
15445 ,p_entity_code => l_entity_code
15446 ,p_event_class_code => l_event_class_code);
15447 --
15448 -- set accounting class
15449 --
15450 xla_ae_lines_pkg.SetAcctClass(
15451 p_accounting_class_code => 'REVENUE'
15452 , p_ae_header_id => l_ae_header_id
15453 );
15454
15455 --
15456 -- set rounding class
15457 --
15458 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
15459 'REVENUE';
15460
15461 --
15462 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
15463 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
15464 --
15465 -- bulk performance
15466 --
15467 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
15468
15469 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
15470 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
15471
15472 -- 4955764
15473 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15474 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
15475
15476 -- 4458381 Public Sector Enh
15477
15478 --
15479 -- set accounting attributes for the line type
15480 --
15481 l_entered_amt_idx := 28;
15482 l_accted_amt_idx := 31;
15483 l_bflow_applied_to_amt_idx := NULL; -- 5132302
15484 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACTUAL_UPG_CR_ACCT_CLASS';
15485 l_rec_acct_attrs.array_char_value(1) := p_source_24;
15486 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_CCID';
15487 l_rec_acct_attrs.array_num_value(2) := TO_NUMBER(p_source_64);
15488 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ENTERED_AMT';
15489 l_rec_acct_attrs.array_num_value(3) := p_source_42;
15490 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_CURR';
15491 l_rec_acct_attrs.array_char_value(4) := p_source_26;
15492 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_LEDGER_AMT';
15493 l_rec_acct_attrs.array_num_value(5) := p_source_43;
15494 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_XDATE';
15495 l_rec_acct_attrs.array_date_value(6) := p_source_28;
15496 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XRATE';
15497 l_rec_acct_attrs.array_num_value(7) := p_source_29;
15498 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE_TYPE';
15499 l_rec_acct_attrs.array_char_value(8) := p_source_30;
15500 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_DR_ACCT_CLASS';
15501 l_rec_acct_attrs.array_char_value(9) := p_source_31;
15502 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_CCID';
15503 l_rec_acct_attrs.array_num_value(10) := TO_NUMBER(p_source_65);
15504 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ENTERED_AMT';
15505 l_rec_acct_attrs.array_num_value(11) := p_source_42;
15506 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_CURR';
15507 l_rec_acct_attrs.array_char_value(12) := p_source_26;
15508 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_LEDGER_AMT';
15509 l_rec_acct_attrs.array_num_value(13) := p_source_43;
15510 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_XDATE';
15511 l_rec_acct_attrs.array_date_value(14) := p_source_28;
15512 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XRATE';
15513 l_rec_acct_attrs.array_num_value(15) := p_source_29;
15514 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE_TYPE';
15515 l_rec_acct_attrs.array_char_value(16) := p_source_30;
15516 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_OPTION';
15517 l_rec_acct_attrs.array_char_value(17) := p_source_32;
15518 l_rec_acct_attrs.array_acct_attr_code(18) := 'APPLIED_TO_APPLICATION_ID';
15519 l_rec_acct_attrs.array_num_value(18) := p_source_66;
15520 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_DISTRIBUTION_TYPE';
15521 l_rec_acct_attrs.array_char_value(19) := p_source_46;
15522 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_ENTITY_CODE';
15523 l_rec_acct_attrs.array_char_value(20) := p_source_67;
15524 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_FIRST_DIST_ID';
15525 l_rec_acct_attrs.array_num_value(21) := to_char(p_source_68);
15526 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
15527 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_69);
15528 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_SECOND_DIST_ID';
15529 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_70);
15530 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
15531 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_71);
15532 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
15533 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_49);
15534 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
15535 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_50);
15536 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
15537 l_rec_acct_attrs.array_char_value(27) := p_source_46;
15541 l_rec_acct_attrs.array_char_value(29) := p_source_26;
15538 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
15539 l_rec_acct_attrs.array_num_value(28) := p_source_42;
15540 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
15542 l_rec_acct_attrs.array_acct_attr_code(30) := 'GAIN_LOSS_REFERENCE';
15543 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_51);
15544 l_rec_acct_attrs.array_acct_attr_code(31) := 'LEDGER_AMOUNT';
15545 l_rec_acct_attrs.array_num_value(31) := p_source_43;
15546
15547 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
15548 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
15549
15550 ---------------------------------------------------------------------------------------------------------------
15551 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
15552 ---------------------------------------------------------------------------------------------------------------
15553 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
15554
15555 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15556 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15557
15558 IF xla_accounting_cache_pkg.GetValueChar
15559 (p_source_code => 'LEDGER_CATEGORY_CODE'
15560 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
15561 AND l_bflow_method_code = 'PRIOR_ENTRY'
15562 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
15563 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
15564 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
15565 )
15566 THEN
15567 xla_ae_lines_pkg.BflowUpgEntry
15568 (p_business_method_code => l_bflow_method_code
15569 ,p_business_class_code => l_bflow_class_code
15570 ,p_balance_type => l_balance_type_code);
15571 ELSE
15572 NULL;
15573 XLA_AE_LINES_PKG.business_flow_validation(
15574 p_business_method_code => l_bflow_method_code
15575 ,p_business_class_code => l_bflow_class_code
15576 ,p_inherit_description_flag => l_inherit_desc_flag);
15577 END IF;
15578
15579 --
15580 -- call analytical criteria
15581 --
15582 -- Inherited Analytical Criteria for business flow method of Prior Entry.
15583 --
15584 -- call description
15585 --
15586 -- No description or it is inherited.
15587 --
15588 -- call ADRs
15589 -- Bug 4922099
15590 --
15591 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15592 (NVL(l_actual_upg_option, 'N') = 'O') OR
15593 (NVL(l_enc_upg_option, 'N') = 'O')
15594 )
15595 THEN
15596 NULL;
15597 --
15598 --
15599
15600 --
15601 --
15602 END IF;
15603 --
15604 -- Bug 4922099
15605 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
15606 (NVL(l_enc_upg_option, 'N') = 'O')
15607 ) AND
15608 (l_bflow_method_code = 'PRIOR_ENTRY')
15609 )
15610 THEN
15611 IF
15612 --
15613 1 = 1
15614 --
15615 THEN
15616 xla_accounting_err_pkg.build_message
15617 (p_appli_s_name => 'XLA'
15618 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15619 ,p_token_1 => 'LINE_NUMBER'
15620 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
15621 ,p_token_2 => 'LINE_TYPE_NAME'
15622 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
15623 l_component_type
15624 ,l_component_code
15625 ,l_component_type_code
15626 ,l_component_appl_id
15627 ,l_amb_context_code
15628 ,l_entity_code
15629 ,l_event_class_code
15630 )
15631 ,p_token_3 => 'OWNER'
15632 ,p_value_3 => xla_lookups_pkg.get_meaning(
15633 p_lookup_type => 'XLA_OWNER_TYPE'
15634 ,p_lookup_code => l_component_type_code
15635 )
15636 ,p_token_4 => 'PRODUCT_NAME'
15637 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
15638 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
15639 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
15640 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
15641 ,p_ae_header_id => NULL
15642 );
15643
15644 IF (C_LEVEL_ERROR>= g_log_level) THEN
15648 ,p_module => l_log_module);
15645 trace
15646 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15647 ,p_level => C_LEVEL_ERROR
15649 END IF;
15650 END IF;
15651 END IF;
15652 --
15653 --
15654 ------------------------------------------------------------------------------------------------
15655 -- 4219869 Business Flow
15656 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
15657 -- Prior Entry. Currently, the following code is always generated.
15658 ------------------------------------------------------------------------------------------------
15659 -- No ValidateCurrentLine for business flow method of Prior Entry
15660
15661 ------------------------------------------------------------------------------------
15662 -- 4219869 Business Flow
15663 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
15664 ------------------------------------------------------------------------------------
15665 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15666
15667 ----------------------------------------------------------------------------------
15668 -- 4219869 Business Flow
15669 -- Update journal entry status -- Need to generate this within IF <condition>
15670 ----------------------------------------------------------------------------------
15671 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15672 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
15673 ,p_balance_type_code => l_balance_type_code
15674 );
15675
15676 -------------------------------------------------------------------------------------------
15677 -- 4262811 - Generate the Accrual Reversal lines
15678 -------------------------------------------------------------------------------------------
15679 BEGIN
15680 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
15681 (g_array_event(p_event_id).array_value_num('header_index'));
15682 IF l_acc_rev_flag IS NULL THEN
15683 l_acc_rev_flag := 'N';
15684 END IF;
15685 EXCEPTION
15686 WHEN OTHERS THEN
15687 l_acc_rev_flag := 'N';
15688 END;
15689 --
15690 IF (l_acc_rev_flag = 'Y') THEN
15691
15692 -- 4645092 ------------------------------------------------------------------------------
15693 -- To allow MPA report to determine if it should generate report process
15694 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
15695 ------------------------------------------------------------------------------------------
15696
15697 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
15698 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
15699
15700 --
15701 -- Update the line information that should be overwritten
15702 --
15703 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
15704 p_header_num => 1);
15705 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
15706
15707 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
15708
15709 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
15710 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
15711 END IF;
15712
15713 --
15714 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
15715 --
15716 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
15717 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
15718 ELSE
15719 ---------------------------------------------------------------------------------------------------
15720 -- 4262811a Switch Sign
15721 ---------------------------------------------------------------------------------------------------
15722 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
15723 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15724 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15725 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15726 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15727 -- 5132302
15728 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
15729 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15730
15731 END IF;
15732
15733 -- 4955764
15734 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15735 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
15736
15737
15738 XLA_AE_LINES_PKG.ValidateCurrentLine;
15739 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15740
15741 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15742 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
15743 ,p_balance_type_code => l_balance_type_code);
15744
15745 END IF;
15746
15747 -----------------------------------------------------------------------------------------
15748 -- 4262811 Multiperiod Accounting
15749 -----------------------------------------------------------------------------------------
15750 -- No MPA option is assigned.
15751
15752
15753 END IF;
15754 END IF;
15755 --
15756
15757 --
15761 ,p_level => C_LEVEL_PROCEDURE
15758 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15759 trace
15760 (p_msg => 'END of AcctLineType_48'
15762 ,p_module => l_log_module);
15763 END IF;
15764 --
15765 EXCEPTION
15766 WHEN xla_exceptions_pkg.application_exception THEN
15767 RAISE;
15768 WHEN OTHERS THEN
15769 xla_exceptions_pkg.raise_message
15770 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_48');
15771 END AcctLineType_48;
15772 --
15773
15774 ---------------------------------------
15775 --
15776 -- PRIVATE FUNCTION
15777 -- AcctLineType_49
15778 --
15779 ---------------------------------------
15780 PROCEDURE AcctLineType_49 (
15781 p_application_id IN NUMBER
15782 ,p_event_id IN NUMBER
15783 ,p_calculate_acctd_flag IN VARCHAR2
15784 ,p_calculate_g_l_flag IN VARCHAR2
15785 ,p_actual_flag IN OUT VARCHAR2
15786 ,p_balance_type_code OUT VARCHAR2
15787 ,p_gain_or_loss_ref OUT VARCHAR2
15788
15789 --Event Revenue CCID
15790 , p_source_1 IN NUMBER
15791 --Actual Upgrade Credit Accounting Class
15792 , p_source_24 IN VARCHAR2
15793 --Entered Currency Code
15794 , p_source_26 IN VARCHAR2
15795 --Exchange Rate Date
15796 , p_source_28 IN DATE
15797 --Exchange Rate
15798 , p_source_29 IN NUMBER
15799 --Exchange Rate Type
15800 , p_source_30 IN VARCHAR2
15801 --Actual Upgrade Debit Accounting Class
15802 , p_source_31 IN VARCHAR2
15803 --Use Actuals Upgrade Attributes Flag
15804 , p_source_32 IN VARCHAR2
15805 --Entered Amount
15806 , p_source_42 IN NUMBER
15807 --Accounted Amount
15808 , p_source_43 IN NUMBER
15809 --Revenue Distribution Type
15810 , p_source_46 IN VARCHAR2
15811 --Crediting Revenue Flag
15812 , p_source_48 IN VARCHAR2
15813 --Revenue First Distribution ID
15814 , p_source_49 IN NUMBER
15815 --Revenue Second Distribution ID
15816 , p_source_50 IN NUMBER
15817 --Event ID
15818 , p_source_51 IN NUMBER
15819 --Actual Upgrade Credit CCID
15820 , p_source_64 IN NUMBER
15821 --Actual Upgrade Debit CCID
15822 , p_source_65 IN NUMBER
15823 --Application ID
15824 , p_source_66 IN NUMBER
15825 --Revenue Entity Code
15826 , p_source_67 IN VARCHAR2
15827 --Crediting Revenue First Distribution ID
15828 , p_source_68 IN NUMBER
15829 --Project ID
15830 , p_source_69 IN NUMBER
15831 --Crediting Revenue Second Distribution ID
15832 , p_source_70 IN NUMBER
15833 --Draft Revenue Number Credited
15834 , p_source_71 IN NUMBER
15835 --Revenue Event Type Classification
15836 , p_source_72 IN VARCHAR2
15837 , p_source_72_meaning IN VARCHAR2
15838 )
15839 IS
15840
15841 l_component_type VARCHAR2(80);
15842 l_component_code VARCHAR2(30);
15843 l_component_type_code VARCHAR2(1);
15844 l_component_appl_id INTEGER;
15845 l_amb_context_code VARCHAR2(30);
15846 l_entity_code VARCHAR2(30);
15847 l_event_class_code VARCHAR2(30);
15848 l_ae_header_id NUMBER;
15849 l_event_type_code VARCHAR2(30);
15850 l_line_definition_code VARCHAR2(30);
15851 l_line_definition_owner_code VARCHAR2(1);
15852 --
15853 -- adr variables
15854 l_segment VARCHAR2(30);
15855 l_ccid NUMBER;
15856 l_adr_transaction_coa_id NUMBER;
15857 l_adr_accounting_coa_id NUMBER;
15858 l_adr_flexfield_segment_code VARCHAR2(30);
15859 l_adr_flex_value_set_id NUMBER;
15860 l_adr_value_type_code VARCHAR2(30);
15861 l_adr_value_combination_id NUMBER;
15862 l_adr_value_segment_code VARCHAR2(30);
15863
15864 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
15865 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
15866 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
15867 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
15868
15869 -- 4262811 Variables ------------------------------------------------------------------------------------------
15870 l_entered_amt_idx NUMBER;
15871 l_accted_amt_idx NUMBER;
15872 l_acc_rev_flag VARCHAR2(1);
15873 l_accrual_line_num NUMBER;
15874 l_tmp_amt NUMBER;
15875 l_acc_rev_natural_side_code VARCHAR2(1);
15876
15877 l_num_entries NUMBER;
15878 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
15879 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
15880 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
15881 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
15882 l_recog_line_1 NUMBER;
15883 l_recog_line_2 NUMBER;
15884
15885 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
15886 l_bflow_applied_to_amt NUMBER; -- 5132302
15887 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
15888
15889 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
15890
15891 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
15892 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
15893
15894 ---------------------------------------------------------------------------------------------------------------
15895
15896
15897 --
15898 -- bulk performance
15899 --
15900 l_balance_type_code VARCHAR2(1);
15904 --
15901 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
15902 l_log_module VARCHAR2(240);
15903
15905 -- Upgrade strategy
15906 --
15907 l_actual_upg_option VARCHAR2(1);
15908 l_enc_upg_option VARCHAR2(1);
15909
15910 --
15911 BEGIN
15912 --
15913 IF g_log_enabled THEN
15914 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_49';
15915 END IF;
15916 --
15917 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15918
15919 trace
15920 (p_msg => 'BEGIN of AcctLineType_49'
15921 ,p_level => C_LEVEL_PROCEDURE
15922 ,p_module => l_log_module);
15923
15924 END IF;
15925 --
15926 l_component_type := 'AMB_JLT';
15927 l_component_code := 'PA_EVENT_REV_ADJ_FED';
15928 l_component_type_code := 'S';
15929 l_component_appl_id := 275;
15930 l_amb_context_code := 'DEFAULT';
15931 l_entity_code := 'REVENUE';
15932 l_event_class_code := 'REVENUE_ADJ';
15933 l_event_type_code := 'REVENUE_ADJ_ALL';
15934 l_line_definition_owner_code := 'S';
15935 l_line_definition_code := 'FV_PROJECTS_JLD';
15936 --
15937 l_balance_type_code := 'A';
15938 l_segment := NULL;
15939 l_ccid := NULL;
15940 l_adr_transaction_coa_id := NULL;
15941 l_adr_accounting_coa_id := NULL;
15942 l_adr_flexfield_segment_code := NULL;
15943 l_adr_flex_value_set_id := NULL;
15944 l_adr_value_type_code := NULL;
15945 l_adr_value_combination_id := NULL;
15946 l_adr_value_segment_code := NULL;
15947
15948 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
15949 l_bflow_class_code := ''; -- 4219869 Business Flow
15950 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
15951 l_budgetary_control_flag := 'N';
15952
15953 l_bflow_applied_to_amt_idx := NULL; -- 5132302
15954 l_bflow_applied_to_amt := NULL; -- 5132302
15955 l_entered_amt_idx := NULL; -- 4262811
15956 l_accted_amt_idx := NULL; -- 4262811
15957 l_acc_rev_flag := NULL; -- 4262811
15958 l_accrual_line_num := NULL; -- 4262811
15959 l_tmp_amt := NULL; -- 4262811
15960 --
15961
15962 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
15963 l_balance_type_code <> 'B' THEN
15964 IF NVL(p_source_46,'
15965 ') = 'Revenue - Event Revenue' AND
15966 NVL(p_source_72,'
15967 ') <> 'WRITE OFF' AND
15968 NVL(p_source_48,'
15969 ') = 'Y'
15970 THEN
15971
15972 --
15973 XLA_AE_LINES_PKG.SetNewLine;
15974
15975 p_balance_type_code := l_balance_type_code;
15976 -- set the flag so later we will know whether the gain loss line needs to be created
15977
15978 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
15979 p_actual_flag :='A';
15980 END IF;
15981
15982 --
15983 -- bulk performance
15984 --
15985 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
15986 p_header_num => 0); -- 4262811
15987 --
15988 -- set accounting line options
15989 --
15990 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
15991 p_natural_side_code => 'D'
15992 , p_gain_or_loss_flag => 'N'
15993 , p_gl_transfer_mode_code => 'S'
15994 , p_acct_entry_type_code => 'A'
15995 , p_switch_side_flag => 'Y'
15996 , p_merge_duplicate_code => 'N'
15997 );
15998 --
15999 l_acc_rev_natural_side_code := 'C'; -- 4262811
16000 --
16001 --
16002 -- set accounting line type info
16003 --
16004 xla_ae_lines_pkg.SetAcctLineType
16005 (p_component_type => l_component_type
16006 ,p_event_type_code => l_event_type_code
16007 ,p_line_definition_owner_code => l_line_definition_owner_code
16008 ,p_line_definition_code => l_line_definition_code
16009 ,p_accounting_line_code => l_component_code
16010 ,p_accounting_line_type_code => l_component_type_code
16011 ,p_accounting_line_appl_id => l_component_appl_id
16012 ,p_amb_context_code => l_amb_context_code
16013 ,p_entity_code => l_entity_code
16014 ,p_event_class_code => l_event_class_code);
16015 --
16016 -- set accounting class
16017 --
16018 xla_ae_lines_pkg.SetAcctClass(
16019 p_accounting_class_code => 'FEDERAL_REVENUE_ADJUSTMENT'
16020 , p_ae_header_id => l_ae_header_id
16021 );
16022
16023 --
16024 -- set rounding class
16025 --
16026 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
16027 'FEDERAL_REVENUE_ADJUSTMENT';
16028
16029 --
16030 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
16031 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
16032 --
16033 -- bulk performance
16034 --
16035 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
16036
16037 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
16038 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
16039
16040 -- 4955764
16041 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16042 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
16043
16047 -- set accounting attributes for the line type
16044 -- 4458381 Public Sector Enh
16045
16046 --
16048 --
16049 l_entered_amt_idx := 28;
16050 l_accted_amt_idx := 31;
16051 l_bflow_applied_to_amt_idx := NULL; -- 5132302
16052 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACTUAL_UPG_CR_ACCT_CLASS';
16053 l_rec_acct_attrs.array_char_value(1) := p_source_24;
16054 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_CCID';
16055 l_rec_acct_attrs.array_num_value(2) := TO_NUMBER(p_source_64);
16056 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ENTERED_AMT';
16057 l_rec_acct_attrs.array_num_value(3) := p_source_42;
16058 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_CURR';
16059 l_rec_acct_attrs.array_char_value(4) := p_source_26;
16060 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_LEDGER_AMT';
16061 l_rec_acct_attrs.array_num_value(5) := p_source_43;
16062 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_XDATE';
16063 l_rec_acct_attrs.array_date_value(6) := p_source_28;
16064 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XRATE';
16065 l_rec_acct_attrs.array_num_value(7) := p_source_29;
16066 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE_TYPE';
16067 l_rec_acct_attrs.array_char_value(8) := p_source_30;
16068 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_DR_ACCT_CLASS';
16069 l_rec_acct_attrs.array_char_value(9) := p_source_31;
16070 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_CCID';
16071 l_rec_acct_attrs.array_num_value(10) := TO_NUMBER(p_source_65);
16072 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ENTERED_AMT';
16073 l_rec_acct_attrs.array_num_value(11) := p_source_42;
16074 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_CURR';
16075 l_rec_acct_attrs.array_char_value(12) := p_source_26;
16076 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_LEDGER_AMT';
16077 l_rec_acct_attrs.array_num_value(13) := p_source_43;
16078 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_XDATE';
16079 l_rec_acct_attrs.array_date_value(14) := p_source_28;
16080 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XRATE';
16081 l_rec_acct_attrs.array_num_value(15) := p_source_29;
16082 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE_TYPE';
16083 l_rec_acct_attrs.array_char_value(16) := p_source_30;
16084 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_OPTION';
16085 l_rec_acct_attrs.array_char_value(17) := p_source_32;
16086 l_rec_acct_attrs.array_acct_attr_code(18) := 'APPLIED_TO_APPLICATION_ID';
16087 l_rec_acct_attrs.array_num_value(18) := p_source_66;
16088 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_DISTRIBUTION_TYPE';
16089 l_rec_acct_attrs.array_char_value(19) := p_source_46;
16090 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_ENTITY_CODE';
16091 l_rec_acct_attrs.array_char_value(20) := p_source_67;
16092 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_FIRST_DIST_ID';
16093 l_rec_acct_attrs.array_num_value(21) := to_char(p_source_68);
16094 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
16095 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_69);
16096 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_SECOND_DIST_ID';
16097 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_70);
16098 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
16099 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_71);
16100 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
16101 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_49);
16102 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
16103 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_50);
16104 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
16105 l_rec_acct_attrs.array_char_value(27) := p_source_46;
16106 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
16107 l_rec_acct_attrs.array_num_value(28) := p_source_42;
16108 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
16109 l_rec_acct_attrs.array_char_value(29) := p_source_26;
16110 l_rec_acct_attrs.array_acct_attr_code(30) := 'GAIN_LOSS_REFERENCE';
16111 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_51);
16112 l_rec_acct_attrs.array_acct_attr_code(31) := 'LEDGER_AMOUNT';
16113 l_rec_acct_attrs.array_num_value(31) := p_source_43;
16114
16115 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
16116 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
16117
16118 ---------------------------------------------------------------------------------------------------------------
16119 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
16120 ---------------------------------------------------------------------------------------------------------------
16121 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
16122
16123 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16124 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16125
16126 IF xla_accounting_cache_pkg.GetValueChar
16127 (p_source_code => 'LEDGER_CATEGORY_CODE'
16128 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
16129 AND l_bflow_method_code = 'PRIOR_ENTRY'
16130 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
16131 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
16132 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
16133 )
16134 THEN
16135 xla_ae_lines_pkg.BflowUpgEntry
16136 (p_business_method_code => l_bflow_method_code
16140 NULL;
16137 ,p_business_class_code => l_bflow_class_code
16138 ,p_balance_type => l_balance_type_code);
16139 ELSE
16141 -- No business flow processing for business flow method of NONE.
16142 END IF;
16143
16144 --
16145 -- call analytical criteria
16146 --
16147
16148 --
16149 -- call description
16150 --
16151 -- No description or it is inherited.
16152 --
16153 -- call ADRs
16154 -- Bug 4922099
16155 --
16156 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16157 (NVL(l_actual_upg_option, 'N') = 'O') OR
16158 (NVL(l_enc_upg_option, 'N') = 'O')
16159 )
16160 THEN
16161 NULL;
16162 --
16163 --
16164
16165 l_ccid := AcctDerRule_1(
16166 p_application_id => p_application_id
16167 , p_ae_header_id => l_ae_header_id
16168 , p_source_1 => p_source_1
16169 , x_transaction_coa_id => l_adr_transaction_coa_id
16170 , x_accounting_coa_id => l_adr_accounting_coa_id
16171 , x_value_type_code => l_adr_value_type_code
16172 , p_side => 'NA'
16173 );
16174
16175 xla_ae_lines_pkg.set_ccid(
16176 p_code_combination_id => l_ccid
16177 , p_value_type_code => l_adr_value_type_code
16178 , p_transaction_coa_id => l_adr_transaction_coa_id
16179 , p_accounting_coa_id => l_adr_accounting_coa_id
16180 , p_adr_code => 'EVENT_REVENUE_RULE'
16181 , p_adr_type_code => 'S'
16182 , p_component_type => l_component_type
16183 , p_component_code => l_component_code
16184 , p_component_type_code => l_component_type_code
16185 , p_component_appl_id => l_component_appl_id
16186 , p_amb_context_code => l_amb_context_code
16187 , p_side => 'NA'
16188 );
16189
16190
16191 l_segment := AcctDerRule_2(
16192 p_application_id => p_application_id
16193 , p_ae_header_id => l_ae_header_id
16194 , x_transaction_coa_id => l_adr_transaction_coa_id
16195 , x_accounting_coa_id => l_adr_accounting_coa_id
16196 , x_flexfield_segment_code => l_adr_flexfield_segment_code
16197 , x_flex_value_set_id => l_adr_flex_value_set_id
16198 , x_value_type_code => l_adr_value_type_code
16199 , x_value_combination_id => l_adr_value_combination_id
16200 , x_value_segment_code => l_adr_value_segment_code
16201 , p_side => 'NA'
16202 , p_override_seg_flag => 'Y'
16203 );
16204
16205 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
16206
16207 xla_ae_lines_pkg.set_segment(
16208 p_to_segment_code => 'GL_ACCOUNT'
16209 , p_segment_value => l_segment
16210 , p_from_segment_code => l_adr_value_segment_code
16211 , p_from_combination_id => l_adr_value_combination_id
16212 , p_value_type_code => l_adr_value_type_code
16213 , p_transaction_coa_id => l_adr_transaction_coa_id
16214 , p_accounting_coa_id => l_adr_accounting_coa_id
16215 , p_flexfield_segment_code => l_adr_flexfield_segment_code
16216 , p_flex_value_set_id => l_adr_flex_value_set_id
16217 , p_adr_code => 'FV_422X01_PROJECTS'
16218 , p_adr_type_code => 'S'
16219 , p_component_type => l_component_type
16220 , p_component_code => l_component_code
16221 , p_component_type_code => l_component_type_code
16222 , p_component_appl_id => l_component_appl_id
16223 , p_amb_context_code => l_amb_context_code
16224 , p_entity_code => 'REVENUE'
16225 , p_event_class_code => 'REVENUE_ADJ'
16226 , p_side => 'NA'
16227 );
16228
16229 END IF;
16230
16231 --
16232 --
16233 END IF;
16234 --
16235 -- Bug 4922099
16236 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
16237 (NVL(l_enc_upg_option, 'N') = 'O')
16238 ) AND
16239 (l_bflow_method_code = 'PRIOR_ENTRY')
16240 )
16241 THEN
16242 IF
16243 --
16244 1 = 2
16245 --
16246 THEN
16247 xla_accounting_err_pkg.build_message
16248 (p_appli_s_name => 'XLA'
16249 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16250 ,p_token_1 => 'LINE_NUMBER'
16251 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
16252 ,p_token_2 => 'LINE_TYPE_NAME'
16253 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
16254 l_component_type
16255 ,l_component_code
16256 ,l_component_type_code
16257 ,l_component_appl_id
16258 ,l_amb_context_code
16259 ,l_entity_code
16260 ,l_event_class_code
16261 )
16262 ,p_token_3 => 'OWNER'
16266 )
16263 ,p_value_3 => xla_lookups_pkg.get_meaning(
16264 p_lookup_type => 'XLA_OWNER_TYPE'
16265 ,p_lookup_code => l_component_type_code
16267 ,p_token_4 => 'PRODUCT_NAME'
16268 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
16269 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
16270 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
16271 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
16272 ,p_ae_header_id => NULL
16273 );
16274
16275 IF (C_LEVEL_ERROR>= g_log_level) THEN
16276 trace
16277 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16278 ,p_level => C_LEVEL_ERROR
16279 ,p_module => l_log_module);
16280 END IF;
16281 END IF;
16282 END IF;
16283 --
16284 --
16285 ------------------------------------------------------------------------------------------------
16286 -- 4219869 Business Flow
16287 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
16288 -- Prior Entry. Currently, the following code is always generated.
16289 ------------------------------------------------------------------------------------------------
16290 XLA_AE_LINES_PKG.ValidateCurrentLine;
16291
16292 ------------------------------------------------------------------------------------
16293 -- 4219869 Business Flow
16294 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
16295 ------------------------------------------------------------------------------------
16296 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16297
16298 ----------------------------------------------------------------------------------
16299 -- 4219869 Business Flow
16300 -- Update journal entry status -- Need to generate this within IF <condition>
16301 ----------------------------------------------------------------------------------
16302 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16303 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
16304 ,p_balance_type_code => l_balance_type_code
16305 );
16306
16307 -------------------------------------------------------------------------------------------
16308 -- 4262811 - Generate the Accrual Reversal lines
16309 -------------------------------------------------------------------------------------------
16310 BEGIN
16311 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
16312 (g_array_event(p_event_id).array_value_num('header_index'));
16313 IF l_acc_rev_flag IS NULL THEN
16314 l_acc_rev_flag := 'N';
16315 END IF;
16316 EXCEPTION
16317 WHEN OTHERS THEN
16318 l_acc_rev_flag := 'N';
16319 END;
16320 --
16321 IF (l_acc_rev_flag = 'Y') THEN
16322
16323 -- 4645092 ------------------------------------------------------------------------------
16324 -- To allow MPA report to determine if it should generate report process
16325 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
16326 ------------------------------------------------------------------------------------------
16327
16328 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
16329 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
16330
16331 --
16332 -- Update the line information that should be overwritten
16333 --
16334 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
16335 p_header_num => 1);
16336 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
16337
16338 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
16339
16340 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
16341 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
16342 END IF;
16343
16344 --
16345 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
16346 --
16347 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
16348 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
16349 ELSE
16350 ---------------------------------------------------------------------------------------------------
16351 -- 4262811a Switch Sign
16352 ---------------------------------------------------------------------------------------------------
16353 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
16354 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16355 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16356 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16357 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16358 -- 5132302
16359 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
16360 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16361
16365 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16362 END IF;
16363
16364 -- 4955764
16366 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
16367
16368
16369 XLA_AE_LINES_PKG.ValidateCurrentLine;
16370 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16371
16372 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16373 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
16374 ,p_balance_type_code => l_balance_type_code);
16375
16376 END IF;
16377
16378 -----------------------------------------------------------------------------------------
16379 -- 4262811 Multiperiod Accounting
16380 -----------------------------------------------------------------------------------------
16381 -- No MPA option is assigned.
16382
16383
16384 END IF;
16385 END IF;
16386 --
16387
16388 --
16389 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16390 trace
16391 (p_msg => 'END of AcctLineType_49'
16392 ,p_level => C_LEVEL_PROCEDURE
16393 ,p_module => l_log_module);
16394 END IF;
16395 --
16396 EXCEPTION
16397 WHEN xla_exceptions_pkg.application_exception THEN
16398 RAISE;
16399 WHEN OTHERS THEN
16400 xla_exceptions_pkg.raise_message
16401 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_49');
16402 END AcctLineType_49;
16403 --
16404
16405 ---------------------------------------
16406 --
16407 -- PRIVATE FUNCTION
16408 -- AcctLineType_50
16409 --
16410 ---------------------------------------
16411 PROCEDURE AcctLineType_50 (
16412 p_application_id IN NUMBER
16413 ,p_event_id IN NUMBER
16414 ,p_calculate_acctd_flag IN VARCHAR2
16415 ,p_calculate_g_l_flag IN VARCHAR2
16416 ,p_actual_flag IN OUT VARCHAR2
16417 ,p_balance_type_code OUT VARCHAR2
16418 ,p_gain_or_loss_ref OUT VARCHAR2
16419
16420 --Event Revenue CCID
16421 , p_source_1 IN NUMBER
16422 --Entered Currency Code
16423 , p_source_26 IN VARCHAR2
16424 --Entered Amount
16425 , p_source_42 IN NUMBER
16426 --Accounted Amount
16427 , p_source_43 IN NUMBER
16428 --Revenue Distribution Type
16429 , p_source_46 IN VARCHAR2
16430 --Crediting Revenue Flag
16431 , p_source_48 IN VARCHAR2
16432 --Revenue First Distribution ID
16433 , p_source_49 IN NUMBER
16434 --Revenue Second Distribution ID
16435 , p_source_50 IN NUMBER
16436 --Event ID
16437 , p_source_51 IN NUMBER
16438 --Revenue Event Type Classification
16439 , p_source_72 IN VARCHAR2
16440 , p_source_72_meaning IN VARCHAR2
16441 )
16442 IS
16443
16444 l_component_type VARCHAR2(80);
16445 l_component_code VARCHAR2(30);
16446 l_component_type_code VARCHAR2(1);
16447 l_component_appl_id INTEGER;
16448 l_amb_context_code VARCHAR2(30);
16449 l_entity_code VARCHAR2(30);
16450 l_event_class_code VARCHAR2(30);
16451 l_ae_header_id NUMBER;
16452 l_event_type_code VARCHAR2(30);
16453 l_line_definition_code VARCHAR2(30);
16454 l_line_definition_owner_code VARCHAR2(1);
16455 --
16456 -- adr variables
16457 l_segment VARCHAR2(30);
16458 l_ccid NUMBER;
16459 l_adr_transaction_coa_id NUMBER;
16460 l_adr_accounting_coa_id NUMBER;
16461 l_adr_flexfield_segment_code VARCHAR2(30);
16462 l_adr_flex_value_set_id NUMBER;
16463 l_adr_value_type_code VARCHAR2(30);
16464 l_adr_value_combination_id NUMBER;
16465 l_adr_value_segment_code VARCHAR2(30);
16466
16467 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
16468 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
16469 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
16470 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
16471
16472 -- 4262811 Variables ------------------------------------------------------------------------------------------
16473 l_entered_amt_idx NUMBER;
16474 l_accted_amt_idx NUMBER;
16475 l_acc_rev_flag VARCHAR2(1);
16476 l_accrual_line_num NUMBER;
16477 l_tmp_amt NUMBER;
16478 l_acc_rev_natural_side_code VARCHAR2(1);
16479
16480 l_num_entries NUMBER;
16481 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
16482 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
16483 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
16484 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
16485 l_recog_line_1 NUMBER;
16486 l_recog_line_2 NUMBER;
16487
16488 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
16489 l_bflow_applied_to_amt NUMBER; -- 5132302
16490 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
16491
16492 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
16493
16494 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
16495 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
16496
16497 ---------------------------------------------------------------------------------------------------------------
16498
16499
16500 --
16501 -- bulk performance
16502 --
16503 l_balance_type_code VARCHAR2(1);
16504 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
16508 -- Upgrade strategy
16505 l_log_module VARCHAR2(240);
16506
16507 --
16509 --
16510 l_actual_upg_option VARCHAR2(1);
16511 l_enc_upg_option VARCHAR2(1);
16512
16513 --
16514 BEGIN
16515 --
16516 IF g_log_enabled THEN
16517 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_50';
16518 END IF;
16519 --
16520 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16521
16522 trace
16523 (p_msg => 'BEGIN of AcctLineType_50'
16524 ,p_level => C_LEVEL_PROCEDURE
16525 ,p_module => l_log_module);
16526
16527 END IF;
16528 --
16529 l_component_type := 'AMB_JLT';
16530 l_component_code := 'PA_EVENT_REV_FED';
16531 l_component_type_code := 'S';
16532 l_component_appl_id := 275;
16533 l_amb_context_code := 'DEFAULT';
16534 l_entity_code := 'REVENUE';
16535 l_event_class_code := 'REVENUE';
16536 l_event_type_code := 'REVENUE_ALL';
16537 l_line_definition_owner_code := 'S';
16538 l_line_definition_code := 'FV_PROJECTS_JLD';
16539 --
16540 l_balance_type_code := 'A';
16541 l_segment := NULL;
16542 l_ccid := NULL;
16543 l_adr_transaction_coa_id := NULL;
16544 l_adr_accounting_coa_id := NULL;
16545 l_adr_flexfield_segment_code := NULL;
16546 l_adr_flex_value_set_id := NULL;
16547 l_adr_value_type_code := NULL;
16548 l_adr_value_combination_id := NULL;
16549 l_adr_value_segment_code := NULL;
16550
16551 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
16552 l_bflow_class_code := ''; -- 4219869 Business Flow
16553 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
16554 l_budgetary_control_flag := 'N';
16555
16556 l_bflow_applied_to_amt_idx := NULL; -- 5132302
16557 l_bflow_applied_to_amt := NULL; -- 5132302
16558 l_entered_amt_idx := NULL; -- 4262811
16559 l_accted_amt_idx := NULL; -- 4262811
16560 l_acc_rev_flag := NULL; -- 4262811
16561 l_accrual_line_num := NULL; -- 4262811
16562 l_tmp_amt := NULL; -- 4262811
16563 --
16564
16565 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
16566 l_balance_type_code <> 'B' THEN
16567 IF NVL(p_source_46,'
16568 ') = 'Revenue - Event Revenue' AND
16569 NVL(p_source_72,'
16570 ') <> 'WRITE OFF' AND
16571 NVL(p_source_48,'
16572 ') = 'N'
16573 THEN
16574
16575 --
16576 XLA_AE_LINES_PKG.SetNewLine;
16577
16578 p_balance_type_code := l_balance_type_code;
16579 -- set the flag so later we will know whether the gain loss line needs to be created
16580
16581 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
16582 p_actual_flag :='A';
16583 END IF;
16584
16585 --
16586 -- bulk performance
16587 --
16588 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
16589 p_header_num => 0); -- 4262811
16590 --
16591 -- set accounting line options
16592 --
16593 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
16594 p_natural_side_code => 'C'
16595 , p_gain_or_loss_flag => 'N'
16596 , p_gl_transfer_mode_code => 'S'
16597 , p_acct_entry_type_code => 'A'
16598 , p_switch_side_flag => 'Y'
16599 , p_merge_duplicate_code => 'N'
16600 );
16601 --
16602 l_acc_rev_natural_side_code := 'D'; -- 4262811
16603 --
16604 --
16605 -- set accounting line type info
16606 --
16607 xla_ae_lines_pkg.SetAcctLineType
16608 (p_component_type => l_component_type
16609 ,p_event_type_code => l_event_type_code
16610 ,p_line_definition_owner_code => l_line_definition_owner_code
16611 ,p_line_definition_code => l_line_definition_code
16612 ,p_accounting_line_code => l_component_code
16613 ,p_accounting_line_type_code => l_component_type_code
16614 ,p_accounting_line_appl_id => l_component_appl_id
16615 ,p_amb_context_code => l_amb_context_code
16616 ,p_entity_code => l_entity_code
16617 ,p_event_class_code => l_event_class_code);
16618 --
16619 -- set accounting class
16620 --
16621 xla_ae_lines_pkg.SetAcctClass(
16622 p_accounting_class_code => 'FEDERAL_REVENUE'
16623 , p_ae_header_id => l_ae_header_id
16624 );
16625
16626 --
16627 -- set rounding class
16628 --
16629 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
16630 'FEDERAL_REVENUE';
16631
16632 --
16633 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
16634 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
16635 --
16636 -- bulk performance
16637 --
16638 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
16639
16640 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
16641 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
16642
16643 -- 4955764
16644 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16645 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
16646
16647 -- 4458381 Public Sector Enh
16648
16649 --
16653 l_accted_amt_idx := 7;
16650 -- set accounting attributes for the line type
16651 --
16652 l_entered_amt_idx := 4;
16654 l_bflow_applied_to_amt_idx := NULL; -- 5132302
16655 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
16656 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_49);
16657 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
16658 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_50);
16659 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
16660 l_rec_acct_attrs.array_char_value(3) := p_source_46;
16661 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
16662 l_rec_acct_attrs.array_num_value(4) := p_source_42;
16663 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
16664 l_rec_acct_attrs.array_char_value(5) := p_source_26;
16665 l_rec_acct_attrs.array_acct_attr_code(6) := 'GAIN_LOSS_REFERENCE';
16666 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_51);
16667 l_rec_acct_attrs.array_acct_attr_code(7) := 'LEDGER_AMOUNT';
16668 l_rec_acct_attrs.array_num_value(7) := p_source_43;
16669
16670 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
16671 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
16672
16673 ---------------------------------------------------------------------------------------------------------------
16674 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
16675 ---------------------------------------------------------------------------------------------------------------
16676 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
16677
16678 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16679 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16680
16681 IF xla_accounting_cache_pkg.GetValueChar
16682 (p_source_code => 'LEDGER_CATEGORY_CODE'
16683 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
16684 AND l_bflow_method_code = 'PRIOR_ENTRY'
16685 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
16686 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
16687 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
16688 )
16689 THEN
16690 xla_ae_lines_pkg.BflowUpgEntry
16691 (p_business_method_code => l_bflow_method_code
16692 ,p_business_class_code => l_bflow_class_code
16693 ,p_balance_type => l_balance_type_code);
16694 ELSE
16695 NULL;
16696 -- No business flow processing for business flow method of NONE.
16697 END IF;
16698
16699 --
16700 -- call analytical criteria
16701 --
16702
16703 --
16704 -- call description
16705 --
16706 -- No description or it is inherited.
16707 --
16708 -- call ADRs
16709 -- Bug 4922099
16710 --
16711 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16712 (NVL(l_actual_upg_option, 'N') = 'O') OR
16713 (NVL(l_enc_upg_option, 'N') = 'O')
16714 )
16715 THEN
16716 NULL;
16717 --
16718 --
16719
16720 l_ccid := AcctDerRule_1(
16721 p_application_id => p_application_id
16722 , p_ae_header_id => l_ae_header_id
16723 , p_source_1 => p_source_1
16724 , x_transaction_coa_id => l_adr_transaction_coa_id
16725 , x_accounting_coa_id => l_adr_accounting_coa_id
16726 , x_value_type_code => l_adr_value_type_code
16727 , p_side => 'NA'
16728 );
16729
16730 xla_ae_lines_pkg.set_ccid(
16731 p_code_combination_id => l_ccid
16732 , p_value_type_code => l_adr_value_type_code
16733 , p_transaction_coa_id => l_adr_transaction_coa_id
16734 , p_accounting_coa_id => l_adr_accounting_coa_id
16735 , p_adr_code => 'EVENT_REVENUE_RULE'
16736 , p_adr_type_code => 'S'
16737 , p_component_type => l_component_type
16738 , p_component_code => l_component_code
16739 , p_component_type_code => l_component_type_code
16740 , p_component_appl_id => l_component_appl_id
16741 , p_amb_context_code => l_amb_context_code
16742 , p_side => 'NA'
16743 );
16744
16745
16746 l_segment := AcctDerRule_2(
16747 p_application_id => p_application_id
16748 , p_ae_header_id => l_ae_header_id
16749 , x_transaction_coa_id => l_adr_transaction_coa_id
16750 , x_accounting_coa_id => l_adr_accounting_coa_id
16751 , x_flexfield_segment_code => l_adr_flexfield_segment_code
16752 , x_flex_value_set_id => l_adr_flex_value_set_id
16753 , x_value_type_code => l_adr_value_type_code
16754 , x_value_combination_id => l_adr_value_combination_id
16755 , x_value_segment_code => l_adr_value_segment_code
16756 , p_side => 'NA'
16757 , p_override_seg_flag => 'Y'
16758 );
16759
16760 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
16761
16762 xla_ae_lines_pkg.set_segment(
16763 p_to_segment_code => 'GL_ACCOUNT'
16764 , p_segment_value => l_segment
16765 , p_from_segment_code => l_adr_value_segment_code
16766 , p_from_combination_id => l_adr_value_combination_id
16767 , p_value_type_code => l_adr_value_type_code
16768 , p_transaction_coa_id => l_adr_transaction_coa_id
16772 , p_adr_code => 'FV_422X01_PROJECTS'
16769 , p_accounting_coa_id => l_adr_accounting_coa_id
16770 , p_flexfield_segment_code => l_adr_flexfield_segment_code
16771 , p_flex_value_set_id => l_adr_flex_value_set_id
16773 , p_adr_type_code => 'S'
16774 , p_component_type => l_component_type
16775 , p_component_code => l_component_code
16776 , p_component_type_code => l_component_type_code
16777 , p_component_appl_id => l_component_appl_id
16778 , p_amb_context_code => l_amb_context_code
16779 , p_entity_code => 'REVENUE'
16780 , p_event_class_code => 'REVENUE'
16781 , p_side => 'NA'
16782 );
16783
16784 END IF;
16785
16786 --
16787 --
16788 END IF;
16789 --
16790 -- Bug 4922099
16791 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
16792 (NVL(l_enc_upg_option, 'N') = 'O')
16793 ) AND
16794 (l_bflow_method_code = 'PRIOR_ENTRY')
16795 )
16796 THEN
16797 IF
16798 --
16799 1 = 2
16800 --
16801 THEN
16802 xla_accounting_err_pkg.build_message
16803 (p_appli_s_name => 'XLA'
16804 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16805 ,p_token_1 => 'LINE_NUMBER'
16806 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
16807 ,p_token_2 => 'LINE_TYPE_NAME'
16808 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
16809 l_component_type
16810 ,l_component_code
16811 ,l_component_type_code
16812 ,l_component_appl_id
16813 ,l_amb_context_code
16814 ,l_entity_code
16815 ,l_event_class_code
16816 )
16817 ,p_token_3 => 'OWNER'
16818 ,p_value_3 => xla_lookups_pkg.get_meaning(
16819 p_lookup_type => 'XLA_OWNER_TYPE'
16820 ,p_lookup_code => l_component_type_code
16821 )
16822 ,p_token_4 => 'PRODUCT_NAME'
16823 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
16824 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
16825 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
16826 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
16827 ,p_ae_header_id => NULL
16828 );
16829
16830 IF (C_LEVEL_ERROR>= g_log_level) THEN
16831 trace
16832 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16833 ,p_level => C_LEVEL_ERROR
16834 ,p_module => l_log_module);
16835 END IF;
16836 END IF;
16837 END IF;
16838 --
16839 --
16840 ------------------------------------------------------------------------------------------------
16841 -- 4219869 Business Flow
16842 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
16843 -- Prior Entry. Currently, the following code is always generated.
16844 ------------------------------------------------------------------------------------------------
16845 XLA_AE_LINES_PKG.ValidateCurrentLine;
16846
16847 ------------------------------------------------------------------------------------
16848 -- 4219869 Business Flow
16849 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
16850 ------------------------------------------------------------------------------------
16851 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16852
16853 ----------------------------------------------------------------------------------
16854 -- 4219869 Business Flow
16855 -- Update journal entry status -- Need to generate this within IF <condition>
16856 ----------------------------------------------------------------------------------
16857 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16858 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
16859 ,p_balance_type_code => l_balance_type_code
16860 );
16861
16862 -------------------------------------------------------------------------------------------
16863 -- 4262811 - Generate the Accrual Reversal lines
16864 -------------------------------------------------------------------------------------------
16865 BEGIN
16866 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
16867 (g_array_event(p_event_id).array_value_num('header_index'));
16868 IF l_acc_rev_flag IS NULL THEN
16869 l_acc_rev_flag := 'N';
16870 END IF;
16871 EXCEPTION
16872 WHEN OTHERS THEN
16876 IF (l_acc_rev_flag = 'Y') THEN
16873 l_acc_rev_flag := 'N';
16874 END;
16875 --
16877
16878 -- 4645092 ------------------------------------------------------------------------------
16879 -- To allow MPA report to determine if it should generate report process
16880 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
16881 ------------------------------------------------------------------------------------------
16882
16883 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
16884 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
16885
16886 --
16887 -- Update the line information that should be overwritten
16888 --
16889 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
16890 p_header_num => 1);
16891 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
16892
16893 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
16894
16895 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
16896 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
16897 END IF;
16898
16899 --
16900 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
16901 --
16902 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
16903 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
16904 ELSE
16905 ---------------------------------------------------------------------------------------------------
16906 -- 4262811a Switch Sign
16907 ---------------------------------------------------------------------------------------------------
16908 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
16909 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16910 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16911 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16912 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16913 -- 5132302
16914 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
16915 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16916
16917 END IF;
16918
16919 -- 4955764
16920 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16921 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
16922
16923
16924 XLA_AE_LINES_PKG.ValidateCurrentLine;
16925 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16926
16927 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16928 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
16929 ,p_balance_type_code => l_balance_type_code);
16930
16931 END IF;
16932
16933 -----------------------------------------------------------------------------------------
16934 -- 4262811 Multiperiod Accounting
16935 -----------------------------------------------------------------------------------------
16936 -- No MPA option is assigned.
16937
16938
16939 END IF;
16940 END IF;
16941 --
16942
16943 --
16944 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16945 trace
16946 (p_msg => 'END of AcctLineType_50'
16947 ,p_level => C_LEVEL_PROCEDURE
16948 ,p_module => l_log_module);
16949 END IF;
16950 --
16951 EXCEPTION
16952 WHEN xla_exceptions_pkg.application_exception THEN
16953 RAISE;
16954 WHEN OTHERS THEN
16955 xla_exceptions_pkg.raise_message
16956 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_50');
16957 END AcctLineType_50;
16958 --
16959
16960 ---------------------------------------
16961 --
16962 -- PRIVATE FUNCTION
16963 -- AcctLineType_51
16964 --
16965 ---------------------------------------
16966 PROCEDURE AcctLineType_51 (
16967 p_application_id IN NUMBER
16968 ,p_event_id IN NUMBER
16969 ,p_calculate_acctd_flag IN VARCHAR2
16970 ,p_calculate_g_l_flag IN VARCHAR2
16971 ,p_actual_flag IN OUT VARCHAR2
16972 ,p_balance_type_code OUT VARCHAR2
16973 ,p_gain_or_loss_ref OUT VARCHAR2
16974
16975 --Event Revenue CCID
16976 , p_source_1 IN NUMBER
16977 --Entered Currency Code
16978 , p_source_26 IN VARCHAR2
16979 --Exchange Rate Date
16980 , p_source_28 IN DATE
16981 --Exchange Rate
16982 , p_source_29 IN NUMBER
16983 --Exchange Rate Type
16984 , p_source_30 IN VARCHAR2
16985 --Entered Amount
16986 , p_source_42 IN NUMBER
16987 --Accounted Amount
16988 , p_source_43 IN NUMBER
16989 --Revenue Distribution Type
16990 , p_source_46 IN VARCHAR2
16991 --Crediting Revenue Flag
16992 , p_source_48 IN VARCHAR2
16993 --Revenue First Distribution ID
16994 , p_source_49 IN NUMBER
16995 --Revenue Second Distribution ID
16996 , p_source_50 IN NUMBER
16997 --Event ID
16998 , p_source_51 IN NUMBER
16999 --Revenue Event Type Classification
17000 , p_source_72 IN VARCHAR2
17001 , p_source_72_meaning IN VARCHAR2
17002 )
17003 IS
17004
17005 l_component_type VARCHAR2(80);
17006 l_component_code VARCHAR2(30);
17010 l_entity_code VARCHAR2(30);
17007 l_component_type_code VARCHAR2(1);
17008 l_component_appl_id INTEGER;
17009 l_amb_context_code VARCHAR2(30);
17011 l_event_class_code VARCHAR2(30);
17012 l_ae_header_id NUMBER;
17013 l_event_type_code VARCHAR2(30);
17014 l_line_definition_code VARCHAR2(30);
17015 l_line_definition_owner_code VARCHAR2(1);
17016 --
17017 -- adr variables
17018 l_segment VARCHAR2(30);
17019 l_ccid NUMBER;
17020 l_adr_transaction_coa_id NUMBER;
17021 l_adr_accounting_coa_id NUMBER;
17022 l_adr_flexfield_segment_code VARCHAR2(30);
17023 l_adr_flex_value_set_id NUMBER;
17024 l_adr_value_type_code VARCHAR2(30);
17025 l_adr_value_combination_id NUMBER;
17026 l_adr_value_segment_code VARCHAR2(30);
17027
17028 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
17029 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
17030 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
17031 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
17032
17033 -- 4262811 Variables ------------------------------------------------------------------------------------------
17034 l_entered_amt_idx NUMBER;
17035 l_accted_amt_idx NUMBER;
17036 l_acc_rev_flag VARCHAR2(1);
17037 l_accrual_line_num NUMBER;
17038 l_tmp_amt NUMBER;
17039 l_acc_rev_natural_side_code VARCHAR2(1);
17040
17041 l_num_entries NUMBER;
17042 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
17043 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
17044 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
17045 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
17046 l_recog_line_1 NUMBER;
17047 l_recog_line_2 NUMBER;
17048
17049 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
17050 l_bflow_applied_to_amt NUMBER; -- 5132302
17051 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
17052
17053 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
17054
17055 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
17056 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
17057
17058 ---------------------------------------------------------------------------------------------------------------
17059
17060
17061 --
17062 -- bulk performance
17063 --
17064 l_balance_type_code VARCHAR2(1);
17065 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
17066 l_log_module VARCHAR2(240);
17067
17068 --
17069 -- Upgrade strategy
17070 --
17071 l_actual_upg_option VARCHAR2(1);
17072 l_enc_upg_option VARCHAR2(1);
17073
17074 --
17075 BEGIN
17076 --
17077 IF g_log_enabled THEN
17078 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_51';
17079 END IF;
17080 --
17081 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17082
17083 trace
17084 (p_msg => 'BEGIN of AcctLineType_51'
17085 ,p_level => C_LEVEL_PROCEDURE
17086 ,p_module => l_log_module);
17087
17088 END IF;
17089 --
17090 l_component_type := 'AMB_JLT';
17091 l_component_code := 'PA_EVENT_WO_REV';
17092 l_component_type_code := 'S';
17093 l_component_appl_id := 275;
17094 l_amb_context_code := 'DEFAULT';
17095 l_entity_code := 'REVENUE';
17096 l_event_class_code := 'REVENUE';
17097 l_event_type_code := 'REVENUE_ALL';
17098 l_line_definition_owner_code := 'S';
17099 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
17100 --
17101 l_balance_type_code := 'A';
17102 l_segment := NULL;
17103 l_ccid := NULL;
17104 l_adr_transaction_coa_id := NULL;
17105 l_adr_accounting_coa_id := NULL;
17106 l_adr_flexfield_segment_code := NULL;
17107 l_adr_flex_value_set_id := NULL;
17108 l_adr_value_type_code := NULL;
17109 l_adr_value_combination_id := NULL;
17110 l_adr_value_segment_code := NULL;
17111
17112 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
17113 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
17114 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
17115 l_budgetary_control_flag := 'N';
17116
17117 l_bflow_applied_to_amt_idx := NULL; -- 5132302
17118 l_bflow_applied_to_amt := NULL; -- 5132302
17119 l_entered_amt_idx := NULL; -- 4262811
17120 l_accted_amt_idx := NULL; -- 4262811
17121 l_acc_rev_flag := NULL; -- 4262811
17122 l_accrual_line_num := NULL; -- 4262811
17123 l_tmp_amt := NULL; -- 4262811
17124 --
17125
17126 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
17127 l_balance_type_code <> 'B' THEN
17128 IF NVL(p_source_46,'
17129 ') = 'Revenue - Event Revenue' AND
17130 NVL(p_source_72,'
17131 ') = 'WRITE OFF' AND
17132 NVL(p_source_48,'
17133 ') = 'N'
17134 THEN
17135
17136 --
17137 XLA_AE_LINES_PKG.SetNewLine;
17138
17139 p_balance_type_code := l_balance_type_code;
17140 -- set the flag so later we will know whether the gain loss line needs to be created
17141
17142 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
17143 p_actual_flag :='A';
17144 END IF;
17145
17149 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
17146 --
17147 -- bulk performance
17148 --
17150 p_header_num => 0); -- 4262811
17151 --
17152 -- set accounting line options
17153 --
17154 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
17155 p_natural_side_code => 'D'
17156 , p_gain_or_loss_flag => 'N'
17157 , p_gl_transfer_mode_code => 'S'
17158 , p_acct_entry_type_code => 'A'
17159 , p_switch_side_flag => 'Y'
17160 , p_merge_duplicate_code => 'N'
17161 );
17162 --
17163 l_acc_rev_natural_side_code := 'C'; -- 4262811
17164 --
17165 --
17166 -- set accounting line type info
17167 --
17168 xla_ae_lines_pkg.SetAcctLineType
17169 (p_component_type => l_component_type
17170 ,p_event_type_code => l_event_type_code
17171 ,p_line_definition_owner_code => l_line_definition_owner_code
17172 ,p_line_definition_code => l_line_definition_code
17173 ,p_accounting_line_code => l_component_code
17174 ,p_accounting_line_type_code => l_component_type_code
17175 ,p_accounting_line_appl_id => l_component_appl_id
17176 ,p_amb_context_code => l_amb_context_code
17177 ,p_entity_code => l_entity_code
17178 ,p_event_class_code => l_event_class_code);
17179 --
17180 -- set accounting class
17181 --
17182 xla_ae_lines_pkg.SetAcctClass(
17183 p_accounting_class_code => 'EVENT_WO_REVENUE'
17184 , p_ae_header_id => l_ae_header_id
17185 );
17186
17187 --
17188 -- set rounding class
17189 --
17190 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
17191 'EVENT_WO_REVENUE';
17192
17193 --
17194 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
17195 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
17196 --
17197 -- bulk performance
17198 --
17199 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
17200
17201 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
17202 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
17203
17204 -- 4955764
17205 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17206 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
17207
17208 -- 4458381 Public Sector Enh
17209
17210 --
17211 -- set accounting attributes for the line type
17212 --
17213 l_entered_amt_idx := 4;
17214 l_accted_amt_idx := 10;
17215 l_bflow_applied_to_amt_idx := NULL; -- 5132302
17216 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
17217 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_49);
17218 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
17219 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_50);
17220 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
17221 l_rec_acct_attrs.array_char_value(3) := p_source_46;
17222 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
17223 l_rec_acct_attrs.array_num_value(4) := p_source_42;
17224 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
17225 l_rec_acct_attrs.array_char_value(5) := p_source_26;
17226 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
17227 l_rec_acct_attrs.array_date_value(6) := p_source_28;
17228 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
17229 l_rec_acct_attrs.array_num_value(7) := p_source_29;
17230 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
17231 l_rec_acct_attrs.array_char_value(8) := p_source_30;
17232 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
17233 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_51);
17234 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
17235 l_rec_acct_attrs.array_num_value(10) := p_source_43;
17236
17237 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
17238 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
17239
17240 ---------------------------------------------------------------------------------------------------------------
17241 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
17242 ---------------------------------------------------------------------------------------------------------------
17243 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
17244
17245 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17246 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17247
17248 IF xla_accounting_cache_pkg.GetValueChar
17249 (p_source_code => 'LEDGER_CATEGORY_CODE'
17250 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
17251 AND l_bflow_method_code = 'PRIOR_ENTRY'
17252 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
17253 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
17254 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
17255 )
17256 THEN
17257 xla_ae_lines_pkg.BflowUpgEntry
17258 (p_business_method_code => l_bflow_method_code
17259 ,p_business_class_code => l_bflow_class_code
17260 ,p_balance_type => l_balance_type_code);
17264 END IF;
17261 ELSE
17262 NULL;
17263 -- No business flow processing for business flow method of NONE.
17265
17266 --
17267 -- call analytical criteria
17268 --
17269
17270 --
17271 -- call description
17272 --
17273 -- No description or it is inherited.
17274 --
17275 -- call ADRs
17276 -- Bug 4922099
17277 --
17278 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17279 (NVL(l_actual_upg_option, 'N') = 'O') OR
17280 (NVL(l_enc_upg_option, 'N') = 'O')
17281 )
17282 THEN
17283 NULL;
17284 --
17285 --
17286
17287 l_ccid := AcctDerRule_1(
17288 p_application_id => p_application_id
17289 , p_ae_header_id => l_ae_header_id
17290 , p_source_1 => p_source_1
17291 , x_transaction_coa_id => l_adr_transaction_coa_id
17292 , x_accounting_coa_id => l_adr_accounting_coa_id
17293 , x_value_type_code => l_adr_value_type_code
17294 , p_side => 'NA'
17295 );
17296
17297 xla_ae_lines_pkg.set_ccid(
17298 p_code_combination_id => l_ccid
17299 , p_value_type_code => l_adr_value_type_code
17300 , p_transaction_coa_id => l_adr_transaction_coa_id
17301 , p_accounting_coa_id => l_adr_accounting_coa_id
17302 , p_adr_code => 'EVENT_REVENUE_RULE'
17303 , p_adr_type_code => 'S'
17304 , p_component_type => l_component_type
17305 , p_component_code => l_component_code
17306 , p_component_type_code => l_component_type_code
17307 , p_component_appl_id => l_component_appl_id
17308 , p_amb_context_code => l_amb_context_code
17309 , p_side => 'NA'
17310 );
17311
17312
17313 --
17314 --
17315 END IF;
17316 --
17317 -- Bug 4922099
17318 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17319 (NVL(l_enc_upg_option, 'N') = 'O')
17320 ) AND
17321 (l_bflow_method_code = 'PRIOR_ENTRY')
17322 )
17323 THEN
17324 IF
17325 --
17326 1 = 2
17327 --
17328 THEN
17329 xla_accounting_err_pkg.build_message
17330 (p_appli_s_name => 'XLA'
17331 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17332 ,p_token_1 => 'LINE_NUMBER'
17333 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
17334 ,p_token_2 => 'LINE_TYPE_NAME'
17335 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
17336 l_component_type
17337 ,l_component_code
17338 ,l_component_type_code
17339 ,l_component_appl_id
17340 ,l_amb_context_code
17341 ,l_entity_code
17342 ,l_event_class_code
17343 )
17344 ,p_token_3 => 'OWNER'
17345 ,p_value_3 => xla_lookups_pkg.get_meaning(
17346 p_lookup_type => 'XLA_OWNER_TYPE'
17347 ,p_lookup_code => l_component_type_code
17348 )
17349 ,p_token_4 => 'PRODUCT_NAME'
17350 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
17351 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
17352 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
17353 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
17354 ,p_ae_header_id => NULL
17355 );
17356
17357 IF (C_LEVEL_ERROR>= g_log_level) THEN
17358 trace
17359 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17360 ,p_level => C_LEVEL_ERROR
17361 ,p_module => l_log_module);
17362 END IF;
17363 END IF;
17364 END IF;
17365 --
17366 --
17367 ------------------------------------------------------------------------------------------------
17368 -- 4219869 Business Flow
17369 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
17370 -- Prior Entry. Currently, the following code is always generated.
17371 ------------------------------------------------------------------------------------------------
17372 XLA_AE_LINES_PKG.ValidateCurrentLine;
17373
17374 ------------------------------------------------------------------------------------
17375 -- 4219869 Business Flow
17376 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
17377 ------------------------------------------------------------------------------------
17378 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17379
17383 ----------------------------------------------------------------------------------
17380 ----------------------------------------------------------------------------------
17381 -- 4219869 Business Flow
17382 -- Update journal entry status -- Need to generate this within IF <condition>
17384 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17385 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
17386 ,p_balance_type_code => l_balance_type_code
17387 );
17388
17389 -------------------------------------------------------------------------------------------
17390 -- 4262811 - Generate the Accrual Reversal lines
17391 -------------------------------------------------------------------------------------------
17392 BEGIN
17393 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
17394 (g_array_event(p_event_id).array_value_num('header_index'));
17395 IF l_acc_rev_flag IS NULL THEN
17396 l_acc_rev_flag := 'N';
17397 END IF;
17398 EXCEPTION
17399 WHEN OTHERS THEN
17400 l_acc_rev_flag := 'N';
17401 END;
17402 --
17403 IF (l_acc_rev_flag = 'Y') THEN
17404
17405 -- 4645092 ------------------------------------------------------------------------------
17406 -- To allow MPA report to determine if it should generate report process
17407 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
17408 ------------------------------------------------------------------------------------------
17409
17410 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
17411 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
17412
17413 --
17414 -- Update the line information that should be overwritten
17415 --
17416 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
17417 p_header_num => 1);
17418 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
17419
17420 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
17421
17422 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
17423 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
17424 END IF;
17425
17426 --
17427 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
17428 --
17429 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
17430 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
17431 ELSE
17432 ---------------------------------------------------------------------------------------------------
17433 -- 4262811a Switch Sign
17434 ---------------------------------------------------------------------------------------------------
17435 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
17436 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17437 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17438 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17439 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17440 -- 5132302
17441 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
17442 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17443
17444 END IF;
17445
17446 -- 4955764
17447 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17448 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
17449
17450
17451 XLA_AE_LINES_PKG.ValidateCurrentLine;
17452 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17453
17454 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17455 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
17456 ,p_balance_type_code => l_balance_type_code);
17457
17458 END IF;
17459
17460 -----------------------------------------------------------------------------------------
17461 -- 4262811 Multiperiod Accounting
17462 -----------------------------------------------------------------------------------------
17463 -- No MPA option is assigned.
17464
17465
17466 END IF;
17467 END IF;
17468 --
17469
17470 --
17471 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17472 trace
17473 (p_msg => 'END of AcctLineType_51'
17474 ,p_level => C_LEVEL_PROCEDURE
17475 ,p_module => l_log_module);
17476 END IF;
17477 --
17478 EXCEPTION
17479 WHEN xla_exceptions_pkg.application_exception THEN
17480 RAISE;
17481 WHEN OTHERS THEN
17482 xla_exceptions_pkg.raise_message
17483 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_51');
17484 END AcctLineType_51;
17485 --
17486
17487 ---------------------------------------
17488 --
17489 -- PRIVATE FUNCTION
17490 -- AcctLineType_52
17491 --
17492 ---------------------------------------
17493 PROCEDURE AcctLineType_52 (
17494 p_application_id IN NUMBER
17495 ,p_event_id IN NUMBER
17496 ,p_calculate_acctd_flag IN VARCHAR2
17497 ,p_calculate_g_l_flag IN VARCHAR2
17498 ,p_actual_flag IN OUT VARCHAR2
17499 ,p_balance_type_code OUT VARCHAR2
17500 ,p_gain_or_loss_ref OUT VARCHAR2
17501
17502 --Actual Upgrade Credit Accounting Class
17506 --Exchange Rate Date
17503 , p_source_24 IN VARCHAR2
17504 --Entered Currency Code
17505 , p_source_26 IN VARCHAR2
17507 , p_source_28 IN DATE
17508 --Exchange Rate
17509 , p_source_29 IN NUMBER
17510 --Exchange Rate Type
17511 , p_source_30 IN VARCHAR2
17512 --Actual Upgrade Debit Accounting Class
17513 , p_source_31 IN VARCHAR2
17514 --Use Actuals Upgrade Attributes Flag
17515 , p_source_32 IN VARCHAR2
17516 --Entered Amount
17517 , p_source_42 IN NUMBER
17518 --Accounted Amount
17519 , p_source_43 IN NUMBER
17520 --Revenue Distribution Type
17521 , p_source_46 IN VARCHAR2
17522 --Crediting Revenue Flag
17523 , p_source_48 IN VARCHAR2
17524 --Revenue First Distribution ID
17525 , p_source_49 IN NUMBER
17526 --Revenue Second Distribution ID
17527 , p_source_50 IN NUMBER
17528 --Event ID
17529 , p_source_51 IN NUMBER
17530 --Actual Upgrade Credit CCID
17531 , p_source_64 IN NUMBER
17532 --Actual Upgrade Debit CCID
17533 , p_source_65 IN NUMBER
17534 --Application ID
17535 , p_source_66 IN NUMBER
17536 --Revenue Entity Code
17537 , p_source_67 IN VARCHAR2
17538 --Crediting Revenue First Distribution ID
17539 , p_source_68 IN NUMBER
17540 --Project ID
17541 , p_source_69 IN NUMBER
17542 --Crediting Revenue Second Distribution ID
17543 , p_source_70 IN NUMBER
17544 --Draft Revenue Number Credited
17545 , p_source_71 IN NUMBER
17546 --Revenue Event Type Classification
17547 , p_source_72 IN VARCHAR2
17548 , p_source_72_meaning IN VARCHAR2
17549 )
17550 IS
17551
17552 l_component_type VARCHAR2(80);
17553 l_component_code VARCHAR2(30);
17554 l_component_type_code VARCHAR2(1);
17555 l_component_appl_id INTEGER;
17556 l_amb_context_code VARCHAR2(30);
17557 l_entity_code VARCHAR2(30);
17558 l_event_class_code VARCHAR2(30);
17559 l_ae_header_id NUMBER;
17560 l_event_type_code VARCHAR2(30);
17561 l_line_definition_code VARCHAR2(30);
17562 l_line_definition_owner_code VARCHAR2(1);
17563 --
17564 -- adr variables
17565 l_segment VARCHAR2(30);
17566 l_ccid NUMBER;
17567 l_adr_transaction_coa_id NUMBER;
17568 l_adr_accounting_coa_id NUMBER;
17569 l_adr_flexfield_segment_code VARCHAR2(30);
17570 l_adr_flex_value_set_id NUMBER;
17571 l_adr_value_type_code VARCHAR2(30);
17572 l_adr_value_combination_id NUMBER;
17573 l_adr_value_segment_code VARCHAR2(30);
17574
17575 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
17576 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
17577 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
17578 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
17579
17580 -- 4262811 Variables ------------------------------------------------------------------------------------------
17581 l_entered_amt_idx NUMBER;
17582 l_accted_amt_idx NUMBER;
17583 l_acc_rev_flag VARCHAR2(1);
17584 l_accrual_line_num NUMBER;
17585 l_tmp_amt NUMBER;
17586 l_acc_rev_natural_side_code VARCHAR2(1);
17587
17588 l_num_entries NUMBER;
17589 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
17590 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
17591 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
17592 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
17593 l_recog_line_1 NUMBER;
17594 l_recog_line_2 NUMBER;
17595
17596 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
17597 l_bflow_applied_to_amt NUMBER; -- 5132302
17598 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
17599
17600 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
17601
17602 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
17603 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
17604
17605 ---------------------------------------------------------------------------------------------------------------
17606
17607
17608 --
17609 -- bulk performance
17610 --
17611 l_balance_type_code VARCHAR2(1);
17612 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
17613 l_log_module VARCHAR2(240);
17614
17615 --
17616 -- Upgrade strategy
17617 --
17618 l_actual_upg_option VARCHAR2(1);
17619 l_enc_upg_option VARCHAR2(1);
17620
17621 --
17622 BEGIN
17623 --
17624 IF g_log_enabled THEN
17625 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_52';
17626 END IF;
17627 --
17628 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17629
17630 trace
17631 (p_msg => 'BEGIN of AcctLineType_52'
17632 ,p_level => C_LEVEL_PROCEDURE
17633 ,p_module => l_log_module);
17634
17635 END IF;
17636 --
17637 l_component_type := 'AMB_JLT';
17638 l_component_code := 'PA_EVENT_WO_REV_ADJ';
17639 l_component_type_code := 'S';
17640 l_component_appl_id := 275;
17641 l_amb_context_code := 'DEFAULT';
17642 l_entity_code := 'REVENUE';
17643 l_event_class_code := 'REVENUE_ADJ';
17644 l_event_type_code := 'REVENUE_ADJ_ALL';
17645 l_line_definition_owner_code := 'S';
17649 l_segment := NULL;
17646 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
17647 --
17648 l_balance_type_code := 'A';
17650 l_ccid := NULL;
17651 l_adr_transaction_coa_id := NULL;
17652 l_adr_accounting_coa_id := NULL;
17653 l_adr_flexfield_segment_code := NULL;
17654 l_adr_flex_value_set_id := NULL;
17655 l_adr_value_type_code := NULL;
17656 l_adr_value_combination_id := NULL;
17657 l_adr_value_segment_code := NULL;
17658
17659 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
17660 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
17661 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
17662 l_budgetary_control_flag := 'N';
17663
17664 l_bflow_applied_to_amt_idx := NULL; -- 5132302
17665 l_bflow_applied_to_amt := NULL; -- 5132302
17666 l_entered_amt_idx := NULL; -- 4262811
17667 l_accted_amt_idx := NULL; -- 4262811
17668 l_acc_rev_flag := NULL; -- 4262811
17669 l_accrual_line_num := NULL; -- 4262811
17670 l_tmp_amt := NULL; -- 4262811
17671 --
17672
17673 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
17674 l_balance_type_code <> 'B' THEN
17675 IF NVL(p_source_46,'
17676 ') = 'Revenue - Event Revenue' AND
17677 NVL(p_source_72,'
17678 ') = 'WRITE OFF' AND
17679 NVL(p_source_48,'
17680 ') = 'Y'
17681 THEN
17682
17683 --
17684 XLA_AE_LINES_PKG.SetNewLine;
17685
17686 p_balance_type_code := l_balance_type_code;
17687 -- set the flag so later we will know whether the gain loss line needs to be created
17688
17689 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
17690 p_actual_flag :='A';
17691 END IF;
17692
17693 --
17694 -- bulk performance
17695 --
17696 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
17697 p_header_num => 0); -- 4262811
17698 --
17699 -- set accounting line options
17700 --
17701 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
17702 p_natural_side_code => 'C'
17703 , p_gain_or_loss_flag => 'N'
17704 , p_gl_transfer_mode_code => 'S'
17705 , p_acct_entry_type_code => 'A'
17706 , p_switch_side_flag => 'Y'
17707 , p_merge_duplicate_code => 'N'
17708 );
17709 --
17710 l_acc_rev_natural_side_code := 'D'; -- 4262811
17711 --
17712 --
17713 -- set accounting line type info
17714 --
17715 xla_ae_lines_pkg.SetAcctLineType
17716 (p_component_type => l_component_type
17717 ,p_event_type_code => l_event_type_code
17718 ,p_line_definition_owner_code => l_line_definition_owner_code
17719 ,p_line_definition_code => l_line_definition_code
17720 ,p_accounting_line_code => l_component_code
17721 ,p_accounting_line_type_code => l_component_type_code
17722 ,p_accounting_line_appl_id => l_component_appl_id
17723 ,p_amb_context_code => l_amb_context_code
17724 ,p_entity_code => l_entity_code
17725 ,p_event_class_code => l_event_class_code);
17726 --
17727 -- set accounting class
17728 --
17729 xla_ae_lines_pkg.SetAcctClass(
17730 p_accounting_class_code => 'EVENT_WO_REVENUE'
17731 , p_ae_header_id => l_ae_header_id
17732 );
17733
17734 --
17735 -- set rounding class
17736 --
17737 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
17738 'EVENT_WO_REVENUE';
17739
17740 --
17741 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
17742 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
17743 --
17744 -- bulk performance
17745 --
17746 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
17747
17748 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
17749 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
17750
17751 -- 4955764
17752 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17753 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
17754
17755 -- 4458381 Public Sector Enh
17756
17757 --
17758 -- set accounting attributes for the line type
17759 --
17760 l_entered_amt_idx := 28;
17761 l_accted_amt_idx := 31;
17762 l_bflow_applied_to_amt_idx := NULL; -- 5132302
17763 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACTUAL_UPG_CR_ACCT_CLASS';
17764 l_rec_acct_attrs.array_char_value(1) := p_source_24;
17765 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_CCID';
17766 l_rec_acct_attrs.array_num_value(2) := TO_NUMBER(p_source_64);
17767 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ENTERED_AMT';
17768 l_rec_acct_attrs.array_num_value(3) := p_source_42;
17769 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_CURR';
17770 l_rec_acct_attrs.array_char_value(4) := p_source_26;
17771 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_LEDGER_AMT';
17772 l_rec_acct_attrs.array_num_value(5) := p_source_43;
17773 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_XDATE';
17774 l_rec_acct_attrs.array_date_value(6) := p_source_28;
17775 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XRATE';
17779 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_DR_ACCT_CLASS';
17776 l_rec_acct_attrs.array_num_value(7) := p_source_29;
17777 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE_TYPE';
17778 l_rec_acct_attrs.array_char_value(8) := p_source_30;
17780 l_rec_acct_attrs.array_char_value(9) := p_source_31;
17781 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_CCID';
17782 l_rec_acct_attrs.array_num_value(10) := TO_NUMBER(p_source_65);
17783 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ENTERED_AMT';
17784 l_rec_acct_attrs.array_num_value(11) := p_source_42;
17785 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_CURR';
17786 l_rec_acct_attrs.array_char_value(12) := p_source_26;
17787 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_LEDGER_AMT';
17788 l_rec_acct_attrs.array_num_value(13) := p_source_43;
17789 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_XDATE';
17790 l_rec_acct_attrs.array_date_value(14) := p_source_28;
17791 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XRATE';
17792 l_rec_acct_attrs.array_num_value(15) := p_source_29;
17793 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE_TYPE';
17794 l_rec_acct_attrs.array_char_value(16) := p_source_30;
17795 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_OPTION';
17796 l_rec_acct_attrs.array_char_value(17) := p_source_32;
17797 l_rec_acct_attrs.array_acct_attr_code(18) := 'APPLIED_TO_APPLICATION_ID';
17798 l_rec_acct_attrs.array_num_value(18) := p_source_66;
17799 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_DISTRIBUTION_TYPE';
17800 l_rec_acct_attrs.array_char_value(19) := p_source_46;
17801 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_ENTITY_CODE';
17802 l_rec_acct_attrs.array_char_value(20) := p_source_67;
17803 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_FIRST_DIST_ID';
17804 l_rec_acct_attrs.array_num_value(21) := to_char(p_source_68);
17805 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
17806 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_69);
17807 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_SECOND_DIST_ID';
17808 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_70);
17809 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
17810 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_71);
17811 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
17812 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_49);
17813 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
17814 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_50);
17815 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
17816 l_rec_acct_attrs.array_char_value(27) := p_source_46;
17817 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
17818 l_rec_acct_attrs.array_num_value(28) := p_source_42;
17819 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
17820 l_rec_acct_attrs.array_char_value(29) := p_source_26;
17821 l_rec_acct_attrs.array_acct_attr_code(30) := 'GAIN_LOSS_REFERENCE';
17822 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_51);
17823 l_rec_acct_attrs.array_acct_attr_code(31) := 'LEDGER_AMOUNT';
17824 l_rec_acct_attrs.array_num_value(31) := p_source_43;
17825
17826 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
17827 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
17828
17829 ---------------------------------------------------------------------------------------------------------------
17830 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
17831 ---------------------------------------------------------------------------------------------------------------
17832 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
17833
17834 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17835 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17836
17837 IF xla_accounting_cache_pkg.GetValueChar
17838 (p_source_code => 'LEDGER_CATEGORY_CODE'
17839 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
17840 AND l_bflow_method_code = 'PRIOR_ENTRY'
17841 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
17842 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
17843 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
17844 )
17845 THEN
17846 xla_ae_lines_pkg.BflowUpgEntry
17847 (p_business_method_code => l_bflow_method_code
17848 ,p_business_class_code => l_bflow_class_code
17849 ,p_balance_type => l_balance_type_code);
17850 ELSE
17851 NULL;
17852 XLA_AE_LINES_PKG.business_flow_validation(
17853 p_business_method_code => l_bflow_method_code
17854 ,p_business_class_code => l_bflow_class_code
17855 ,p_inherit_description_flag => l_inherit_desc_flag);
17856 END IF;
17857
17858 --
17859 -- call analytical criteria
17860 --
17861 -- Inherited Analytical Criteria for business flow method of Prior Entry.
17862 --
17863 -- call description
17864 --
17865 -- No description or it is inherited.
17866 --
17867 -- call ADRs
17868 -- Bug 4922099
17869 --
17870 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17871 (NVL(l_actual_upg_option, 'N') = 'O') OR
17872 (NVL(l_enc_upg_option, 'N') = 'O')
17873 )
17874 THEN
17875 NULL;
17876 --
17877 --
17878
17879 --
17880 --
17881 END IF;
17885 (NVL(l_enc_upg_option, 'N') = 'O')
17882 --
17883 -- Bug 4922099
17884 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17886 ) AND
17887 (l_bflow_method_code = 'PRIOR_ENTRY')
17888 )
17889 THEN
17890 IF
17891 --
17892 1 = 1
17893 --
17894 THEN
17895 xla_accounting_err_pkg.build_message
17896 (p_appli_s_name => 'XLA'
17897 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17898 ,p_token_1 => 'LINE_NUMBER'
17899 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
17900 ,p_token_2 => 'LINE_TYPE_NAME'
17901 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
17902 l_component_type
17903 ,l_component_code
17904 ,l_component_type_code
17905 ,l_component_appl_id
17906 ,l_amb_context_code
17907 ,l_entity_code
17908 ,l_event_class_code
17909 )
17910 ,p_token_3 => 'OWNER'
17911 ,p_value_3 => xla_lookups_pkg.get_meaning(
17912 p_lookup_type => 'XLA_OWNER_TYPE'
17913 ,p_lookup_code => l_component_type_code
17914 )
17915 ,p_token_4 => 'PRODUCT_NAME'
17916 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
17917 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
17918 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
17919 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
17920 ,p_ae_header_id => NULL
17921 );
17922
17923 IF (C_LEVEL_ERROR>= g_log_level) THEN
17924 trace
17925 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17926 ,p_level => C_LEVEL_ERROR
17927 ,p_module => l_log_module);
17928 END IF;
17929 END IF;
17930 END IF;
17931 --
17932 --
17933 ------------------------------------------------------------------------------------------------
17934 -- 4219869 Business Flow
17935 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
17936 -- Prior Entry. Currently, the following code is always generated.
17937 ------------------------------------------------------------------------------------------------
17938 -- No ValidateCurrentLine for business flow method of Prior Entry
17939
17940 ------------------------------------------------------------------------------------
17941 -- 4219869 Business Flow
17942 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
17943 ------------------------------------------------------------------------------------
17944 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17945
17946 ----------------------------------------------------------------------------------
17947 -- 4219869 Business Flow
17948 -- Update journal entry status -- Need to generate this within IF <condition>
17949 ----------------------------------------------------------------------------------
17950 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17951 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
17952 ,p_balance_type_code => l_balance_type_code
17953 );
17954
17955 -------------------------------------------------------------------------------------------
17956 -- 4262811 - Generate the Accrual Reversal lines
17957 -------------------------------------------------------------------------------------------
17958 BEGIN
17959 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
17960 (g_array_event(p_event_id).array_value_num('header_index'));
17961 IF l_acc_rev_flag IS NULL THEN
17962 l_acc_rev_flag := 'N';
17963 END IF;
17964 EXCEPTION
17965 WHEN OTHERS THEN
17966 l_acc_rev_flag := 'N';
17967 END;
17968 --
17969 IF (l_acc_rev_flag = 'Y') THEN
17970
17971 -- 4645092 ------------------------------------------------------------------------------
17972 -- To allow MPA report to determine if it should generate report process
17973 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
17974 ------------------------------------------------------------------------------------------
17975
17976 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
17977 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
17978
17979 --
17980 -- Update the line information that should be overwritten
17981 --
17982 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
17983 p_header_num => 1);
17987
17984 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
17985
17986 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
17988 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
17989 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
17990 END IF;
17991
17992 --
17993 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
17994 --
17995 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
17996 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
17997 ELSE
17998 ---------------------------------------------------------------------------------------------------
17999 -- 4262811a Switch Sign
18000 ---------------------------------------------------------------------------------------------------
18001 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
18002 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18003 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18004 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18005 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18006 -- 5132302
18007 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
18008 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18009
18010 END IF;
18011
18012 -- 4955764
18013 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18014 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
18015
18016
18017 XLA_AE_LINES_PKG.ValidateCurrentLine;
18018 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18019
18020 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18021 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
18022 ,p_balance_type_code => l_balance_type_code);
18023
18024 END IF;
18025
18026 -----------------------------------------------------------------------------------------
18027 -- 4262811 Multiperiod Accounting
18028 -----------------------------------------------------------------------------------------
18029 -- No MPA option is assigned.
18030
18031
18032 END IF;
18033 END IF;
18034 --
18035
18036 --
18037 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18038 trace
18039 (p_msg => 'END of AcctLineType_52'
18040 ,p_level => C_LEVEL_PROCEDURE
18041 ,p_module => l_log_module);
18042 END IF;
18043 --
18044 EXCEPTION
18045 WHEN xla_exceptions_pkg.application_exception THEN
18046 RAISE;
18047 WHEN OTHERS THEN
18048 xla_exceptions_pkg.raise_message
18049 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_52');
18050 END AcctLineType_52;
18051 --
18052
18053 ---------------------------------------
18054 --
18055 -- PRIVATE FUNCTION
18056 -- AcctLineType_53
18057 --
18058 ---------------------------------------
18059 PROCEDURE AcctLineType_53 (
18060 p_application_id IN NUMBER
18061 ,p_event_id IN NUMBER
18062 ,p_calculate_acctd_flag IN VARCHAR2
18063 ,p_calculate_g_l_flag IN VARCHAR2
18064 ,p_actual_flag IN OUT VARCHAR2
18065 ,p_balance_type_code OUT VARCHAR2
18066 ,p_gain_or_loss_ref OUT VARCHAR2
18067
18068 --Event Revenue CCID
18069 , p_source_1 IN NUMBER
18070 --Actual Upgrade Credit Accounting Class
18071 , p_source_24 IN VARCHAR2
18072 --Entered Currency Code
18073 , p_source_26 IN VARCHAR2
18074 --Exchange Rate Date
18075 , p_source_28 IN DATE
18076 --Exchange Rate
18077 , p_source_29 IN NUMBER
18078 --Exchange Rate Type
18079 , p_source_30 IN VARCHAR2
18080 --Actual Upgrade Debit Accounting Class
18081 , p_source_31 IN VARCHAR2
18082 --Use Actuals Upgrade Attributes Flag
18083 , p_source_32 IN VARCHAR2
18084 --Entered Amount
18085 , p_source_42 IN NUMBER
18086 --Accounted Amount
18087 , p_source_43 IN NUMBER
18088 --Revenue Distribution Type
18089 , p_source_46 IN VARCHAR2
18090 --Crediting Revenue Flag
18091 , p_source_48 IN VARCHAR2
18092 --Revenue First Distribution ID
18093 , p_source_49 IN NUMBER
18094 --Revenue Second Distribution ID
18095 , p_source_50 IN NUMBER
18096 --Event ID
18097 , p_source_51 IN NUMBER
18098 --Actual Upgrade Credit CCID
18099 , p_source_64 IN NUMBER
18100 --Actual Upgrade Debit CCID
18101 , p_source_65 IN NUMBER
18102 --Application ID
18103 , p_source_66 IN NUMBER
18104 --Revenue Entity Code
18105 , p_source_67 IN VARCHAR2
18106 --Crediting Revenue First Distribution ID
18107 , p_source_68 IN NUMBER
18108 --Project ID
18109 , p_source_69 IN NUMBER
18110 --Crediting Revenue Second Distribution ID
18111 , p_source_70 IN NUMBER
18112 --Draft Revenue Number Credited
18113 , p_source_71 IN NUMBER
18114 --Revenue Event Type Classification
18115 , p_source_72 IN VARCHAR2
18116 , p_source_72_meaning IN VARCHAR2
18117 )
18118 IS
18119
18120 l_component_type VARCHAR2(80);
18124 l_amb_context_code VARCHAR2(30);
18121 l_component_code VARCHAR2(30);
18122 l_component_type_code VARCHAR2(1);
18123 l_component_appl_id INTEGER;
18125 l_entity_code VARCHAR2(30);
18126 l_event_class_code VARCHAR2(30);
18127 l_ae_header_id NUMBER;
18128 l_event_type_code VARCHAR2(30);
18129 l_line_definition_code VARCHAR2(30);
18130 l_line_definition_owner_code VARCHAR2(1);
18131 --
18132 -- adr variables
18133 l_segment VARCHAR2(30);
18134 l_ccid NUMBER;
18135 l_adr_transaction_coa_id NUMBER;
18136 l_adr_accounting_coa_id NUMBER;
18137 l_adr_flexfield_segment_code VARCHAR2(30);
18138 l_adr_flex_value_set_id NUMBER;
18139 l_adr_value_type_code VARCHAR2(30);
18140 l_adr_value_combination_id NUMBER;
18141 l_adr_value_segment_code VARCHAR2(30);
18142
18143 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
18144 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
18145 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
18146 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
18147
18148 -- 4262811 Variables ------------------------------------------------------------------------------------------
18149 l_entered_amt_idx NUMBER;
18150 l_accted_amt_idx NUMBER;
18151 l_acc_rev_flag VARCHAR2(1);
18152 l_accrual_line_num NUMBER;
18153 l_tmp_amt NUMBER;
18154 l_acc_rev_natural_side_code VARCHAR2(1);
18155
18156 l_num_entries NUMBER;
18157 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
18158 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
18159 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
18160 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
18161 l_recog_line_1 NUMBER;
18162 l_recog_line_2 NUMBER;
18163
18164 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
18165 l_bflow_applied_to_amt NUMBER; -- 5132302
18166 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
18167
18168 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
18169
18170 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
18171 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
18172
18173 ---------------------------------------------------------------------------------------------------------------
18174
18175
18176 --
18177 -- bulk performance
18178 --
18179 l_balance_type_code VARCHAR2(1);
18180 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
18181 l_log_module VARCHAR2(240);
18182
18183 --
18184 -- Upgrade strategy
18185 --
18186 l_actual_upg_option VARCHAR2(1);
18187 l_enc_upg_option VARCHAR2(1);
18188
18189 --
18190 BEGIN
18191 --
18192 IF g_log_enabled THEN
18193 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_53';
18194 END IF;
18195 --
18196 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18197
18198 trace
18199 (p_msg => 'BEGIN of AcctLineType_53'
18200 ,p_level => C_LEVEL_PROCEDURE
18201 ,p_module => l_log_module);
18202
18203 END IF;
18204 --
18205 l_component_type := 'AMB_JLT';
18206 l_component_code := 'PA_EVENT_WO_REV_ADJ_FED';
18207 l_component_type_code := 'S';
18208 l_component_appl_id := 275;
18209 l_amb_context_code := 'DEFAULT';
18210 l_entity_code := 'REVENUE';
18211 l_event_class_code := 'REVENUE_ADJ';
18212 l_event_type_code := 'REVENUE_ADJ_ALL';
18213 l_line_definition_owner_code := 'S';
18214 l_line_definition_code := 'FV_PROJECTS_JLD';
18215 --
18216 l_balance_type_code := 'A';
18217 l_segment := NULL;
18218 l_ccid := NULL;
18219 l_adr_transaction_coa_id := NULL;
18220 l_adr_accounting_coa_id := NULL;
18221 l_adr_flexfield_segment_code := NULL;
18222 l_adr_flex_value_set_id := NULL;
18223 l_adr_value_type_code := NULL;
18224 l_adr_value_combination_id := NULL;
18225 l_adr_value_segment_code := NULL;
18226
18227 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
18228 l_bflow_class_code := ''; -- 4219869 Business Flow
18229 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
18230 l_budgetary_control_flag := 'N';
18231
18232 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18233 l_bflow_applied_to_amt := NULL; -- 5132302
18234 l_entered_amt_idx := NULL; -- 4262811
18235 l_accted_amt_idx := NULL; -- 4262811
18236 l_acc_rev_flag := NULL; -- 4262811
18237 l_accrual_line_num := NULL; -- 4262811
18238 l_tmp_amt := NULL; -- 4262811
18239 --
18240
18241 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
18242 l_balance_type_code <> 'B' THEN
18243 IF NVL(p_source_46,'
18244 ') = 'Revenue - Event Revenue' AND
18245 NVL(p_source_72,'
18246 ') = 'WRITE OFF' AND
18247 NVL(p_source_48,'
18248 ') = 'Y'
18249 THEN
18250
18251 --
18252 XLA_AE_LINES_PKG.SetNewLine;
18253
18254 p_balance_type_code := l_balance_type_code;
18255 -- set the flag so later we will know whether the gain loss line needs to be created
18256
18257 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
18261 --
18258 p_actual_flag :='A';
18259 END IF;
18260
18262 -- bulk performance
18263 --
18264 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
18265 p_header_num => 0); -- 4262811
18266 --
18267 -- set accounting line options
18268 --
18269 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
18270 p_natural_side_code => 'C'
18271 , p_gain_or_loss_flag => 'N'
18272 , p_gl_transfer_mode_code => 'S'
18273 , p_acct_entry_type_code => 'A'
18274 , p_switch_side_flag => 'Y'
18275 , p_merge_duplicate_code => 'N'
18276 );
18277 --
18278 l_acc_rev_natural_side_code := 'D'; -- 4262811
18279 --
18280 --
18281 -- set accounting line type info
18282 --
18283 xla_ae_lines_pkg.SetAcctLineType
18284 (p_component_type => l_component_type
18285 ,p_event_type_code => l_event_type_code
18286 ,p_line_definition_owner_code => l_line_definition_owner_code
18287 ,p_line_definition_code => l_line_definition_code
18288 ,p_accounting_line_code => l_component_code
18289 ,p_accounting_line_type_code => l_component_type_code
18290 ,p_accounting_line_appl_id => l_component_appl_id
18291 ,p_amb_context_code => l_amb_context_code
18292 ,p_entity_code => l_entity_code
18293 ,p_event_class_code => l_event_class_code);
18294 --
18295 -- set accounting class
18296 --
18297 xla_ae_lines_pkg.SetAcctClass(
18298 p_accounting_class_code => 'FEDERAL_REVENUE_ADJUSTMENT'
18299 , p_ae_header_id => l_ae_header_id
18300 );
18301
18302 --
18303 -- set rounding class
18304 --
18305 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
18306 'FEDERAL_REVENUE_ADJUSTMENT';
18307
18308 --
18309 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
18310 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
18311 --
18312 -- bulk performance
18313 --
18314 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
18315
18316 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
18317 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
18318
18319 -- 4955764
18320 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18321 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
18322
18323 -- 4458381 Public Sector Enh
18324
18325 --
18326 -- set accounting attributes for the line type
18327 --
18328 l_entered_amt_idx := 28;
18329 l_accted_amt_idx := 31;
18330 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18331 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACTUAL_UPG_CR_ACCT_CLASS';
18332 l_rec_acct_attrs.array_char_value(1) := p_source_24;
18333 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_CCID';
18334 l_rec_acct_attrs.array_num_value(2) := TO_NUMBER(p_source_64);
18335 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ENTERED_AMT';
18336 l_rec_acct_attrs.array_num_value(3) := p_source_42;
18337 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_CURR';
18338 l_rec_acct_attrs.array_char_value(4) := p_source_26;
18339 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_LEDGER_AMT';
18340 l_rec_acct_attrs.array_num_value(5) := p_source_43;
18341 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_XDATE';
18342 l_rec_acct_attrs.array_date_value(6) := p_source_28;
18343 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XRATE';
18344 l_rec_acct_attrs.array_num_value(7) := p_source_29;
18345 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE_TYPE';
18346 l_rec_acct_attrs.array_char_value(8) := p_source_30;
18347 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_DR_ACCT_CLASS';
18348 l_rec_acct_attrs.array_char_value(9) := p_source_31;
18349 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_CCID';
18350 l_rec_acct_attrs.array_num_value(10) := TO_NUMBER(p_source_65);
18351 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ENTERED_AMT';
18352 l_rec_acct_attrs.array_num_value(11) := p_source_42;
18353 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_CURR';
18354 l_rec_acct_attrs.array_char_value(12) := p_source_26;
18355 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_LEDGER_AMT';
18356 l_rec_acct_attrs.array_num_value(13) := p_source_43;
18357 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_XDATE';
18358 l_rec_acct_attrs.array_date_value(14) := p_source_28;
18359 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XRATE';
18360 l_rec_acct_attrs.array_num_value(15) := p_source_29;
18361 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE_TYPE';
18362 l_rec_acct_attrs.array_char_value(16) := p_source_30;
18363 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_OPTION';
18364 l_rec_acct_attrs.array_char_value(17) := p_source_32;
18365 l_rec_acct_attrs.array_acct_attr_code(18) := 'APPLIED_TO_APPLICATION_ID';
18366 l_rec_acct_attrs.array_num_value(18) := p_source_66;
18367 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_DISTRIBUTION_TYPE';
18368 l_rec_acct_attrs.array_char_value(19) := p_source_46;
18369 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_ENTITY_CODE';
18370 l_rec_acct_attrs.array_char_value(20) := p_source_67;
18371 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_FIRST_DIST_ID';
18375 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_SECOND_DIST_ID';
18372 l_rec_acct_attrs.array_num_value(21) := to_char(p_source_68);
18373 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
18374 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_69);
18376 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_70);
18377 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
18378 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_71);
18379 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
18380 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_49);
18381 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
18382 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_50);
18383 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
18384 l_rec_acct_attrs.array_char_value(27) := p_source_46;
18385 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
18386 l_rec_acct_attrs.array_num_value(28) := p_source_42;
18387 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
18388 l_rec_acct_attrs.array_char_value(29) := p_source_26;
18389 l_rec_acct_attrs.array_acct_attr_code(30) := 'GAIN_LOSS_REFERENCE';
18390 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_51);
18391 l_rec_acct_attrs.array_acct_attr_code(31) := 'LEDGER_AMOUNT';
18392 l_rec_acct_attrs.array_num_value(31) := p_source_43;
18393
18394 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
18395 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
18396
18397 ---------------------------------------------------------------------------------------------------------------
18398 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
18399 ---------------------------------------------------------------------------------------------------------------
18400 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
18401
18402 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18403 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18404
18405 IF xla_accounting_cache_pkg.GetValueChar
18406 (p_source_code => 'LEDGER_CATEGORY_CODE'
18407 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
18408 AND l_bflow_method_code = 'PRIOR_ENTRY'
18409 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
18410 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
18411 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
18412 )
18413 THEN
18414 xla_ae_lines_pkg.BflowUpgEntry
18415 (p_business_method_code => l_bflow_method_code
18416 ,p_business_class_code => l_bflow_class_code
18417 ,p_balance_type => l_balance_type_code);
18418 ELSE
18419 NULL;
18420 -- No business flow processing for business flow method of NONE.
18421 END IF;
18422
18423 --
18424 -- call analytical criteria
18425 --
18426
18427 --
18428 -- call description
18429 --
18430 -- No description or it is inherited.
18431 --
18432 -- call ADRs
18433 -- Bug 4922099
18434 --
18435 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18436 (NVL(l_actual_upg_option, 'N') = 'O') OR
18437 (NVL(l_enc_upg_option, 'N') = 'O')
18438 )
18439 THEN
18440 NULL;
18441 --
18442 --
18443
18444 l_ccid := AcctDerRule_1(
18445 p_application_id => p_application_id
18446 , p_ae_header_id => l_ae_header_id
18447 , p_source_1 => p_source_1
18448 , x_transaction_coa_id => l_adr_transaction_coa_id
18449 , x_accounting_coa_id => l_adr_accounting_coa_id
18450 , x_value_type_code => l_adr_value_type_code
18451 , p_side => 'NA'
18452 );
18453
18454 xla_ae_lines_pkg.set_ccid(
18455 p_code_combination_id => l_ccid
18456 , p_value_type_code => l_adr_value_type_code
18457 , p_transaction_coa_id => l_adr_transaction_coa_id
18458 , p_accounting_coa_id => l_adr_accounting_coa_id
18459 , p_adr_code => 'EVENT_REVENUE_RULE'
18460 , p_adr_type_code => 'S'
18461 , p_component_type => l_component_type
18462 , p_component_code => l_component_code
18463 , p_component_type_code => l_component_type_code
18464 , p_component_appl_id => l_component_appl_id
18465 , p_amb_context_code => l_amb_context_code
18466 , p_side => 'NA'
18467 );
18468
18469
18470 l_segment := AcctDerRule_2(
18471 p_application_id => p_application_id
18472 , p_ae_header_id => l_ae_header_id
18473 , x_transaction_coa_id => l_adr_transaction_coa_id
18474 , x_accounting_coa_id => l_adr_accounting_coa_id
18475 , x_flexfield_segment_code => l_adr_flexfield_segment_code
18476 , x_flex_value_set_id => l_adr_flex_value_set_id
18477 , x_value_type_code => l_adr_value_type_code
18478 , x_value_combination_id => l_adr_value_combination_id
18479 , x_value_segment_code => l_adr_value_segment_code
18480 , p_side => 'NA'
18481 , p_override_seg_flag => 'Y'
18482 );
18483
18484 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
18485
18486 xla_ae_lines_pkg.set_segment(
18487 p_to_segment_code => 'GL_ACCOUNT'
18491 , p_value_type_code => l_adr_value_type_code
18488 , p_segment_value => l_segment
18489 , p_from_segment_code => l_adr_value_segment_code
18490 , p_from_combination_id => l_adr_value_combination_id
18492 , p_transaction_coa_id => l_adr_transaction_coa_id
18493 , p_accounting_coa_id => l_adr_accounting_coa_id
18494 , p_flexfield_segment_code => l_adr_flexfield_segment_code
18495 , p_flex_value_set_id => l_adr_flex_value_set_id
18496 , p_adr_code => 'FV_422X01_PROJECTS'
18497 , p_adr_type_code => 'S'
18498 , p_component_type => l_component_type
18499 , p_component_code => l_component_code
18500 , p_component_type_code => l_component_type_code
18501 , p_component_appl_id => l_component_appl_id
18502 , p_amb_context_code => l_amb_context_code
18503 , p_entity_code => 'REVENUE'
18504 , p_event_class_code => 'REVENUE_ADJ'
18505 , p_side => 'NA'
18506 );
18507
18508 END IF;
18509
18510 --
18511 --
18512 END IF;
18513 --
18514 -- Bug 4922099
18515 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
18516 (NVL(l_enc_upg_option, 'N') = 'O')
18517 ) AND
18518 (l_bflow_method_code = 'PRIOR_ENTRY')
18519 )
18520 THEN
18521 IF
18522 --
18523 1 = 2
18524 --
18525 THEN
18526 xla_accounting_err_pkg.build_message
18527 (p_appli_s_name => 'XLA'
18528 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18529 ,p_token_1 => 'LINE_NUMBER'
18530 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
18531 ,p_token_2 => 'LINE_TYPE_NAME'
18532 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
18533 l_component_type
18534 ,l_component_code
18535 ,l_component_type_code
18536 ,l_component_appl_id
18537 ,l_amb_context_code
18538 ,l_entity_code
18539 ,l_event_class_code
18540 )
18541 ,p_token_3 => 'OWNER'
18542 ,p_value_3 => xla_lookups_pkg.get_meaning(
18543 p_lookup_type => 'XLA_OWNER_TYPE'
18544 ,p_lookup_code => l_component_type_code
18545 )
18546 ,p_token_4 => 'PRODUCT_NAME'
18547 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
18548 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
18549 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
18550 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
18551 ,p_ae_header_id => NULL
18552 );
18553
18554 IF (C_LEVEL_ERROR>= g_log_level) THEN
18555 trace
18556 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18557 ,p_level => C_LEVEL_ERROR
18558 ,p_module => l_log_module);
18559 END IF;
18560 END IF;
18561 END IF;
18562 --
18563 --
18564 ------------------------------------------------------------------------------------------------
18565 -- 4219869 Business Flow
18566 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
18567 -- Prior Entry. Currently, the following code is always generated.
18568 ------------------------------------------------------------------------------------------------
18569 XLA_AE_LINES_PKG.ValidateCurrentLine;
18570
18571 ------------------------------------------------------------------------------------
18572 -- 4219869 Business Flow
18573 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
18574 ------------------------------------------------------------------------------------
18575 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18576
18577 ----------------------------------------------------------------------------------
18578 -- 4219869 Business Flow
18579 -- Update journal entry status -- Need to generate this within IF <condition>
18580 ----------------------------------------------------------------------------------
18581 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18582 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
18583 ,p_balance_type_code => l_balance_type_code
18584 );
18585
18586 -------------------------------------------------------------------------------------------
18587 -- 4262811 - Generate the Accrual Reversal lines
18588 -------------------------------------------------------------------------------------------
18589 BEGIN
18593 l_acc_rev_flag := 'N';
18590 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
18591 (g_array_event(p_event_id).array_value_num('header_index'));
18592 IF l_acc_rev_flag IS NULL THEN
18594 END IF;
18595 EXCEPTION
18596 WHEN OTHERS THEN
18597 l_acc_rev_flag := 'N';
18598 END;
18599 --
18600 IF (l_acc_rev_flag = 'Y') THEN
18601
18602 -- 4645092 ------------------------------------------------------------------------------
18603 -- To allow MPA report to determine if it should generate report process
18604 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
18605 ------------------------------------------------------------------------------------------
18606
18607 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
18608 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
18609
18610 --
18611 -- Update the line information that should be overwritten
18612 --
18613 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
18614 p_header_num => 1);
18615 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
18616
18617 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
18618
18619 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
18620 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
18621 END IF;
18622
18623 --
18624 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
18625 --
18626 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
18627 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
18628 ELSE
18629 ---------------------------------------------------------------------------------------------------
18630 -- 4262811a Switch Sign
18631 ---------------------------------------------------------------------------------------------------
18632 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
18633 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18634 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18635 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18636 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18637 -- 5132302
18638 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
18639 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18640
18641 END IF;
18642
18643 -- 4955764
18644 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18645 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
18646
18647
18648 XLA_AE_LINES_PKG.ValidateCurrentLine;
18649 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18650
18651 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18652 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
18653 ,p_balance_type_code => l_balance_type_code);
18654
18655 END IF;
18656
18657 -----------------------------------------------------------------------------------------
18658 -- 4262811 Multiperiod Accounting
18659 -----------------------------------------------------------------------------------------
18660 -- No MPA option is assigned.
18661
18662
18663 END IF;
18664 END IF;
18665 --
18666
18667 --
18668 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18669 trace
18670 (p_msg => 'END of AcctLineType_53'
18671 ,p_level => C_LEVEL_PROCEDURE
18672 ,p_module => l_log_module);
18673 END IF;
18674 --
18675 EXCEPTION
18676 WHEN xla_exceptions_pkg.application_exception THEN
18677 RAISE;
18678 WHEN OTHERS THEN
18679 xla_exceptions_pkg.raise_message
18680 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_53');
18681 END AcctLineType_53;
18682 --
18683
18684 ---------------------------------------
18685 --
18686 -- PRIVATE FUNCTION
18687 -- AcctLineType_54
18688 --
18689 ---------------------------------------
18690 PROCEDURE AcctLineType_54 (
18691 p_application_id IN NUMBER
18692 ,p_event_id IN NUMBER
18693 ,p_calculate_acctd_flag IN VARCHAR2
18694 ,p_calculate_g_l_flag IN VARCHAR2
18695 ,p_actual_flag IN OUT VARCHAR2
18696 ,p_balance_type_code OUT VARCHAR2
18697 ,p_gain_or_loss_ref OUT VARCHAR2
18698
18699 --Event Revenue CCID
18700 , p_source_1 IN NUMBER
18701 --Entered Currency Code
18702 , p_source_26 IN VARCHAR2
18703 --Entered Amount
18704 , p_source_42 IN NUMBER
18705 --Accounted Amount
18706 , p_source_43 IN NUMBER
18707 --Revenue Distribution Type
18708 , p_source_46 IN VARCHAR2
18709 --Crediting Revenue Flag
18710 , p_source_48 IN VARCHAR2
18711 --Revenue First Distribution ID
18712 , p_source_49 IN NUMBER
18713 --Revenue Second Distribution ID
18714 , p_source_50 IN NUMBER
18715 --Event ID
18716 , p_source_51 IN NUMBER
18717 --Revenue Event Type Classification
18718 , p_source_72 IN VARCHAR2
18719 , p_source_72_meaning IN VARCHAR2
18720 )
18721 IS
18725 l_component_type_code VARCHAR2(1);
18722
18723 l_component_type VARCHAR2(80);
18724 l_component_code VARCHAR2(30);
18726 l_component_appl_id INTEGER;
18727 l_amb_context_code VARCHAR2(30);
18728 l_entity_code VARCHAR2(30);
18729 l_event_class_code VARCHAR2(30);
18730 l_ae_header_id NUMBER;
18731 l_event_type_code VARCHAR2(30);
18732 l_line_definition_code VARCHAR2(30);
18733 l_line_definition_owner_code VARCHAR2(1);
18734 --
18735 -- adr variables
18736 l_segment VARCHAR2(30);
18737 l_ccid NUMBER;
18738 l_adr_transaction_coa_id NUMBER;
18739 l_adr_accounting_coa_id NUMBER;
18740 l_adr_flexfield_segment_code VARCHAR2(30);
18741 l_adr_flex_value_set_id NUMBER;
18742 l_adr_value_type_code VARCHAR2(30);
18743 l_adr_value_combination_id NUMBER;
18744 l_adr_value_segment_code VARCHAR2(30);
18745
18746 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
18747 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
18748 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
18749 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
18750
18751 -- 4262811 Variables ------------------------------------------------------------------------------------------
18752 l_entered_amt_idx NUMBER;
18753 l_accted_amt_idx NUMBER;
18754 l_acc_rev_flag VARCHAR2(1);
18755 l_accrual_line_num NUMBER;
18756 l_tmp_amt NUMBER;
18757 l_acc_rev_natural_side_code VARCHAR2(1);
18758
18759 l_num_entries NUMBER;
18760 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
18761 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
18762 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
18763 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
18764 l_recog_line_1 NUMBER;
18765 l_recog_line_2 NUMBER;
18766
18767 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
18768 l_bflow_applied_to_amt NUMBER; -- 5132302
18769 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
18770
18771 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
18772
18773 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
18774 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
18775
18776 ---------------------------------------------------------------------------------------------------------------
18777
18778
18779 --
18780 -- bulk performance
18781 --
18782 l_balance_type_code VARCHAR2(1);
18783 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
18784 l_log_module VARCHAR2(240);
18785
18786 --
18787 -- Upgrade strategy
18788 --
18789 l_actual_upg_option VARCHAR2(1);
18790 l_enc_upg_option VARCHAR2(1);
18791
18792 --
18793 BEGIN
18794 --
18795 IF g_log_enabled THEN
18796 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_54';
18797 END IF;
18798 --
18799 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18800
18801 trace
18802 (p_msg => 'BEGIN of AcctLineType_54'
18803 ,p_level => C_LEVEL_PROCEDURE
18804 ,p_module => l_log_module);
18805
18806 END IF;
18807 --
18808 l_component_type := 'AMB_JLT';
18809 l_component_code := 'PA_EVENT_WO_REV_FED';
18810 l_component_type_code := 'S';
18811 l_component_appl_id := 275;
18812 l_amb_context_code := 'DEFAULT';
18813 l_entity_code := 'REVENUE';
18814 l_event_class_code := 'REVENUE';
18815 l_event_type_code := 'REVENUE_ALL';
18816 l_line_definition_owner_code := 'S';
18817 l_line_definition_code := 'FV_PROJECTS_JLD';
18818 --
18819 l_balance_type_code := 'A';
18820 l_segment := NULL;
18821 l_ccid := NULL;
18822 l_adr_transaction_coa_id := NULL;
18823 l_adr_accounting_coa_id := NULL;
18824 l_adr_flexfield_segment_code := NULL;
18825 l_adr_flex_value_set_id := NULL;
18826 l_adr_value_type_code := NULL;
18827 l_adr_value_combination_id := NULL;
18828 l_adr_value_segment_code := NULL;
18829
18830 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
18831 l_bflow_class_code := ''; -- 4219869 Business Flow
18832 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
18833 l_budgetary_control_flag := 'N';
18834
18835 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18836 l_bflow_applied_to_amt := NULL; -- 5132302
18837 l_entered_amt_idx := NULL; -- 4262811
18838 l_accted_amt_idx := NULL; -- 4262811
18839 l_acc_rev_flag := NULL; -- 4262811
18840 l_accrual_line_num := NULL; -- 4262811
18841 l_tmp_amt := NULL; -- 4262811
18842 --
18843
18844 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
18845 l_balance_type_code <> 'B' THEN
18846 IF NVL(p_source_46,'
18847 ') = 'Revenue - Event Revenue' AND
18848 NVL(p_source_72,'
18849 ') = 'WRITE OFF' AND
18850 NVL(p_source_48,'
18851 ') = 'N'
18852 THEN
18853
18854 --
18855 XLA_AE_LINES_PKG.SetNewLine;
18856
18857 p_balance_type_code := l_balance_type_code;
18858 -- set the flag so later we will know whether the gain loss line needs to be created
18859
18863
18860 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
18861 p_actual_flag :='A';
18862 END IF;
18864 --
18865 -- bulk performance
18866 --
18867 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
18868 p_header_num => 0); -- 4262811
18869 --
18870 -- set accounting line options
18871 --
18872 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
18873 p_natural_side_code => 'D'
18874 , p_gain_or_loss_flag => 'N'
18875 , p_gl_transfer_mode_code => 'S'
18876 , p_acct_entry_type_code => 'A'
18877 , p_switch_side_flag => 'Y'
18878 , p_merge_duplicate_code => 'N'
18879 );
18880 --
18881 l_acc_rev_natural_side_code := 'C'; -- 4262811
18882 --
18883 --
18884 -- set accounting line type info
18885 --
18886 xla_ae_lines_pkg.SetAcctLineType
18887 (p_component_type => l_component_type
18888 ,p_event_type_code => l_event_type_code
18889 ,p_line_definition_owner_code => l_line_definition_owner_code
18890 ,p_line_definition_code => l_line_definition_code
18891 ,p_accounting_line_code => l_component_code
18892 ,p_accounting_line_type_code => l_component_type_code
18893 ,p_accounting_line_appl_id => l_component_appl_id
18894 ,p_amb_context_code => l_amb_context_code
18895 ,p_entity_code => l_entity_code
18896 ,p_event_class_code => l_event_class_code);
18897 --
18898 -- set accounting class
18899 --
18900 xla_ae_lines_pkg.SetAcctClass(
18901 p_accounting_class_code => 'FEDERAL_REVENUE'
18902 , p_ae_header_id => l_ae_header_id
18903 );
18904
18905 --
18906 -- set rounding class
18907 --
18908 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
18909 'FEDERAL_REVENUE';
18910
18911 --
18912 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
18913 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
18914 --
18915 -- bulk performance
18916 --
18917 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
18918
18919 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
18920 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
18921
18922 -- 4955764
18923 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18924 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
18925
18926 -- 4458381 Public Sector Enh
18927
18928 --
18929 -- set accounting attributes for the line type
18930 --
18931 l_entered_amt_idx := 4;
18932 l_accted_amt_idx := 7;
18933 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18934 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
18935 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_49);
18936 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
18937 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_50);
18938 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
18939 l_rec_acct_attrs.array_char_value(3) := p_source_46;
18940 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
18941 l_rec_acct_attrs.array_num_value(4) := p_source_42;
18942 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
18943 l_rec_acct_attrs.array_char_value(5) := p_source_26;
18944 l_rec_acct_attrs.array_acct_attr_code(6) := 'GAIN_LOSS_REFERENCE';
18945 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_51);
18946 l_rec_acct_attrs.array_acct_attr_code(7) := 'LEDGER_AMOUNT';
18947 l_rec_acct_attrs.array_num_value(7) := p_source_43;
18948
18949 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
18950 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
18951
18952 ---------------------------------------------------------------------------------------------------------------
18953 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
18954 ---------------------------------------------------------------------------------------------------------------
18955 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
18956
18957 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18958 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18959
18960 IF xla_accounting_cache_pkg.GetValueChar
18961 (p_source_code => 'LEDGER_CATEGORY_CODE'
18962 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
18963 AND l_bflow_method_code = 'PRIOR_ENTRY'
18964 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
18965 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
18966 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
18967 )
18968 THEN
18969 xla_ae_lines_pkg.BflowUpgEntry
18970 (p_business_method_code => l_bflow_method_code
18971 ,p_business_class_code => l_bflow_class_code
18972 ,p_balance_type => l_balance_type_code);
18973 ELSE
18974 NULL;
18975 -- No business flow processing for business flow method of NONE.
18976 END IF;
18977
18978 --
18979 -- call analytical criteria
18980 --
18981
18982 --
18986 --
18983 -- call description
18984 --
18985 -- No description or it is inherited.
18987 -- call ADRs
18988 -- Bug 4922099
18989 --
18990 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18991 (NVL(l_actual_upg_option, 'N') = 'O') OR
18992 (NVL(l_enc_upg_option, 'N') = 'O')
18993 )
18994 THEN
18995 NULL;
18996 --
18997 --
18998
18999 l_ccid := AcctDerRule_1(
19000 p_application_id => p_application_id
19001 , p_ae_header_id => l_ae_header_id
19002 , p_source_1 => p_source_1
19003 , x_transaction_coa_id => l_adr_transaction_coa_id
19004 , x_accounting_coa_id => l_adr_accounting_coa_id
19005 , x_value_type_code => l_adr_value_type_code
19006 , p_side => 'NA'
19007 );
19008
19009 xla_ae_lines_pkg.set_ccid(
19010 p_code_combination_id => l_ccid
19011 , p_value_type_code => l_adr_value_type_code
19012 , p_transaction_coa_id => l_adr_transaction_coa_id
19013 , p_accounting_coa_id => l_adr_accounting_coa_id
19014 , p_adr_code => 'EVENT_REVENUE_RULE'
19015 , p_adr_type_code => 'S'
19016 , p_component_type => l_component_type
19017 , p_component_code => l_component_code
19018 , p_component_type_code => l_component_type_code
19019 , p_component_appl_id => l_component_appl_id
19020 , p_amb_context_code => l_amb_context_code
19021 , p_side => 'NA'
19022 );
19023
19024
19025 l_segment := AcctDerRule_2(
19026 p_application_id => p_application_id
19027 , p_ae_header_id => l_ae_header_id
19028 , x_transaction_coa_id => l_adr_transaction_coa_id
19029 , x_accounting_coa_id => l_adr_accounting_coa_id
19030 , x_flexfield_segment_code => l_adr_flexfield_segment_code
19031 , x_flex_value_set_id => l_adr_flex_value_set_id
19032 , x_value_type_code => l_adr_value_type_code
19033 , x_value_combination_id => l_adr_value_combination_id
19034 , x_value_segment_code => l_adr_value_segment_code
19035 , p_side => 'NA'
19036 , p_override_seg_flag => 'Y'
19037 );
19038
19039 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
19040
19041 xla_ae_lines_pkg.set_segment(
19042 p_to_segment_code => 'GL_ACCOUNT'
19043 , p_segment_value => l_segment
19044 , p_from_segment_code => l_adr_value_segment_code
19045 , p_from_combination_id => l_adr_value_combination_id
19046 , p_value_type_code => l_adr_value_type_code
19047 , p_transaction_coa_id => l_adr_transaction_coa_id
19048 , p_accounting_coa_id => l_adr_accounting_coa_id
19049 , p_flexfield_segment_code => l_adr_flexfield_segment_code
19050 , p_flex_value_set_id => l_adr_flex_value_set_id
19051 , p_adr_code => 'FV_422X01_PROJECTS'
19052 , p_adr_type_code => 'S'
19053 , p_component_type => l_component_type
19054 , p_component_code => l_component_code
19055 , p_component_type_code => l_component_type_code
19056 , p_component_appl_id => l_component_appl_id
19057 , p_amb_context_code => l_amb_context_code
19058 , p_entity_code => 'REVENUE'
19059 , p_event_class_code => 'REVENUE'
19060 , p_side => 'NA'
19061 );
19062
19063 END IF;
19064
19065 --
19066 --
19067 END IF;
19068 --
19069 -- Bug 4922099
19070 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
19071 (NVL(l_enc_upg_option, 'N') = 'O')
19072 ) AND
19073 (l_bflow_method_code = 'PRIOR_ENTRY')
19074 )
19075 THEN
19076 IF
19077 --
19078 1 = 2
19079 --
19080 THEN
19081 xla_accounting_err_pkg.build_message
19082 (p_appli_s_name => 'XLA'
19083 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19084 ,p_token_1 => 'LINE_NUMBER'
19085 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
19086 ,p_token_2 => 'LINE_TYPE_NAME'
19087 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
19088 l_component_type
19089 ,l_component_code
19090 ,l_component_type_code
19091 ,l_component_appl_id
19092 ,l_amb_context_code
19093 ,l_entity_code
19094 ,l_event_class_code
19095 )
19096 ,p_token_3 => 'OWNER'
19097 ,p_value_3 => xla_lookups_pkg.get_meaning(
19098 p_lookup_type => 'XLA_OWNER_TYPE'
19099 ,p_lookup_code => l_component_type_code
19100 )
19104 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
19101 ,p_token_4 => 'PRODUCT_NAME'
19102 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
19103 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
19105 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
19106 ,p_ae_header_id => NULL
19107 );
19108
19109 IF (C_LEVEL_ERROR>= g_log_level) THEN
19110 trace
19111 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19112 ,p_level => C_LEVEL_ERROR
19113 ,p_module => l_log_module);
19114 END IF;
19115 END IF;
19116 END IF;
19117 --
19118 --
19119 ------------------------------------------------------------------------------------------------
19120 -- 4219869 Business Flow
19121 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
19122 -- Prior Entry. Currently, the following code is always generated.
19123 ------------------------------------------------------------------------------------------------
19124 XLA_AE_LINES_PKG.ValidateCurrentLine;
19125
19126 ------------------------------------------------------------------------------------
19127 -- 4219869 Business Flow
19128 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
19129 ------------------------------------------------------------------------------------
19130 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19131
19132 ----------------------------------------------------------------------------------
19133 -- 4219869 Business Flow
19134 -- Update journal entry status -- Need to generate this within IF <condition>
19135 ----------------------------------------------------------------------------------
19136 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19137 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
19138 ,p_balance_type_code => l_balance_type_code
19139 );
19140
19141 -------------------------------------------------------------------------------------------
19142 -- 4262811 - Generate the Accrual Reversal lines
19143 -------------------------------------------------------------------------------------------
19144 BEGIN
19145 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
19146 (g_array_event(p_event_id).array_value_num('header_index'));
19147 IF l_acc_rev_flag IS NULL THEN
19148 l_acc_rev_flag := 'N';
19149 END IF;
19150 EXCEPTION
19151 WHEN OTHERS THEN
19152 l_acc_rev_flag := 'N';
19153 END;
19154 --
19155 IF (l_acc_rev_flag = 'Y') THEN
19156
19157 -- 4645092 ------------------------------------------------------------------------------
19158 -- To allow MPA report to determine if it should generate report process
19159 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
19160 ------------------------------------------------------------------------------------------
19161
19162 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
19163 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
19164
19165 --
19166 -- Update the line information that should be overwritten
19167 --
19168 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
19169 p_header_num => 1);
19170 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
19171
19172 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
19173
19174 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
19175 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
19176 END IF;
19177
19178 --
19179 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
19180 --
19181 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
19182 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
19183 ELSE
19184 ---------------------------------------------------------------------------------------------------
19185 -- 4262811a Switch Sign
19186 ---------------------------------------------------------------------------------------------------
19187 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
19188 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19189 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19190 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19191 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19192 -- 5132302
19193 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
19194 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19195
19196 END IF;
19197
19198 -- 4955764
19199 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19200 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
19201
19202
19203 XLA_AE_LINES_PKG.ValidateCurrentLine;
19204 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19208 ,p_balance_type_code => l_balance_type_code);
19205
19206 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19207 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19209
19210 END IF;
19211
19212 -----------------------------------------------------------------------------------------
19213 -- 4262811 Multiperiod Accounting
19214 -----------------------------------------------------------------------------------------
19215 -- No MPA option is assigned.
19216
19217
19218 END IF;
19219 END IF;
19220 --
19221
19222 --
19223 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19224 trace
19225 (p_msg => 'END of AcctLineType_54'
19226 ,p_level => C_LEVEL_PROCEDURE
19227 ,p_module => l_log_module);
19228 END IF;
19229 --
19230 EXCEPTION
19231 WHEN xla_exceptions_pkg.application_exception THEN
19232 RAISE;
19233 WHEN OTHERS THEN
19234 xla_exceptions_pkg.raise_message
19235 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_54');
19236 END AcctLineType_54;
19237 --
19238
19239 ---------------------------------------
19240 --
19241 -- PRIVATE FUNCTION
19242 -- AcctLineType_55
19243 --
19244 ---------------------------------------
19245 PROCEDURE AcctLineType_55 (
19246 p_application_id IN NUMBER
19247 ,p_event_id IN NUMBER
19248 ,p_calculate_acctd_flag IN VARCHAR2
19249 ,p_calculate_g_l_flag IN VARCHAR2
19250 ,p_actual_flag IN OUT VARCHAR2
19251 ,p_balance_type_code OUT VARCHAR2
19252 ,p_gain_or_loss_ref OUT VARCHAR2
19253
19254 --PO Distribution ID
19255 , p_source_2 IN NUMBER
19256 --Cost CCID
19257 , p_source_4 IN NUMBER
19258 --Allow Account Override Flag
19259 , p_source_5 IN VARCHAR2
19260 --Adjustment Cost CCID
19261 , p_source_6 IN NUMBER
19262 --Cost Clearing CCID
19263 , p_source_7 IN NUMBER
19264 --Exchange Rate Variance Flag
19265 , p_source_22 IN VARCHAR2
19266 --Reversing Line Flag
19267 , p_source_23 IN VARCHAR2
19268 --Actual Upgrade Credit Accounting Class
19269 , p_source_24 IN VARCHAR2
19270 --Entered Raw Cost
19271 , p_source_25 IN NUMBER
19272 --Entered Currency Code
19273 , p_source_26 IN VARCHAR2
19274 --Accounted Raw Cost
19275 , p_source_27 IN NUMBER
19276 --Exchange Rate Date
19277 , p_source_28 IN DATE
19278 --Exchange Rate
19279 , p_source_29 IN NUMBER
19280 --Exchange Rate Type
19281 , p_source_30 IN VARCHAR2
19282 --Actual Upgrade Debit Accounting Class
19283 , p_source_31 IN VARCHAR2
19284 --Use Actuals Upgrade Attributes Flag
19285 , p_source_32 IN VARCHAR2
19286 --Expenditure Item ID
19287 , p_source_33 IN NUMBER
19288 --Cost Distribution Line Number
19289 , p_source_34 IN NUMBER
19290 --Line Type
19291 , p_source_35 IN VARCHAR2
19292 , p_source_35_meaning IN VARCHAR2
19293 --Reversed Line Number
19294 , p_source_36 IN NUMBER
19295 )
19296 IS
19297
19298 l_component_type VARCHAR2(80);
19299 l_component_code VARCHAR2(30);
19300 l_component_type_code VARCHAR2(1);
19301 l_component_appl_id INTEGER;
19302 l_amb_context_code VARCHAR2(30);
19303 l_entity_code VARCHAR2(30);
19304 l_event_class_code VARCHAR2(30);
19305 l_ae_header_id NUMBER;
19306 l_event_type_code VARCHAR2(30);
19307 l_line_definition_code VARCHAR2(30);
19308 l_line_definition_owner_code VARCHAR2(1);
19309 --
19310 -- adr variables
19311 l_segment VARCHAR2(30);
19312 l_ccid NUMBER;
19313 l_adr_transaction_coa_id NUMBER;
19314 l_adr_accounting_coa_id NUMBER;
19315 l_adr_flexfield_segment_code VARCHAR2(30);
19316 l_adr_flex_value_set_id NUMBER;
19317 l_adr_value_type_code VARCHAR2(30);
19318 l_adr_value_combination_id NUMBER;
19319 l_adr_value_segment_code VARCHAR2(30);
19320
19321 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
19322 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
19323 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
19324 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
19325
19326 -- 4262811 Variables ------------------------------------------------------------------------------------------
19327 l_entered_amt_idx NUMBER;
19328 l_accted_amt_idx NUMBER;
19329 l_acc_rev_flag VARCHAR2(1);
19330 l_accrual_line_num NUMBER;
19331 l_tmp_amt NUMBER;
19332 l_acc_rev_natural_side_code VARCHAR2(1);
19333
19334 l_num_entries NUMBER;
19335 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
19336 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
19337 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
19338 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
19339 l_recog_line_1 NUMBER;
19340 l_recog_line_2 NUMBER;
19341
19342 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
19343 l_bflow_applied_to_amt NUMBER; -- 5132302
19344 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
19345
19346 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
19347
19348 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
19352
19349 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
19350
19351 ---------------------------------------------------------------------------------------------------------------
19353
19354 --
19355 -- bulk performance
19356 --
19357 l_balance_type_code VARCHAR2(1);
19358 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
19359 l_log_module VARCHAR2(240);
19360
19361 --
19362 -- Upgrade strategy
19363 --
19364 l_actual_upg_option VARCHAR2(1);
19365 l_enc_upg_option VARCHAR2(1);
19366
19367 --
19368 BEGIN
19369 --
19370 IF g_log_enabled THEN
19371 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_55';
19372 END IF;
19373 --
19374 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19375
19376 trace
19377 (p_msg => 'BEGIN of AcctLineType_55'
19378 ,p_level => C_LEVEL_PROCEDURE
19379 ,p_module => l_log_module);
19380
19381 END IF;
19382 --
19383 l_component_type := 'AMB_JLT';
19384 l_component_code := 'PA_EXCH_RATE_VARIANCE_FED';
19385 l_component_type_code := 'S';
19386 l_component_appl_id := 275;
19387 l_amb_context_code := 'DEFAULT';
19388 l_entity_code := 'EXPENDITURES';
19389 l_event_class_code := 'SUPPLIER_COST';
19390 l_event_type_code := 'SUPPLIER_COST_ALL';
19391 l_line_definition_owner_code := 'S';
19392 l_line_definition_code := 'FV_PROJECTS_JLD';
19393 --
19394 l_balance_type_code := 'A';
19395 l_segment := NULL;
19396 l_ccid := NULL;
19397 l_adr_transaction_coa_id := NULL;
19398 l_adr_accounting_coa_id := NULL;
19399 l_adr_flexfield_segment_code := NULL;
19400 l_adr_flex_value_set_id := NULL;
19401 l_adr_value_type_code := NULL;
19402 l_adr_value_combination_id := NULL;
19403 l_adr_value_segment_code := NULL;
19404
19405 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
19406 l_bflow_class_code := ''; -- 4219869 Business Flow
19407 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
19408 l_budgetary_control_flag := 'N';
19409
19410 l_bflow_applied_to_amt_idx := NULL; -- 5132302
19411 l_bflow_applied_to_amt := NULL; -- 5132302
19412 l_entered_amt_idx := NULL; -- 4262811
19413 l_accted_amt_idx := NULL; -- 4262811
19414 l_acc_rev_flag := NULL; -- 4262811
19415 l_accrual_line_num := NULL; -- 4262811
19416 l_tmp_amt := NULL; -- 4262811
19417 --
19418 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
19419 (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
19420 return;
19421 END IF;
19422
19423 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
19424 l_balance_type_code <> 'B' THEN
19425 IF NVL(p_source_22,'
19426 ') = 'Y'
19427 THEN
19428
19429 --
19430 XLA_AE_LINES_PKG.SetNewLine;
19431
19432 p_balance_type_code := l_balance_type_code;
19433 -- set the flag so later we will know whether the gain loss line needs to be created
19434
19435 IF(l_balance_type_code = 'A' ) THEN
19436 p_actual_flag :='G';
19437 END IF;
19438
19439 --
19440 -- bulk performance
19441 --
19442 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
19443 p_header_num => 0); -- 4262811
19444 --
19445 -- set accounting line options
19446 --
19447 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
19448 p_natural_side_code => 'D'
19449 , p_gain_or_loss_flag => 'Y'
19450 , p_gl_transfer_mode_code => 'S'
19451 , p_acct_entry_type_code => 'A'
19452 , p_switch_side_flag => 'Y'
19453 , p_merge_duplicate_code => 'N'
19454 );
19455 --
19456 l_acc_rev_natural_side_code := 'C'; -- 4262811
19457 --
19458 --
19459 -- set accounting line type info
19460 --
19461 xla_ae_lines_pkg.SetAcctLineType
19462 (p_component_type => l_component_type
19463 ,p_event_type_code => l_event_type_code
19464 ,p_line_definition_owner_code => l_line_definition_owner_code
19465 ,p_line_definition_code => l_line_definition_code
19466 ,p_accounting_line_code => l_component_code
19467 ,p_accounting_line_type_code => l_component_type_code
19468 ,p_accounting_line_appl_id => l_component_appl_id
19469 ,p_amb_context_code => l_amb_context_code
19470 ,p_entity_code => l_entity_code
19471 ,p_event_class_code => l_event_class_code);
19472 --
19473 -- set accounting class
19474 --
19475 xla_ae_lines_pkg.SetAcctClass(
19476 p_accounting_class_code => 'EXCHANGE_RATE_VARIANCE'
19477 , p_ae_header_id => l_ae_header_id
19478 );
19479
19480 --
19481 -- set rounding class
19482 --
19483 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
19484 'EXCHANGE_RATE_VARIANCE';
19485
19486 --
19487 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
19488 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
19489 --
19490 -- bulk performance
19494 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
19491 --
19492 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
19493
19495 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
19496
19497 -- 4955764
19498 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19499 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
19500
19501 -- 4458381 Public Sector Enh
19502
19503 --
19504 -- set accounting attributes for the line type
19505 --
19506 l_entered_amt_idx := 22;
19507 l_accted_amt_idx := 27;
19508 l_bflow_applied_to_amt_idx := NULL; -- 5132302
19509 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
19510 l_rec_acct_attrs.array_char_value(1) := p_source_23;
19511 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
19512 l_rec_acct_attrs.array_char_value(2) := p_source_24;
19513 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
19514 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
19515 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
19516 l_rec_acct_attrs.array_num_value(4) := p_source_25;
19517 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
19518 l_rec_acct_attrs.array_char_value(5) := p_source_26;
19519 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
19520 l_rec_acct_attrs.array_num_value(6) := p_source_27;
19521 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
19522 l_rec_acct_attrs.array_date_value(7) := p_source_28;
19523 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
19524 l_rec_acct_attrs.array_num_value(8) := p_source_29;
19525 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
19526 l_rec_acct_attrs.array_char_value(9) := p_source_30;
19527 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
19528 l_rec_acct_attrs.array_char_value(10) := p_source_31;
19529 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
19530 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
19531 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
19532 l_rec_acct_attrs.array_num_value(12) := p_source_25;
19533 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
19534 l_rec_acct_attrs.array_char_value(13) := p_source_26;
19535 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
19536 l_rec_acct_attrs.array_num_value(14) := p_source_27;
19537 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
19538 l_rec_acct_attrs.array_date_value(15) := p_source_28;
19539 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
19540 l_rec_acct_attrs.array_num_value(16) := p_source_29;
19541 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
19542 l_rec_acct_attrs.array_char_value(17) := p_source_30;
19543 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
19544 l_rec_acct_attrs.array_char_value(18) := p_source_32;
19545 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
19546 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
19547 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
19548 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
19549 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
19550 l_rec_acct_attrs.array_char_value(21) := p_source_35;
19551 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
19552 l_rec_acct_attrs.array_num_value(22) := p_source_25;
19553 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
19554 l_rec_acct_attrs.array_char_value(23) := p_source_26;
19555 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
19556 l_rec_acct_attrs.array_date_value(24) := p_source_28;
19557 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
19558 l_rec_acct_attrs.array_num_value(25) := p_source_29;
19559 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
19560 l_rec_acct_attrs.array_char_value(26) := p_source_30;
19561 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
19562 l_rec_acct_attrs.array_num_value(27) := p_source_27;
19563 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
19564 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
19565 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
19566 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
19567 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
19568 l_rec_acct_attrs.array_char_value(30) := p_source_35;
19569
19570 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
19571 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
19572
19573 ---------------------------------------------------------------------------------------------------------------
19574 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
19575 ---------------------------------------------------------------------------------------------------------------
19576 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
19577
19578 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19579 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19580
19581 IF xla_accounting_cache_pkg.GetValueChar
19582 (p_source_code => 'LEDGER_CATEGORY_CODE'
19583 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
19584 AND l_bflow_method_code = 'PRIOR_ENTRY'
19588 )
19585 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
19586 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
19587 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
19589 THEN
19590 xla_ae_lines_pkg.BflowUpgEntry
19591 (p_business_method_code => l_bflow_method_code
19592 ,p_business_class_code => l_bflow_class_code
19593 ,p_balance_type => l_balance_type_code);
19594 ELSE
19595 NULL;
19596 -- No business flow processing for business flow method of NONE.
19597 END IF;
19598
19599 --
19600 -- call analytical criteria
19601 --
19602
19603 --
19604 -- call description
19605 --
19606 -- No description or it is inherited.
19607 --
19608 -- call ADRs
19609 -- Bug 4922099
19610 --
19611 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19612 (NVL(l_actual_upg_option, 'N') = 'O') OR
19613 (NVL(l_enc_upg_option, 'N') = 'O')
19614 )
19615 THEN
19616 NULL;
19617 --
19618 --
19619
19620 l_ccid := AcctDerRule_12(
19621 p_application_id => p_application_id
19622 , p_ae_header_id => l_ae_header_id
19623 , p_source_4 => p_source_4
19624 , p_source_5 => p_source_5
19625 , p_source_6 => p_source_6
19626 , x_transaction_coa_id => l_adr_transaction_coa_id
19627 , x_accounting_coa_id => l_adr_accounting_coa_id
19628 , x_value_type_code => l_adr_value_type_code
19629 , p_side => 'NA'
19630 );
19631
19632 xla_ae_lines_pkg.set_ccid(
19633 p_code_combination_id => l_ccid
19634 , p_value_type_code => l_adr_value_type_code
19635 , p_transaction_coa_id => l_adr_transaction_coa_id
19636 , p_accounting_coa_id => l_adr_accounting_coa_id
19637 , p_adr_code => 'PA_COST_ACCT_RULE'
19638 , p_adr_type_code => 'S'
19639 , p_component_type => l_component_type
19640 , p_component_code => l_component_code
19641 , p_component_type_code => l_component_type_code
19642 , p_component_appl_id => l_component_appl_id
19643 , p_amb_context_code => l_amb_context_code
19644 , p_side => 'NA'
19645 );
19646
19647
19648 l_segment := AcctDerRule_6(
19649 p_application_id => p_application_id
19650 , p_ae_header_id => l_ae_header_id
19651 , p_source_2 => p_source_2
19652 , x_transaction_coa_id => l_adr_transaction_coa_id
19653 , x_accounting_coa_id => l_adr_accounting_coa_id
19654 , x_flexfield_segment_code => l_adr_flexfield_segment_code
19655 , x_flex_value_set_id => l_adr_flex_value_set_id
19656 , x_value_type_code => l_adr_value_type_code
19657 , x_value_combination_id => l_adr_value_combination_id
19658 , x_value_segment_code => l_adr_value_segment_code
19659 , p_side => 'NA'
19660 , p_override_seg_flag => 'Y'
19661 );
19662
19663 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
19664
19665 xla_ae_lines_pkg.set_segment(
19666 p_to_segment_code => 'GL_ACCOUNT'
19667 , p_segment_value => l_segment
19668 , p_from_segment_code => l_adr_value_segment_code
19669 , p_from_combination_id => l_adr_value_combination_id
19670 , p_value_type_code => l_adr_value_type_code
19671 , p_transaction_coa_id => l_adr_transaction_coa_id
19672 , p_accounting_coa_id => l_adr_accounting_coa_id
19673 , p_flexfield_segment_code => l_adr_flexfield_segment_code
19674 , p_flex_value_set_id => l_adr_flex_value_set_id
19675 , p_adr_code => 'FV_4XXX_PROJECTS'
19676 , p_adr_type_code => 'S'
19677 , p_component_type => l_component_type
19678 , p_component_code => l_component_code
19679 , p_component_type_code => l_component_type_code
19680 , p_component_appl_id => l_component_appl_id
19681 , p_amb_context_code => l_amb_context_code
19682 , p_entity_code => 'EXPENDITURES'
19683 , p_event_class_code => 'SUPPLIER_COST'
19684 , p_side => 'NA'
19685 );
19686
19687 END IF;
19688
19689 --
19690 --
19691 END IF;
19692 --
19693 -- Bug 4922099
19694 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
19695 (NVL(l_enc_upg_option, 'N') = 'O')
19696 ) AND
19697 (l_bflow_method_code = 'PRIOR_ENTRY')
19698 )
19699 THEN
19700 IF
19701 --
19702 1 = 2
19703 --
19704 THEN
19705 xla_accounting_err_pkg.build_message
19706 (p_appli_s_name => 'XLA'
19707 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19708 ,p_token_1 => 'LINE_NUMBER'
19709 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
19710 ,p_token_2 => 'LINE_TYPE_NAME'
19711 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
19712 l_component_type
19713 ,l_component_code
19714 ,l_component_type_code
19718 ,l_event_class_code
19715 ,l_component_appl_id
19716 ,l_amb_context_code
19717 ,l_entity_code
19719 )
19720 ,p_token_3 => 'OWNER'
19721 ,p_value_3 => xla_lookups_pkg.get_meaning(
19722 p_lookup_type => 'XLA_OWNER_TYPE'
19723 ,p_lookup_code => l_component_type_code
19724 )
19725 ,p_token_4 => 'PRODUCT_NAME'
19726 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
19727 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
19728 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
19729 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
19730 ,p_ae_header_id => NULL
19731 );
19732
19733 IF (C_LEVEL_ERROR>= g_log_level) THEN
19734 trace
19735 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19736 ,p_level => C_LEVEL_ERROR
19737 ,p_module => l_log_module);
19738 END IF;
19739 END IF;
19740 END IF;
19741 --
19742 --
19743 ------------------------------------------------------------------------------------------------
19744 -- 4219869 Business Flow
19745 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
19746 -- Prior Entry. Currently, the following code is always generated.
19747 ------------------------------------------------------------------------------------------------
19748 XLA_AE_LINES_PKG.ValidateCurrentLine;
19749
19750 ------------------------------------------------------------------------------------
19751 -- 4219869 Business Flow
19752 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
19753 ------------------------------------------------------------------------------------
19754 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19755
19756 ----------------------------------------------------------------------------------
19757 -- 4219869 Business Flow
19758 -- Update journal entry status -- Need to generate this within IF <condition>
19759 ----------------------------------------------------------------------------------
19760 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19761 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
19762 ,p_balance_type_code => l_balance_type_code
19763 );
19764
19765 -------------------------------------------------------------------------------------------
19766 -- 4262811 - Generate the Accrual Reversal lines
19767 -------------------------------------------------------------------------------------------
19768 BEGIN
19769 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
19770 (g_array_event(p_event_id).array_value_num('header_index'));
19771 IF l_acc_rev_flag IS NULL THEN
19772 l_acc_rev_flag := 'N';
19773 END IF;
19774 EXCEPTION
19775 WHEN OTHERS THEN
19776 l_acc_rev_flag := 'N';
19777 END;
19778 --
19779 IF (l_acc_rev_flag = 'Y') THEN
19780
19781 -- 4645092 ------------------------------------------------------------------------------
19782 -- To allow MPA report to determine if it should generate report process
19783 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
19784 ------------------------------------------------------------------------------------------
19785
19786 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
19787 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
19788
19789 --
19790 -- Update the line information that should be overwritten
19791 --
19792 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
19793 p_header_num => 1);
19794 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
19795
19796 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
19797
19798 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
19799 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
19800 END IF;
19801
19802 --
19803 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
19804 --
19805 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
19806 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
19807 ELSE
19808 ---------------------------------------------------------------------------------------------------
19809 -- 4262811a Switch Sign
19810 ---------------------------------------------------------------------------------------------------
19811 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
19812 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19816 -- 5132302
19813 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19814 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19815 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19817 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
19818 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19819
19820 END IF;
19821
19822 -- 4955764
19823 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19824 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
19825
19826
19827 XLA_AE_LINES_PKG.ValidateCurrentLine;
19828 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19829
19830 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19831 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19832 ,p_balance_type_code => l_balance_type_code);
19833
19834 END IF;
19835
19836 -----------------------------------------------------------------------------------------
19837 -- 4262811 Multiperiod Accounting
19838 -----------------------------------------------------------------------------------------
19839 -- No MPA option is assigned.
19840
19841
19842 END IF;
19843 END IF;
19844 --
19845
19846 --
19847 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19848 trace
19849 (p_msg => 'END of AcctLineType_55'
19850 ,p_level => C_LEVEL_PROCEDURE
19851 ,p_module => l_log_module);
19852 END IF;
19853 --
19854 EXCEPTION
19855 WHEN xla_exceptions_pkg.application_exception THEN
19856 RAISE;
19857 WHEN OTHERS THEN
19858 xla_exceptions_pkg.raise_message
19859 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_55');
19860 END AcctLineType_55;
19861 --
19862
19863 ---------------------------------------
19864 --
19865 -- PRIVATE FUNCTION
19866 -- AcctLineType_56
19867 --
19868 ---------------------------------------
19869 PROCEDURE AcctLineType_56 (
19870 p_application_id IN NUMBER
19871 ,p_event_id IN NUMBER
19872 ,p_calculate_acctd_flag IN VARCHAR2
19873 ,p_calculate_g_l_flag IN VARCHAR2
19874 ,p_actual_flag IN OUT VARCHAR2
19875 ,p_balance_type_code OUT VARCHAR2
19876 ,p_gain_or_loss_ref OUT VARCHAR2
19877
19878 --PO Distribution ID
19879 , p_source_2 IN NUMBER
19880 --Cost CCID
19881 , p_source_4 IN NUMBER
19882 --Allow Account Override Flag
19883 , p_source_5 IN VARCHAR2
19884 --Adjustment Cost CCID
19885 , p_source_6 IN NUMBER
19886 --Cost Clearing CCID
19887 , p_source_7 IN NUMBER
19888 --Exchange Rate Variance Flag
19889 , p_source_22 IN VARCHAR2
19890 --Reversing Line Flag
19891 , p_source_23 IN VARCHAR2
19892 --Actual Upgrade Credit Accounting Class
19893 , p_source_24 IN VARCHAR2
19894 --Entered Raw Cost
19895 , p_source_25 IN NUMBER
19896 --Entered Currency Code
19897 , p_source_26 IN VARCHAR2
19898 --Accounted Raw Cost
19899 , p_source_27 IN NUMBER
19900 --Exchange Rate Date
19901 , p_source_28 IN DATE
19902 --Exchange Rate
19903 , p_source_29 IN NUMBER
19904 --Exchange Rate Type
19905 , p_source_30 IN VARCHAR2
19906 --Actual Upgrade Debit Accounting Class
19907 , p_source_31 IN VARCHAR2
19908 --Use Actuals Upgrade Attributes Flag
19909 , p_source_32 IN VARCHAR2
19910 --Expenditure Item ID
19911 , p_source_33 IN NUMBER
19912 --Cost Distribution Line Number
19913 , p_source_34 IN NUMBER
19914 --Line Type
19915 , p_source_35 IN VARCHAR2
19916 , p_source_35_meaning IN VARCHAR2
19917 --Reversed Line Number
19918 , p_source_36 IN NUMBER
19919 )
19920 IS
19921
19922 l_component_type VARCHAR2(80);
19923 l_component_code VARCHAR2(30);
19924 l_component_type_code VARCHAR2(1);
19925 l_component_appl_id INTEGER;
19926 l_amb_context_code VARCHAR2(30);
19927 l_entity_code VARCHAR2(30);
19928 l_event_class_code VARCHAR2(30);
19929 l_ae_header_id NUMBER;
19930 l_event_type_code VARCHAR2(30);
19931 l_line_definition_code VARCHAR2(30);
19932 l_line_definition_owner_code VARCHAR2(1);
19933 --
19934 -- adr variables
19935 l_segment VARCHAR2(30);
19936 l_ccid NUMBER;
19937 l_adr_transaction_coa_id NUMBER;
19938 l_adr_accounting_coa_id NUMBER;
19939 l_adr_flexfield_segment_code VARCHAR2(30);
19940 l_adr_flex_value_set_id NUMBER;
19941 l_adr_value_type_code VARCHAR2(30);
19942 l_adr_value_combination_id NUMBER;
19943 l_adr_value_segment_code VARCHAR2(30);
19944
19945 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
19946 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
19947 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
19948 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
19949
19950 -- 4262811 Variables ------------------------------------------------------------------------------------------
19951 l_entered_amt_idx NUMBER;
19952 l_accted_amt_idx NUMBER;
19953 l_acc_rev_flag VARCHAR2(1);
19954 l_accrual_line_num NUMBER;
19955 l_tmp_amt NUMBER;
19959 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
19956 l_acc_rev_natural_side_code VARCHAR2(1);
19957
19958 l_num_entries NUMBER;
19960 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
19961 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
19962 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
19963 l_recog_line_1 NUMBER;
19964 l_recog_line_2 NUMBER;
19965
19966 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
19967 l_bflow_applied_to_amt NUMBER; -- 5132302
19968 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
19969
19970 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
19971
19972 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
19973 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
19974
19975 ---------------------------------------------------------------------------------------------------------------
19976
19977
19978 --
19979 -- bulk performance
19980 --
19981 l_balance_type_code VARCHAR2(1);
19982 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
19983 l_log_module VARCHAR2(240);
19984
19985 --
19986 -- Upgrade strategy
19987 --
19988 l_actual_upg_option VARCHAR2(1);
19989 l_enc_upg_option VARCHAR2(1);
19990
19991 --
19992 BEGIN
19993 --
19994 IF g_log_enabled THEN
19995 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_56';
19996 END IF;
19997 --
19998 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19999
20000 trace
20001 (p_msg => 'BEGIN of AcctLineType_56'
20002 ,p_level => C_LEVEL_PROCEDURE
20003 ,p_module => l_log_module);
20004
20005 END IF;
20006 --
20007 l_component_type := 'AMB_JLT';
20008 l_component_code := 'PA_EXCH_RATE_VARIANCE_FED';
20009 l_component_type_code := 'S';
20010 l_component_appl_id := 275;
20011 l_amb_context_code := 'DEFAULT';
20012 l_entity_code := 'EXPENDITURES';
20013 l_event_class_code := 'SUPPLIER_COST_ADJ';
20014 l_event_type_code := 'SUPPLIER_COST_ADJ_ALL';
20015 l_line_definition_owner_code := 'S';
20016 l_line_definition_code := 'FV_PROJECTS_JLD';
20017 --
20018 l_balance_type_code := 'A';
20019 l_segment := NULL;
20020 l_ccid := NULL;
20021 l_adr_transaction_coa_id := NULL;
20022 l_adr_accounting_coa_id := NULL;
20023 l_adr_flexfield_segment_code := NULL;
20024 l_adr_flex_value_set_id := NULL;
20025 l_adr_value_type_code := NULL;
20026 l_adr_value_combination_id := NULL;
20027 l_adr_value_segment_code := NULL;
20028
20029 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
20030 l_bflow_class_code := ''; -- 4219869 Business Flow
20031 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
20032 l_budgetary_control_flag := 'N';
20033
20034 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20035 l_bflow_applied_to_amt := NULL; -- 5132302
20036 l_entered_amt_idx := NULL; -- 4262811
20037 l_accted_amt_idx := NULL; -- 4262811
20038 l_acc_rev_flag := NULL; -- 4262811
20039 l_accrual_line_num := NULL; -- 4262811
20040 l_tmp_amt := NULL; -- 4262811
20041 --
20042 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
20043 (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
20044 return;
20045 END IF;
20046
20047 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
20048 l_balance_type_code <> 'B' THEN
20049 IF NVL(p_source_22,'
20050 ') = 'Y'
20051 THEN
20052
20053 --
20054 XLA_AE_LINES_PKG.SetNewLine;
20055
20056 p_balance_type_code := l_balance_type_code;
20057 -- set the flag so later we will know whether the gain loss line needs to be created
20058
20059 IF(l_balance_type_code = 'A' ) THEN
20060 p_actual_flag :='G';
20061 END IF;
20062
20063 --
20064 -- bulk performance
20065 --
20066 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
20067 p_header_num => 0); -- 4262811
20068 --
20069 -- set accounting line options
20070 --
20071 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
20072 p_natural_side_code => 'D'
20073 , p_gain_or_loss_flag => 'Y'
20074 , p_gl_transfer_mode_code => 'S'
20075 , p_acct_entry_type_code => 'A'
20076 , p_switch_side_flag => 'Y'
20077 , p_merge_duplicate_code => 'N'
20078 );
20079 --
20080 l_acc_rev_natural_side_code := 'C'; -- 4262811
20081 --
20082 --
20083 -- set accounting line type info
20084 --
20085 xla_ae_lines_pkg.SetAcctLineType
20086 (p_component_type => l_component_type
20087 ,p_event_type_code => l_event_type_code
20088 ,p_line_definition_owner_code => l_line_definition_owner_code
20089 ,p_line_definition_code => l_line_definition_code
20090 ,p_accounting_line_code => l_component_code
20091 ,p_accounting_line_type_code => l_component_type_code
20092 ,p_accounting_line_appl_id => l_component_appl_id
20096 --
20093 ,p_amb_context_code => l_amb_context_code
20094 ,p_entity_code => l_entity_code
20095 ,p_event_class_code => l_event_class_code);
20097 -- set accounting class
20098 --
20099 xla_ae_lines_pkg.SetAcctClass(
20100 p_accounting_class_code => 'EXCHANGE_RATE_VARIANCE'
20101 , p_ae_header_id => l_ae_header_id
20102 );
20103
20104 --
20105 -- set rounding class
20106 --
20107 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
20108 'EXCHANGE_RATE_VARIANCE';
20109
20110 --
20111 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
20112 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
20113 --
20114 -- bulk performance
20115 --
20116 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
20117
20118 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
20119 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
20120
20121 -- 4955764
20122 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20123 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
20124
20125 -- 4458381 Public Sector Enh
20126
20127 --
20128 -- set accounting attributes for the line type
20129 --
20130 l_entered_amt_idx := 22;
20131 l_accted_amt_idx := 27;
20132 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20133 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
20134 l_rec_acct_attrs.array_char_value(1) := p_source_23;
20135 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
20136 l_rec_acct_attrs.array_char_value(2) := p_source_24;
20137 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
20138 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
20139 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
20140 l_rec_acct_attrs.array_num_value(4) := p_source_25;
20141 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
20142 l_rec_acct_attrs.array_char_value(5) := p_source_26;
20143 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
20144 l_rec_acct_attrs.array_num_value(6) := p_source_27;
20145 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
20146 l_rec_acct_attrs.array_date_value(7) := p_source_28;
20147 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
20148 l_rec_acct_attrs.array_num_value(8) := p_source_29;
20149 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
20150 l_rec_acct_attrs.array_char_value(9) := p_source_30;
20151 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
20152 l_rec_acct_attrs.array_char_value(10) := p_source_31;
20153 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
20154 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
20155 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
20156 l_rec_acct_attrs.array_num_value(12) := p_source_25;
20157 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
20158 l_rec_acct_attrs.array_char_value(13) := p_source_26;
20159 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
20160 l_rec_acct_attrs.array_num_value(14) := p_source_27;
20161 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
20162 l_rec_acct_attrs.array_date_value(15) := p_source_28;
20163 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
20164 l_rec_acct_attrs.array_num_value(16) := p_source_29;
20165 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
20166 l_rec_acct_attrs.array_char_value(17) := p_source_30;
20167 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
20168 l_rec_acct_attrs.array_char_value(18) := p_source_32;
20169 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
20170 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
20171 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
20172 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
20173 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
20174 l_rec_acct_attrs.array_char_value(21) := p_source_35;
20175 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
20176 l_rec_acct_attrs.array_num_value(22) := p_source_25;
20177 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
20178 l_rec_acct_attrs.array_char_value(23) := p_source_26;
20179 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
20180 l_rec_acct_attrs.array_date_value(24) := p_source_28;
20181 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
20182 l_rec_acct_attrs.array_num_value(25) := p_source_29;
20183 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
20184 l_rec_acct_attrs.array_char_value(26) := p_source_30;
20185 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
20186 l_rec_acct_attrs.array_num_value(27) := p_source_27;
20187 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
20188 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
20189 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
20190 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
20191 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
20192 l_rec_acct_attrs.array_char_value(30) := p_source_35;
20193
20194 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20195 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20199 ---------------------------------------------------------------------------------------------------------------
20196
20197 ---------------------------------------------------------------------------------------------------------------
20198 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20200 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20201
20202 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20203 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20204
20205 IF xla_accounting_cache_pkg.GetValueChar
20206 (p_source_code => 'LEDGER_CATEGORY_CODE'
20207 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20208 AND l_bflow_method_code = 'PRIOR_ENTRY'
20209 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20210 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20211 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20212 )
20213 THEN
20214 xla_ae_lines_pkg.BflowUpgEntry
20215 (p_business_method_code => l_bflow_method_code
20216 ,p_business_class_code => l_bflow_class_code
20217 ,p_balance_type => l_balance_type_code);
20218 ELSE
20219 NULL;
20220 -- No business flow processing for business flow method of NONE.
20221 END IF;
20222
20223 --
20224 -- call analytical criteria
20225 --
20226
20227 --
20228 -- call description
20229 --
20230 -- No description or it is inherited.
20231 --
20232 -- call ADRs
20233 -- Bug 4922099
20234 --
20235 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20236 (NVL(l_actual_upg_option, 'N') = 'O') OR
20237 (NVL(l_enc_upg_option, 'N') = 'O')
20238 )
20239 THEN
20240 NULL;
20241 --
20242 --
20243
20244 l_ccid := AcctDerRule_13(
20245 p_application_id => p_application_id
20246 , p_ae_header_id => l_ae_header_id
20247 , p_source_5 => p_source_5
20248 , p_source_6 => p_source_6
20249 , x_transaction_coa_id => l_adr_transaction_coa_id
20250 , x_accounting_coa_id => l_adr_accounting_coa_id
20251 , x_value_type_code => l_adr_value_type_code
20252 , p_side => 'NA'
20253 );
20254
20255 xla_ae_lines_pkg.set_ccid(
20256 p_code_combination_id => l_ccid
20257 , p_value_type_code => l_adr_value_type_code
20258 , p_transaction_coa_id => l_adr_transaction_coa_id
20259 , p_accounting_coa_id => l_adr_accounting_coa_id
20260 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
20261 , p_adr_type_code => 'S'
20262 , p_component_type => l_component_type
20263 , p_component_code => l_component_code
20264 , p_component_type_code => l_component_type_code
20265 , p_component_appl_id => l_component_appl_id
20266 , p_amb_context_code => l_amb_context_code
20267 , p_side => 'NA'
20268 );
20269
20270
20271 l_segment := AcctDerRule_6(
20272 p_application_id => p_application_id
20273 , p_ae_header_id => l_ae_header_id
20274 , p_source_2 => p_source_2
20275 , x_transaction_coa_id => l_adr_transaction_coa_id
20276 , x_accounting_coa_id => l_adr_accounting_coa_id
20277 , x_flexfield_segment_code => l_adr_flexfield_segment_code
20278 , x_flex_value_set_id => l_adr_flex_value_set_id
20279 , x_value_type_code => l_adr_value_type_code
20280 , x_value_combination_id => l_adr_value_combination_id
20281 , x_value_segment_code => l_adr_value_segment_code
20282 , p_side => 'NA'
20283 , p_override_seg_flag => 'Y'
20284 );
20285
20286 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
20287
20288 xla_ae_lines_pkg.set_segment(
20289 p_to_segment_code => 'GL_ACCOUNT'
20290 , p_segment_value => l_segment
20291 , p_from_segment_code => l_adr_value_segment_code
20292 , p_from_combination_id => l_adr_value_combination_id
20293 , p_value_type_code => l_adr_value_type_code
20294 , p_transaction_coa_id => l_adr_transaction_coa_id
20295 , p_accounting_coa_id => l_adr_accounting_coa_id
20296 , p_flexfield_segment_code => l_adr_flexfield_segment_code
20297 , p_flex_value_set_id => l_adr_flex_value_set_id
20298 , p_adr_code => 'FV_4XXX_PROJECTS'
20299 , p_adr_type_code => 'S'
20300 , p_component_type => l_component_type
20301 , p_component_code => l_component_code
20302 , p_component_type_code => l_component_type_code
20303 , p_component_appl_id => l_component_appl_id
20304 , p_amb_context_code => l_amb_context_code
20305 , p_entity_code => 'EXPENDITURES'
20306 , p_event_class_code => 'SUPPLIER_COST_ADJ'
20307 , p_side => 'NA'
20308 );
20309
20310 END IF;
20311
20312 --
20313 --
20314 END IF;
20315 --
20316 -- Bug 4922099
20317 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20318 (NVL(l_enc_upg_option, 'N') = 'O')
20319 ) AND
20320 (l_bflow_method_code = 'PRIOR_ENTRY')
20321 )
20322 THEN
20323 IF
20324 --
20325 1 = 2
20326 --
20327 THEN
20331 ,p_token_1 => 'LINE_NUMBER'
20328 xla_accounting_err_pkg.build_message
20329 (p_appli_s_name => 'XLA'
20330 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20332 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
20333 ,p_token_2 => 'LINE_TYPE_NAME'
20334 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
20335 l_component_type
20336 ,l_component_code
20337 ,l_component_type_code
20338 ,l_component_appl_id
20339 ,l_amb_context_code
20340 ,l_entity_code
20341 ,l_event_class_code
20342 )
20343 ,p_token_3 => 'OWNER'
20344 ,p_value_3 => xla_lookups_pkg.get_meaning(
20345 p_lookup_type => 'XLA_OWNER_TYPE'
20346 ,p_lookup_code => l_component_type_code
20347 )
20348 ,p_token_4 => 'PRODUCT_NAME'
20349 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
20350 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
20351 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
20352 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
20353 ,p_ae_header_id => NULL
20354 );
20355
20356 IF (C_LEVEL_ERROR>= g_log_level) THEN
20357 trace
20358 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20359 ,p_level => C_LEVEL_ERROR
20360 ,p_module => l_log_module);
20361 END IF;
20362 END IF;
20363 END IF;
20364 --
20365 --
20366 ------------------------------------------------------------------------------------------------
20367 -- 4219869 Business Flow
20368 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
20369 -- Prior Entry. Currently, the following code is always generated.
20370 ------------------------------------------------------------------------------------------------
20371 XLA_AE_LINES_PKG.ValidateCurrentLine;
20372
20373 ------------------------------------------------------------------------------------
20374 -- 4219869 Business Flow
20375 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
20376 ------------------------------------------------------------------------------------
20377 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20378
20379 ----------------------------------------------------------------------------------
20380 -- 4219869 Business Flow
20381 -- Update journal entry status -- Need to generate this within IF <condition>
20382 ----------------------------------------------------------------------------------
20383 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20384 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
20385 ,p_balance_type_code => l_balance_type_code
20386 );
20387
20388 -------------------------------------------------------------------------------------------
20389 -- 4262811 - Generate the Accrual Reversal lines
20390 -------------------------------------------------------------------------------------------
20391 BEGIN
20392 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
20393 (g_array_event(p_event_id).array_value_num('header_index'));
20394 IF l_acc_rev_flag IS NULL THEN
20395 l_acc_rev_flag := 'N';
20396 END IF;
20397 EXCEPTION
20398 WHEN OTHERS THEN
20399 l_acc_rev_flag := 'N';
20400 END;
20401 --
20402 IF (l_acc_rev_flag = 'Y') THEN
20403
20404 -- 4645092 ------------------------------------------------------------------------------
20405 -- To allow MPA report to determine if it should generate report process
20406 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
20407 ------------------------------------------------------------------------------------------
20408
20409 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
20410 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
20411
20412 --
20413 -- Update the line information that should be overwritten
20414 --
20415 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
20416 p_header_num => 1);
20417 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
20418
20419 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
20420
20421 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
20422 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
20423 END IF;
20424
20428 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
20425 --
20426 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
20427 --
20429 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
20430 ELSE
20431 ---------------------------------------------------------------------------------------------------
20432 -- 4262811a Switch Sign
20433 ---------------------------------------------------------------------------------------------------
20434 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
20435 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20436 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20437 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20438 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20439 -- 5132302
20440 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
20441 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20442
20443 END IF;
20444
20445 -- 4955764
20446 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20447 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
20448
20449
20450 XLA_AE_LINES_PKG.ValidateCurrentLine;
20451 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20452
20453 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20454 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
20455 ,p_balance_type_code => l_balance_type_code);
20456
20457 END IF;
20458
20459 -----------------------------------------------------------------------------------------
20460 -- 4262811 Multiperiod Accounting
20461 -----------------------------------------------------------------------------------------
20462 -- No MPA option is assigned.
20463
20464
20465 END IF;
20466 END IF;
20467 --
20468
20469 --
20470 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20471 trace
20472 (p_msg => 'END of AcctLineType_56'
20473 ,p_level => C_LEVEL_PROCEDURE
20474 ,p_module => l_log_module);
20475 END IF;
20476 --
20477 EXCEPTION
20478 WHEN xla_exceptions_pkg.application_exception THEN
20479 RAISE;
20480 WHEN OTHERS THEN
20481 xla_exceptions_pkg.raise_message
20482 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_56');
20483 END AcctLineType_56;
20484 --
20485
20486 ---------------------------------------
20487 --
20488 -- PRIVATE FUNCTION
20489 -- AcctLineType_57
20490 --
20491 ---------------------------------------
20492 PROCEDURE AcctLineType_57 (
20493 p_application_id IN NUMBER
20494 ,p_event_id IN NUMBER
20495 ,p_calculate_acctd_flag IN VARCHAR2
20496 ,p_calculate_g_l_flag IN VARCHAR2
20497 ,p_actual_flag IN OUT VARCHAR2
20498 ,p_balance_type_code OUT VARCHAR2
20499 ,p_gain_or_loss_ref OUT VARCHAR2
20500
20501 --Cost CCID
20502 , p_source_4 IN NUMBER
20503 --Allow Account Override Flag
20504 , p_source_5 IN VARCHAR2
20505 --Cost Clearing CCID
20506 , p_source_7 IN NUMBER
20507 --Adjustment Cost Clearing CCID
20508 , p_source_8 IN NUMBER
20509 --Exchange Rate Variance Flag
20510 , p_source_22 IN VARCHAR2
20511 --Reversing Line Flag
20512 , p_source_23 IN VARCHAR2
20513 --Actual Upgrade Credit Accounting Class
20514 , p_source_24 IN VARCHAR2
20515 --Entered Raw Cost
20516 , p_source_25 IN NUMBER
20517 --Entered Currency Code
20518 , p_source_26 IN VARCHAR2
20519 --Accounted Raw Cost
20520 , p_source_27 IN NUMBER
20521 --Exchange Rate Date
20522 , p_source_28 IN DATE
20523 --Exchange Rate
20524 , p_source_29 IN NUMBER
20525 --Exchange Rate Type
20526 , p_source_30 IN VARCHAR2
20527 --Actual Upgrade Debit Accounting Class
20528 , p_source_31 IN VARCHAR2
20529 --Use Actuals Upgrade Attributes Flag
20530 , p_source_32 IN VARCHAR2
20531 --Expenditure Item ID
20532 , p_source_33 IN NUMBER
20533 --Cost Distribution Line Number
20534 , p_source_34 IN NUMBER
20535 --Line Type
20536 , p_source_35 IN VARCHAR2
20537 , p_source_35_meaning IN VARCHAR2
20538 --Reversed Line Number
20539 , p_source_36 IN NUMBER
20540 )
20541 IS
20542
20543 l_component_type VARCHAR2(80);
20544 l_component_code VARCHAR2(30);
20545 l_component_type_code VARCHAR2(1);
20546 l_component_appl_id INTEGER;
20547 l_amb_context_code VARCHAR2(30);
20548 l_entity_code VARCHAR2(30);
20549 l_event_class_code VARCHAR2(30);
20550 l_ae_header_id NUMBER;
20551 l_event_type_code VARCHAR2(30);
20552 l_line_definition_code VARCHAR2(30);
20553 l_line_definition_owner_code VARCHAR2(1);
20554 --
20555 -- adr variables
20556 l_segment VARCHAR2(30);
20557 l_ccid NUMBER;
20558 l_adr_transaction_coa_id NUMBER;
20559 l_adr_accounting_coa_id NUMBER;
20560 l_adr_flexfield_segment_code VARCHAR2(30);
20561 l_adr_flex_value_set_id NUMBER;
20562 l_adr_value_type_code VARCHAR2(30);
20566 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
20563 l_adr_value_combination_id NUMBER;
20564 l_adr_value_segment_code VARCHAR2(30);
20565
20567 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
20568 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
20569 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
20570
20571 -- 4262811 Variables ------------------------------------------------------------------------------------------
20572 l_entered_amt_idx NUMBER;
20573 l_accted_amt_idx NUMBER;
20574 l_acc_rev_flag VARCHAR2(1);
20575 l_accrual_line_num NUMBER;
20576 l_tmp_amt NUMBER;
20577 l_acc_rev_natural_side_code VARCHAR2(1);
20578
20579 l_num_entries NUMBER;
20580 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
20581 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
20582 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
20583 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
20584 l_recog_line_1 NUMBER;
20585 l_recog_line_2 NUMBER;
20586
20587 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
20588 l_bflow_applied_to_amt NUMBER; -- 5132302
20589 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
20590
20591 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
20592
20593 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
20594 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
20595
20596 ---------------------------------------------------------------------------------------------------------------
20597
20598
20599 --
20600 -- bulk performance
20601 --
20602 l_balance_type_code VARCHAR2(1);
20603 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
20604 l_log_module VARCHAR2(240);
20605
20606 --
20607 -- Upgrade strategy
20608 --
20609 l_actual_upg_option VARCHAR2(1);
20610 l_enc_upg_option VARCHAR2(1);
20611
20612 --
20613 BEGIN
20614 --
20615 IF g_log_enabled THEN
20616 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_57';
20617 END IF;
20618 --
20619 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20620
20621 trace
20622 (p_msg => 'BEGIN of AcctLineType_57'
20623 ,p_level => C_LEVEL_PROCEDURE
20624 ,p_module => l_log_module);
20625
20626 END IF;
20627 --
20628 l_component_type := 'AMB_JLT';
20629 l_component_code := 'PA_EXCH_RATE_VAR_CLEAR_FED';
20630 l_component_type_code := 'S';
20631 l_component_appl_id := 275;
20632 l_amb_context_code := 'DEFAULT';
20633 l_entity_code := 'EXPENDITURES';
20634 l_event_class_code := 'SUPPLIER_COST';
20635 l_event_type_code := 'SUPPLIER_COST_ALL';
20636 l_line_definition_owner_code := 'S';
20637 l_line_definition_code := 'FV_PROJECTS_JLD';
20638 --
20639 l_balance_type_code := 'A';
20640 l_segment := NULL;
20641 l_ccid := NULL;
20642 l_adr_transaction_coa_id := NULL;
20643 l_adr_accounting_coa_id := NULL;
20644 l_adr_flexfield_segment_code := NULL;
20645 l_adr_flex_value_set_id := NULL;
20646 l_adr_value_type_code := NULL;
20647 l_adr_value_combination_id := NULL;
20648 l_adr_value_segment_code := NULL;
20649
20650 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
20651 l_bflow_class_code := ''; -- 4219869 Business Flow
20652 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
20653 l_budgetary_control_flag := 'N';
20654
20655 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20656 l_bflow_applied_to_amt := NULL; -- 5132302
20657 l_entered_amt_idx := NULL; -- 4262811
20658 l_accted_amt_idx := NULL; -- 4262811
20659 l_acc_rev_flag := NULL; -- 4262811
20660 l_accrual_line_num := NULL; -- 4262811
20661 l_tmp_amt := NULL; -- 4262811
20662 --
20663 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
20664 (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
20665 return;
20666 END IF;
20667
20668 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
20669 l_balance_type_code <> 'B' THEN
20670 IF NVL(p_source_22,'
20671 ') = 'Y'
20672 THEN
20673
20674 --
20675 XLA_AE_LINES_PKG.SetNewLine;
20676
20677 p_balance_type_code := l_balance_type_code;
20678 -- set the flag so later we will know whether the gain loss line needs to be created
20679
20680 IF(l_balance_type_code = 'A' ) THEN
20681 p_actual_flag :='G';
20682 END IF;
20683
20684 --
20685 -- bulk performance
20686 --
20687 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
20688 p_header_num => 0); -- 4262811
20689 --
20690 -- set accounting line options
20691 --
20692 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
20693 p_natural_side_code => 'C'
20694 , p_gain_or_loss_flag => 'Y'
20695 , p_gl_transfer_mode_code => 'S'
20696 , p_acct_entry_type_code => 'A'
20697 , p_switch_side_flag => 'Y'
20701 l_acc_rev_natural_side_code := 'D'; -- 4262811
20698 , p_merge_duplicate_code => 'N'
20699 );
20700 --
20702 --
20703 --
20704 -- set accounting line type info
20705 --
20706 xla_ae_lines_pkg.SetAcctLineType
20707 (p_component_type => l_component_type
20708 ,p_event_type_code => l_event_type_code
20709 ,p_line_definition_owner_code => l_line_definition_owner_code
20710 ,p_line_definition_code => l_line_definition_code
20711 ,p_accounting_line_code => l_component_code
20712 ,p_accounting_line_type_code => l_component_type_code
20713 ,p_accounting_line_appl_id => l_component_appl_id
20714 ,p_amb_context_code => l_amb_context_code
20715 ,p_entity_code => l_entity_code
20716 ,p_event_class_code => l_event_class_code);
20717 --
20718 -- set accounting class
20719 --
20720 xla_ae_lines_pkg.SetAcctClass(
20721 p_accounting_class_code => 'FEDERAL_PROJECT_COST_CLEARING'
20722 , p_ae_header_id => l_ae_header_id
20723 );
20724
20725 --
20726 -- set rounding class
20727 --
20728 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
20729 'FEDERAL_PROJECT_COST_CLEARING';
20730
20731 --
20732 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
20733 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
20734 --
20735 -- bulk performance
20736 --
20737 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
20738
20739 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
20740 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
20741
20742 -- 4955764
20743 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20744 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
20745
20746 -- 4458381 Public Sector Enh
20747
20748 --
20749 -- set accounting attributes for the line type
20750 --
20751 l_entered_amt_idx := 22;
20752 l_accted_amt_idx := 27;
20753 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20754 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
20755 l_rec_acct_attrs.array_char_value(1) := p_source_23;
20756 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
20757 l_rec_acct_attrs.array_char_value(2) := p_source_24;
20758 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
20759 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
20760 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
20761 l_rec_acct_attrs.array_num_value(4) := p_source_25;
20762 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
20763 l_rec_acct_attrs.array_char_value(5) := p_source_26;
20764 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
20765 l_rec_acct_attrs.array_num_value(6) := p_source_27;
20766 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
20767 l_rec_acct_attrs.array_date_value(7) := p_source_28;
20768 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
20769 l_rec_acct_attrs.array_num_value(8) := p_source_29;
20770 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
20771 l_rec_acct_attrs.array_char_value(9) := p_source_30;
20772 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
20773 l_rec_acct_attrs.array_char_value(10) := p_source_31;
20774 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
20775 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
20776 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
20777 l_rec_acct_attrs.array_num_value(12) := p_source_25;
20778 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
20779 l_rec_acct_attrs.array_char_value(13) := p_source_26;
20780 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
20781 l_rec_acct_attrs.array_num_value(14) := p_source_27;
20782 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
20783 l_rec_acct_attrs.array_date_value(15) := p_source_28;
20784 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
20785 l_rec_acct_attrs.array_num_value(16) := p_source_29;
20786 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
20787 l_rec_acct_attrs.array_char_value(17) := p_source_30;
20788 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
20789 l_rec_acct_attrs.array_char_value(18) := p_source_32;
20790 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
20791 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
20792 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
20793 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
20794 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
20795 l_rec_acct_attrs.array_char_value(21) := p_source_35;
20796 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
20797 l_rec_acct_attrs.array_num_value(22) := p_source_25;
20798 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
20799 l_rec_acct_attrs.array_char_value(23) := p_source_26;
20800 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
20801 l_rec_acct_attrs.array_date_value(24) := p_source_28;
20802 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
20803 l_rec_acct_attrs.array_num_value(25) := p_source_29;
20804 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
20805 l_rec_acct_attrs.array_char_value(26) := p_source_30;
20809 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
20806 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
20807 l_rec_acct_attrs.array_num_value(27) := p_source_27;
20808 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
20810 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
20811 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
20812 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
20813 l_rec_acct_attrs.array_char_value(30) := p_source_35;
20814
20815 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20816 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20817
20818 ---------------------------------------------------------------------------------------------------------------
20819 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20820 ---------------------------------------------------------------------------------------------------------------
20821 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20822
20823 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20824 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20825
20826 IF xla_accounting_cache_pkg.GetValueChar
20827 (p_source_code => 'LEDGER_CATEGORY_CODE'
20828 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20829 AND l_bflow_method_code = 'PRIOR_ENTRY'
20830 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20831 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20832 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20833 )
20834 THEN
20835 xla_ae_lines_pkg.BflowUpgEntry
20836 (p_business_method_code => l_bflow_method_code
20837 ,p_business_class_code => l_bflow_class_code
20838 ,p_balance_type => l_balance_type_code);
20839 ELSE
20840 NULL;
20841 -- No business flow processing for business flow method of NONE.
20842 END IF;
20843
20844 --
20845 -- call analytical criteria
20846 --
20847
20848 --
20849 -- call description
20850 --
20851 -- No description or it is inherited.
20852 --
20853 -- call ADRs
20854 -- Bug 4922099
20855 --
20856 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20857 (NVL(l_actual_upg_option, 'N') = 'O') OR
20858 (NVL(l_enc_upg_option, 'N') = 'O')
20859 )
20860 THEN
20861 NULL;
20862 --
20863 --
20864
20865 l_ccid := AcctDerRule_14(
20866 p_application_id => p_application_id
20867 , p_ae_header_id => l_ae_header_id
20868 , p_source_5 => p_source_5
20869 , p_source_7 => p_source_7
20870 , p_source_8 => p_source_8
20871 , x_transaction_coa_id => l_adr_transaction_coa_id
20872 , x_accounting_coa_id => l_adr_accounting_coa_id
20873 , x_value_type_code => l_adr_value_type_code
20874 , p_side => 'NA'
20875 );
20876
20877 xla_ae_lines_pkg.set_ccid(
20878 p_code_combination_id => l_ccid
20879 , p_value_type_code => l_adr_value_type_code
20880 , p_transaction_coa_id => l_adr_transaction_coa_id
20881 , p_accounting_coa_id => l_adr_accounting_coa_id
20882 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
20883 , p_adr_type_code => 'S'
20884 , p_component_type => l_component_type
20885 , p_component_code => l_component_code
20886 , p_component_type_code => l_component_type_code
20887 , p_component_appl_id => l_component_appl_id
20888 , p_amb_context_code => l_amb_context_code
20889 , p_side => 'NA'
20890 );
20891
20892
20893 l_segment := AcctDerRule_5(
20894 p_application_id => p_application_id
20895 , p_ae_header_id => l_ae_header_id
20896 , x_transaction_coa_id => l_adr_transaction_coa_id
20897 , x_accounting_coa_id => l_adr_accounting_coa_id
20898 , x_flexfield_segment_code => l_adr_flexfield_segment_code
20899 , x_flex_value_set_id => l_adr_flex_value_set_id
20900 , x_value_type_code => l_adr_value_type_code
20901 , x_value_combination_id => l_adr_value_combination_id
20902 , x_value_segment_code => l_adr_value_segment_code
20903 , p_side => 'NA'
20904 , p_override_seg_flag => 'Y'
20905 );
20906
20907 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
20908
20909 xla_ae_lines_pkg.set_segment(
20910 p_to_segment_code => 'GL_ACCOUNT'
20911 , p_segment_value => l_segment
20912 , p_from_segment_code => l_adr_value_segment_code
20913 , p_from_combination_id => l_adr_value_combination_id
20914 , p_value_type_code => l_adr_value_type_code
20915 , p_transaction_coa_id => l_adr_transaction_coa_id
20916 , p_accounting_coa_id => l_adr_accounting_coa_id
20917 , p_flexfield_segment_code => l_adr_flexfield_segment_code
20918 , p_flex_value_set_id => l_adr_flex_value_set_id
20919 , p_adr_code => 'FV_490201_PROJECTS'
20920 , p_adr_type_code => 'S'
20921 , p_component_type => l_component_type
20922 , p_component_code => l_component_code
20923 , p_component_type_code => l_component_type_code
20924 , p_component_appl_id => l_component_appl_id
20928 , p_side => 'NA'
20925 , p_amb_context_code => l_amb_context_code
20926 , p_entity_code => 'EXPENDITURES'
20927 , p_event_class_code => 'SUPPLIER_COST'
20929 );
20930
20931 END IF;
20932
20933 --
20934 --
20935 END IF;
20936 --
20937 -- Bug 4922099
20938 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20939 (NVL(l_enc_upg_option, 'N') = 'O')
20940 ) AND
20941 (l_bflow_method_code = 'PRIOR_ENTRY')
20942 )
20943 THEN
20944 IF
20945 --
20946 1 = 2
20947 --
20948 THEN
20949 xla_accounting_err_pkg.build_message
20950 (p_appli_s_name => 'XLA'
20951 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20952 ,p_token_1 => 'LINE_NUMBER'
20953 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
20954 ,p_token_2 => 'LINE_TYPE_NAME'
20955 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
20956 l_component_type
20957 ,l_component_code
20958 ,l_component_type_code
20959 ,l_component_appl_id
20960 ,l_amb_context_code
20961 ,l_entity_code
20962 ,l_event_class_code
20963 )
20964 ,p_token_3 => 'OWNER'
20965 ,p_value_3 => xla_lookups_pkg.get_meaning(
20966 p_lookup_type => 'XLA_OWNER_TYPE'
20967 ,p_lookup_code => l_component_type_code
20968 )
20969 ,p_token_4 => 'PRODUCT_NAME'
20970 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
20971 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
20972 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
20973 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
20974 ,p_ae_header_id => NULL
20975 );
20976
20977 IF (C_LEVEL_ERROR>= g_log_level) THEN
20978 trace
20979 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20980 ,p_level => C_LEVEL_ERROR
20981 ,p_module => l_log_module);
20982 END IF;
20983 END IF;
20984 END IF;
20985 --
20986 --
20987 ------------------------------------------------------------------------------------------------
20988 -- 4219869 Business Flow
20989 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
20990 -- Prior Entry. Currently, the following code is always generated.
20991 ------------------------------------------------------------------------------------------------
20992 XLA_AE_LINES_PKG.ValidateCurrentLine;
20993
20994 ------------------------------------------------------------------------------------
20995 -- 4219869 Business Flow
20996 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
20997 ------------------------------------------------------------------------------------
20998 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20999
21000 ----------------------------------------------------------------------------------
21001 -- 4219869 Business Flow
21002 -- Update journal entry status -- Need to generate this within IF <condition>
21003 ----------------------------------------------------------------------------------
21004 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21005 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
21006 ,p_balance_type_code => l_balance_type_code
21007 );
21008
21009 -------------------------------------------------------------------------------------------
21010 -- 4262811 - Generate the Accrual Reversal lines
21011 -------------------------------------------------------------------------------------------
21012 BEGIN
21013 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
21014 (g_array_event(p_event_id).array_value_num('header_index'));
21015 IF l_acc_rev_flag IS NULL THEN
21016 l_acc_rev_flag := 'N';
21017 END IF;
21018 EXCEPTION
21019 WHEN OTHERS THEN
21020 l_acc_rev_flag := 'N';
21021 END;
21022 --
21023 IF (l_acc_rev_flag = 'Y') THEN
21024
21025 -- 4645092 ------------------------------------------------------------------------------
21026 -- To allow MPA report to determine if it should generate report process
21027 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
21028 ------------------------------------------------------------------------------------------
21029
21030 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
21034 -- Update the line information that should be overwritten
21031 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
21032
21033 --
21035 --
21036 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
21037 p_header_num => 1);
21038 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
21039
21040 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
21041
21042 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
21043 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
21044 END IF;
21045
21046 --
21047 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
21048 --
21049 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
21050 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
21051 ELSE
21052 ---------------------------------------------------------------------------------------------------
21053 -- 4262811a Switch Sign
21054 ---------------------------------------------------------------------------------------------------
21055 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
21056 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21057 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21058 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21059 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21060 -- 5132302
21061 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
21062 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21063
21064 END IF;
21065
21066 -- 4955764
21067 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21068 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
21069
21070
21071 XLA_AE_LINES_PKG.ValidateCurrentLine;
21072 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21073
21074 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21075 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
21076 ,p_balance_type_code => l_balance_type_code);
21077
21078 END IF;
21079
21080 -----------------------------------------------------------------------------------------
21081 -- 4262811 Multiperiod Accounting
21082 -----------------------------------------------------------------------------------------
21083 -- No MPA option is assigned.
21084
21085
21086 END IF;
21087 END IF;
21088 --
21089
21090 --
21091 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21092 trace
21093 (p_msg => 'END of AcctLineType_57'
21094 ,p_level => C_LEVEL_PROCEDURE
21095 ,p_module => l_log_module);
21096 END IF;
21097 --
21098 EXCEPTION
21099 WHEN xla_exceptions_pkg.application_exception THEN
21100 RAISE;
21101 WHEN OTHERS THEN
21102 xla_exceptions_pkg.raise_message
21103 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_57');
21104 END AcctLineType_57;
21105 --
21106
21107 ---------------------------------------
21108 --
21109 -- PRIVATE FUNCTION
21110 -- AcctLineType_58
21111 --
21112 ---------------------------------------
21113 PROCEDURE AcctLineType_58 (
21114 p_application_id IN NUMBER
21115 ,p_event_id IN NUMBER
21116 ,p_calculate_acctd_flag IN VARCHAR2
21117 ,p_calculate_g_l_flag IN VARCHAR2
21118 ,p_actual_flag IN OUT VARCHAR2
21119 ,p_balance_type_code OUT VARCHAR2
21120 ,p_gain_or_loss_ref OUT VARCHAR2
21121
21122 --Cost CCID
21123 , p_source_4 IN NUMBER
21124 --Allow Account Override Flag
21125 , p_source_5 IN VARCHAR2
21126 --Cost Clearing CCID
21127 , p_source_7 IN NUMBER
21128 --Adjustment Cost Clearing CCID
21129 , p_source_8 IN NUMBER
21130 --Exchange Rate Variance Flag
21131 , p_source_22 IN VARCHAR2
21132 --Reversing Line Flag
21133 , p_source_23 IN VARCHAR2
21134 --Actual Upgrade Credit Accounting Class
21135 , p_source_24 IN VARCHAR2
21136 --Entered Raw Cost
21137 , p_source_25 IN NUMBER
21138 --Entered Currency Code
21139 , p_source_26 IN VARCHAR2
21140 --Accounted Raw Cost
21141 , p_source_27 IN NUMBER
21142 --Exchange Rate Date
21143 , p_source_28 IN DATE
21144 --Exchange Rate
21145 , p_source_29 IN NUMBER
21146 --Exchange Rate Type
21147 , p_source_30 IN VARCHAR2
21148 --Actual Upgrade Debit Accounting Class
21149 , p_source_31 IN VARCHAR2
21150 --Use Actuals Upgrade Attributes Flag
21151 , p_source_32 IN VARCHAR2
21152 --Expenditure Item ID
21153 , p_source_33 IN NUMBER
21154 --Cost Distribution Line Number
21155 , p_source_34 IN NUMBER
21156 --Line Type
21157 , p_source_35 IN VARCHAR2
21158 , p_source_35_meaning IN VARCHAR2
21159 --Reversed Line Number
21160 , p_source_36 IN NUMBER
21161 )
21162 IS
21163
21164 l_component_type VARCHAR2(80);
21165 l_component_code VARCHAR2(30);
21166 l_component_type_code VARCHAR2(1);
21170 l_event_class_code VARCHAR2(30);
21167 l_component_appl_id INTEGER;
21168 l_amb_context_code VARCHAR2(30);
21169 l_entity_code VARCHAR2(30);
21171 l_ae_header_id NUMBER;
21172 l_event_type_code VARCHAR2(30);
21173 l_line_definition_code VARCHAR2(30);
21174 l_line_definition_owner_code VARCHAR2(1);
21175 --
21176 -- adr variables
21177 l_segment VARCHAR2(30);
21178 l_ccid NUMBER;
21179 l_adr_transaction_coa_id NUMBER;
21180 l_adr_accounting_coa_id NUMBER;
21181 l_adr_flexfield_segment_code VARCHAR2(30);
21182 l_adr_flex_value_set_id NUMBER;
21183 l_adr_value_type_code VARCHAR2(30);
21184 l_adr_value_combination_id NUMBER;
21185 l_adr_value_segment_code VARCHAR2(30);
21186
21187 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
21188 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
21189 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
21190 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
21191
21192 -- 4262811 Variables ------------------------------------------------------------------------------------------
21193 l_entered_amt_idx NUMBER;
21194 l_accted_amt_idx NUMBER;
21195 l_acc_rev_flag VARCHAR2(1);
21196 l_accrual_line_num NUMBER;
21197 l_tmp_amt NUMBER;
21198 l_acc_rev_natural_side_code VARCHAR2(1);
21199
21200 l_num_entries NUMBER;
21201 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
21202 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
21203 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
21204 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
21205 l_recog_line_1 NUMBER;
21206 l_recog_line_2 NUMBER;
21207
21208 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
21209 l_bflow_applied_to_amt NUMBER; -- 5132302
21210 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
21211
21212 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21213
21214 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
21215 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
21216
21217 ---------------------------------------------------------------------------------------------------------------
21218
21219
21220 --
21221 -- bulk performance
21222 --
21223 l_balance_type_code VARCHAR2(1);
21224 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
21225 l_log_module VARCHAR2(240);
21226
21227 --
21228 -- Upgrade strategy
21229 --
21230 l_actual_upg_option VARCHAR2(1);
21231 l_enc_upg_option VARCHAR2(1);
21232
21233 --
21234 BEGIN
21235 --
21236 IF g_log_enabled THEN
21237 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_58';
21238 END IF;
21239 --
21240 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21241
21242 trace
21243 (p_msg => 'BEGIN of AcctLineType_58'
21244 ,p_level => C_LEVEL_PROCEDURE
21245 ,p_module => l_log_module);
21246
21247 END IF;
21248 --
21249 l_component_type := 'AMB_JLT';
21250 l_component_code := 'PA_EXCH_RATE_VAR_CLEAR_FED';
21251 l_component_type_code := 'S';
21252 l_component_appl_id := 275;
21253 l_amb_context_code := 'DEFAULT';
21254 l_entity_code := 'EXPENDITURES';
21255 l_event_class_code := 'SUPPLIER_COST_ADJ';
21256 l_event_type_code := 'SUPPLIER_COST_ADJ_ALL';
21257 l_line_definition_owner_code := 'S';
21258 l_line_definition_code := 'FV_PROJECTS_JLD';
21259 --
21260 l_balance_type_code := 'A';
21261 l_segment := NULL;
21262 l_ccid := NULL;
21263 l_adr_transaction_coa_id := NULL;
21264 l_adr_accounting_coa_id := NULL;
21265 l_adr_flexfield_segment_code := NULL;
21266 l_adr_flex_value_set_id := NULL;
21267 l_adr_value_type_code := NULL;
21268 l_adr_value_combination_id := NULL;
21269 l_adr_value_segment_code := NULL;
21270
21271 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
21272 l_bflow_class_code := ''; -- 4219869 Business Flow
21273 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
21274 l_budgetary_control_flag := 'N';
21275
21276 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21277 l_bflow_applied_to_amt := NULL; -- 5132302
21278 l_entered_amt_idx := NULL; -- 4262811
21279 l_accted_amt_idx := NULL; -- 4262811
21280 l_acc_rev_flag := NULL; -- 4262811
21281 l_accrual_line_num := NULL; -- 4262811
21282 l_tmp_amt := NULL; -- 4262811
21283 --
21284 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
21285 (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
21286 return;
21287 END IF;
21288
21289 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21290 l_balance_type_code <> 'B' THEN
21291 IF NVL(p_source_22,'
21292 ') = 'Y'
21293 THEN
21294
21295 --
21296 XLA_AE_LINES_PKG.SetNewLine;
21297
21298 p_balance_type_code := l_balance_type_code;
21302 p_actual_flag :='G';
21299 -- set the flag so later we will know whether the gain loss line needs to be created
21300
21301 IF(l_balance_type_code = 'A' ) THEN
21303 END IF;
21304
21305 --
21306 -- bulk performance
21307 --
21308 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21309 p_header_num => 0); -- 4262811
21310 --
21311 -- set accounting line options
21312 --
21313 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21314 p_natural_side_code => 'C'
21315 , p_gain_or_loss_flag => 'Y'
21316 , p_gl_transfer_mode_code => 'S'
21317 , p_acct_entry_type_code => 'A'
21318 , p_switch_side_flag => 'Y'
21319 , p_merge_duplicate_code => 'N'
21320 );
21321 --
21322 l_acc_rev_natural_side_code := 'D'; -- 4262811
21323 --
21324 --
21325 -- set accounting line type info
21326 --
21327 xla_ae_lines_pkg.SetAcctLineType
21328 (p_component_type => l_component_type
21329 ,p_event_type_code => l_event_type_code
21330 ,p_line_definition_owner_code => l_line_definition_owner_code
21331 ,p_line_definition_code => l_line_definition_code
21332 ,p_accounting_line_code => l_component_code
21333 ,p_accounting_line_type_code => l_component_type_code
21334 ,p_accounting_line_appl_id => l_component_appl_id
21335 ,p_amb_context_code => l_amb_context_code
21336 ,p_entity_code => l_entity_code
21337 ,p_event_class_code => l_event_class_code);
21338 --
21339 -- set accounting class
21340 --
21341 xla_ae_lines_pkg.SetAcctClass(
21342 p_accounting_class_code => 'FEDERAL_PROJECT_COST_CLEARING'
21343 , p_ae_header_id => l_ae_header_id
21344 );
21345
21346 --
21347 -- set rounding class
21348 --
21349 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
21350 'FEDERAL_PROJECT_COST_CLEARING';
21351
21352 --
21353 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
21354 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
21355 --
21356 -- bulk performance
21357 --
21358 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
21359
21360 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
21361 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
21362
21363 -- 4955764
21364 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21365 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
21366
21367 -- 4458381 Public Sector Enh
21368
21369 --
21370 -- set accounting attributes for the line type
21371 --
21372 l_entered_amt_idx := 22;
21373 l_accted_amt_idx := 27;
21374 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21375 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
21376 l_rec_acct_attrs.array_char_value(1) := p_source_23;
21377 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
21378 l_rec_acct_attrs.array_char_value(2) := p_source_24;
21379 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
21380 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
21381 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
21382 l_rec_acct_attrs.array_num_value(4) := p_source_25;
21383 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
21384 l_rec_acct_attrs.array_char_value(5) := p_source_26;
21385 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
21386 l_rec_acct_attrs.array_num_value(6) := p_source_27;
21387 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
21388 l_rec_acct_attrs.array_date_value(7) := p_source_28;
21389 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
21390 l_rec_acct_attrs.array_num_value(8) := p_source_29;
21391 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
21392 l_rec_acct_attrs.array_char_value(9) := p_source_30;
21393 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
21394 l_rec_acct_attrs.array_char_value(10) := p_source_31;
21395 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
21396 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
21397 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
21398 l_rec_acct_attrs.array_num_value(12) := p_source_25;
21399 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
21400 l_rec_acct_attrs.array_char_value(13) := p_source_26;
21401 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
21402 l_rec_acct_attrs.array_num_value(14) := p_source_27;
21403 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
21404 l_rec_acct_attrs.array_date_value(15) := p_source_28;
21405 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
21406 l_rec_acct_attrs.array_num_value(16) := p_source_29;
21407 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
21408 l_rec_acct_attrs.array_char_value(17) := p_source_30;
21409 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
21410 l_rec_acct_attrs.array_char_value(18) := p_source_32;
21411 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
21412 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
21413 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
21417 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
21414 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
21415 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
21416 l_rec_acct_attrs.array_char_value(21) := p_source_35;
21418 l_rec_acct_attrs.array_num_value(22) := p_source_25;
21419 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
21420 l_rec_acct_attrs.array_char_value(23) := p_source_26;
21421 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
21422 l_rec_acct_attrs.array_date_value(24) := p_source_28;
21423 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
21424 l_rec_acct_attrs.array_num_value(25) := p_source_29;
21425 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
21426 l_rec_acct_attrs.array_char_value(26) := p_source_30;
21427 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
21428 l_rec_acct_attrs.array_num_value(27) := p_source_27;
21429 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
21430 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
21431 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
21432 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
21433 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
21434 l_rec_acct_attrs.array_char_value(30) := p_source_35;
21435
21436 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
21437 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
21438
21439 ---------------------------------------------------------------------------------------------------------------
21440 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
21441 ---------------------------------------------------------------------------------------------------------------
21442 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
21443
21444 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21445 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21446
21447 IF xla_accounting_cache_pkg.GetValueChar
21448 (p_source_code => 'LEDGER_CATEGORY_CODE'
21449 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
21450 AND l_bflow_method_code = 'PRIOR_ENTRY'
21451 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
21452 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
21453 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
21454 )
21455 THEN
21456 xla_ae_lines_pkg.BflowUpgEntry
21457 (p_business_method_code => l_bflow_method_code
21458 ,p_business_class_code => l_bflow_class_code
21459 ,p_balance_type => l_balance_type_code);
21460 ELSE
21461 NULL;
21462 -- No business flow processing for business flow method of NONE.
21463 END IF;
21464
21465 --
21466 -- call analytical criteria
21467 --
21468
21469 --
21470 -- call description
21471 --
21472 -- No description or it is inherited.
21473 --
21474 -- call ADRs
21475 -- Bug 4922099
21476 --
21477 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21478 (NVL(l_actual_upg_option, 'N') = 'O') OR
21479 (NVL(l_enc_upg_option, 'N') = 'O')
21480 )
21481 THEN
21482 NULL;
21483 --
21484 --
21485
21486 l_ccid := AcctDerRule_15(
21487 p_application_id => p_application_id
21488 , p_ae_header_id => l_ae_header_id
21489 , p_source_5 => p_source_5
21490 , p_source_8 => p_source_8
21491 , x_transaction_coa_id => l_adr_transaction_coa_id
21492 , x_accounting_coa_id => l_adr_accounting_coa_id
21493 , x_value_type_code => l_adr_value_type_code
21494 , p_side => 'NA'
21495 );
21496
21497 xla_ae_lines_pkg.set_ccid(
21498 p_code_combination_id => l_ccid
21499 , p_value_type_code => l_adr_value_type_code
21500 , p_transaction_coa_id => l_adr_transaction_coa_id
21501 , p_accounting_coa_id => l_adr_accounting_coa_id
21502 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
21503 , p_adr_type_code => 'S'
21504 , p_component_type => l_component_type
21505 , p_component_code => l_component_code
21506 , p_component_type_code => l_component_type_code
21507 , p_component_appl_id => l_component_appl_id
21508 , p_amb_context_code => l_amb_context_code
21509 , p_side => 'NA'
21510 );
21511
21512
21513 l_segment := AcctDerRule_5(
21514 p_application_id => p_application_id
21515 , p_ae_header_id => l_ae_header_id
21516 , x_transaction_coa_id => l_adr_transaction_coa_id
21517 , x_accounting_coa_id => l_adr_accounting_coa_id
21518 , x_flexfield_segment_code => l_adr_flexfield_segment_code
21519 , x_flex_value_set_id => l_adr_flex_value_set_id
21520 , x_value_type_code => l_adr_value_type_code
21521 , x_value_combination_id => l_adr_value_combination_id
21522 , x_value_segment_code => l_adr_value_segment_code
21523 , p_side => 'NA'
21524 , p_override_seg_flag => 'Y'
21525 );
21526
21527 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
21528
21529 xla_ae_lines_pkg.set_segment(
21530 p_to_segment_code => 'GL_ACCOUNT'
21531 , p_segment_value => l_segment
21535 , p_transaction_coa_id => l_adr_transaction_coa_id
21532 , p_from_segment_code => l_adr_value_segment_code
21533 , p_from_combination_id => l_adr_value_combination_id
21534 , p_value_type_code => l_adr_value_type_code
21536 , p_accounting_coa_id => l_adr_accounting_coa_id
21537 , p_flexfield_segment_code => l_adr_flexfield_segment_code
21538 , p_flex_value_set_id => l_adr_flex_value_set_id
21539 , p_adr_code => 'FV_490201_PROJECTS'
21540 , p_adr_type_code => 'S'
21541 , p_component_type => l_component_type
21542 , p_component_code => l_component_code
21543 , p_component_type_code => l_component_type_code
21544 , p_component_appl_id => l_component_appl_id
21545 , p_amb_context_code => l_amb_context_code
21546 , p_entity_code => 'EXPENDITURES'
21547 , p_event_class_code => 'SUPPLIER_COST_ADJ'
21548 , p_side => 'NA'
21549 );
21550
21551 END IF;
21552
21553 --
21554 --
21555 END IF;
21556 --
21557 -- Bug 4922099
21558 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
21559 (NVL(l_enc_upg_option, 'N') = 'O')
21560 ) AND
21561 (l_bflow_method_code = 'PRIOR_ENTRY')
21562 )
21563 THEN
21564 IF
21565 --
21566 1 = 2
21567 --
21568 THEN
21569 xla_accounting_err_pkg.build_message
21570 (p_appli_s_name => 'XLA'
21571 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21572 ,p_token_1 => 'LINE_NUMBER'
21573 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
21574 ,p_token_2 => 'LINE_TYPE_NAME'
21575 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
21576 l_component_type
21577 ,l_component_code
21578 ,l_component_type_code
21579 ,l_component_appl_id
21580 ,l_amb_context_code
21581 ,l_entity_code
21582 ,l_event_class_code
21583 )
21584 ,p_token_3 => 'OWNER'
21585 ,p_value_3 => xla_lookups_pkg.get_meaning(
21586 p_lookup_type => 'XLA_OWNER_TYPE'
21587 ,p_lookup_code => l_component_type_code
21588 )
21589 ,p_token_4 => 'PRODUCT_NAME'
21590 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
21591 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
21592 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
21593 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
21594 ,p_ae_header_id => NULL
21595 );
21596
21597 IF (C_LEVEL_ERROR>= g_log_level) THEN
21598 trace
21599 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21600 ,p_level => C_LEVEL_ERROR
21601 ,p_module => l_log_module);
21602 END IF;
21603 END IF;
21604 END IF;
21605 --
21606 --
21607 ------------------------------------------------------------------------------------------------
21608 -- 4219869 Business Flow
21609 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
21610 -- Prior Entry. Currently, the following code is always generated.
21611 ------------------------------------------------------------------------------------------------
21612 XLA_AE_LINES_PKG.ValidateCurrentLine;
21613
21614 ------------------------------------------------------------------------------------
21615 -- 4219869 Business Flow
21616 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
21617 ------------------------------------------------------------------------------------
21618 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21619
21620 ----------------------------------------------------------------------------------
21621 -- 4219869 Business Flow
21622 -- Update journal entry status -- Need to generate this within IF <condition>
21623 ----------------------------------------------------------------------------------
21624 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21625 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
21626 ,p_balance_type_code => l_balance_type_code
21627 );
21628
21629 -------------------------------------------------------------------------------------------
21630 -- 4262811 - Generate the Accrual Reversal lines
21631 -------------------------------------------------------------------------------------------
21632 BEGIN
21633 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
21637 END IF;
21634 (g_array_event(p_event_id).array_value_num('header_index'));
21635 IF l_acc_rev_flag IS NULL THEN
21636 l_acc_rev_flag := 'N';
21638 EXCEPTION
21639 WHEN OTHERS THEN
21640 l_acc_rev_flag := 'N';
21641 END;
21642 --
21643 IF (l_acc_rev_flag = 'Y') THEN
21644
21645 -- 4645092 ------------------------------------------------------------------------------
21646 -- To allow MPA report to determine if it should generate report process
21647 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
21648 ------------------------------------------------------------------------------------------
21649
21650 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
21651 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
21652
21653 --
21654 -- Update the line information that should be overwritten
21655 --
21656 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
21657 p_header_num => 1);
21658 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
21659
21660 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
21661
21662 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
21663 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
21664 END IF;
21665
21666 --
21667 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
21668 --
21669 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
21670 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
21671 ELSE
21672 ---------------------------------------------------------------------------------------------------
21673 -- 4262811a Switch Sign
21674 ---------------------------------------------------------------------------------------------------
21675 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
21676 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21677 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21678 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21679 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21680 -- 5132302
21681 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
21682 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21683
21684 END IF;
21685
21686 -- 4955764
21687 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21688 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
21689
21690
21691 XLA_AE_LINES_PKG.ValidateCurrentLine;
21692 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21693
21694 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21695 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
21696 ,p_balance_type_code => l_balance_type_code);
21697
21698 END IF;
21699
21700 -----------------------------------------------------------------------------------------
21701 -- 4262811 Multiperiod Accounting
21702 -----------------------------------------------------------------------------------------
21703 -- No MPA option is assigned.
21704
21705
21706 END IF;
21707 END IF;
21708 --
21709
21710 --
21711 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21712 trace
21713 (p_msg => 'END of AcctLineType_58'
21714 ,p_level => C_LEVEL_PROCEDURE
21715 ,p_module => l_log_module);
21716 END IF;
21717 --
21718 EXCEPTION
21719 WHEN xla_exceptions_pkg.application_exception THEN
21720 RAISE;
21721 WHEN OTHERS THEN
21722 xla_exceptions_pkg.raise_message
21723 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_58');
21724 END AcctLineType_58;
21725 --
21726
21727 ---------------------------------------
21728 --
21729 -- PRIVATE FUNCTION
21730 -- AcctLineType_59
21731 --
21732 ---------------------------------------
21733 PROCEDURE AcctLineType_59 (
21734 p_application_id IN NUMBER
21735 ,p_event_id IN NUMBER
21736 ,p_calculate_acctd_flag IN VARCHAR2
21737 ,p_calculate_g_l_flag IN VARCHAR2
21738 ,p_actual_flag IN OUT VARCHAR2
21739 ,p_balance_type_code OUT VARCHAR2
21740 ,p_gain_or_loss_ref OUT VARCHAR2
21741
21742 --Revenue CCID
21743 , p_source_19 IN NUMBER
21744 --Entered Currency Code
21745 , p_source_26 IN VARCHAR2
21746 --Exchange Rate Date
21747 , p_source_28 IN DATE
21748 --Exchange Rate
21749 , p_source_29 IN NUMBER
21750 --Exchange Rate Type
21751 , p_source_30 IN VARCHAR2
21752 --Entered Amount
21753 , p_source_42 IN NUMBER
21754 --Accounted Amount
21755 , p_source_43 IN NUMBER
21756 --Revenue Distribution Type
21757 , p_source_46 IN VARCHAR2
21758 --System Linkage Function
21759 , p_source_47 IN VARCHAR2
21760 --Crediting Revenue Flag
21761 , p_source_48 IN VARCHAR2
21762 --Revenue First Distribution ID
21763 , p_source_49 IN NUMBER
21764 --Revenue Second Distribution ID
21765 , p_source_50 IN NUMBER
21766 --Event ID
21770
21767 , p_source_51 IN NUMBER
21768 )
21769 IS
21771 l_component_type VARCHAR2(80);
21772 l_component_code VARCHAR2(30);
21773 l_component_type_code VARCHAR2(1);
21774 l_component_appl_id INTEGER;
21775 l_amb_context_code VARCHAR2(30);
21776 l_entity_code VARCHAR2(30);
21777 l_event_class_code VARCHAR2(30);
21778 l_ae_header_id NUMBER;
21779 l_event_type_code VARCHAR2(30);
21780 l_line_definition_code VARCHAR2(30);
21781 l_line_definition_owner_code VARCHAR2(1);
21782 --
21783 -- adr variables
21784 l_segment VARCHAR2(30);
21785 l_ccid NUMBER;
21786 l_adr_transaction_coa_id NUMBER;
21787 l_adr_accounting_coa_id NUMBER;
21788 l_adr_flexfield_segment_code VARCHAR2(30);
21789 l_adr_flex_value_set_id NUMBER;
21790 l_adr_value_type_code VARCHAR2(30);
21791 l_adr_value_combination_id NUMBER;
21792 l_adr_value_segment_code VARCHAR2(30);
21793
21794 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
21795 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
21796 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
21797 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
21798
21799 -- 4262811 Variables ------------------------------------------------------------------------------------------
21800 l_entered_amt_idx NUMBER;
21801 l_accted_amt_idx NUMBER;
21802 l_acc_rev_flag VARCHAR2(1);
21803 l_accrual_line_num NUMBER;
21804 l_tmp_amt NUMBER;
21805 l_acc_rev_natural_side_code VARCHAR2(1);
21806
21807 l_num_entries NUMBER;
21808 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
21809 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
21810 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
21811 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
21812 l_recog_line_1 NUMBER;
21813 l_recog_line_2 NUMBER;
21814
21815 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
21816 l_bflow_applied_to_amt NUMBER; -- 5132302
21817 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
21818
21819 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21820
21821 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
21822 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
21823
21824 ---------------------------------------------------------------------------------------------------------------
21825
21826
21827 --
21828 -- bulk performance
21829 --
21830 l_balance_type_code VARCHAR2(1);
21831 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
21832 l_log_module VARCHAR2(240);
21833
21834 --
21835 -- Upgrade strategy
21836 --
21837 l_actual_upg_option VARCHAR2(1);
21838 l_enc_upg_option VARCHAR2(1);
21839
21840 --
21841 BEGIN
21842 --
21843 IF g_log_enabled THEN
21844 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_59';
21845 END IF;
21846 --
21847 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21848
21849 trace
21850 (p_msg => 'BEGIN of AcctLineType_59'
21851 ,p_level => C_LEVEL_PROCEDURE
21852 ,p_module => l_log_module);
21853
21854 END IF;
21855 --
21856 l_component_type := 'AMB_JLT';
21857 l_component_code := 'PA_INV_REV';
21858 l_component_type_code := 'S';
21859 l_component_appl_id := 275;
21860 l_amb_context_code := 'DEFAULT';
21861 l_entity_code := 'REVENUE';
21862 l_event_class_code := 'REVENUE';
21863 l_event_type_code := 'REVENUE_ALL';
21864 l_line_definition_owner_code := 'S';
21865 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
21866 --
21867 l_balance_type_code := 'A';
21868 l_segment := NULL;
21869 l_ccid := NULL;
21870 l_adr_transaction_coa_id := NULL;
21871 l_adr_accounting_coa_id := NULL;
21872 l_adr_flexfield_segment_code := NULL;
21873 l_adr_flex_value_set_id := NULL;
21874 l_adr_value_type_code := NULL;
21875 l_adr_value_combination_id := NULL;
21876 l_adr_value_segment_code := NULL;
21877
21878 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
21879 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
21880 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
21881 l_budgetary_control_flag := 'N';
21882
21883 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21884 l_bflow_applied_to_amt := NULL; -- 5132302
21885 l_entered_amt_idx := NULL; -- 4262811
21886 l_accted_amt_idx := NULL; -- 4262811
21887 l_acc_rev_flag := NULL; -- 4262811
21888 l_accrual_line_num := NULL; -- 4262811
21889 l_tmp_amt := NULL; -- 4262811
21890 --
21891
21892 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21893 l_balance_type_code <> 'B' THEN
21894 IF NVL(p_source_46,'
21895 ') = 'Revenue - Normal Revenue' AND
21896 NVL(p_source_47,'
21897 ') = 'INV' AND
21898 NVL(p_source_48,'
21899 ') = 'N'
21900 THEN
21901
21902 --
21903 XLA_AE_LINES_PKG.SetNewLine;
21904
21905 p_balance_type_code := l_balance_type_code;
21909 p_actual_flag :='A';
21906 -- set the flag so later we will know whether the gain loss line needs to be created
21907
21908 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21910 END IF;
21911
21912 --
21913 -- bulk performance
21914 --
21915 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21916 p_header_num => 0); -- 4262811
21917 --
21918 -- set accounting line options
21919 --
21920 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21921 p_natural_side_code => 'C'
21922 , p_gain_or_loss_flag => 'N'
21923 , p_gl_transfer_mode_code => 'S'
21924 , p_acct_entry_type_code => 'A'
21925 , p_switch_side_flag => 'Y'
21926 , p_merge_duplicate_code => 'N'
21927 );
21928 --
21929 l_acc_rev_natural_side_code := 'D'; -- 4262811
21930 --
21931 --
21932 -- set accounting line type info
21933 --
21934 xla_ae_lines_pkg.SetAcctLineType
21935 (p_component_type => l_component_type
21936 ,p_event_type_code => l_event_type_code
21937 ,p_line_definition_owner_code => l_line_definition_owner_code
21938 ,p_line_definition_code => l_line_definition_code
21939 ,p_accounting_line_code => l_component_code
21940 ,p_accounting_line_type_code => l_component_type_code
21941 ,p_accounting_line_appl_id => l_component_appl_id
21942 ,p_amb_context_code => l_amb_context_code
21943 ,p_entity_code => l_entity_code
21944 ,p_event_class_code => l_event_class_code);
21945 --
21946 -- set accounting class
21947 --
21948 xla_ae_lines_pkg.SetAcctClass(
21949 p_accounting_class_code => 'REVENUE'
21950 , p_ae_header_id => l_ae_header_id
21951 );
21952
21953 --
21954 -- set rounding class
21955 --
21956 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
21957 'REVENUE';
21958
21959 --
21960 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
21961 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
21962 --
21963 -- bulk performance
21964 --
21965 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
21966
21967 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
21968 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
21969
21970 -- 4955764
21971 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21972 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
21973
21974 -- 4458381 Public Sector Enh
21975
21976 --
21977 -- set accounting attributes for the line type
21978 --
21979 l_entered_amt_idx := 4;
21980 l_accted_amt_idx := 10;
21981 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21982 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
21983 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_49);
21984 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
21985 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_50);
21986 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
21987 l_rec_acct_attrs.array_char_value(3) := p_source_46;
21988 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
21989 l_rec_acct_attrs.array_num_value(4) := p_source_42;
21990 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
21991 l_rec_acct_attrs.array_char_value(5) := p_source_26;
21992 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
21993 l_rec_acct_attrs.array_date_value(6) := p_source_28;
21994 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
21995 l_rec_acct_attrs.array_num_value(7) := p_source_29;
21996 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
21997 l_rec_acct_attrs.array_char_value(8) := p_source_30;
21998 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
21999 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_51);
22000 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
22001 l_rec_acct_attrs.array_num_value(10) := p_source_43;
22002
22003 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
22004 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
22005
22006 ---------------------------------------------------------------------------------------------------------------
22007 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
22008 ---------------------------------------------------------------------------------------------------------------
22009 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
22010
22011 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22012 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22013
22014 IF xla_accounting_cache_pkg.GetValueChar
22015 (p_source_code => 'LEDGER_CATEGORY_CODE'
22016 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
22017 AND l_bflow_method_code = 'PRIOR_ENTRY'
22018 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
22019 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
22020 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
22021 )
22022 THEN
22026 ,p_balance_type => l_balance_type_code);
22023 xla_ae_lines_pkg.BflowUpgEntry
22024 (p_business_method_code => l_bflow_method_code
22025 ,p_business_class_code => l_bflow_class_code
22027 ELSE
22028 NULL;
22029 -- No business flow processing for business flow method of NONE.
22030 END IF;
22031
22032 --
22033 -- call analytical criteria
22034 --
22035
22036 --
22037 -- call description
22038 --
22039 -- No description or it is inherited.
22040 --
22041 -- call ADRs
22042 -- Bug 4922099
22043 --
22044 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22045 (NVL(l_actual_upg_option, 'N') = 'O') OR
22046 (NVL(l_enc_upg_option, 'N') = 'O')
22047 )
22048 THEN
22049 NULL;
22050 --
22051 --
22052
22053 l_ccid := AcctDerRule_26(
22054 p_application_id => p_application_id
22055 , p_ae_header_id => l_ae_header_id
22056 , p_source_19 => p_source_19
22057 , x_transaction_coa_id => l_adr_transaction_coa_id
22058 , x_accounting_coa_id => l_adr_accounting_coa_id
22059 , x_value_type_code => l_adr_value_type_code
22060 , p_side => 'NA'
22061 );
22062
22063 xla_ae_lines_pkg.set_ccid(
22064 p_code_combination_id => l_ccid
22065 , p_value_type_code => l_adr_value_type_code
22066 , p_transaction_coa_id => l_adr_transaction_coa_id
22067 , p_accounting_coa_id => l_adr_accounting_coa_id
22068 , p_adr_code => 'REVENUE_RULE'
22069 , p_adr_type_code => 'S'
22070 , p_component_type => l_component_type
22071 , p_component_code => l_component_code
22072 , p_component_type_code => l_component_type_code
22073 , p_component_appl_id => l_component_appl_id
22074 , p_amb_context_code => l_amb_context_code
22075 , p_side => 'NA'
22076 );
22077
22078
22079 --
22080 --
22081 END IF;
22082 --
22083 -- Bug 4922099
22084 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
22085 (NVL(l_enc_upg_option, 'N') = 'O')
22086 ) AND
22087 (l_bflow_method_code = 'PRIOR_ENTRY')
22088 )
22089 THEN
22090 IF
22091 --
22092 1 = 2
22093 --
22094 THEN
22095 xla_accounting_err_pkg.build_message
22096 (p_appli_s_name => 'XLA'
22097 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22098 ,p_token_1 => 'LINE_NUMBER'
22099 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
22100 ,p_token_2 => 'LINE_TYPE_NAME'
22101 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
22102 l_component_type
22103 ,l_component_code
22104 ,l_component_type_code
22105 ,l_component_appl_id
22106 ,l_amb_context_code
22107 ,l_entity_code
22108 ,l_event_class_code
22109 )
22110 ,p_token_3 => 'OWNER'
22111 ,p_value_3 => xla_lookups_pkg.get_meaning(
22112 p_lookup_type => 'XLA_OWNER_TYPE'
22113 ,p_lookup_code => l_component_type_code
22114 )
22115 ,p_token_4 => 'PRODUCT_NAME'
22116 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
22117 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
22118 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
22119 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
22120 ,p_ae_header_id => NULL
22121 );
22122
22123 IF (C_LEVEL_ERROR>= g_log_level) THEN
22124 trace
22125 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22126 ,p_level => C_LEVEL_ERROR
22127 ,p_module => l_log_module);
22128 END IF;
22129 END IF;
22130 END IF;
22131 --
22132 --
22133 ------------------------------------------------------------------------------------------------
22134 -- 4219869 Business Flow
22135 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
22136 -- Prior Entry. Currently, the following code is always generated.
22137 ------------------------------------------------------------------------------------------------
22138 XLA_AE_LINES_PKG.ValidateCurrentLine;
22139
22140 ------------------------------------------------------------------------------------
22141 -- 4219869 Business Flow
22145
22142 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
22143 ------------------------------------------------------------------------------------
22144 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22146 ----------------------------------------------------------------------------------
22147 -- 4219869 Business Flow
22148 -- Update journal entry status -- Need to generate this within IF <condition>
22149 ----------------------------------------------------------------------------------
22150 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22151 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
22152 ,p_balance_type_code => l_balance_type_code
22153 );
22154
22155 -------------------------------------------------------------------------------------------
22156 -- 4262811 - Generate the Accrual Reversal lines
22157 -------------------------------------------------------------------------------------------
22158 BEGIN
22159 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
22160 (g_array_event(p_event_id).array_value_num('header_index'));
22161 IF l_acc_rev_flag IS NULL THEN
22162 l_acc_rev_flag := 'N';
22163 END IF;
22164 EXCEPTION
22165 WHEN OTHERS THEN
22166 l_acc_rev_flag := 'N';
22167 END;
22168 --
22169 IF (l_acc_rev_flag = 'Y') THEN
22170
22171 -- 4645092 ------------------------------------------------------------------------------
22172 -- To allow MPA report to determine if it should generate report process
22173 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
22174 ------------------------------------------------------------------------------------------
22175
22176 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
22177 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
22178
22179 --
22180 -- Update the line information that should be overwritten
22181 --
22182 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
22183 p_header_num => 1);
22184 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
22185
22186 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
22187
22188 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
22189 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
22190 END IF;
22191
22192 --
22193 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
22194 --
22195 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
22196 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
22197 ELSE
22198 ---------------------------------------------------------------------------------------------------
22199 -- 4262811a Switch Sign
22200 ---------------------------------------------------------------------------------------------------
22201 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
22202 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22203 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22204 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22205 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22206 -- 5132302
22207 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
22208 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22209
22210 END IF;
22211
22212 -- 4955764
22213 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22214 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
22215
22216
22217 XLA_AE_LINES_PKG.ValidateCurrentLine;
22218 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22219
22220 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22221 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
22222 ,p_balance_type_code => l_balance_type_code);
22223
22224 END IF;
22225
22226 -----------------------------------------------------------------------------------------
22227 -- 4262811 Multiperiod Accounting
22228 -----------------------------------------------------------------------------------------
22229 -- No MPA option is assigned.
22230
22231
22232 END IF;
22233 END IF;
22234 --
22235
22236 --
22237 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22238 trace
22239 (p_msg => 'END of AcctLineType_59'
22240 ,p_level => C_LEVEL_PROCEDURE
22241 ,p_module => l_log_module);
22242 END IF;
22243 --
22244 EXCEPTION
22245 WHEN xla_exceptions_pkg.application_exception THEN
22246 RAISE;
22247 WHEN OTHERS THEN
22248 xla_exceptions_pkg.raise_message
22249 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_59');
22250 END AcctLineType_59;
22251 --
22252
22253 ---------------------------------------
22254 --
22255 -- PRIVATE FUNCTION
22256 -- AcctLineType_60
22257 --
22258 ---------------------------------------
22259 PROCEDURE AcctLineType_60 (
22260 p_application_id IN NUMBER
22261 ,p_event_id IN NUMBER
22262 ,p_calculate_acctd_flag IN VARCHAR2
22263 ,p_calculate_g_l_flag IN VARCHAR2
22267
22264 ,p_actual_flag IN OUT VARCHAR2
22265 ,p_balance_type_code OUT VARCHAR2
22266 ,p_gain_or_loss_ref OUT VARCHAR2
22268 --Revenue CCID
22269 , p_source_19 IN NUMBER
22270 --Entered Currency Code
22271 , p_source_26 IN VARCHAR2
22272 --Exchange Rate Date
22273 , p_source_28 IN DATE
22274 --Exchange Rate
22275 , p_source_29 IN NUMBER
22276 --Exchange Rate Type
22277 , p_source_30 IN VARCHAR2
22278 --Entered Amount
22279 , p_source_42 IN NUMBER
22280 --Accounted Amount
22281 , p_source_43 IN NUMBER
22282 --Revenue Distribution Type
22283 , p_source_46 IN VARCHAR2
22284 --System Linkage Function
22285 , p_source_47 IN VARCHAR2
22286 --Crediting Revenue Flag
22287 , p_source_48 IN VARCHAR2
22288 --Revenue First Distribution ID
22289 , p_source_49 IN NUMBER
22290 --Revenue Second Distribution ID
22291 , p_source_50 IN NUMBER
22292 --Event ID
22293 , p_source_51 IN NUMBER
22294 )
22295 IS
22296
22297 l_component_type VARCHAR2(80);
22298 l_component_code VARCHAR2(30);
22299 l_component_type_code VARCHAR2(1);
22300 l_component_appl_id INTEGER;
22301 l_amb_context_code VARCHAR2(30);
22302 l_entity_code VARCHAR2(30);
22303 l_event_class_code VARCHAR2(30);
22304 l_ae_header_id NUMBER;
22305 l_event_type_code VARCHAR2(30);
22306 l_line_definition_code VARCHAR2(30);
22307 l_line_definition_owner_code VARCHAR2(1);
22308 --
22309 -- adr variables
22310 l_segment VARCHAR2(30);
22311 l_ccid NUMBER;
22312 l_adr_transaction_coa_id NUMBER;
22313 l_adr_accounting_coa_id NUMBER;
22314 l_adr_flexfield_segment_code VARCHAR2(30);
22315 l_adr_flex_value_set_id NUMBER;
22316 l_adr_value_type_code VARCHAR2(30);
22317 l_adr_value_combination_id NUMBER;
22318 l_adr_value_segment_code VARCHAR2(30);
22319
22320 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
22321 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
22322 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
22323 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
22324
22325 -- 4262811 Variables ------------------------------------------------------------------------------------------
22326 l_entered_amt_idx NUMBER;
22327 l_accted_amt_idx NUMBER;
22328 l_acc_rev_flag VARCHAR2(1);
22329 l_accrual_line_num NUMBER;
22330 l_tmp_amt NUMBER;
22331 l_acc_rev_natural_side_code VARCHAR2(1);
22332
22333 l_num_entries NUMBER;
22334 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
22335 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
22336 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
22337 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
22338 l_recog_line_1 NUMBER;
22339 l_recog_line_2 NUMBER;
22340
22341 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
22342 l_bflow_applied_to_amt NUMBER; -- 5132302
22343 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
22344
22345 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
22346
22347 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
22348 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
22349
22350 ---------------------------------------------------------------------------------------------------------------
22351
22352
22353 --
22354 -- bulk performance
22355 --
22356 l_balance_type_code VARCHAR2(1);
22357 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
22358 l_log_module VARCHAR2(240);
22359
22360 --
22361 -- Upgrade strategy
22362 --
22363 l_actual_upg_option VARCHAR2(1);
22364 l_enc_upg_option VARCHAR2(1);
22365
22366 --
22367 BEGIN
22368 --
22369 IF g_log_enabled THEN
22370 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_60';
22371 END IF;
22372 --
22373 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22374
22375 trace
22376 (p_msg => 'BEGIN of AcctLineType_60'
22377 ,p_level => C_LEVEL_PROCEDURE
22378 ,p_module => l_log_module);
22379
22380 END IF;
22381 --
22382 l_component_type := 'AMB_JLT';
22383 l_component_code := 'PA_LABOR_REV';
22384 l_component_type_code := 'S';
22385 l_component_appl_id := 275;
22386 l_amb_context_code := 'DEFAULT';
22387 l_entity_code := 'REVENUE';
22388 l_event_class_code := 'REVENUE';
22389 l_event_type_code := 'REVENUE_ALL';
22390 l_line_definition_owner_code := 'S';
22391 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
22392 --
22393 l_balance_type_code := 'A';
22394 l_segment := NULL;
22395 l_ccid := NULL;
22396 l_adr_transaction_coa_id := NULL;
22397 l_adr_accounting_coa_id := NULL;
22398 l_adr_flexfield_segment_code := NULL;
22399 l_adr_flex_value_set_id := NULL;
22400 l_adr_value_type_code := NULL;
22401 l_adr_value_combination_id := NULL;
22402 l_adr_value_segment_code := NULL;
22403
22404 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
22405 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
22409 l_bflow_applied_to_amt_idx := NULL; -- 5132302
22406 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
22407 l_budgetary_control_flag := 'N';
22408
22410 l_bflow_applied_to_amt := NULL; -- 5132302
22411 l_entered_amt_idx := NULL; -- 4262811
22412 l_accted_amt_idx := NULL; -- 4262811
22413 l_acc_rev_flag := NULL; -- 4262811
22414 l_accrual_line_num := NULL; -- 4262811
22415 l_tmp_amt := NULL; -- 4262811
22416 --
22417
22418 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
22419 l_balance_type_code <> 'B' THEN
22420 IF NVL(p_source_46,'
22421 ') = 'Revenue - Normal Revenue' AND
22422 (NVL(p_source_47,'
22423 ') = 'ST' OR
22424 NVL(p_source_47,'
22425 ') = 'OT') AND
22426 NVL(p_source_48,'
22427 ') = 'N'
22428 THEN
22429
22430 --
22431 XLA_AE_LINES_PKG.SetNewLine;
22432
22433 p_balance_type_code := l_balance_type_code;
22434 -- set the flag so later we will know whether the gain loss line needs to be created
22435
22436 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
22437 p_actual_flag :='A';
22438 END IF;
22439
22440 --
22441 -- bulk performance
22442 --
22443 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
22444 p_header_num => 0); -- 4262811
22445 --
22446 -- set accounting line options
22447 --
22448 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
22449 p_natural_side_code => 'C'
22450 , p_gain_or_loss_flag => 'N'
22451 , p_gl_transfer_mode_code => 'S'
22452 , p_acct_entry_type_code => 'A'
22453 , p_switch_side_flag => 'Y'
22454 , p_merge_duplicate_code => 'N'
22455 );
22456 --
22457 l_acc_rev_natural_side_code := 'D'; -- 4262811
22458 --
22459 --
22460 -- set accounting line type info
22461 --
22462 xla_ae_lines_pkg.SetAcctLineType
22463 (p_component_type => l_component_type
22464 ,p_event_type_code => l_event_type_code
22465 ,p_line_definition_owner_code => l_line_definition_owner_code
22466 ,p_line_definition_code => l_line_definition_code
22467 ,p_accounting_line_code => l_component_code
22468 ,p_accounting_line_type_code => l_component_type_code
22469 ,p_accounting_line_appl_id => l_component_appl_id
22470 ,p_amb_context_code => l_amb_context_code
22471 ,p_entity_code => l_entity_code
22472 ,p_event_class_code => l_event_class_code);
22473 --
22474 -- set accounting class
22475 --
22476 xla_ae_lines_pkg.SetAcctClass(
22477 p_accounting_class_code => 'REVENUE'
22478 , p_ae_header_id => l_ae_header_id
22479 );
22480
22481 --
22482 -- set rounding class
22483 --
22484 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
22485 'REVENUE';
22486
22487 --
22488 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
22489 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
22490 --
22491 -- bulk performance
22492 --
22493 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
22494
22495 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
22496 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
22497
22498 -- 4955764
22499 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22500 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
22501
22502 -- 4458381 Public Sector Enh
22503
22504 --
22505 -- set accounting attributes for the line type
22506 --
22507 l_entered_amt_idx := 4;
22508 l_accted_amt_idx := 10;
22509 l_bflow_applied_to_amt_idx := NULL; -- 5132302
22510 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
22511 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_49);
22512 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
22513 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_50);
22514 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
22515 l_rec_acct_attrs.array_char_value(3) := p_source_46;
22516 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
22517 l_rec_acct_attrs.array_num_value(4) := p_source_42;
22518 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
22519 l_rec_acct_attrs.array_char_value(5) := p_source_26;
22520 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
22521 l_rec_acct_attrs.array_date_value(6) := p_source_28;
22522 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
22523 l_rec_acct_attrs.array_num_value(7) := p_source_29;
22524 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
22525 l_rec_acct_attrs.array_char_value(8) := p_source_30;
22526 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
22527 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_51);
22528 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
22529 l_rec_acct_attrs.array_num_value(10) := p_source_43;
22530
22531 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
22532 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
22533
22537 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
22534 ---------------------------------------------------------------------------------------------------------------
22535 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
22536 ---------------------------------------------------------------------------------------------------------------
22538
22539 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22540 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22541
22542 IF xla_accounting_cache_pkg.GetValueChar
22543 (p_source_code => 'LEDGER_CATEGORY_CODE'
22544 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
22545 AND l_bflow_method_code = 'PRIOR_ENTRY'
22546 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
22547 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
22548 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
22549 )
22550 THEN
22551 xla_ae_lines_pkg.BflowUpgEntry
22552 (p_business_method_code => l_bflow_method_code
22553 ,p_business_class_code => l_bflow_class_code
22554 ,p_balance_type => l_balance_type_code);
22555 ELSE
22556 NULL;
22557 -- No business flow processing for business flow method of NONE.
22558 END IF;
22559
22560 --
22561 -- call analytical criteria
22562 --
22563
22564 --
22565 -- call description
22566 --
22567 -- No description or it is inherited.
22568 --
22569 -- call ADRs
22570 -- Bug 4922099
22571 --
22572 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22573 (NVL(l_actual_upg_option, 'N') = 'O') OR
22574 (NVL(l_enc_upg_option, 'N') = 'O')
22575 )
22576 THEN
22577 NULL;
22578 --
22579 --
22580
22581 l_ccid := AcctDerRule_26(
22582 p_application_id => p_application_id
22583 , p_ae_header_id => l_ae_header_id
22584 , p_source_19 => p_source_19
22585 , x_transaction_coa_id => l_adr_transaction_coa_id
22586 , x_accounting_coa_id => l_adr_accounting_coa_id
22587 , x_value_type_code => l_adr_value_type_code
22588 , p_side => 'NA'
22589 );
22590
22591 xla_ae_lines_pkg.set_ccid(
22592 p_code_combination_id => l_ccid
22593 , p_value_type_code => l_adr_value_type_code
22594 , p_transaction_coa_id => l_adr_transaction_coa_id
22595 , p_accounting_coa_id => l_adr_accounting_coa_id
22596 , p_adr_code => 'REVENUE_RULE'
22597 , p_adr_type_code => 'S'
22598 , p_component_type => l_component_type
22599 , p_component_code => l_component_code
22600 , p_component_type_code => l_component_type_code
22601 , p_component_appl_id => l_component_appl_id
22602 , p_amb_context_code => l_amb_context_code
22603 , p_side => 'NA'
22604 );
22605
22606
22607 --
22608 --
22609 END IF;
22610 --
22611 -- Bug 4922099
22612 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
22613 (NVL(l_enc_upg_option, 'N') = 'O')
22614 ) AND
22615 (l_bflow_method_code = 'PRIOR_ENTRY')
22616 )
22617 THEN
22618 IF
22619 --
22620 1 = 2
22621 --
22622 THEN
22623 xla_accounting_err_pkg.build_message
22624 (p_appli_s_name => 'XLA'
22625 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22626 ,p_token_1 => 'LINE_NUMBER'
22627 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
22628 ,p_token_2 => 'LINE_TYPE_NAME'
22629 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
22630 l_component_type
22631 ,l_component_code
22632 ,l_component_type_code
22633 ,l_component_appl_id
22634 ,l_amb_context_code
22635 ,l_entity_code
22636 ,l_event_class_code
22637 )
22638 ,p_token_3 => 'OWNER'
22639 ,p_value_3 => xla_lookups_pkg.get_meaning(
22640 p_lookup_type => 'XLA_OWNER_TYPE'
22641 ,p_lookup_code => l_component_type_code
22642 )
22643 ,p_token_4 => 'PRODUCT_NAME'
22644 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
22645 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
22646 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
22650
22647 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
22648 ,p_ae_header_id => NULL
22649 );
22651 IF (C_LEVEL_ERROR>= g_log_level) THEN
22652 trace
22653 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22654 ,p_level => C_LEVEL_ERROR
22655 ,p_module => l_log_module);
22656 END IF;
22657 END IF;
22658 END IF;
22659 --
22660 --
22661 ------------------------------------------------------------------------------------------------
22662 -- 4219869 Business Flow
22663 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
22664 -- Prior Entry. Currently, the following code is always generated.
22665 ------------------------------------------------------------------------------------------------
22666 XLA_AE_LINES_PKG.ValidateCurrentLine;
22667
22668 ------------------------------------------------------------------------------------
22669 -- 4219869 Business Flow
22670 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
22671 ------------------------------------------------------------------------------------
22672 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22673
22674 ----------------------------------------------------------------------------------
22675 -- 4219869 Business Flow
22676 -- Update journal entry status -- Need to generate this within IF <condition>
22677 ----------------------------------------------------------------------------------
22678 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22679 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
22680 ,p_balance_type_code => l_balance_type_code
22681 );
22682
22683 -------------------------------------------------------------------------------------------
22684 -- 4262811 - Generate the Accrual Reversal lines
22685 -------------------------------------------------------------------------------------------
22686 BEGIN
22687 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
22688 (g_array_event(p_event_id).array_value_num('header_index'));
22689 IF l_acc_rev_flag IS NULL THEN
22690 l_acc_rev_flag := 'N';
22691 END IF;
22692 EXCEPTION
22693 WHEN OTHERS THEN
22694 l_acc_rev_flag := 'N';
22695 END;
22696 --
22697 IF (l_acc_rev_flag = 'Y') THEN
22698
22699 -- 4645092 ------------------------------------------------------------------------------
22700 -- To allow MPA report to determine if it should generate report process
22701 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
22702 ------------------------------------------------------------------------------------------
22703
22704 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
22705 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
22706
22707 --
22708 -- Update the line information that should be overwritten
22709 --
22710 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
22711 p_header_num => 1);
22712 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
22713
22714 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
22715
22716 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
22717 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
22718 END IF;
22719
22720 --
22721 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
22722 --
22723 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
22724 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
22725 ELSE
22726 ---------------------------------------------------------------------------------------------------
22727 -- 4262811a Switch Sign
22728 ---------------------------------------------------------------------------------------------------
22729 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
22730 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22731 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22732 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22733 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22734 -- 5132302
22735 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
22736 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22737
22738 END IF;
22739
22740 -- 4955764
22741 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22742 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
22743
22744
22745 XLA_AE_LINES_PKG.ValidateCurrentLine;
22746 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22747
22748 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22749 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
22750 ,p_balance_type_code => l_balance_type_code);
22751
22752 END IF;
22753
22754 -----------------------------------------------------------------------------------------
22758
22755 -- 4262811 Multiperiod Accounting
22756 -----------------------------------------------------------------------------------------
22757 -- No MPA option is assigned.
22759
22760 END IF;
22761 END IF;
22762 --
22763
22764 --
22765 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22766 trace
22767 (p_msg => 'END of AcctLineType_60'
22768 ,p_level => C_LEVEL_PROCEDURE
22769 ,p_module => l_log_module);
22770 END IF;
22771 --
22772 EXCEPTION
22773 WHEN xla_exceptions_pkg.application_exception THEN
22774 RAISE;
22775 WHEN OTHERS THEN
22776 xla_exceptions_pkg.raise_message
22777 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_60');
22778 END AcctLineType_60;
22779 --
22780
22781 ---------------------------------------
22782 --
22783 -- PRIVATE FUNCTION
22784 -- AcctLineType_61
22785 --
22786 ---------------------------------------
22787 PROCEDURE AcctLineType_61 (
22788 p_application_id IN NUMBER
22789 ,p_event_id IN NUMBER
22790 ,p_calculate_acctd_flag IN VARCHAR2
22791 ,p_calculate_g_l_flag IN VARCHAR2
22792 ,p_actual_flag IN OUT VARCHAR2
22793 ,p_balance_type_code OUT VARCHAR2
22794 ,p_gain_or_loss_ref OUT VARCHAR2
22795
22796 --Revenue CCID
22797 , p_source_19 IN NUMBER
22798 --Entered Currency Code
22799 , p_source_26 IN VARCHAR2
22800 --Exchange Rate Date
22801 , p_source_28 IN DATE
22802 --Exchange Rate
22803 , p_source_29 IN NUMBER
22804 --Exchange Rate Type
22805 , p_source_30 IN VARCHAR2
22806 --Entered Amount
22807 , p_source_42 IN NUMBER
22808 --Accounted Amount
22809 , p_source_43 IN NUMBER
22810 --Revenue Distribution Type
22811 , p_source_46 IN VARCHAR2
22812 --System Linkage Function
22813 , p_source_47 IN VARCHAR2
22814 --Crediting Revenue Flag
22815 , p_source_48 IN VARCHAR2
22816 --Revenue First Distribution ID
22817 , p_source_49 IN NUMBER
22818 --Revenue Second Distribution ID
22819 , p_source_50 IN NUMBER
22820 --Event ID
22821 , p_source_51 IN NUMBER
22822 )
22823 IS
22824
22825 l_component_type VARCHAR2(80);
22826 l_component_code VARCHAR2(30);
22827 l_component_type_code VARCHAR2(1);
22828 l_component_appl_id INTEGER;
22829 l_amb_context_code VARCHAR2(30);
22830 l_entity_code VARCHAR2(30);
22831 l_event_class_code VARCHAR2(30);
22832 l_ae_header_id NUMBER;
22833 l_event_type_code VARCHAR2(30);
22834 l_line_definition_code VARCHAR2(30);
22835 l_line_definition_owner_code VARCHAR2(1);
22836 --
22837 -- adr variables
22838 l_segment VARCHAR2(30);
22839 l_ccid NUMBER;
22840 l_adr_transaction_coa_id NUMBER;
22841 l_adr_accounting_coa_id NUMBER;
22842 l_adr_flexfield_segment_code VARCHAR2(30);
22843 l_adr_flex_value_set_id NUMBER;
22844 l_adr_value_type_code VARCHAR2(30);
22845 l_adr_value_combination_id NUMBER;
22846 l_adr_value_segment_code VARCHAR2(30);
22847
22848 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
22849 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
22850 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
22851 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
22852
22853 -- 4262811 Variables ------------------------------------------------------------------------------------------
22854 l_entered_amt_idx NUMBER;
22855 l_accted_amt_idx NUMBER;
22856 l_acc_rev_flag VARCHAR2(1);
22857 l_accrual_line_num NUMBER;
22858 l_tmp_amt NUMBER;
22859 l_acc_rev_natural_side_code VARCHAR2(1);
22860
22861 l_num_entries NUMBER;
22862 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
22863 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
22864 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
22865 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
22866 l_recog_line_1 NUMBER;
22867 l_recog_line_2 NUMBER;
22868
22869 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
22870 l_bflow_applied_to_amt NUMBER; -- 5132302
22871 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
22872
22873 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
22874
22875 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
22876 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
22877
22878 ---------------------------------------------------------------------------------------------------------------
22879
22880
22881 --
22882 -- bulk performance
22883 --
22884 l_balance_type_code VARCHAR2(1);
22885 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
22886 l_log_module VARCHAR2(240);
22887
22888 --
22889 -- Upgrade strategy
22890 --
22891 l_actual_upg_option VARCHAR2(1);
22892 l_enc_upg_option VARCHAR2(1);
22893
22894 --
22895 BEGIN
22896 --
22897 IF g_log_enabled THEN
22898 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_61';
22899 END IF;
22900 --
22901 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22902
22903 trace
22904 (p_msg => 'BEGIN of AcctLineType_61'
22905 ,p_level => C_LEVEL_PROCEDURE
22909 --
22906 ,p_module => l_log_module);
22907
22908 END IF;
22910 l_component_type := 'AMB_JLT';
22911 l_component_code := 'PA_PJ_REV';
22912 l_component_type_code := 'S';
22913 l_component_appl_id := 275;
22914 l_amb_context_code := 'DEFAULT';
22915 l_entity_code := 'REVENUE';
22916 l_event_class_code := 'REVENUE';
22917 l_event_type_code := 'REVENUE_ALL';
22918 l_line_definition_owner_code := 'S';
22919 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
22920 --
22921 l_balance_type_code := 'A';
22922 l_segment := NULL;
22923 l_ccid := NULL;
22924 l_adr_transaction_coa_id := NULL;
22925 l_adr_accounting_coa_id := NULL;
22926 l_adr_flexfield_segment_code := NULL;
22927 l_adr_flex_value_set_id := NULL;
22928 l_adr_value_type_code := NULL;
22929 l_adr_value_combination_id := NULL;
22930 l_adr_value_segment_code := NULL;
22931
22932 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
22933 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
22934 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
22935 l_budgetary_control_flag := 'N';
22936
22937 l_bflow_applied_to_amt_idx := NULL; -- 5132302
22938 l_bflow_applied_to_amt := NULL; -- 5132302
22939 l_entered_amt_idx := NULL; -- 4262811
22940 l_accted_amt_idx := NULL; -- 4262811
22941 l_acc_rev_flag := NULL; -- 4262811
22942 l_accrual_line_num := NULL; -- 4262811
22943 l_tmp_amt := NULL; -- 4262811
22944 --
22945
22946 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
22947 l_balance_type_code <> 'B' THEN
22948 IF NVL(p_source_46,'
22949 ') = 'Revenue - Normal Revenue' AND
22950 NVL(p_source_47,'
22951 ') = 'PJ' AND
22952 NVL(p_source_48,'
22953 ') = 'N'
22954 THEN
22955
22956 --
22957 XLA_AE_LINES_PKG.SetNewLine;
22958
22959 p_balance_type_code := l_balance_type_code;
22960 -- set the flag so later we will know whether the gain loss line needs to be created
22961
22962 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
22963 p_actual_flag :='A';
22964 END IF;
22965
22966 --
22967 -- bulk performance
22968 --
22969 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
22970 p_header_num => 0); -- 4262811
22971 --
22972 -- set accounting line options
22973 --
22974 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
22975 p_natural_side_code => 'C'
22976 , p_gain_or_loss_flag => 'N'
22977 , p_gl_transfer_mode_code => 'S'
22978 , p_acct_entry_type_code => 'A'
22979 , p_switch_side_flag => 'Y'
22980 , p_merge_duplicate_code => 'N'
22981 );
22982 --
22983 l_acc_rev_natural_side_code := 'D'; -- 4262811
22984 --
22985 --
22986 -- set accounting line type info
22987 --
22988 xla_ae_lines_pkg.SetAcctLineType
22989 (p_component_type => l_component_type
22990 ,p_event_type_code => l_event_type_code
22991 ,p_line_definition_owner_code => l_line_definition_owner_code
22992 ,p_line_definition_code => l_line_definition_code
22993 ,p_accounting_line_code => l_component_code
22994 ,p_accounting_line_type_code => l_component_type_code
22995 ,p_accounting_line_appl_id => l_component_appl_id
22996 ,p_amb_context_code => l_amb_context_code
22997 ,p_entity_code => l_entity_code
22998 ,p_event_class_code => l_event_class_code);
22999 --
23000 -- set accounting class
23001 --
23002 xla_ae_lines_pkg.SetAcctClass(
23003 p_accounting_class_code => 'REVENUE'
23004 , p_ae_header_id => l_ae_header_id
23005 );
23006
23007 --
23008 -- set rounding class
23009 --
23010 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
23011 'REVENUE';
23012
23013 --
23014 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
23015 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
23016 --
23017 -- bulk performance
23018 --
23019 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
23020
23021 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
23022 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
23023
23024 -- 4955764
23025 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23026 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
23027
23028 -- 4458381 Public Sector Enh
23029
23030 --
23031 -- set accounting attributes for the line type
23032 --
23033 l_entered_amt_idx := 4;
23034 l_accted_amt_idx := 10;
23035 l_bflow_applied_to_amt_idx := NULL; -- 5132302
23036 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
23037 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_49);
23038 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
23039 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_50);
23040 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
23041 l_rec_acct_attrs.array_char_value(3) := p_source_46;
23045 l_rec_acct_attrs.array_char_value(5) := p_source_26;
23042 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
23043 l_rec_acct_attrs.array_num_value(4) := p_source_42;
23044 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
23046 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
23047 l_rec_acct_attrs.array_date_value(6) := p_source_28;
23048 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
23049 l_rec_acct_attrs.array_num_value(7) := p_source_29;
23050 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
23051 l_rec_acct_attrs.array_char_value(8) := p_source_30;
23052 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
23053 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_51);
23054 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
23055 l_rec_acct_attrs.array_num_value(10) := p_source_43;
23056
23057 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
23058 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
23059
23060 ---------------------------------------------------------------------------------------------------------------
23061 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
23062 ---------------------------------------------------------------------------------------------------------------
23063 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
23064
23065 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23066 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23067
23068 IF xla_accounting_cache_pkg.GetValueChar
23069 (p_source_code => 'LEDGER_CATEGORY_CODE'
23070 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
23071 AND l_bflow_method_code = 'PRIOR_ENTRY'
23072 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
23073 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
23074 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
23075 )
23076 THEN
23077 xla_ae_lines_pkg.BflowUpgEntry
23078 (p_business_method_code => l_bflow_method_code
23079 ,p_business_class_code => l_bflow_class_code
23080 ,p_balance_type => l_balance_type_code);
23081 ELSE
23082 NULL;
23083 -- No business flow processing for business flow method of NONE.
23084 END IF;
23085
23086 --
23087 -- call analytical criteria
23088 --
23089
23090 --
23091 -- call description
23092 --
23093 -- No description or it is inherited.
23094 --
23095 -- call ADRs
23096 -- Bug 4922099
23097 --
23098 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23099 (NVL(l_actual_upg_option, 'N') = 'O') OR
23100 (NVL(l_enc_upg_option, 'N') = 'O')
23101 )
23102 THEN
23103 NULL;
23104 --
23105 --
23106
23107 l_ccid := AcctDerRule_26(
23108 p_application_id => p_application_id
23109 , p_ae_header_id => l_ae_header_id
23110 , p_source_19 => p_source_19
23111 , x_transaction_coa_id => l_adr_transaction_coa_id
23112 , x_accounting_coa_id => l_adr_accounting_coa_id
23113 , x_value_type_code => l_adr_value_type_code
23114 , p_side => 'NA'
23115 );
23116
23117 xla_ae_lines_pkg.set_ccid(
23118 p_code_combination_id => l_ccid
23119 , p_value_type_code => l_adr_value_type_code
23120 , p_transaction_coa_id => l_adr_transaction_coa_id
23121 , p_accounting_coa_id => l_adr_accounting_coa_id
23122 , p_adr_code => 'REVENUE_RULE'
23123 , p_adr_type_code => 'S'
23124 , p_component_type => l_component_type
23125 , p_component_code => l_component_code
23126 , p_component_type_code => l_component_type_code
23127 , p_component_appl_id => l_component_appl_id
23128 , p_amb_context_code => l_amb_context_code
23129 , p_side => 'NA'
23130 );
23131
23132
23133 --
23134 --
23135 END IF;
23136 --
23137 -- Bug 4922099
23138 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
23139 (NVL(l_enc_upg_option, 'N') = 'O')
23140 ) AND
23141 (l_bflow_method_code = 'PRIOR_ENTRY')
23142 )
23143 THEN
23144 IF
23145 --
23146 1 = 2
23147 --
23148 THEN
23149 xla_accounting_err_pkg.build_message
23150 (p_appli_s_name => 'XLA'
23151 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23152 ,p_token_1 => 'LINE_NUMBER'
23153 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
23154 ,p_token_2 => 'LINE_TYPE_NAME'
23155 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
23156 l_component_type
23157 ,l_component_code
23158 ,l_component_type_code
23159 ,l_component_appl_id
23160 ,l_amb_context_code
23164 ,p_token_3 => 'OWNER'
23161 ,l_entity_code
23162 ,l_event_class_code
23163 )
23165 ,p_value_3 => xla_lookups_pkg.get_meaning(
23166 p_lookup_type => 'XLA_OWNER_TYPE'
23167 ,p_lookup_code => l_component_type_code
23168 )
23169 ,p_token_4 => 'PRODUCT_NAME'
23170 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
23171 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
23172 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
23173 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
23174 ,p_ae_header_id => NULL
23175 );
23176
23177 IF (C_LEVEL_ERROR>= g_log_level) THEN
23178 trace
23179 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23180 ,p_level => C_LEVEL_ERROR
23181 ,p_module => l_log_module);
23182 END IF;
23183 END IF;
23184 END IF;
23185 --
23186 --
23187 ------------------------------------------------------------------------------------------------
23188 -- 4219869 Business Flow
23189 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
23190 -- Prior Entry. Currently, the following code is always generated.
23191 ------------------------------------------------------------------------------------------------
23192 XLA_AE_LINES_PKG.ValidateCurrentLine;
23193
23194 ------------------------------------------------------------------------------------
23195 -- 4219869 Business Flow
23196 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
23197 ------------------------------------------------------------------------------------
23198 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23199
23200 ----------------------------------------------------------------------------------
23201 -- 4219869 Business Flow
23202 -- Update journal entry status -- Need to generate this within IF <condition>
23203 ----------------------------------------------------------------------------------
23204 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23205 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
23206 ,p_balance_type_code => l_balance_type_code
23207 );
23208
23209 -------------------------------------------------------------------------------------------
23210 -- 4262811 - Generate the Accrual Reversal lines
23211 -------------------------------------------------------------------------------------------
23212 BEGIN
23213 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
23214 (g_array_event(p_event_id).array_value_num('header_index'));
23215 IF l_acc_rev_flag IS NULL THEN
23216 l_acc_rev_flag := 'N';
23217 END IF;
23218 EXCEPTION
23219 WHEN OTHERS THEN
23220 l_acc_rev_flag := 'N';
23221 END;
23222 --
23223 IF (l_acc_rev_flag = 'Y') THEN
23224
23225 -- 4645092 ------------------------------------------------------------------------------
23226 -- To allow MPA report to determine if it should generate report process
23227 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
23228 ------------------------------------------------------------------------------------------
23229
23230 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
23231 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
23232
23233 --
23234 -- Update the line information that should be overwritten
23235 --
23236 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
23237 p_header_num => 1);
23238 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
23239
23240 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
23241
23242 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
23243 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
23244 END IF;
23245
23246 --
23247 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
23248 --
23249 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
23250 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
23251 ELSE
23252 ---------------------------------------------------------------------------------------------------
23253 -- 4262811a Switch Sign
23254 ---------------------------------------------------------------------------------------------------
23255 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
23256 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23257 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23258 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23262 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23259 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23260 -- 5132302
23261 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
23263
23264 END IF;
23265
23266 -- 4955764
23267 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23268 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
23269
23270
23271 XLA_AE_LINES_PKG.ValidateCurrentLine;
23272 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23273
23274 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23275 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
23276 ,p_balance_type_code => l_balance_type_code);
23277
23278 END IF;
23279
23280 -----------------------------------------------------------------------------------------
23281 -- 4262811 Multiperiod Accounting
23282 -----------------------------------------------------------------------------------------
23283 -- No MPA option is assigned.
23284
23285
23286 END IF;
23287 END IF;
23288 --
23289
23290 --
23291 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23292 trace
23293 (p_msg => 'END of AcctLineType_61'
23294 ,p_level => C_LEVEL_PROCEDURE
23295 ,p_module => l_log_module);
23296 END IF;
23297 --
23298 EXCEPTION
23299 WHEN xla_exceptions_pkg.application_exception THEN
23300 RAISE;
23301 WHEN OTHERS THEN
23302 xla_exceptions_pkg.raise_message
23303 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_61');
23304 END AcctLineType_61;
23305 --
23306
23307 ---------------------------------------
23308 --
23309 -- PRIVATE FUNCTION
23310 -- AcctLineType_62
23311 --
23312 ---------------------------------------
23313 PROCEDURE AcctLineType_62 (
23314 p_application_id IN NUMBER
23315 ,p_event_id IN NUMBER
23316 ,p_calculate_acctd_flag IN VARCHAR2
23317 ,p_calculate_g_l_flag IN VARCHAR2
23318 ,p_actual_flag IN OUT VARCHAR2
23319 ,p_balance_type_code OUT VARCHAR2
23320 ,p_gain_or_loss_ref OUT VARCHAR2
23321
23322 --Allow Account Override Flag
23323 , p_source_5 IN VARCHAR2
23324 --Provider Cost/ Revenue CCID
23325 , p_source_9 IN NUMBER
23326 --Adjustment Provider Cost/ Revenue CCID
23327 , p_source_10 IN NUMBER
23328 --Receiver Cost/ Revenue CCID
23329 , p_source_16 IN NUMBER
23330 --Reversing Line Flag
23331 , p_source_23 IN VARCHAR2
23332 --Actual Upgrade Credit Accounting Class
23333 , p_source_24 IN VARCHAR2
23334 --Entered Currency Code
23335 , p_source_26 IN VARCHAR2
23336 --Exchange Rate Date
23337 , p_source_28 IN DATE
23338 --Exchange Rate
23339 , p_source_29 IN NUMBER
23340 --Exchange Rate Type
23341 , p_source_30 IN VARCHAR2
23342 --Actual Upgrade Debit Accounting Class
23343 , p_source_31 IN VARCHAR2
23344 --Use Actuals Upgrade Attributes Flag
23345 , p_source_32 IN VARCHAR2
23346 --Expenditure Item ID
23347 , p_source_33 IN NUMBER
23348 --Cost Distribution Line Number
23349 , p_source_34 IN NUMBER
23350 --Line Type
23351 , p_source_35 IN VARCHAR2
23352 , p_source_35_meaning IN VARCHAR2
23353 --Reversed Line Number
23354 , p_source_36 IN NUMBER
23355 --Entered Amount
23356 , p_source_42 IN NUMBER
23357 --Accounted Amount
23358 , p_source_43 IN NUMBER
23359 --Transfer Amount Type
23360 , p_source_73 IN VARCHAR2
23361 , p_source_73_meaning IN VARCHAR2
23362 )
23363 IS
23364
23365 l_component_type VARCHAR2(80);
23366 l_component_code VARCHAR2(30);
23367 l_component_type_code VARCHAR2(1);
23368 l_component_appl_id INTEGER;
23369 l_amb_context_code VARCHAR2(30);
23370 l_entity_code VARCHAR2(30);
23371 l_event_class_code VARCHAR2(30);
23372 l_ae_header_id NUMBER;
23373 l_event_type_code VARCHAR2(30);
23374 l_line_definition_code VARCHAR2(30);
23375 l_line_definition_owner_code VARCHAR2(1);
23376 --
23377 -- adr variables
23378 l_segment VARCHAR2(30);
23379 l_ccid NUMBER;
23380 l_adr_transaction_coa_id NUMBER;
23381 l_adr_accounting_coa_id NUMBER;
23382 l_adr_flexfield_segment_code VARCHAR2(30);
23383 l_adr_flex_value_set_id NUMBER;
23384 l_adr_value_type_code VARCHAR2(30);
23385 l_adr_value_combination_id NUMBER;
23386 l_adr_value_segment_code VARCHAR2(30);
23387
23388 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
23389 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
23390 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
23391 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
23392
23393 -- 4262811 Variables ------------------------------------------------------------------------------------------
23394 l_entered_amt_idx NUMBER;
23395 l_accted_amt_idx NUMBER;
23396 l_acc_rev_flag VARCHAR2(1);
23397 l_accrual_line_num NUMBER;
23398 l_tmp_amt NUMBER;
23399 l_acc_rev_natural_side_code VARCHAR2(1);
23400
23401 l_num_entries NUMBER;
23402 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
23406 l_recog_line_1 NUMBER;
23403 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
23404 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
23405 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
23407 l_recog_line_2 NUMBER;
23408
23409 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
23410 l_bflow_applied_to_amt NUMBER; -- 5132302
23411 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
23412
23413 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
23414
23415 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
23416 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
23417
23418 ---------------------------------------------------------------------------------------------------------------
23419
23420
23421 --
23422 -- bulk performance
23423 --
23424 l_balance_type_code VARCHAR2(1);
23425 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
23426 l_log_module VARCHAR2(240);
23427
23428 --
23429 -- Upgrade strategy
23430 --
23431 l_actual_upg_option VARCHAR2(1);
23432 l_enc_upg_option VARCHAR2(1);
23433
23434 --
23435 BEGIN
23436 --
23437 IF g_log_enabled THEN
23438 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_62';
23439 END IF;
23440 --
23441 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23442
23443 trace
23444 (p_msg => 'BEGIN of AcctLineType_62'
23445 ,p_level => C_LEVEL_PROCEDURE
23446 ,p_module => l_log_module);
23447
23448 END IF;
23449 --
23450 l_component_type := 'AMB_JLT';
23451 l_component_code := 'PA_PROVIDER_COST';
23452 l_component_type_code := 'S';
23453 l_component_appl_id := 275;
23454 l_amb_context_code := 'DEFAULT';
23455 l_entity_code := 'EXPENDITURES';
23456 l_event_class_code := 'BORROWED_AND_LENT';
23457 l_event_type_code := 'BORROWED_AND_LENT_ALL';
23458 l_line_definition_owner_code := 'S';
23459 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
23460 --
23461 l_balance_type_code := 'A';
23462 l_segment := NULL;
23463 l_ccid := NULL;
23464 l_adr_transaction_coa_id := NULL;
23465 l_adr_accounting_coa_id := NULL;
23466 l_adr_flexfield_segment_code := NULL;
23467 l_adr_flex_value_set_id := NULL;
23468 l_adr_value_type_code := NULL;
23469 l_adr_value_combination_id := NULL;
23470 l_adr_value_segment_code := NULL;
23471
23472 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
23473 l_bflow_class_code := ''; -- 4219869 Business Flow
23474 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
23475 l_budgetary_control_flag := 'N';
23476
23477 l_bflow_applied_to_amt_idx := NULL; -- 5132302
23478 l_bflow_applied_to_amt := NULL; -- 5132302
23479 l_entered_amt_idx := NULL; -- 4262811
23480 l_accted_amt_idx := NULL; -- 4262811
23481 l_acc_rev_flag := NULL; -- 4262811
23482 l_accrual_line_num := NULL; -- 4262811
23483 l_tmp_amt := NULL; -- 4262811
23484 --
23485
23486 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
23487 l_balance_type_code <> 'B' THEN
23488 IF NVL(p_source_73,'
23489 ') = 'COST_TRANSFER' OR
23490 NVL(p_source_73,'
23491 ') = 'COST_REVENUE' OR
23492 p_source_73 IS NULL
23493 THEN
23494
23495 --
23496 XLA_AE_LINES_PKG.SetNewLine;
23497
23498 p_balance_type_code := l_balance_type_code;
23499 -- set the flag so later we will know whether the gain loss line needs to be created
23500
23501 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
23502 p_actual_flag :='A';
23503 END IF;
23504
23505 --
23506 -- bulk performance
23507 --
23508 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
23509 p_header_num => 0); -- 4262811
23510 --
23511 -- set accounting line options
23512 --
23513 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
23514 p_natural_side_code => 'C'
23515 , p_gain_or_loss_flag => 'N'
23516 , p_gl_transfer_mode_code => 'S'
23517 , p_acct_entry_type_code => 'A'
23518 , p_switch_side_flag => 'Y'
23519 , p_merge_duplicate_code => 'N'
23520 );
23521 --
23522 l_acc_rev_natural_side_code := 'D'; -- 4262811
23523 --
23524 --
23525 -- set accounting line type info
23526 --
23527 xla_ae_lines_pkg.SetAcctLineType
23528 (p_component_type => l_component_type
23529 ,p_event_type_code => l_event_type_code
23530 ,p_line_definition_owner_code => l_line_definition_owner_code
23531 ,p_line_definition_code => l_line_definition_code
23532 ,p_accounting_line_code => l_component_code
23533 ,p_accounting_line_type_code => l_component_type_code
23534 ,p_accounting_line_appl_id => l_component_appl_id
23535 ,p_amb_context_code => l_amb_context_code
23536 ,p_entity_code => l_entity_code
23537 ,p_event_class_code => l_event_class_code);
23538 --
23539 -- set accounting class
23540 --
23541 xla_ae_lines_pkg.SetAcctClass(
23542 p_accounting_class_code => 'PROVIDER_COST'
23546 --
23543 , p_ae_header_id => l_ae_header_id
23544 );
23545
23547 -- set rounding class
23548 --
23549 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
23550 'PROVIDER_COST';
23551
23552 --
23553 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
23554 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
23555 --
23556 -- bulk performance
23557 --
23558 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
23559
23560 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
23561 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
23562
23563 -- 4955764
23564 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23565 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
23566
23567 -- 4458381 Public Sector Enh
23568
23569 --
23570 -- set accounting attributes for the line type
23571 --
23572 l_entered_amt_idx := 22;
23573 l_accted_amt_idx := 27;
23574 l_bflow_applied_to_amt_idx := NULL; -- 5132302
23575 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
23576 l_rec_acct_attrs.array_char_value(1) := p_source_23;
23577 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
23578 l_rec_acct_attrs.array_char_value(2) := p_source_24;
23579 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
23580 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_9);
23581 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
23582 l_rec_acct_attrs.array_num_value(4) := p_source_42;
23583 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
23584 l_rec_acct_attrs.array_char_value(5) := p_source_26;
23585 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
23586 l_rec_acct_attrs.array_num_value(6) := p_source_43;
23587 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
23588 l_rec_acct_attrs.array_date_value(7) := p_source_28;
23589 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
23590 l_rec_acct_attrs.array_num_value(8) := p_source_29;
23591 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
23592 l_rec_acct_attrs.array_char_value(9) := p_source_30;
23593 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
23594 l_rec_acct_attrs.array_char_value(10) := p_source_31;
23595 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
23596 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_16);
23597 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
23598 l_rec_acct_attrs.array_num_value(12) := p_source_42;
23599 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
23600 l_rec_acct_attrs.array_char_value(13) := p_source_26;
23601 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
23602 l_rec_acct_attrs.array_num_value(14) := p_source_43;
23603 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
23604 l_rec_acct_attrs.array_date_value(15) := p_source_28;
23605 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
23606 l_rec_acct_attrs.array_num_value(16) := p_source_29;
23607 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
23608 l_rec_acct_attrs.array_char_value(17) := p_source_30;
23609 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
23610 l_rec_acct_attrs.array_char_value(18) := p_source_32;
23611 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
23612 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
23613 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
23614 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
23615 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
23616 l_rec_acct_attrs.array_char_value(21) := p_source_35;
23617 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
23618 l_rec_acct_attrs.array_num_value(22) := p_source_42;
23619 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
23620 l_rec_acct_attrs.array_char_value(23) := p_source_26;
23621 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
23622 l_rec_acct_attrs.array_date_value(24) := p_source_28;
23623 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
23624 l_rec_acct_attrs.array_num_value(25) := p_source_29;
23625 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
23626 l_rec_acct_attrs.array_char_value(26) := p_source_30;
23627 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
23628 l_rec_acct_attrs.array_num_value(27) := p_source_43;
23629 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
23630 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
23631 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
23632 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
23633 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
23634 l_rec_acct_attrs.array_char_value(30) := p_source_35;
23635
23636 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
23637 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
23638
23639 ---------------------------------------------------------------------------------------------------------------
23640 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
23641 ---------------------------------------------------------------------------------------------------------------
23645 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23642 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
23643
23644 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23646
23647 IF xla_accounting_cache_pkg.GetValueChar
23648 (p_source_code => 'LEDGER_CATEGORY_CODE'
23649 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
23650 AND l_bflow_method_code = 'PRIOR_ENTRY'
23651 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
23652 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
23653 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
23654 )
23655 THEN
23656 xla_ae_lines_pkg.BflowUpgEntry
23657 (p_business_method_code => l_bflow_method_code
23658 ,p_business_class_code => l_bflow_class_code
23659 ,p_balance_type => l_balance_type_code);
23660 ELSE
23661 NULL;
23662 -- No business flow processing for business flow method of NONE.
23663 END IF;
23664
23665 --
23666 -- call analytical criteria
23667 --
23668
23669 --
23670 -- call description
23671 --
23672 -- No description or it is inherited.
23673 --
23674 -- call ADRs
23675 -- Bug 4922099
23676 --
23677 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23678 (NVL(l_actual_upg_option, 'N') = 'O') OR
23679 (NVL(l_enc_upg_option, 'N') = 'O')
23680 )
23681 THEN
23682 NULL;
23683 --
23684 --
23685
23686 l_ccid := AcctDerRule_16(
23687 p_application_id => p_application_id
23688 , p_ae_header_id => l_ae_header_id
23689 , p_source_5 => p_source_5
23690 , p_source_9 => p_source_9
23691 , p_source_10 => p_source_10
23692 , x_transaction_coa_id => l_adr_transaction_coa_id
23693 , x_accounting_coa_id => l_adr_accounting_coa_id
23694 , x_value_type_code => l_adr_value_type_code
23695 , p_side => 'NA'
23696 );
23697
23698 xla_ae_lines_pkg.set_ccid(
23699 p_code_combination_id => l_ccid
23700 , p_value_type_code => l_adr_value_type_code
23701 , p_transaction_coa_id => l_adr_transaction_coa_id
23702 , p_accounting_coa_id => l_adr_accounting_coa_id
23703 , p_adr_code => 'PA_PROV_COST_REV_ACCT_RULE'
23704 , p_adr_type_code => 'S'
23705 , p_component_type => l_component_type
23706 , p_component_code => l_component_code
23707 , p_component_type_code => l_component_type_code
23708 , p_component_appl_id => l_component_appl_id
23709 , p_amb_context_code => l_amb_context_code
23710 , p_side => 'NA'
23711 );
23712
23713
23714 --
23715 --
23716 END IF;
23717 --
23718 -- Bug 4922099
23719 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
23720 (NVL(l_enc_upg_option, 'N') = 'O')
23721 ) AND
23722 (l_bflow_method_code = 'PRIOR_ENTRY')
23723 )
23724 THEN
23725 IF
23726 --
23727 1 = 2
23728 --
23729 THEN
23730 xla_accounting_err_pkg.build_message
23731 (p_appli_s_name => 'XLA'
23732 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23733 ,p_token_1 => 'LINE_NUMBER'
23734 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
23735 ,p_token_2 => 'LINE_TYPE_NAME'
23736 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
23737 l_component_type
23738 ,l_component_code
23739 ,l_component_type_code
23740 ,l_component_appl_id
23741 ,l_amb_context_code
23742 ,l_entity_code
23743 ,l_event_class_code
23744 )
23745 ,p_token_3 => 'OWNER'
23746 ,p_value_3 => xla_lookups_pkg.get_meaning(
23747 p_lookup_type => 'XLA_OWNER_TYPE'
23748 ,p_lookup_code => l_component_type_code
23749 )
23750 ,p_token_4 => 'PRODUCT_NAME'
23751 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
23752 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
23753 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
23754 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
23755 ,p_ae_header_id => NULL
23756 );
23757
23761 ,p_level => C_LEVEL_ERROR
23758 IF (C_LEVEL_ERROR>= g_log_level) THEN
23759 trace
23760 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23762 ,p_module => l_log_module);
23763 END IF;
23764 END IF;
23765 END IF;
23766 --
23767 --
23768 ------------------------------------------------------------------------------------------------
23769 -- 4219869 Business Flow
23770 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
23771 -- Prior Entry. Currently, the following code is always generated.
23772 ------------------------------------------------------------------------------------------------
23773 XLA_AE_LINES_PKG.ValidateCurrentLine;
23774
23775 ------------------------------------------------------------------------------------
23776 -- 4219869 Business Flow
23777 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
23778 ------------------------------------------------------------------------------------
23779 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23780
23781 ----------------------------------------------------------------------------------
23782 -- 4219869 Business Flow
23783 -- Update journal entry status -- Need to generate this within IF <condition>
23784 ----------------------------------------------------------------------------------
23785 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23786 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
23787 ,p_balance_type_code => l_balance_type_code
23788 );
23789
23790 -------------------------------------------------------------------------------------------
23791 -- 4262811 - Generate the Accrual Reversal lines
23792 -------------------------------------------------------------------------------------------
23793 BEGIN
23794 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
23795 (g_array_event(p_event_id).array_value_num('header_index'));
23796 IF l_acc_rev_flag IS NULL THEN
23797 l_acc_rev_flag := 'N';
23798 END IF;
23799 EXCEPTION
23800 WHEN OTHERS THEN
23801 l_acc_rev_flag := 'N';
23802 END;
23803 --
23804 IF (l_acc_rev_flag = 'Y') THEN
23805
23806 -- 4645092 ------------------------------------------------------------------------------
23807 -- To allow MPA report to determine if it should generate report process
23808 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
23809 ------------------------------------------------------------------------------------------
23810
23811 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
23812 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
23813
23814 --
23815 -- Update the line information that should be overwritten
23816 --
23817 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
23818 p_header_num => 1);
23819 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
23820
23821 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
23822
23823 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
23824 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
23825 END IF;
23826
23827 --
23828 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
23829 --
23830 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
23831 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
23832 ELSE
23833 ---------------------------------------------------------------------------------------------------
23834 -- 4262811a Switch Sign
23835 ---------------------------------------------------------------------------------------------------
23836 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
23837 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23838 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23839 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23840 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23841 -- 5132302
23842 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
23843 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23844
23845 END IF;
23846
23847 -- 4955764
23848 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23849 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
23850
23851
23852 XLA_AE_LINES_PKG.ValidateCurrentLine;
23853 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23854
23855 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23856 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
23857 ,p_balance_type_code => l_balance_type_code);
23858
23859 END IF;
23860
23861 -----------------------------------------------------------------------------------------
23862 -- 4262811 Multiperiod Accounting
23863 -----------------------------------------------------------------------------------------
23864 -- No MPA option is assigned.
23865
23866
23867 END IF;
23868 END IF;
23869 --
23870
23874 (p_msg => 'END of AcctLineType_62'
23871 --
23872 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23873 trace
23875 ,p_level => C_LEVEL_PROCEDURE
23876 ,p_module => l_log_module);
23877 END IF;
23878 --
23879 EXCEPTION
23880 WHEN xla_exceptions_pkg.application_exception THEN
23881 RAISE;
23882 WHEN OTHERS THEN
23883 xla_exceptions_pkg.raise_message
23884 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_62');
23885 END AcctLineType_62;
23886 --
23887
23888 ---------------------------------------
23889 --
23890 -- PRIVATE FUNCTION
23891 -- AcctLineType_63
23892 --
23893 ---------------------------------------
23894 PROCEDURE AcctLineType_63 (
23895 p_application_id IN NUMBER
23896 ,p_event_id IN NUMBER
23897 ,p_calculate_acctd_flag IN VARCHAR2
23898 ,p_calculate_g_l_flag IN VARCHAR2
23899 ,p_actual_flag IN OUT VARCHAR2
23900 ,p_balance_type_code OUT VARCHAR2
23901 ,p_gain_or_loss_ref OUT VARCHAR2
23902
23903 --Allow Account Override Flag
23904 , p_source_5 IN VARCHAR2
23905 --Provider Cost/ Revenue CCID
23906 , p_source_9 IN NUMBER
23907 --Adjustment Provider Cost/ Revenue CCID
23908 , p_source_10 IN NUMBER
23909 --Receiver Cost/ Revenue CCID
23910 , p_source_16 IN NUMBER
23911 --Reversing Line Flag
23912 , p_source_23 IN VARCHAR2
23913 --Actual Upgrade Credit Accounting Class
23914 , p_source_24 IN VARCHAR2
23915 --Entered Currency Code
23916 , p_source_26 IN VARCHAR2
23917 --Exchange Rate Date
23918 , p_source_28 IN DATE
23919 --Exchange Rate
23920 , p_source_29 IN NUMBER
23921 --Exchange Rate Type
23922 , p_source_30 IN VARCHAR2
23923 --Actual Upgrade Debit Accounting Class
23924 , p_source_31 IN VARCHAR2
23925 --Use Actuals Upgrade Attributes Flag
23926 , p_source_32 IN VARCHAR2
23927 --Expenditure Item ID
23928 , p_source_33 IN NUMBER
23929 --Cost Distribution Line Number
23930 , p_source_34 IN NUMBER
23931 --Line Type
23932 , p_source_35 IN VARCHAR2
23933 , p_source_35_meaning IN VARCHAR2
23934 --Reversed Line Number
23935 , p_source_36 IN NUMBER
23936 --Entered Amount
23937 , p_source_42 IN NUMBER
23938 --Accounted Amount
23939 , p_source_43 IN NUMBER
23940 --Transfer Amount Type
23941 , p_source_73 IN VARCHAR2
23942 , p_source_73_meaning IN VARCHAR2
23943 )
23944 IS
23945
23946 l_component_type VARCHAR2(80);
23947 l_component_code VARCHAR2(30);
23948 l_component_type_code VARCHAR2(1);
23949 l_component_appl_id INTEGER;
23950 l_amb_context_code VARCHAR2(30);
23951 l_entity_code VARCHAR2(30);
23952 l_event_class_code VARCHAR2(30);
23953 l_ae_header_id NUMBER;
23954 l_event_type_code VARCHAR2(30);
23955 l_line_definition_code VARCHAR2(30);
23956 l_line_definition_owner_code VARCHAR2(1);
23957 --
23958 -- adr variables
23959 l_segment VARCHAR2(30);
23960 l_ccid NUMBER;
23961 l_adr_transaction_coa_id NUMBER;
23962 l_adr_accounting_coa_id NUMBER;
23963 l_adr_flexfield_segment_code VARCHAR2(30);
23964 l_adr_flex_value_set_id NUMBER;
23965 l_adr_value_type_code VARCHAR2(30);
23966 l_adr_value_combination_id NUMBER;
23967 l_adr_value_segment_code VARCHAR2(30);
23968
23969 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
23970 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
23971 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
23972 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
23973
23974 -- 4262811 Variables ------------------------------------------------------------------------------------------
23975 l_entered_amt_idx NUMBER;
23976 l_accted_amt_idx NUMBER;
23977 l_acc_rev_flag VARCHAR2(1);
23978 l_accrual_line_num NUMBER;
23979 l_tmp_amt NUMBER;
23980 l_acc_rev_natural_side_code VARCHAR2(1);
23981
23982 l_num_entries NUMBER;
23983 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
23984 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
23985 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
23986 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
23987 l_recog_line_1 NUMBER;
23988 l_recog_line_2 NUMBER;
23989
23990 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
23991 l_bflow_applied_to_amt NUMBER; -- 5132302
23992 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
23993
23994 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
23995
23996 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
23997 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
23998
23999 ---------------------------------------------------------------------------------------------------------------
24000
24001
24002 --
24003 -- bulk performance
24004 --
24005 l_balance_type_code VARCHAR2(1);
24006 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
24007 l_log_module VARCHAR2(240);
24008
24009 --
24010 -- Upgrade strategy
24011 --
24012 l_actual_upg_option VARCHAR2(1);
24013 l_enc_upg_option VARCHAR2(1);
24014
24015 --
24016 BEGIN
24020 END IF;
24017 --
24018 IF g_log_enabled THEN
24019 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_63';
24021 --
24022 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24023
24024 trace
24025 (p_msg => 'BEGIN of AcctLineType_63'
24026 ,p_level => C_LEVEL_PROCEDURE
24027 ,p_module => l_log_module);
24028
24029 END IF;
24030 --
24031 l_component_type := 'AMB_JLT';
24032 l_component_code := 'PA_PROVIDER_COST_ADJ';
24033 l_component_type_code := 'S';
24034 l_component_appl_id := 275;
24035 l_amb_context_code := 'DEFAULT';
24036 l_entity_code := 'EXPENDITURES';
24037 l_event_class_code := 'BORROWED_AND_LENT_ADJ';
24038 l_event_type_code := 'BORROWED_AND_LENT_ADJ_ALL';
24039 l_line_definition_owner_code := 'S';
24040 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
24041 --
24042 l_balance_type_code := 'A';
24043 l_segment := NULL;
24044 l_ccid := NULL;
24045 l_adr_transaction_coa_id := NULL;
24046 l_adr_accounting_coa_id := NULL;
24047 l_adr_flexfield_segment_code := NULL;
24048 l_adr_flex_value_set_id := NULL;
24049 l_adr_value_type_code := NULL;
24050 l_adr_value_combination_id := NULL;
24051 l_adr_value_segment_code := NULL;
24052
24053 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
24054 l_bflow_class_code := ''; -- 4219869 Business Flow
24055 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
24056 l_budgetary_control_flag := 'N';
24057
24058 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24059 l_bflow_applied_to_amt := NULL; -- 5132302
24060 l_entered_amt_idx := NULL; -- 4262811
24061 l_accted_amt_idx := NULL; -- 4262811
24062 l_acc_rev_flag := NULL; -- 4262811
24063 l_accrual_line_num := NULL; -- 4262811
24064 l_tmp_amt := NULL; -- 4262811
24065 --
24066
24067 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
24068 l_balance_type_code <> 'B' THEN
24069 IF NVL(p_source_73,'
24070 ') = 'COST_TRANSFER' OR
24071 NVL(p_source_73,'
24072 ') = 'COST_REVENUE' OR
24073 p_source_73 IS NULL
24074 THEN
24075
24076 --
24077 XLA_AE_LINES_PKG.SetNewLine;
24078
24079 p_balance_type_code := l_balance_type_code;
24080 -- set the flag so later we will know whether the gain loss line needs to be created
24081
24082 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
24083 p_actual_flag :='A';
24084 END IF;
24085
24086 --
24087 -- bulk performance
24088 --
24089 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
24090 p_header_num => 0); -- 4262811
24091 --
24092 -- set accounting line options
24093 --
24094 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
24095 p_natural_side_code => 'C'
24096 , p_gain_or_loss_flag => 'N'
24097 , p_gl_transfer_mode_code => 'S'
24098 , p_acct_entry_type_code => 'A'
24099 , p_switch_side_flag => 'Y'
24100 , p_merge_duplicate_code => 'N'
24101 );
24102 --
24103 l_acc_rev_natural_side_code := 'D'; -- 4262811
24104 --
24105 --
24106 -- set accounting line type info
24107 --
24108 xla_ae_lines_pkg.SetAcctLineType
24109 (p_component_type => l_component_type
24110 ,p_event_type_code => l_event_type_code
24111 ,p_line_definition_owner_code => l_line_definition_owner_code
24112 ,p_line_definition_code => l_line_definition_code
24113 ,p_accounting_line_code => l_component_code
24114 ,p_accounting_line_type_code => l_component_type_code
24115 ,p_accounting_line_appl_id => l_component_appl_id
24116 ,p_amb_context_code => l_amb_context_code
24117 ,p_entity_code => l_entity_code
24118 ,p_event_class_code => l_event_class_code);
24119 --
24120 -- set accounting class
24121 --
24122 xla_ae_lines_pkg.SetAcctClass(
24123 p_accounting_class_code => 'PROVIDER_COST'
24124 , p_ae_header_id => l_ae_header_id
24125 );
24126
24127 --
24128 -- set rounding class
24129 --
24130 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
24131 'PROVIDER_COST';
24132
24133 --
24134 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
24135 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
24136 --
24137 -- bulk performance
24138 --
24139 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
24140
24141 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
24142 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
24143
24144 -- 4955764
24145 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24146 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
24147
24148 -- 4458381 Public Sector Enh
24149
24150 --
24151 -- set accounting attributes for the line type
24152 --
24153 l_entered_amt_idx := 22;
24154 l_accted_amt_idx := 27;
24155 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24156 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
24160 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
24157 l_rec_acct_attrs.array_char_value(1) := p_source_23;
24158 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
24159 l_rec_acct_attrs.array_char_value(2) := p_source_24;
24161 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_9);
24162 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
24163 l_rec_acct_attrs.array_num_value(4) := p_source_42;
24164 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
24165 l_rec_acct_attrs.array_char_value(5) := p_source_26;
24166 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
24167 l_rec_acct_attrs.array_num_value(6) := p_source_43;
24168 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
24169 l_rec_acct_attrs.array_date_value(7) := p_source_28;
24170 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
24171 l_rec_acct_attrs.array_num_value(8) := p_source_29;
24172 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
24173 l_rec_acct_attrs.array_char_value(9) := p_source_30;
24174 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
24175 l_rec_acct_attrs.array_char_value(10) := p_source_31;
24176 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
24177 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_16);
24178 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
24179 l_rec_acct_attrs.array_num_value(12) := p_source_42;
24180 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
24181 l_rec_acct_attrs.array_char_value(13) := p_source_26;
24182 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
24183 l_rec_acct_attrs.array_num_value(14) := p_source_43;
24184 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
24185 l_rec_acct_attrs.array_date_value(15) := p_source_28;
24186 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
24187 l_rec_acct_attrs.array_num_value(16) := p_source_29;
24188 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
24189 l_rec_acct_attrs.array_char_value(17) := p_source_30;
24190 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
24191 l_rec_acct_attrs.array_char_value(18) := p_source_32;
24192 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
24193 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
24194 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
24195 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
24196 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
24197 l_rec_acct_attrs.array_char_value(21) := p_source_35;
24198 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
24199 l_rec_acct_attrs.array_num_value(22) := p_source_42;
24200 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
24201 l_rec_acct_attrs.array_char_value(23) := p_source_26;
24202 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
24203 l_rec_acct_attrs.array_date_value(24) := p_source_28;
24204 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
24205 l_rec_acct_attrs.array_num_value(25) := p_source_29;
24206 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
24207 l_rec_acct_attrs.array_char_value(26) := p_source_30;
24208 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
24209 l_rec_acct_attrs.array_num_value(27) := p_source_43;
24210 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
24211 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
24212 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
24213 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
24214 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
24215 l_rec_acct_attrs.array_char_value(30) := p_source_35;
24216
24217 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24218 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24219
24220 ---------------------------------------------------------------------------------------------------------------
24221 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24222 ---------------------------------------------------------------------------------------------------------------
24223 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24224
24225 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24226 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24227
24228 IF xla_accounting_cache_pkg.GetValueChar
24229 (p_source_code => 'LEDGER_CATEGORY_CODE'
24230 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24231 AND l_bflow_method_code = 'PRIOR_ENTRY'
24232 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24233 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24234 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24235 )
24236 THEN
24237 xla_ae_lines_pkg.BflowUpgEntry
24238 (p_business_method_code => l_bflow_method_code
24239 ,p_business_class_code => l_bflow_class_code
24240 ,p_balance_type => l_balance_type_code);
24241 ELSE
24242 NULL;
24243 -- No business flow processing for business flow method of NONE.
24244 END IF;
24245
24246 --
24247 -- call analytical criteria
24248 --
24249
24250 --
24251 -- call description
24252 --
24253 -- No description or it is inherited.
24254 --
24255 -- call ADRs
24256 -- Bug 4922099
24260 (NVL(l_enc_upg_option, 'N') = 'O')
24257 --
24258 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24259 (NVL(l_actual_upg_option, 'N') = 'O') OR
24261 )
24262 THEN
24263 NULL;
24264 --
24265 --
24266
24267 l_ccid := AcctDerRule_17(
24268 p_application_id => p_application_id
24269 , p_ae_header_id => l_ae_header_id
24270 , p_source_5 => p_source_5
24271 , p_source_10 => p_source_10
24272 , x_transaction_coa_id => l_adr_transaction_coa_id
24273 , x_accounting_coa_id => l_adr_accounting_coa_id
24274 , x_value_type_code => l_adr_value_type_code
24275 , p_side => 'NA'
24276 );
24277
24278 xla_ae_lines_pkg.set_ccid(
24279 p_code_combination_id => l_ccid
24280 , p_value_type_code => l_adr_value_type_code
24281 , p_transaction_coa_id => l_adr_transaction_coa_id
24282 , p_accounting_coa_id => l_adr_accounting_coa_id
24283 , p_adr_code => 'PA_PROV_COST_REV_ADJ_ACCT_RULE'
24284 , p_adr_type_code => 'S'
24285 , p_component_type => l_component_type
24286 , p_component_code => l_component_code
24287 , p_component_type_code => l_component_type_code
24288 , p_component_appl_id => l_component_appl_id
24289 , p_amb_context_code => l_amb_context_code
24290 , p_side => 'NA'
24291 );
24292
24293
24294 --
24295 --
24296 END IF;
24297 --
24298 -- Bug 4922099
24299 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24300 (NVL(l_enc_upg_option, 'N') = 'O')
24301 ) AND
24302 (l_bflow_method_code = 'PRIOR_ENTRY')
24303 )
24304 THEN
24305 IF
24306 --
24307 1 = 2
24308 --
24309 THEN
24310 xla_accounting_err_pkg.build_message
24311 (p_appli_s_name => 'XLA'
24312 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24313 ,p_token_1 => 'LINE_NUMBER'
24314 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
24315 ,p_token_2 => 'LINE_TYPE_NAME'
24316 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
24317 l_component_type
24318 ,l_component_code
24319 ,l_component_type_code
24320 ,l_component_appl_id
24321 ,l_amb_context_code
24322 ,l_entity_code
24323 ,l_event_class_code
24324 )
24325 ,p_token_3 => 'OWNER'
24326 ,p_value_3 => xla_lookups_pkg.get_meaning(
24327 p_lookup_type => 'XLA_OWNER_TYPE'
24328 ,p_lookup_code => l_component_type_code
24329 )
24330 ,p_token_4 => 'PRODUCT_NAME'
24331 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
24332 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
24333 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
24334 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
24335 ,p_ae_header_id => NULL
24336 );
24337
24338 IF (C_LEVEL_ERROR>= g_log_level) THEN
24339 trace
24340 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24341 ,p_level => C_LEVEL_ERROR
24342 ,p_module => l_log_module);
24343 END IF;
24344 END IF;
24345 END IF;
24346 --
24347 --
24348 ------------------------------------------------------------------------------------------------
24349 -- 4219869 Business Flow
24350 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
24351 -- Prior Entry. Currently, the following code is always generated.
24352 ------------------------------------------------------------------------------------------------
24353 XLA_AE_LINES_PKG.ValidateCurrentLine;
24354
24355 ------------------------------------------------------------------------------------
24356 -- 4219869 Business Flow
24357 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
24358 ------------------------------------------------------------------------------------
24359 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24360
24361 ----------------------------------------------------------------------------------
24362 -- 4219869 Business Flow
24363 -- Update journal entry status -- Need to generate this within IF <condition>
24364 ----------------------------------------------------------------------------------
24365 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24369
24366 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
24367 ,p_balance_type_code => l_balance_type_code
24368 );
24370 -------------------------------------------------------------------------------------------
24371 -- 4262811 - Generate the Accrual Reversal lines
24372 -------------------------------------------------------------------------------------------
24373 BEGIN
24374 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
24375 (g_array_event(p_event_id).array_value_num('header_index'));
24376 IF l_acc_rev_flag IS NULL THEN
24377 l_acc_rev_flag := 'N';
24378 END IF;
24379 EXCEPTION
24380 WHEN OTHERS THEN
24381 l_acc_rev_flag := 'N';
24382 END;
24383 --
24384 IF (l_acc_rev_flag = 'Y') THEN
24385
24386 -- 4645092 ------------------------------------------------------------------------------
24387 -- To allow MPA report to determine if it should generate report process
24388 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
24389 ------------------------------------------------------------------------------------------
24390
24391 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
24392 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
24393
24394 --
24395 -- Update the line information that should be overwritten
24396 --
24397 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
24398 p_header_num => 1);
24399 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
24400
24401 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
24402
24403 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
24404 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
24405 END IF;
24406
24407 --
24408 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
24409 --
24410 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
24411 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
24412 ELSE
24413 ---------------------------------------------------------------------------------------------------
24414 -- 4262811a Switch Sign
24415 ---------------------------------------------------------------------------------------------------
24416 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
24417 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24418 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24419 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24420 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24421 -- 5132302
24422 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
24423 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24424
24425 END IF;
24426
24427 -- 4955764
24428 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24429 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
24430
24431
24432 XLA_AE_LINES_PKG.ValidateCurrentLine;
24433 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24434
24435 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24436 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
24437 ,p_balance_type_code => l_balance_type_code);
24438
24439 END IF;
24440
24441 -----------------------------------------------------------------------------------------
24442 -- 4262811 Multiperiod Accounting
24443 -----------------------------------------------------------------------------------------
24444 -- No MPA option is assigned.
24445
24446
24447 END IF;
24448 END IF;
24449 --
24450
24451 --
24452 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24453 trace
24454 (p_msg => 'END of AcctLineType_63'
24455 ,p_level => C_LEVEL_PROCEDURE
24456 ,p_module => l_log_module);
24457 END IF;
24458 --
24459 EXCEPTION
24460 WHEN xla_exceptions_pkg.application_exception THEN
24461 RAISE;
24462 WHEN OTHERS THEN
24463 xla_exceptions_pkg.raise_message
24464 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_63');
24465 END AcctLineType_63;
24466 --
24467
24468 ---------------------------------------
24469 --
24470 -- PRIVATE FUNCTION
24471 -- AcctLineType_64
24472 --
24473 ---------------------------------------
24474 PROCEDURE AcctLineType_64 (
24475 p_application_id IN NUMBER
24476 ,p_event_id IN NUMBER
24477 ,p_calculate_acctd_flag IN VARCHAR2
24478 ,p_calculate_g_l_flag IN VARCHAR2
24479 ,p_actual_flag IN OUT VARCHAR2
24480 ,p_balance_type_code OUT VARCHAR2
24481 ,p_gain_or_loss_ref OUT VARCHAR2
24482
24483 --Allow Account Override Flag
24484 , p_source_5 IN VARCHAR2
24485 --Provider Cost/ Revenue CCID
24486 , p_source_9 IN NUMBER
24487 --Adjustment Provider Cost/ Revenue CCID
24488 , p_source_10 IN NUMBER
24489 --Receiver Cost/ Revenue CCID
24490 , p_source_16 IN NUMBER
24491 --Reversing Line Flag
24492 , p_source_23 IN VARCHAR2
24496 , p_source_26 IN VARCHAR2
24493 --Actual Upgrade Credit Accounting Class
24494 , p_source_24 IN VARCHAR2
24495 --Entered Currency Code
24497 --Exchange Rate Date
24498 , p_source_28 IN DATE
24499 --Exchange Rate
24500 , p_source_29 IN NUMBER
24501 --Exchange Rate Type
24502 , p_source_30 IN VARCHAR2
24503 --Actual Upgrade Debit Accounting Class
24504 , p_source_31 IN VARCHAR2
24505 --Use Actuals Upgrade Attributes Flag
24506 , p_source_32 IN VARCHAR2
24507 --Expenditure Item ID
24508 , p_source_33 IN NUMBER
24509 --Cost Distribution Line Number
24510 , p_source_34 IN NUMBER
24511 --Line Type
24512 , p_source_35 IN VARCHAR2
24513 , p_source_35_meaning IN VARCHAR2
24514 --Reversed Line Number
24515 , p_source_36 IN NUMBER
24516 --Entered Amount
24517 , p_source_42 IN NUMBER
24518 --Accounted Amount
24519 , p_source_43 IN NUMBER
24520 --Transfer Amount Type
24521 , p_source_73 IN VARCHAR2
24522 , p_source_73_meaning IN VARCHAR2
24523 )
24524 IS
24525
24526 l_component_type VARCHAR2(80);
24527 l_component_code VARCHAR2(30);
24528 l_component_type_code VARCHAR2(1);
24529 l_component_appl_id INTEGER;
24530 l_amb_context_code VARCHAR2(30);
24531 l_entity_code VARCHAR2(30);
24532 l_event_class_code VARCHAR2(30);
24533 l_ae_header_id NUMBER;
24534 l_event_type_code VARCHAR2(30);
24535 l_line_definition_code VARCHAR2(30);
24536 l_line_definition_owner_code VARCHAR2(1);
24537 --
24538 -- adr variables
24539 l_segment VARCHAR2(30);
24540 l_ccid NUMBER;
24541 l_adr_transaction_coa_id NUMBER;
24542 l_adr_accounting_coa_id NUMBER;
24543 l_adr_flexfield_segment_code VARCHAR2(30);
24544 l_adr_flex_value_set_id NUMBER;
24545 l_adr_value_type_code VARCHAR2(30);
24546 l_adr_value_combination_id NUMBER;
24547 l_adr_value_segment_code VARCHAR2(30);
24548
24549 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
24550 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
24551 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
24552 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
24553
24554 -- 4262811 Variables ------------------------------------------------------------------------------------------
24555 l_entered_amt_idx NUMBER;
24556 l_accted_amt_idx NUMBER;
24557 l_acc_rev_flag VARCHAR2(1);
24558 l_accrual_line_num NUMBER;
24559 l_tmp_amt NUMBER;
24560 l_acc_rev_natural_side_code VARCHAR2(1);
24561
24562 l_num_entries NUMBER;
24563 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
24564 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
24565 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
24566 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
24567 l_recog_line_1 NUMBER;
24568 l_recog_line_2 NUMBER;
24569
24570 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
24571 l_bflow_applied_to_amt NUMBER; -- 5132302
24572 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
24573
24574 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
24575
24576 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
24577 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
24578
24579 ---------------------------------------------------------------------------------------------------------------
24580
24581
24582 --
24583 -- bulk performance
24584 --
24585 l_balance_type_code VARCHAR2(1);
24586 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
24587 l_log_module VARCHAR2(240);
24588
24589 --
24590 -- Upgrade strategy
24591 --
24592 l_actual_upg_option VARCHAR2(1);
24593 l_enc_upg_option VARCHAR2(1);
24594
24595 --
24596 BEGIN
24597 --
24598 IF g_log_enabled THEN
24599 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_64';
24600 END IF;
24601 --
24602 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24603
24604 trace
24605 (p_msg => 'BEGIN of AcctLineType_64'
24606 ,p_level => C_LEVEL_PROCEDURE
24607 ,p_module => l_log_module);
24608
24609 END IF;
24610 --
24611 l_component_type := 'AMB_JLT';
24612 l_component_code := 'PA_PROVIDER_REVENUE';
24613 l_component_type_code := 'S';
24614 l_component_appl_id := 275;
24615 l_amb_context_code := 'DEFAULT';
24616 l_entity_code := 'EXPENDITURES';
24617 l_event_class_code := 'BORROWED_AND_LENT';
24618 l_event_type_code := 'BORROWED_AND_LENT_ALL';
24619 l_line_definition_owner_code := 'S';
24620 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
24621 --
24622 l_balance_type_code := 'A';
24623 l_segment := NULL;
24624 l_ccid := NULL;
24625 l_adr_transaction_coa_id := NULL;
24626 l_adr_accounting_coa_id := NULL;
24627 l_adr_flexfield_segment_code := NULL;
24628 l_adr_flex_value_set_id := NULL;
24629 l_adr_value_type_code := NULL;
24630 l_adr_value_combination_id := NULL;
24631 l_adr_value_segment_code := NULL;
24632
24633 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
24637
24634 l_bflow_class_code := ''; -- 4219869 Business Flow
24635 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
24636 l_budgetary_control_flag := 'N';
24638 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24639 l_bflow_applied_to_amt := NULL; -- 5132302
24640 l_entered_amt_idx := NULL; -- 4262811
24641 l_accted_amt_idx := NULL; -- 4262811
24642 l_acc_rev_flag := NULL; -- 4262811
24643 l_accrual_line_num := NULL; -- 4262811
24644 l_tmp_amt := NULL; -- 4262811
24645 --
24646
24647 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
24648 l_balance_type_code <> 'B' THEN
24649 IF NVL(p_source_73,'
24650 ') = 'REVENUE_TRANSFER'
24651 THEN
24652
24653 --
24654 XLA_AE_LINES_PKG.SetNewLine;
24655
24656 p_balance_type_code := l_balance_type_code;
24657 -- set the flag so later we will know whether the gain loss line needs to be created
24658
24659 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
24660 p_actual_flag :='A';
24661 END IF;
24662
24663 --
24664 -- bulk performance
24665 --
24666 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
24667 p_header_num => 0); -- 4262811
24668 --
24669 -- set accounting line options
24670 --
24671 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
24672 p_natural_side_code => 'C'
24673 , p_gain_or_loss_flag => 'N'
24674 , p_gl_transfer_mode_code => 'S'
24675 , p_acct_entry_type_code => 'A'
24676 , p_switch_side_flag => 'Y'
24677 , p_merge_duplicate_code => 'N'
24678 );
24679 --
24680 l_acc_rev_natural_side_code := 'D'; -- 4262811
24681 --
24682 --
24683 -- set accounting line type info
24684 --
24685 xla_ae_lines_pkg.SetAcctLineType
24686 (p_component_type => l_component_type
24687 ,p_event_type_code => l_event_type_code
24688 ,p_line_definition_owner_code => l_line_definition_owner_code
24689 ,p_line_definition_code => l_line_definition_code
24690 ,p_accounting_line_code => l_component_code
24691 ,p_accounting_line_type_code => l_component_type_code
24692 ,p_accounting_line_appl_id => l_component_appl_id
24693 ,p_amb_context_code => l_amb_context_code
24694 ,p_entity_code => l_entity_code
24695 ,p_event_class_code => l_event_class_code);
24696 --
24697 -- set accounting class
24698 --
24699 xla_ae_lines_pkg.SetAcctClass(
24700 p_accounting_class_code => 'PROVIDER_REVENUE'
24701 , p_ae_header_id => l_ae_header_id
24702 );
24703
24704 --
24705 -- set rounding class
24706 --
24707 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
24708 'PROVIDER_REVENUE';
24709
24710 --
24711 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
24712 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
24713 --
24714 -- bulk performance
24715 --
24716 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
24717
24718 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
24719 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
24720
24721 -- 4955764
24722 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24723 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
24724
24725 -- 4458381 Public Sector Enh
24726
24727 --
24728 -- set accounting attributes for the line type
24729 --
24730 l_entered_amt_idx := 22;
24731 l_accted_amt_idx := 27;
24732 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24733 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
24734 l_rec_acct_attrs.array_char_value(1) := p_source_23;
24735 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
24736 l_rec_acct_attrs.array_char_value(2) := p_source_24;
24737 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
24738 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_9);
24739 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
24740 l_rec_acct_attrs.array_num_value(4) := p_source_42;
24741 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
24742 l_rec_acct_attrs.array_char_value(5) := p_source_26;
24743 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
24744 l_rec_acct_attrs.array_num_value(6) := p_source_43;
24745 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
24746 l_rec_acct_attrs.array_date_value(7) := p_source_28;
24747 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
24748 l_rec_acct_attrs.array_num_value(8) := p_source_29;
24749 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
24750 l_rec_acct_attrs.array_char_value(9) := p_source_30;
24751 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
24752 l_rec_acct_attrs.array_char_value(10) := p_source_31;
24753 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
24754 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_16);
24755 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
24756 l_rec_acct_attrs.array_num_value(12) := p_source_42;
24760 l_rec_acct_attrs.array_num_value(14) := p_source_43;
24757 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
24758 l_rec_acct_attrs.array_char_value(13) := p_source_26;
24759 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
24761 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
24762 l_rec_acct_attrs.array_date_value(15) := p_source_28;
24763 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
24764 l_rec_acct_attrs.array_num_value(16) := p_source_29;
24765 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
24766 l_rec_acct_attrs.array_char_value(17) := p_source_30;
24767 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
24768 l_rec_acct_attrs.array_char_value(18) := p_source_32;
24769 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
24770 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
24771 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
24772 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
24773 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
24774 l_rec_acct_attrs.array_char_value(21) := p_source_35;
24775 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
24776 l_rec_acct_attrs.array_num_value(22) := p_source_42;
24777 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
24778 l_rec_acct_attrs.array_char_value(23) := p_source_26;
24779 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
24780 l_rec_acct_attrs.array_date_value(24) := p_source_28;
24781 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
24782 l_rec_acct_attrs.array_num_value(25) := p_source_29;
24783 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
24784 l_rec_acct_attrs.array_char_value(26) := p_source_30;
24785 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
24786 l_rec_acct_attrs.array_num_value(27) := p_source_43;
24787 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
24788 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
24789 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
24790 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
24791 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
24792 l_rec_acct_attrs.array_char_value(30) := p_source_35;
24793
24794 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24795 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24796
24797 ---------------------------------------------------------------------------------------------------------------
24798 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24799 ---------------------------------------------------------------------------------------------------------------
24800 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24801
24802 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24803 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24804
24805 IF xla_accounting_cache_pkg.GetValueChar
24806 (p_source_code => 'LEDGER_CATEGORY_CODE'
24807 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24808 AND l_bflow_method_code = 'PRIOR_ENTRY'
24809 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24810 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24811 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24812 )
24813 THEN
24814 xla_ae_lines_pkg.BflowUpgEntry
24815 (p_business_method_code => l_bflow_method_code
24816 ,p_business_class_code => l_bflow_class_code
24817 ,p_balance_type => l_balance_type_code);
24818 ELSE
24819 NULL;
24820 -- No business flow processing for business flow method of NONE.
24821 END IF;
24822
24823 --
24824 -- call analytical criteria
24825 --
24826
24827 --
24828 -- call description
24829 --
24830 -- No description or it is inherited.
24831 --
24832 -- call ADRs
24833 -- Bug 4922099
24834 --
24835 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24836 (NVL(l_actual_upg_option, 'N') = 'O') OR
24837 (NVL(l_enc_upg_option, 'N') = 'O')
24838 )
24839 THEN
24840 NULL;
24841 --
24842 --
24843
24844 l_ccid := AcctDerRule_16(
24845 p_application_id => p_application_id
24846 , p_ae_header_id => l_ae_header_id
24847 , p_source_5 => p_source_5
24848 , p_source_9 => p_source_9
24849 , p_source_10 => p_source_10
24850 , x_transaction_coa_id => l_adr_transaction_coa_id
24851 , x_accounting_coa_id => l_adr_accounting_coa_id
24852 , x_value_type_code => l_adr_value_type_code
24853 , p_side => 'NA'
24854 );
24855
24856 xla_ae_lines_pkg.set_ccid(
24857 p_code_combination_id => l_ccid
24858 , p_value_type_code => l_adr_value_type_code
24859 , p_transaction_coa_id => l_adr_transaction_coa_id
24860 , p_accounting_coa_id => l_adr_accounting_coa_id
24861 , p_adr_code => 'PA_PROV_COST_REV_ACCT_RULE'
24862 , p_adr_type_code => 'S'
24863 , p_component_type => l_component_type
24864 , p_component_code => l_component_code
24865 , p_component_type_code => l_component_type_code
24866 , p_component_appl_id => l_component_appl_id
24867 , p_amb_context_code => l_amb_context_code
24871
24868 , p_side => 'NA'
24869 );
24870
24872 --
24873 --
24874 END IF;
24875 --
24876 -- Bug 4922099
24877 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24878 (NVL(l_enc_upg_option, 'N') = 'O')
24879 ) AND
24880 (l_bflow_method_code = 'PRIOR_ENTRY')
24881 )
24882 THEN
24883 IF
24884 --
24885 1 = 2
24886 --
24887 THEN
24888 xla_accounting_err_pkg.build_message
24889 (p_appli_s_name => 'XLA'
24890 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24891 ,p_token_1 => 'LINE_NUMBER'
24892 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
24893 ,p_token_2 => 'LINE_TYPE_NAME'
24894 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
24895 l_component_type
24896 ,l_component_code
24897 ,l_component_type_code
24898 ,l_component_appl_id
24899 ,l_amb_context_code
24900 ,l_entity_code
24901 ,l_event_class_code
24902 )
24903 ,p_token_3 => 'OWNER'
24904 ,p_value_3 => xla_lookups_pkg.get_meaning(
24905 p_lookup_type => 'XLA_OWNER_TYPE'
24906 ,p_lookup_code => l_component_type_code
24907 )
24908 ,p_token_4 => 'PRODUCT_NAME'
24909 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
24910 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
24911 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
24912 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
24913 ,p_ae_header_id => NULL
24914 );
24915
24916 IF (C_LEVEL_ERROR>= g_log_level) THEN
24917 trace
24918 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24919 ,p_level => C_LEVEL_ERROR
24920 ,p_module => l_log_module);
24921 END IF;
24922 END IF;
24923 END IF;
24924 --
24925 --
24926 ------------------------------------------------------------------------------------------------
24927 -- 4219869 Business Flow
24928 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
24929 -- Prior Entry. Currently, the following code is always generated.
24930 ------------------------------------------------------------------------------------------------
24931 XLA_AE_LINES_PKG.ValidateCurrentLine;
24932
24933 ------------------------------------------------------------------------------------
24934 -- 4219869 Business Flow
24935 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
24936 ------------------------------------------------------------------------------------
24937 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24938
24939 ----------------------------------------------------------------------------------
24940 -- 4219869 Business Flow
24941 -- Update journal entry status -- Need to generate this within IF <condition>
24942 ----------------------------------------------------------------------------------
24943 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24944 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
24945 ,p_balance_type_code => l_balance_type_code
24946 );
24947
24948 -------------------------------------------------------------------------------------------
24949 -- 4262811 - Generate the Accrual Reversal lines
24950 -------------------------------------------------------------------------------------------
24951 BEGIN
24952 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
24953 (g_array_event(p_event_id).array_value_num('header_index'));
24954 IF l_acc_rev_flag IS NULL THEN
24955 l_acc_rev_flag := 'N';
24956 END IF;
24957 EXCEPTION
24958 WHEN OTHERS THEN
24959 l_acc_rev_flag := 'N';
24960 END;
24961 --
24962 IF (l_acc_rev_flag = 'Y') THEN
24963
24964 -- 4645092 ------------------------------------------------------------------------------
24965 -- To allow MPA report to determine if it should generate report process
24966 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
24967 ------------------------------------------------------------------------------------------
24968
24969 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
24970 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
24971
24972 --
24973 -- Update the line information that should be overwritten
24974 --
24978
24975 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
24976 p_header_num => 1);
24977 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
24979 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
24980
24981 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
24982 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
24983 END IF;
24984
24985 --
24986 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
24987 --
24988 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
24989 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
24990 ELSE
24991 ---------------------------------------------------------------------------------------------------
24992 -- 4262811a Switch Sign
24993 ---------------------------------------------------------------------------------------------------
24994 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
24995 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24996 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24997 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24998 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24999 -- 5132302
25000 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25001 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25002
25003 END IF;
25004
25005 -- 4955764
25006 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25007 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25008
25009
25010 XLA_AE_LINES_PKG.ValidateCurrentLine;
25011 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25012
25013 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25014 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
25015 ,p_balance_type_code => l_balance_type_code);
25016
25017 END IF;
25018
25019 -----------------------------------------------------------------------------------------
25020 -- 4262811 Multiperiod Accounting
25021 -----------------------------------------------------------------------------------------
25022 -- No MPA option is assigned.
25023
25024
25025 END IF;
25026 END IF;
25027 --
25028
25029 --
25030 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25031 trace
25032 (p_msg => 'END of AcctLineType_64'
25033 ,p_level => C_LEVEL_PROCEDURE
25034 ,p_module => l_log_module);
25035 END IF;
25036 --
25037 EXCEPTION
25038 WHEN xla_exceptions_pkg.application_exception THEN
25039 RAISE;
25040 WHEN OTHERS THEN
25041 xla_exceptions_pkg.raise_message
25042 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_64');
25043 END AcctLineType_64;
25044 --
25045
25046 ---------------------------------------
25047 --
25048 -- PRIVATE FUNCTION
25049 -- AcctLineType_65
25050 --
25051 ---------------------------------------
25052 PROCEDURE AcctLineType_65 (
25053 p_application_id IN NUMBER
25054 ,p_event_id IN NUMBER
25055 ,p_calculate_acctd_flag IN VARCHAR2
25056 ,p_calculate_g_l_flag IN VARCHAR2
25057 ,p_actual_flag IN OUT VARCHAR2
25058 ,p_balance_type_code OUT VARCHAR2
25059 ,p_gain_or_loss_ref OUT VARCHAR2
25060
25061 --Allow Account Override Flag
25062 , p_source_5 IN VARCHAR2
25063 --Provider Cost/ Revenue CCID
25064 , p_source_9 IN NUMBER
25065 --Adjustment Provider Cost/ Revenue CCID
25066 , p_source_10 IN NUMBER
25067 --Receiver Cost/ Revenue CCID
25068 , p_source_16 IN NUMBER
25069 --Reversing Line Flag
25070 , p_source_23 IN VARCHAR2
25071 --Actual Upgrade Credit Accounting Class
25072 , p_source_24 IN VARCHAR2
25073 --Entered Currency Code
25074 , p_source_26 IN VARCHAR2
25075 --Exchange Rate Date
25076 , p_source_28 IN DATE
25077 --Exchange Rate
25078 , p_source_29 IN NUMBER
25079 --Exchange Rate Type
25080 , p_source_30 IN VARCHAR2
25081 --Actual Upgrade Debit Accounting Class
25082 , p_source_31 IN VARCHAR2
25083 --Use Actuals Upgrade Attributes Flag
25084 , p_source_32 IN VARCHAR2
25085 --Expenditure Item ID
25086 , p_source_33 IN NUMBER
25087 --Cost Distribution Line Number
25088 , p_source_34 IN NUMBER
25089 --Line Type
25090 , p_source_35 IN VARCHAR2
25091 , p_source_35_meaning IN VARCHAR2
25092 --Reversed Line Number
25093 , p_source_36 IN NUMBER
25094 --Entered Amount
25095 , p_source_42 IN NUMBER
25096 --Accounted Amount
25097 , p_source_43 IN NUMBER
25098 --Transfer Amount Type
25099 , p_source_73 IN VARCHAR2
25100 , p_source_73_meaning IN VARCHAR2
25101 )
25102 IS
25103
25104 l_component_type VARCHAR2(80);
25105 l_component_code VARCHAR2(30);
25106 l_component_type_code VARCHAR2(1);
25107 l_component_appl_id INTEGER;
25108 l_amb_context_code VARCHAR2(30);
25112 l_event_type_code VARCHAR2(30);
25109 l_entity_code VARCHAR2(30);
25110 l_event_class_code VARCHAR2(30);
25111 l_ae_header_id NUMBER;
25113 l_line_definition_code VARCHAR2(30);
25114 l_line_definition_owner_code VARCHAR2(1);
25115 --
25116 -- adr variables
25117 l_segment VARCHAR2(30);
25118 l_ccid NUMBER;
25119 l_adr_transaction_coa_id NUMBER;
25120 l_adr_accounting_coa_id NUMBER;
25121 l_adr_flexfield_segment_code VARCHAR2(30);
25122 l_adr_flex_value_set_id NUMBER;
25123 l_adr_value_type_code VARCHAR2(30);
25124 l_adr_value_combination_id NUMBER;
25125 l_adr_value_segment_code VARCHAR2(30);
25126
25127 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
25128 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
25129 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
25130 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
25131
25132 -- 4262811 Variables ------------------------------------------------------------------------------------------
25133 l_entered_amt_idx NUMBER;
25134 l_accted_amt_idx NUMBER;
25135 l_acc_rev_flag VARCHAR2(1);
25136 l_accrual_line_num NUMBER;
25137 l_tmp_amt NUMBER;
25138 l_acc_rev_natural_side_code VARCHAR2(1);
25139
25140 l_num_entries NUMBER;
25141 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
25142 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
25143 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
25144 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
25145 l_recog_line_1 NUMBER;
25146 l_recog_line_2 NUMBER;
25147
25148 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
25149 l_bflow_applied_to_amt NUMBER; -- 5132302
25150 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
25151
25152 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
25153
25154 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
25155 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
25156
25157 ---------------------------------------------------------------------------------------------------------------
25158
25159
25160 --
25161 -- bulk performance
25162 --
25163 l_balance_type_code VARCHAR2(1);
25164 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
25165 l_log_module VARCHAR2(240);
25166
25167 --
25168 -- Upgrade strategy
25169 --
25170 l_actual_upg_option VARCHAR2(1);
25171 l_enc_upg_option VARCHAR2(1);
25172
25173 --
25174 BEGIN
25175 --
25176 IF g_log_enabled THEN
25177 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_65';
25178 END IF;
25179 --
25180 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25181
25182 trace
25183 (p_msg => 'BEGIN of AcctLineType_65'
25184 ,p_level => C_LEVEL_PROCEDURE
25185 ,p_module => l_log_module);
25186
25187 END IF;
25188 --
25189 l_component_type := 'AMB_JLT';
25190 l_component_code := 'PA_PROVIDER_REVENUE_ADJ';
25191 l_component_type_code := 'S';
25192 l_component_appl_id := 275;
25193 l_amb_context_code := 'DEFAULT';
25194 l_entity_code := 'EXPENDITURES';
25195 l_event_class_code := 'BORROWED_AND_LENT_ADJ';
25196 l_event_type_code := 'BORROWED_AND_LENT_ADJ_ALL';
25197 l_line_definition_owner_code := 'S';
25198 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
25199 --
25200 l_balance_type_code := 'A';
25201 l_segment := NULL;
25202 l_ccid := NULL;
25203 l_adr_transaction_coa_id := NULL;
25204 l_adr_accounting_coa_id := NULL;
25205 l_adr_flexfield_segment_code := NULL;
25206 l_adr_flex_value_set_id := NULL;
25207 l_adr_value_type_code := NULL;
25208 l_adr_value_combination_id := NULL;
25209 l_adr_value_segment_code := NULL;
25210
25211 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
25212 l_bflow_class_code := ''; -- 4219869 Business Flow
25213 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
25214 l_budgetary_control_flag := 'N';
25215
25216 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25217 l_bflow_applied_to_amt := NULL; -- 5132302
25218 l_entered_amt_idx := NULL; -- 4262811
25219 l_accted_amt_idx := NULL; -- 4262811
25220 l_acc_rev_flag := NULL; -- 4262811
25221 l_accrual_line_num := NULL; -- 4262811
25222 l_tmp_amt := NULL; -- 4262811
25223 --
25224
25225 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
25226 l_balance_type_code <> 'B' THEN
25227 IF NVL(p_source_73,'
25228 ') = 'REVENUE_TRANSFER'
25229 THEN
25230
25231 --
25232 XLA_AE_LINES_PKG.SetNewLine;
25233
25234 p_balance_type_code := l_balance_type_code;
25235 -- set the flag so later we will know whether the gain loss line needs to be created
25236
25237 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
25238 p_actual_flag :='A';
25239 END IF;
25240
25241 --
25242 -- bulk performance
25243 --
25244 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
25245 p_header_num => 0); -- 4262811
25246 --
25250 p_natural_side_code => 'C'
25247 -- set accounting line options
25248 --
25249 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
25251 , p_gain_or_loss_flag => 'N'
25252 , p_gl_transfer_mode_code => 'S'
25253 , p_acct_entry_type_code => 'A'
25254 , p_switch_side_flag => 'Y'
25255 , p_merge_duplicate_code => 'N'
25256 );
25257 --
25258 l_acc_rev_natural_side_code := 'D'; -- 4262811
25259 --
25260 --
25261 -- set accounting line type info
25262 --
25263 xla_ae_lines_pkg.SetAcctLineType
25264 (p_component_type => l_component_type
25265 ,p_event_type_code => l_event_type_code
25266 ,p_line_definition_owner_code => l_line_definition_owner_code
25267 ,p_line_definition_code => l_line_definition_code
25268 ,p_accounting_line_code => l_component_code
25269 ,p_accounting_line_type_code => l_component_type_code
25270 ,p_accounting_line_appl_id => l_component_appl_id
25271 ,p_amb_context_code => l_amb_context_code
25272 ,p_entity_code => l_entity_code
25273 ,p_event_class_code => l_event_class_code);
25274 --
25275 -- set accounting class
25276 --
25277 xla_ae_lines_pkg.SetAcctClass(
25278 p_accounting_class_code => 'PROVIDER_REVENUE'
25279 , p_ae_header_id => l_ae_header_id
25280 );
25281
25282 --
25283 -- set rounding class
25284 --
25285 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
25286 'PROVIDER_REVENUE';
25287
25288 --
25289 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
25290 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
25291 --
25292 -- bulk performance
25293 --
25294 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
25295
25296 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
25297 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
25298
25299 -- 4955764
25300 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25301 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
25302
25303 -- 4458381 Public Sector Enh
25304
25305 --
25306 -- set accounting attributes for the line type
25307 --
25308 l_entered_amt_idx := 22;
25309 l_accted_amt_idx := 27;
25310 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25311 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
25312 l_rec_acct_attrs.array_char_value(1) := p_source_23;
25313 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
25314 l_rec_acct_attrs.array_char_value(2) := p_source_24;
25315 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
25316 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_9);
25317 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
25318 l_rec_acct_attrs.array_num_value(4) := p_source_42;
25319 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
25320 l_rec_acct_attrs.array_char_value(5) := p_source_26;
25321 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
25322 l_rec_acct_attrs.array_num_value(6) := p_source_43;
25323 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
25324 l_rec_acct_attrs.array_date_value(7) := p_source_28;
25325 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
25326 l_rec_acct_attrs.array_num_value(8) := p_source_29;
25327 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
25328 l_rec_acct_attrs.array_char_value(9) := p_source_30;
25329 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
25330 l_rec_acct_attrs.array_char_value(10) := p_source_31;
25331 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
25332 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_16);
25333 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
25334 l_rec_acct_attrs.array_num_value(12) := p_source_42;
25335 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
25336 l_rec_acct_attrs.array_char_value(13) := p_source_26;
25337 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
25338 l_rec_acct_attrs.array_num_value(14) := p_source_43;
25339 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
25340 l_rec_acct_attrs.array_date_value(15) := p_source_28;
25341 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
25342 l_rec_acct_attrs.array_num_value(16) := p_source_29;
25343 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
25344 l_rec_acct_attrs.array_char_value(17) := p_source_30;
25345 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
25346 l_rec_acct_attrs.array_char_value(18) := p_source_32;
25347 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
25348 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
25349 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
25350 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
25351 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
25352 l_rec_acct_attrs.array_char_value(21) := p_source_35;
25353 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
25354 l_rec_acct_attrs.array_num_value(22) := p_source_42;
25355 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
25356 l_rec_acct_attrs.array_char_value(23) := p_source_26;
25360 l_rec_acct_attrs.array_num_value(25) := p_source_29;
25357 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
25358 l_rec_acct_attrs.array_date_value(24) := p_source_28;
25359 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
25361 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
25362 l_rec_acct_attrs.array_char_value(26) := p_source_30;
25363 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
25364 l_rec_acct_attrs.array_num_value(27) := p_source_43;
25365 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
25366 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
25367 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
25368 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
25369 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
25370 l_rec_acct_attrs.array_char_value(30) := p_source_35;
25371
25372 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
25373 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
25374
25375 ---------------------------------------------------------------------------------------------------------------
25376 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
25377 ---------------------------------------------------------------------------------------------------------------
25378 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
25379
25380 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25381 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25382
25383 IF xla_accounting_cache_pkg.GetValueChar
25384 (p_source_code => 'LEDGER_CATEGORY_CODE'
25385 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
25386 AND l_bflow_method_code = 'PRIOR_ENTRY'
25387 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
25388 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
25389 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
25390 )
25391 THEN
25392 xla_ae_lines_pkg.BflowUpgEntry
25393 (p_business_method_code => l_bflow_method_code
25394 ,p_business_class_code => l_bflow_class_code
25395 ,p_balance_type => l_balance_type_code);
25396 ELSE
25397 NULL;
25398 -- No business flow processing for business flow method of NONE.
25399 END IF;
25400
25401 --
25402 -- call analytical criteria
25403 --
25404
25405 --
25406 -- call description
25407 --
25408 -- No description or it is inherited.
25409 --
25410 -- call ADRs
25411 -- Bug 4922099
25412 --
25413 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25414 (NVL(l_actual_upg_option, 'N') = 'O') OR
25415 (NVL(l_enc_upg_option, 'N') = 'O')
25416 )
25417 THEN
25418 NULL;
25419 --
25420 --
25421
25422 l_ccid := AcctDerRule_17(
25423 p_application_id => p_application_id
25424 , p_ae_header_id => l_ae_header_id
25425 , p_source_5 => p_source_5
25426 , p_source_10 => p_source_10
25427 , x_transaction_coa_id => l_adr_transaction_coa_id
25428 , x_accounting_coa_id => l_adr_accounting_coa_id
25429 , x_value_type_code => l_adr_value_type_code
25430 , p_side => 'NA'
25431 );
25432
25433 xla_ae_lines_pkg.set_ccid(
25434 p_code_combination_id => l_ccid
25435 , p_value_type_code => l_adr_value_type_code
25436 , p_transaction_coa_id => l_adr_transaction_coa_id
25437 , p_accounting_coa_id => l_adr_accounting_coa_id
25438 , p_adr_code => 'PA_PROV_COST_REV_ADJ_ACCT_RULE'
25439 , p_adr_type_code => 'S'
25440 , p_component_type => l_component_type
25441 , p_component_code => l_component_code
25442 , p_component_type_code => l_component_type_code
25443 , p_component_appl_id => l_component_appl_id
25444 , p_amb_context_code => l_amb_context_code
25445 , p_side => 'NA'
25446 );
25447
25448
25449 --
25450 --
25451 END IF;
25452 --
25453 -- Bug 4922099
25454 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
25455 (NVL(l_enc_upg_option, 'N') = 'O')
25456 ) AND
25457 (l_bflow_method_code = 'PRIOR_ENTRY')
25458 )
25459 THEN
25460 IF
25461 --
25462 1 = 2
25463 --
25464 THEN
25465 xla_accounting_err_pkg.build_message
25466 (p_appli_s_name => 'XLA'
25467 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25468 ,p_token_1 => 'LINE_NUMBER'
25469 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
25470 ,p_token_2 => 'LINE_TYPE_NAME'
25471 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
25472 l_component_type
25473 ,l_component_code
25474 ,l_component_type_code
25475 ,l_component_appl_id
25476 ,l_amb_context_code
25480 ,p_token_3 => 'OWNER'
25477 ,l_entity_code
25478 ,l_event_class_code
25479 )
25481 ,p_value_3 => xla_lookups_pkg.get_meaning(
25482 p_lookup_type => 'XLA_OWNER_TYPE'
25483 ,p_lookup_code => l_component_type_code
25484 )
25485 ,p_token_4 => 'PRODUCT_NAME'
25486 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
25487 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
25488 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
25489 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
25490 ,p_ae_header_id => NULL
25491 );
25492
25493 IF (C_LEVEL_ERROR>= g_log_level) THEN
25494 trace
25495 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25496 ,p_level => C_LEVEL_ERROR
25497 ,p_module => l_log_module);
25498 END IF;
25499 END IF;
25500 END IF;
25501 --
25502 --
25503 ------------------------------------------------------------------------------------------------
25504 -- 4219869 Business Flow
25505 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
25506 -- Prior Entry. Currently, the following code is always generated.
25507 ------------------------------------------------------------------------------------------------
25508 XLA_AE_LINES_PKG.ValidateCurrentLine;
25509
25510 ------------------------------------------------------------------------------------
25511 -- 4219869 Business Flow
25512 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
25513 ------------------------------------------------------------------------------------
25514 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25515
25516 ----------------------------------------------------------------------------------
25517 -- 4219869 Business Flow
25518 -- Update journal entry status -- Need to generate this within IF <condition>
25519 ----------------------------------------------------------------------------------
25520 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25521 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
25522 ,p_balance_type_code => l_balance_type_code
25523 );
25524
25525 -------------------------------------------------------------------------------------------
25526 -- 4262811 - Generate the Accrual Reversal lines
25527 -------------------------------------------------------------------------------------------
25528 BEGIN
25529 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
25530 (g_array_event(p_event_id).array_value_num('header_index'));
25531 IF l_acc_rev_flag IS NULL THEN
25532 l_acc_rev_flag := 'N';
25533 END IF;
25534 EXCEPTION
25535 WHEN OTHERS THEN
25536 l_acc_rev_flag := 'N';
25537 END;
25538 --
25539 IF (l_acc_rev_flag = 'Y') THEN
25540
25541 -- 4645092 ------------------------------------------------------------------------------
25542 -- To allow MPA report to determine if it should generate report process
25543 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
25544 ------------------------------------------------------------------------------------------
25545
25546 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
25547 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
25548
25549 --
25550 -- Update the line information that should be overwritten
25551 --
25552 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25553 p_header_num => 1);
25554 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
25555
25556 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25557
25558 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
25559 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25560 END IF;
25561
25562 --
25563 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25564 --
25565 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25566 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
25567 ELSE
25568 ---------------------------------------------------------------------------------------------------
25569 -- 4262811a Switch Sign
25570 ---------------------------------------------------------------------------------------------------
25571 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
25572 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25573 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25574 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25578 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25575 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25576 -- 5132302
25577 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25579
25580 END IF;
25581
25582 -- 4955764
25583 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25584 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25585
25586
25587 XLA_AE_LINES_PKG.ValidateCurrentLine;
25588 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25589
25590 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25591 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
25592 ,p_balance_type_code => l_balance_type_code);
25593
25594 END IF;
25595
25596 -----------------------------------------------------------------------------------------
25597 -- 4262811 Multiperiod Accounting
25598 -----------------------------------------------------------------------------------------
25599 -- No MPA option is assigned.
25600
25601
25602 END IF;
25603 END IF;
25604 --
25605
25606 --
25607 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25608 trace
25609 (p_msg => 'END of AcctLineType_65'
25610 ,p_level => C_LEVEL_PROCEDURE
25611 ,p_module => l_log_module);
25612 END IF;
25613 --
25614 EXCEPTION
25615 WHEN xla_exceptions_pkg.application_exception THEN
25616 RAISE;
25617 WHEN OTHERS THEN
25618 xla_exceptions_pkg.raise_message
25619 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_65');
25620 END AcctLineType_65;
25621 --
25622
25623 ---------------------------------------
25624 --
25625 -- PRIVATE FUNCTION
25626 -- AcctLineType_66
25627 --
25628 ---------------------------------------
25629 PROCEDURE AcctLineType_66 (
25630 p_application_id IN NUMBER
25631 ,p_event_id IN NUMBER
25632 ,p_calculate_acctd_flag IN VARCHAR2
25633 ,p_calculate_g_l_flag IN VARCHAR2
25634 ,p_actual_flag IN OUT VARCHAR2
25635 ,p_balance_type_code OUT VARCHAR2
25636 ,p_gain_or_loss_ref OUT VARCHAR2
25637
25638 --Cost CCID
25639 , p_source_4 IN NUMBER
25640 --Allow Account Override Flag
25641 , p_source_5 IN VARCHAR2
25642 --Adjustment Cost CCID
25643 , p_source_6 IN NUMBER
25644 --Cost Clearing CCID
25645 , p_source_7 IN NUMBER
25646 --Reversing Line Flag
25647 , p_source_23 IN VARCHAR2
25648 --Actual Upgrade Credit Accounting Class
25649 , p_source_24 IN VARCHAR2
25650 --Entered Raw Cost
25651 , p_source_25 IN NUMBER
25652 --Entered Currency Code
25653 , p_source_26 IN VARCHAR2
25654 --Accounted Raw Cost
25655 , p_source_27 IN NUMBER
25656 --Exchange Rate Date
25657 , p_source_28 IN DATE
25658 --Exchange Rate
25659 , p_source_29 IN NUMBER
25660 --Exchange Rate Type
25661 , p_source_30 IN VARCHAR2
25662 --Actual Upgrade Debit Accounting Class
25663 , p_source_31 IN VARCHAR2
25664 --Use Actuals Upgrade Attributes Flag
25665 , p_source_32 IN VARCHAR2
25666 --Expenditure Item ID
25667 , p_source_33 IN NUMBER
25668 --Cost Distribution Line Number
25669 , p_source_34 IN NUMBER
25670 --Line Type
25671 , p_source_35 IN VARCHAR2
25672 , p_source_35_meaning IN VARCHAR2
25673 --Reversed Line Number
25674 , p_source_36 IN NUMBER
25675 )
25676 IS
25677
25678 l_component_type VARCHAR2(80);
25679 l_component_code VARCHAR2(30);
25680 l_component_type_code VARCHAR2(1);
25681 l_component_appl_id INTEGER;
25682 l_amb_context_code VARCHAR2(30);
25683 l_entity_code VARCHAR2(30);
25684 l_event_class_code VARCHAR2(30);
25685 l_ae_header_id NUMBER;
25686 l_event_type_code VARCHAR2(30);
25687 l_line_definition_code VARCHAR2(30);
25688 l_line_definition_owner_code VARCHAR2(1);
25689 --
25690 -- adr variables
25691 l_segment VARCHAR2(30);
25692 l_ccid NUMBER;
25693 l_adr_transaction_coa_id NUMBER;
25694 l_adr_accounting_coa_id NUMBER;
25695 l_adr_flexfield_segment_code VARCHAR2(30);
25696 l_adr_flex_value_set_id NUMBER;
25697 l_adr_value_type_code VARCHAR2(30);
25698 l_adr_value_combination_id NUMBER;
25699 l_adr_value_segment_code VARCHAR2(30);
25700
25701 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
25702 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
25703 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
25704 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
25705
25706 -- 4262811 Variables ------------------------------------------------------------------------------------------
25707 l_entered_amt_idx NUMBER;
25708 l_accted_amt_idx NUMBER;
25709 l_acc_rev_flag VARCHAR2(1);
25710 l_accrual_line_num NUMBER;
25711 l_tmp_amt NUMBER;
25712 l_acc_rev_natural_side_code VARCHAR2(1);
25713
25714 l_num_entries NUMBER;
25715 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
25716 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
25717 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
25718 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
25722 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
25719 l_recog_line_1 NUMBER;
25720 l_recog_line_2 NUMBER;
25721
25723 l_bflow_applied_to_amt NUMBER; -- 5132302
25724 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
25725
25726 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
25727
25728 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
25729 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
25730
25731 ---------------------------------------------------------------------------------------------------------------
25732
25733
25734 --
25735 -- bulk performance
25736 --
25737 l_balance_type_code VARCHAR2(1);
25738 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
25739 l_log_module VARCHAR2(240);
25740
25741 --
25742 -- Upgrade strategy
25743 --
25744 l_actual_upg_option VARCHAR2(1);
25745 l_enc_upg_option VARCHAR2(1);
25746
25747 --
25748 BEGIN
25749 --
25750 IF g_log_enabled THEN
25751 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_66';
25752 END IF;
25753 --
25754 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25755
25756 trace
25757 (p_msg => 'BEGIN of AcctLineType_66'
25758 ,p_level => C_LEVEL_PROCEDURE
25759 ,p_module => l_log_module);
25760
25761 END IF;
25762 --
25763 l_component_type := 'AMB_JLT';
25764 l_component_code := 'PA_RAW_COST';
25765 l_component_type_code := 'S';
25766 l_component_appl_id := 275;
25767 l_amb_context_code := 'DEFAULT';
25768 l_entity_code := 'EXPENDITURES';
25769 l_event_class_code := 'LABOR_COST';
25770 l_event_type_code := 'LABOR_COST_ALL';
25771 l_line_definition_owner_code := 'S';
25772 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
25773 --
25774 l_balance_type_code := 'A';
25775 l_segment := NULL;
25776 l_ccid := NULL;
25777 l_adr_transaction_coa_id := NULL;
25778 l_adr_accounting_coa_id := NULL;
25779 l_adr_flexfield_segment_code := NULL;
25780 l_adr_flex_value_set_id := NULL;
25781 l_adr_value_type_code := NULL;
25782 l_adr_value_combination_id := NULL;
25783 l_adr_value_segment_code := NULL;
25784
25785 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
25786 l_bflow_class_code := ''; -- 4219869 Business Flow
25787 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
25788 l_budgetary_control_flag := 'N';
25789
25790 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25791 l_bflow_applied_to_amt := NULL; -- 5132302
25792 l_entered_amt_idx := NULL; -- 4262811
25793 l_accted_amt_idx := NULL; -- 4262811
25794 l_acc_rev_flag := NULL; -- 4262811
25795 l_accrual_line_num := NULL; -- 4262811
25796 l_tmp_amt := NULL; -- 4262811
25797 --
25798
25799 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
25800 l_balance_type_code <> 'B' THEN
25801
25802 --
25803 XLA_AE_LINES_PKG.SetNewLine;
25804
25805 p_balance_type_code := l_balance_type_code;
25806 -- set the flag so later we will know whether the gain loss line needs to be created
25807
25808 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
25809 p_actual_flag :='A';
25810 END IF;
25811
25812 --
25813 -- bulk performance
25814 --
25815 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
25816 p_header_num => 0); -- 4262811
25817 --
25818 -- set accounting line options
25819 --
25820 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
25821 p_natural_side_code => 'D'
25822 , p_gain_or_loss_flag => 'N'
25823 , p_gl_transfer_mode_code => 'S'
25824 , p_acct_entry_type_code => 'A'
25825 , p_switch_side_flag => 'Y'
25826 , p_merge_duplicate_code => 'N'
25827 );
25828 --
25829 l_acc_rev_natural_side_code := 'C'; -- 4262811
25830 --
25831 --
25832 -- set accounting line type info
25833 --
25834 xla_ae_lines_pkg.SetAcctLineType
25835 (p_component_type => l_component_type
25836 ,p_event_type_code => l_event_type_code
25837 ,p_line_definition_owner_code => l_line_definition_owner_code
25838 ,p_line_definition_code => l_line_definition_code
25839 ,p_accounting_line_code => l_component_code
25840 ,p_accounting_line_type_code => l_component_type_code
25841 ,p_accounting_line_appl_id => l_component_appl_id
25842 ,p_amb_context_code => l_amb_context_code
25843 ,p_entity_code => l_entity_code
25844 ,p_event_class_code => l_event_class_code);
25845 --
25846 -- set accounting class
25847 --
25848 xla_ae_lines_pkg.SetAcctClass(
25849 p_accounting_class_code => 'COST'
25850 , p_ae_header_id => l_ae_header_id
25851 );
25852
25853 --
25854 -- set rounding class
25855 --
25856 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
25857 'COST';
25858
25859 --
25860 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
25864 --
25861 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
25862 --
25863 -- bulk performance
25865 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
25866
25867 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
25868 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
25869
25870 -- 4955764
25871 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25872 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
25873
25874 -- 4458381 Public Sector Enh
25875
25876 --
25877 -- set accounting attributes for the line type
25878 --
25879 l_entered_amt_idx := 22;
25880 l_accted_amt_idx := 27;
25881 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25882 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
25883 l_rec_acct_attrs.array_char_value(1) := p_source_23;
25884 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
25885 l_rec_acct_attrs.array_char_value(2) := p_source_24;
25886 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
25887 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
25888 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
25889 l_rec_acct_attrs.array_num_value(4) := p_source_25;
25890 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
25891 l_rec_acct_attrs.array_char_value(5) := p_source_26;
25892 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
25893 l_rec_acct_attrs.array_num_value(6) := p_source_27;
25894 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
25895 l_rec_acct_attrs.array_date_value(7) := p_source_28;
25896 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
25897 l_rec_acct_attrs.array_num_value(8) := p_source_29;
25898 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
25899 l_rec_acct_attrs.array_char_value(9) := p_source_30;
25900 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
25901 l_rec_acct_attrs.array_char_value(10) := p_source_31;
25902 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
25903 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
25904 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
25905 l_rec_acct_attrs.array_num_value(12) := p_source_25;
25906 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
25907 l_rec_acct_attrs.array_char_value(13) := p_source_26;
25908 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
25909 l_rec_acct_attrs.array_num_value(14) := p_source_27;
25910 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
25911 l_rec_acct_attrs.array_date_value(15) := p_source_28;
25912 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
25913 l_rec_acct_attrs.array_num_value(16) := p_source_29;
25914 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
25915 l_rec_acct_attrs.array_char_value(17) := p_source_30;
25916 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
25917 l_rec_acct_attrs.array_char_value(18) := p_source_32;
25918 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
25919 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
25920 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
25921 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
25922 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
25923 l_rec_acct_attrs.array_char_value(21) := p_source_35;
25924 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
25925 l_rec_acct_attrs.array_num_value(22) := p_source_25;
25926 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
25927 l_rec_acct_attrs.array_char_value(23) := p_source_26;
25928 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
25929 l_rec_acct_attrs.array_date_value(24) := p_source_28;
25930 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
25931 l_rec_acct_attrs.array_num_value(25) := p_source_29;
25932 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
25933 l_rec_acct_attrs.array_char_value(26) := p_source_30;
25934 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
25935 l_rec_acct_attrs.array_num_value(27) := p_source_27;
25936 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
25937 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
25938 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
25939 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
25940 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
25941 l_rec_acct_attrs.array_char_value(30) := p_source_35;
25942
25943 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
25944 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
25945
25946 ---------------------------------------------------------------------------------------------------------------
25947 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
25948 ---------------------------------------------------------------------------------------------------------------
25949 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
25950
25951 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25952 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25953
25954 IF xla_accounting_cache_pkg.GetValueChar
25955 (p_source_code => 'LEDGER_CATEGORY_CODE'
25959 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
25956 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
25957 AND l_bflow_method_code = 'PRIOR_ENTRY'
25958 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
25960 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
25961 )
25962 THEN
25963 xla_ae_lines_pkg.BflowUpgEntry
25964 (p_business_method_code => l_bflow_method_code
25965 ,p_business_class_code => l_bflow_class_code
25966 ,p_balance_type => l_balance_type_code);
25967 ELSE
25968 NULL;
25969 -- No business flow processing for business flow method of NONE.
25970 END IF;
25971
25972 --
25973 -- call analytical criteria
25974 --
25975
25976 --
25977 -- call description
25978 --
25979 -- No description or it is inherited.
25980 --
25981 -- call ADRs
25982 -- Bug 4922099
25983 --
25984 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25985 (NVL(l_actual_upg_option, 'N') = 'O') OR
25986 (NVL(l_enc_upg_option, 'N') = 'O')
25987 )
25988 THEN
25989 NULL;
25990 --
25991 --
25992
25993 l_ccid := AcctDerRule_12(
25994 p_application_id => p_application_id
25995 , p_ae_header_id => l_ae_header_id
25996 , p_source_4 => p_source_4
25997 , p_source_5 => p_source_5
25998 , p_source_6 => p_source_6
25999 , x_transaction_coa_id => l_adr_transaction_coa_id
26000 , x_accounting_coa_id => l_adr_accounting_coa_id
26001 , x_value_type_code => l_adr_value_type_code
26002 , p_side => 'NA'
26003 );
26004
26005 xla_ae_lines_pkg.set_ccid(
26006 p_code_combination_id => l_ccid
26007 , p_value_type_code => l_adr_value_type_code
26008 , p_transaction_coa_id => l_adr_transaction_coa_id
26009 , p_accounting_coa_id => l_adr_accounting_coa_id
26010 , p_adr_code => 'PA_COST_ACCT_RULE'
26011 , p_adr_type_code => 'S'
26012 , p_component_type => l_component_type
26013 , p_component_code => l_component_code
26014 , p_component_type_code => l_component_type_code
26015 , p_component_appl_id => l_component_appl_id
26016 , p_amb_context_code => l_amb_context_code
26017 , p_side => 'NA'
26018 );
26019
26020
26021 --
26022 --
26023 END IF;
26024 --
26025 -- Bug 4922099
26026 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
26027 (NVL(l_enc_upg_option, 'N') = 'O')
26028 ) AND
26029 (l_bflow_method_code = 'PRIOR_ENTRY')
26030 )
26031 THEN
26032 IF
26033 --
26034 1 = 2
26035 --
26036 THEN
26037 xla_accounting_err_pkg.build_message
26038 (p_appli_s_name => 'XLA'
26039 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26040 ,p_token_1 => 'LINE_NUMBER'
26041 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
26042 ,p_token_2 => 'LINE_TYPE_NAME'
26043 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
26044 l_component_type
26045 ,l_component_code
26046 ,l_component_type_code
26047 ,l_component_appl_id
26048 ,l_amb_context_code
26049 ,l_entity_code
26050 ,l_event_class_code
26051 )
26052 ,p_token_3 => 'OWNER'
26053 ,p_value_3 => xla_lookups_pkg.get_meaning(
26054 p_lookup_type => 'XLA_OWNER_TYPE'
26055 ,p_lookup_code => l_component_type_code
26056 )
26057 ,p_token_4 => 'PRODUCT_NAME'
26058 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
26059 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
26060 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
26061 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
26062 ,p_ae_header_id => NULL
26063 );
26064
26065 IF (C_LEVEL_ERROR>= g_log_level) THEN
26066 trace
26067 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26068 ,p_level => C_LEVEL_ERROR
26069 ,p_module => l_log_module);
26070 END IF;
26071 END IF;
26072 END IF;
26073 --
26074 --
26075 ------------------------------------------------------------------------------------------------
26079 ------------------------------------------------------------------------------------------------
26076 -- 4219869 Business Flow
26077 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
26078 -- Prior Entry. Currently, the following code is always generated.
26080 XLA_AE_LINES_PKG.ValidateCurrentLine;
26081
26082 ------------------------------------------------------------------------------------
26083 -- 4219869 Business Flow
26084 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
26085 ------------------------------------------------------------------------------------
26086 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26087
26088 ----------------------------------------------------------------------------------
26089 -- 4219869 Business Flow
26090 -- Update journal entry status -- Need to generate this within IF <condition>
26091 ----------------------------------------------------------------------------------
26092 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26093 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
26094 ,p_balance_type_code => l_balance_type_code
26095 );
26096
26097 -------------------------------------------------------------------------------------------
26098 -- 4262811 - Generate the Accrual Reversal lines
26099 -------------------------------------------------------------------------------------------
26100 BEGIN
26101 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
26102 (g_array_event(p_event_id).array_value_num('header_index'));
26103 IF l_acc_rev_flag IS NULL THEN
26104 l_acc_rev_flag := 'N';
26105 END IF;
26106 EXCEPTION
26107 WHEN OTHERS THEN
26108 l_acc_rev_flag := 'N';
26109 END;
26110 --
26111 IF (l_acc_rev_flag = 'Y') THEN
26112
26113 -- 4645092 ------------------------------------------------------------------------------
26114 -- To allow MPA report to determine if it should generate report process
26115 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
26116 ------------------------------------------------------------------------------------------
26117
26118 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
26119 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
26120
26121 --
26122 -- Update the line information that should be overwritten
26123 --
26124 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
26125 p_header_num => 1);
26126 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
26127
26128 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
26129
26130 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
26131 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
26132 END IF;
26133
26134 --
26135 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
26136 --
26137 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
26138 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
26139 ELSE
26140 ---------------------------------------------------------------------------------------------------
26141 -- 4262811a Switch Sign
26142 ---------------------------------------------------------------------------------------------------
26143 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
26144 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26145 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26146 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26147 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26148 -- 5132302
26149 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
26150 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26151
26152 END IF;
26153
26154 -- 4955764
26155 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26156 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
26157
26158
26159 XLA_AE_LINES_PKG.ValidateCurrentLine;
26160 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26161
26162 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26163 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
26164 ,p_balance_type_code => l_balance_type_code);
26165
26166 END IF;
26167
26168 -----------------------------------------------------------------------------------------
26169 -- 4262811 Multiperiod Accounting
26170 -----------------------------------------------------------------------------------------
26171 -- No MPA option is assigned.
26172
26173
26174 END IF;
26175 --
26176
26177 --
26178 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26179 trace
26180 (p_msg => 'END of AcctLineType_66'
26181 ,p_level => C_LEVEL_PROCEDURE
26182 ,p_module => l_log_module);
26183 END IF;
26184 --
26185 EXCEPTION
26186 WHEN xla_exceptions_pkg.application_exception THEN
26187 RAISE;
26188 WHEN OTHERS THEN
26189 xla_exceptions_pkg.raise_message
26193
26190 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_66');
26191 END AcctLineType_66;
26192 --
26194 ---------------------------------------
26195 --
26196 -- PRIVATE FUNCTION
26197 -- AcctLineType_67
26198 --
26199 ---------------------------------------
26200 PROCEDURE AcctLineType_67 (
26201 p_application_id IN NUMBER
26202 ,p_event_id IN NUMBER
26203 ,p_calculate_acctd_flag IN VARCHAR2
26204 ,p_calculate_g_l_flag IN VARCHAR2
26205 ,p_actual_flag IN OUT VARCHAR2
26206 ,p_balance_type_code OUT VARCHAR2
26207 ,p_gain_or_loss_ref OUT VARCHAR2
26208
26209 --Cost CCID
26210 , p_source_4 IN NUMBER
26211 --Allow Account Override Flag
26212 , p_source_5 IN VARCHAR2
26213 --Adjustment Cost CCID
26214 , p_source_6 IN NUMBER
26215 --Cost Clearing CCID
26216 , p_source_7 IN NUMBER
26217 --Exchange Rate Variance Flag
26218 , p_source_22 IN VARCHAR2
26219 --Reversing Line Flag
26220 , p_source_23 IN VARCHAR2
26221 --Actual Upgrade Credit Accounting Class
26222 , p_source_24 IN VARCHAR2
26223 --Entered Raw Cost
26224 , p_source_25 IN NUMBER
26225 --Entered Currency Code
26226 , p_source_26 IN VARCHAR2
26227 --Accounted Raw Cost
26228 , p_source_27 IN NUMBER
26229 --Exchange Rate Date
26230 , p_source_28 IN DATE
26231 --Exchange Rate
26232 , p_source_29 IN NUMBER
26233 --Exchange Rate Type
26234 , p_source_30 IN VARCHAR2
26235 --Actual Upgrade Debit Accounting Class
26236 , p_source_31 IN VARCHAR2
26237 --Use Actuals Upgrade Attributes Flag
26238 , p_source_32 IN VARCHAR2
26239 --Expenditure Item ID
26240 , p_source_33 IN NUMBER
26241 --Cost Distribution Line Number
26242 , p_source_34 IN NUMBER
26243 --Line Type
26244 , p_source_35 IN VARCHAR2
26245 , p_source_35_meaning IN VARCHAR2
26246 --Reversed Line Number
26247 , p_source_36 IN NUMBER
26248 )
26249 IS
26250
26251 l_component_type VARCHAR2(80);
26252 l_component_code VARCHAR2(30);
26253 l_component_type_code VARCHAR2(1);
26254 l_component_appl_id INTEGER;
26255 l_amb_context_code VARCHAR2(30);
26256 l_entity_code VARCHAR2(30);
26257 l_event_class_code VARCHAR2(30);
26258 l_ae_header_id NUMBER;
26259 l_event_type_code VARCHAR2(30);
26260 l_line_definition_code VARCHAR2(30);
26261 l_line_definition_owner_code VARCHAR2(1);
26262 --
26263 -- adr variables
26264 l_segment VARCHAR2(30);
26265 l_ccid NUMBER;
26266 l_adr_transaction_coa_id NUMBER;
26267 l_adr_accounting_coa_id NUMBER;
26268 l_adr_flexfield_segment_code VARCHAR2(30);
26269 l_adr_flex_value_set_id NUMBER;
26270 l_adr_value_type_code VARCHAR2(30);
26271 l_adr_value_combination_id NUMBER;
26272 l_adr_value_segment_code VARCHAR2(30);
26273
26274 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
26275 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
26276 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
26277 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
26278
26279 -- 4262811 Variables ------------------------------------------------------------------------------------------
26280 l_entered_amt_idx NUMBER;
26281 l_accted_amt_idx NUMBER;
26282 l_acc_rev_flag VARCHAR2(1);
26283 l_accrual_line_num NUMBER;
26284 l_tmp_amt NUMBER;
26285 l_acc_rev_natural_side_code VARCHAR2(1);
26286
26287 l_num_entries NUMBER;
26288 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
26289 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
26290 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
26291 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
26292 l_recog_line_1 NUMBER;
26293 l_recog_line_2 NUMBER;
26294
26295 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
26296 l_bflow_applied_to_amt NUMBER; -- 5132302
26297 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
26298
26299 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26300
26301 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
26302 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
26303
26304 ---------------------------------------------------------------------------------------------------------------
26305
26306
26307 --
26308 -- bulk performance
26309 --
26310 l_balance_type_code VARCHAR2(1);
26311 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
26312 l_log_module VARCHAR2(240);
26313
26314 --
26315 -- Upgrade strategy
26316 --
26317 l_actual_upg_option VARCHAR2(1);
26318 l_enc_upg_option VARCHAR2(1);
26319
26320 --
26321 BEGIN
26322 --
26323 IF g_log_enabled THEN
26324 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_67';
26325 END IF;
26326 --
26327 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26328
26329 trace
26330 (p_msg => 'BEGIN of AcctLineType_67'
26331 ,p_level => C_LEVEL_PROCEDURE
26332 ,p_module => l_log_module);
26333
26334 END IF;
26335 --
26336 l_component_type := 'AMB_JLT';
26340 l_amb_context_code := 'DEFAULT';
26337 l_component_code := 'PA_RAW_COST';
26338 l_component_type_code := 'S';
26339 l_component_appl_id := 275;
26341 l_entity_code := 'EXPENDITURES';
26342 l_event_class_code := 'SUPPLIER_COST';
26343 l_event_type_code := 'SUPPLIER_COST_ALL';
26344 l_line_definition_owner_code := 'S';
26345 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
26346 --
26347 l_balance_type_code := 'A';
26348 l_segment := NULL;
26349 l_ccid := NULL;
26350 l_adr_transaction_coa_id := NULL;
26351 l_adr_accounting_coa_id := NULL;
26352 l_adr_flexfield_segment_code := NULL;
26353 l_adr_flex_value_set_id := NULL;
26354 l_adr_value_type_code := NULL;
26355 l_adr_value_combination_id := NULL;
26356 l_adr_value_segment_code := NULL;
26357
26358 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
26359 l_bflow_class_code := ''; -- 4219869 Business Flow
26360 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
26361 l_budgetary_control_flag := 'N';
26362
26363 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26364 l_bflow_applied_to_amt := NULL; -- 5132302
26365 l_entered_amt_idx := NULL; -- 4262811
26366 l_accted_amt_idx := NULL; -- 4262811
26367 l_acc_rev_flag := NULL; -- 4262811
26368 l_accrual_line_num := NULL; -- 4262811
26369 l_tmp_amt := NULL; -- 4262811
26370 --
26371
26372 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26373 l_balance_type_code <> 'B' THEN
26374 IF NVL(p_source_22,'
26375 ') = 'N'
26376 THEN
26377
26378 --
26379 XLA_AE_LINES_PKG.SetNewLine;
26380
26381 p_balance_type_code := l_balance_type_code;
26382 -- set the flag so later we will know whether the gain loss line needs to be created
26383
26384 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26385 p_actual_flag :='A';
26386 END IF;
26387
26388 --
26389 -- bulk performance
26390 --
26391 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26392 p_header_num => 0); -- 4262811
26393 --
26394 -- set accounting line options
26395 --
26396 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26397 p_natural_side_code => 'D'
26398 , p_gain_or_loss_flag => 'N'
26399 , p_gl_transfer_mode_code => 'S'
26400 , p_acct_entry_type_code => 'A'
26401 , p_switch_side_flag => 'Y'
26402 , p_merge_duplicate_code => 'N'
26403 );
26404 --
26405 l_acc_rev_natural_side_code := 'C'; -- 4262811
26406 --
26407 --
26408 -- set accounting line type info
26409 --
26410 xla_ae_lines_pkg.SetAcctLineType
26411 (p_component_type => l_component_type
26412 ,p_event_type_code => l_event_type_code
26413 ,p_line_definition_owner_code => l_line_definition_owner_code
26414 ,p_line_definition_code => l_line_definition_code
26415 ,p_accounting_line_code => l_component_code
26416 ,p_accounting_line_type_code => l_component_type_code
26417 ,p_accounting_line_appl_id => l_component_appl_id
26418 ,p_amb_context_code => l_amb_context_code
26419 ,p_entity_code => l_entity_code
26420 ,p_event_class_code => l_event_class_code);
26421 --
26422 -- set accounting class
26423 --
26424 xla_ae_lines_pkg.SetAcctClass(
26425 p_accounting_class_code => 'COST'
26426 , p_ae_header_id => l_ae_header_id
26427 );
26428
26429 --
26430 -- set rounding class
26431 --
26432 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
26433 'COST';
26434
26435 --
26436 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
26437 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
26438 --
26439 -- bulk performance
26440 --
26441 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
26442
26443 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
26444 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
26445
26446 -- 4955764
26447 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26448 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
26449
26450 -- 4458381 Public Sector Enh
26451
26452 --
26453 -- set accounting attributes for the line type
26454 --
26455 l_entered_amt_idx := 22;
26456 l_accted_amt_idx := 27;
26457 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26458 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
26459 l_rec_acct_attrs.array_char_value(1) := p_source_23;
26460 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
26461 l_rec_acct_attrs.array_char_value(2) := p_source_24;
26462 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
26463 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
26464 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
26465 l_rec_acct_attrs.array_num_value(4) := p_source_25;
26466 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
26467 l_rec_acct_attrs.array_char_value(5) := p_source_26;
26471 l_rec_acct_attrs.array_date_value(7) := p_source_28;
26468 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
26469 l_rec_acct_attrs.array_num_value(6) := p_source_27;
26470 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
26472 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
26473 l_rec_acct_attrs.array_num_value(8) := p_source_29;
26474 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
26475 l_rec_acct_attrs.array_char_value(9) := p_source_30;
26476 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
26477 l_rec_acct_attrs.array_char_value(10) := p_source_31;
26478 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
26479 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
26480 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
26481 l_rec_acct_attrs.array_num_value(12) := p_source_25;
26482 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
26483 l_rec_acct_attrs.array_char_value(13) := p_source_26;
26484 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
26485 l_rec_acct_attrs.array_num_value(14) := p_source_27;
26486 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
26487 l_rec_acct_attrs.array_date_value(15) := p_source_28;
26488 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
26489 l_rec_acct_attrs.array_num_value(16) := p_source_29;
26490 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
26491 l_rec_acct_attrs.array_char_value(17) := p_source_30;
26492 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
26493 l_rec_acct_attrs.array_char_value(18) := p_source_32;
26494 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
26495 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
26496 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
26497 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
26498 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
26499 l_rec_acct_attrs.array_char_value(21) := p_source_35;
26500 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
26501 l_rec_acct_attrs.array_num_value(22) := p_source_25;
26502 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
26503 l_rec_acct_attrs.array_char_value(23) := p_source_26;
26504 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
26505 l_rec_acct_attrs.array_date_value(24) := p_source_28;
26506 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
26507 l_rec_acct_attrs.array_num_value(25) := p_source_29;
26508 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
26509 l_rec_acct_attrs.array_char_value(26) := p_source_30;
26510 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
26511 l_rec_acct_attrs.array_num_value(27) := p_source_27;
26512 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
26513 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
26514 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
26515 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
26516 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
26517 l_rec_acct_attrs.array_char_value(30) := p_source_35;
26518
26519 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
26520 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
26521
26522 ---------------------------------------------------------------------------------------------------------------
26523 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
26524 ---------------------------------------------------------------------------------------------------------------
26525 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
26526
26527 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26528 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26529
26530 IF xla_accounting_cache_pkg.GetValueChar
26531 (p_source_code => 'LEDGER_CATEGORY_CODE'
26532 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
26533 AND l_bflow_method_code = 'PRIOR_ENTRY'
26534 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
26535 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
26536 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
26537 )
26538 THEN
26539 xla_ae_lines_pkg.BflowUpgEntry
26540 (p_business_method_code => l_bflow_method_code
26541 ,p_business_class_code => l_bflow_class_code
26542 ,p_balance_type => l_balance_type_code);
26543 ELSE
26544 NULL;
26545 -- No business flow processing for business flow method of NONE.
26546 END IF;
26547
26548 --
26549 -- call analytical criteria
26550 --
26551
26552 --
26553 -- call description
26554 --
26555 -- No description or it is inherited.
26556 --
26557 -- call ADRs
26558 -- Bug 4922099
26559 --
26560 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26561 (NVL(l_actual_upg_option, 'N') = 'O') OR
26562 (NVL(l_enc_upg_option, 'N') = 'O')
26563 )
26564 THEN
26565 NULL;
26566 --
26567 --
26568
26569 l_ccid := AcctDerRule_12(
26570 p_application_id => p_application_id
26571 , p_ae_header_id => l_ae_header_id
26572 , p_source_4 => p_source_4
26573 , p_source_5 => p_source_5
26574 , p_source_6 => p_source_6
26575 , x_transaction_coa_id => l_adr_transaction_coa_id
26579 );
26576 , x_accounting_coa_id => l_adr_accounting_coa_id
26577 , x_value_type_code => l_adr_value_type_code
26578 , p_side => 'NA'
26580
26581 xla_ae_lines_pkg.set_ccid(
26582 p_code_combination_id => l_ccid
26583 , p_value_type_code => l_adr_value_type_code
26584 , p_transaction_coa_id => l_adr_transaction_coa_id
26585 , p_accounting_coa_id => l_adr_accounting_coa_id
26586 , p_adr_code => 'PA_COST_ACCT_RULE'
26587 , p_adr_type_code => 'S'
26588 , p_component_type => l_component_type
26589 , p_component_code => l_component_code
26590 , p_component_type_code => l_component_type_code
26591 , p_component_appl_id => l_component_appl_id
26592 , p_amb_context_code => l_amb_context_code
26593 , p_side => 'NA'
26594 );
26595
26596
26597 --
26598 --
26599 END IF;
26600 --
26601 -- Bug 4922099
26602 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
26603 (NVL(l_enc_upg_option, 'N') = 'O')
26604 ) AND
26605 (l_bflow_method_code = 'PRIOR_ENTRY')
26606 )
26607 THEN
26608 IF
26609 --
26610 1 = 2
26611 --
26612 THEN
26613 xla_accounting_err_pkg.build_message
26614 (p_appli_s_name => 'XLA'
26615 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26616 ,p_token_1 => 'LINE_NUMBER'
26617 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
26618 ,p_token_2 => 'LINE_TYPE_NAME'
26619 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
26620 l_component_type
26621 ,l_component_code
26622 ,l_component_type_code
26623 ,l_component_appl_id
26624 ,l_amb_context_code
26625 ,l_entity_code
26626 ,l_event_class_code
26627 )
26628 ,p_token_3 => 'OWNER'
26629 ,p_value_3 => xla_lookups_pkg.get_meaning(
26630 p_lookup_type => 'XLA_OWNER_TYPE'
26631 ,p_lookup_code => l_component_type_code
26632 )
26633 ,p_token_4 => 'PRODUCT_NAME'
26634 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
26635 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
26636 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
26637 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
26638 ,p_ae_header_id => NULL
26639 );
26640
26641 IF (C_LEVEL_ERROR>= g_log_level) THEN
26642 trace
26643 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26644 ,p_level => C_LEVEL_ERROR
26645 ,p_module => l_log_module);
26646 END IF;
26647 END IF;
26648 END IF;
26649 --
26650 --
26651 ------------------------------------------------------------------------------------------------
26652 -- 4219869 Business Flow
26653 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
26654 -- Prior Entry. Currently, the following code is always generated.
26655 ------------------------------------------------------------------------------------------------
26656 XLA_AE_LINES_PKG.ValidateCurrentLine;
26657
26658 ------------------------------------------------------------------------------------
26659 -- 4219869 Business Flow
26660 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
26661 ------------------------------------------------------------------------------------
26662 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26663
26664 ----------------------------------------------------------------------------------
26665 -- 4219869 Business Flow
26666 -- Update journal entry status -- Need to generate this within IF <condition>
26667 ----------------------------------------------------------------------------------
26668 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26669 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
26670 ,p_balance_type_code => l_balance_type_code
26671 );
26672
26673 -------------------------------------------------------------------------------------------
26674 -- 4262811 - Generate the Accrual Reversal lines
26675 -------------------------------------------------------------------------------------------
26676 BEGIN
26677 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
26678 (g_array_event(p_event_id).array_value_num('header_index'));
26682 EXCEPTION
26679 IF l_acc_rev_flag IS NULL THEN
26680 l_acc_rev_flag := 'N';
26681 END IF;
26683 WHEN OTHERS THEN
26684 l_acc_rev_flag := 'N';
26685 END;
26686 --
26687 IF (l_acc_rev_flag = 'Y') THEN
26688
26689 -- 4645092 ------------------------------------------------------------------------------
26690 -- To allow MPA report to determine if it should generate report process
26691 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
26692 ------------------------------------------------------------------------------------------
26693
26694 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
26695 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
26696
26697 --
26698 -- Update the line information that should be overwritten
26699 --
26700 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
26701 p_header_num => 1);
26702 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
26703
26704 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
26705
26706 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
26707 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
26708 END IF;
26709
26710 --
26711 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
26712 --
26713 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
26714 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
26715 ELSE
26716 ---------------------------------------------------------------------------------------------------
26717 -- 4262811a Switch Sign
26718 ---------------------------------------------------------------------------------------------------
26719 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
26720 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26721 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26722 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26723 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26724 -- 5132302
26725 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
26726 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26727
26728 END IF;
26729
26730 -- 4955764
26731 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26732 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
26733
26734
26735 XLA_AE_LINES_PKG.ValidateCurrentLine;
26736 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26737
26738 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26739 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
26740 ,p_balance_type_code => l_balance_type_code);
26741
26742 END IF;
26743
26744 -----------------------------------------------------------------------------------------
26745 -- 4262811 Multiperiod Accounting
26746 -----------------------------------------------------------------------------------------
26747 -- No MPA option is assigned.
26748
26749
26750 END IF;
26751 END IF;
26752 --
26753
26754 --
26755 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26756 trace
26757 (p_msg => 'END of AcctLineType_67'
26758 ,p_level => C_LEVEL_PROCEDURE
26759 ,p_module => l_log_module);
26760 END IF;
26761 --
26762 EXCEPTION
26763 WHEN xla_exceptions_pkg.application_exception THEN
26764 RAISE;
26765 WHEN OTHERS THEN
26766 xla_exceptions_pkg.raise_message
26767 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_67');
26768 END AcctLineType_67;
26769 --
26770
26771 ---------------------------------------
26772 --
26773 -- PRIVATE FUNCTION
26774 -- AcctLineType_68
26775 --
26776 ---------------------------------------
26777 PROCEDURE AcctLineType_68 (
26778 p_application_id IN NUMBER
26779 ,p_event_id IN NUMBER
26780 ,p_calculate_acctd_flag IN VARCHAR2
26781 ,p_calculate_g_l_flag IN VARCHAR2
26782 ,p_actual_flag IN OUT VARCHAR2
26783 ,p_balance_type_code OUT VARCHAR2
26784 ,p_gain_or_loss_ref OUT VARCHAR2
26785
26786 --Cost CCID
26787 , p_source_4 IN NUMBER
26788 --Allow Account Override Flag
26789 , p_source_5 IN VARCHAR2
26790 --Adjustment Cost CCID
26791 , p_source_6 IN NUMBER
26792 --Cost Clearing CCID
26793 , p_source_7 IN NUMBER
26794 --Reversing Line Flag
26795 , p_source_23 IN VARCHAR2
26796 --Actual Upgrade Credit Accounting Class
26797 , p_source_24 IN VARCHAR2
26798 --Entered Raw Cost
26799 , p_source_25 IN NUMBER
26800 --Entered Currency Code
26801 , p_source_26 IN VARCHAR2
26802 --Accounted Raw Cost
26803 , p_source_27 IN NUMBER
26804 --Exchange Rate Date
26805 , p_source_28 IN DATE
26806 --Exchange Rate
26807 , p_source_29 IN NUMBER
26808 --Exchange Rate Type
26809 , p_source_30 IN VARCHAR2
26810 --Actual Upgrade Debit Accounting Class
26811 , p_source_31 IN VARCHAR2
26815 , p_source_33 IN NUMBER
26812 --Use Actuals Upgrade Attributes Flag
26813 , p_source_32 IN VARCHAR2
26814 --Expenditure Item ID
26816 --Cost Distribution Line Number
26817 , p_source_34 IN NUMBER
26818 --Line Type
26819 , p_source_35 IN VARCHAR2
26820 , p_source_35_meaning IN VARCHAR2
26821 --Reversed Line Number
26822 , p_source_36 IN NUMBER
26823 )
26824 IS
26825
26826 l_component_type VARCHAR2(80);
26827 l_component_code VARCHAR2(30);
26828 l_component_type_code VARCHAR2(1);
26829 l_component_appl_id INTEGER;
26830 l_amb_context_code VARCHAR2(30);
26831 l_entity_code VARCHAR2(30);
26832 l_event_class_code VARCHAR2(30);
26833 l_ae_header_id NUMBER;
26834 l_event_type_code VARCHAR2(30);
26835 l_line_definition_code VARCHAR2(30);
26836 l_line_definition_owner_code VARCHAR2(1);
26837 --
26838 -- adr variables
26839 l_segment VARCHAR2(30);
26840 l_ccid NUMBER;
26841 l_adr_transaction_coa_id NUMBER;
26842 l_adr_accounting_coa_id NUMBER;
26843 l_adr_flexfield_segment_code VARCHAR2(30);
26844 l_adr_flex_value_set_id NUMBER;
26845 l_adr_value_type_code VARCHAR2(30);
26846 l_adr_value_combination_id NUMBER;
26847 l_adr_value_segment_code VARCHAR2(30);
26848
26849 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
26850 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
26851 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
26852 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
26853
26854 -- 4262811 Variables ------------------------------------------------------------------------------------------
26855 l_entered_amt_idx NUMBER;
26856 l_accted_amt_idx NUMBER;
26857 l_acc_rev_flag VARCHAR2(1);
26858 l_accrual_line_num NUMBER;
26859 l_tmp_amt NUMBER;
26860 l_acc_rev_natural_side_code VARCHAR2(1);
26861
26862 l_num_entries NUMBER;
26863 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
26864 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
26865 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
26866 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
26867 l_recog_line_1 NUMBER;
26868 l_recog_line_2 NUMBER;
26869
26870 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
26871 l_bflow_applied_to_amt NUMBER; -- 5132302
26872 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
26873
26874 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26875
26876 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
26877 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
26878
26879 ---------------------------------------------------------------------------------------------------------------
26880
26881
26882 --
26883 -- bulk performance
26884 --
26885 l_balance_type_code VARCHAR2(1);
26886 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
26887 l_log_module VARCHAR2(240);
26888
26889 --
26890 -- Upgrade strategy
26891 --
26892 l_actual_upg_option VARCHAR2(1);
26893 l_enc_upg_option VARCHAR2(1);
26894
26895 --
26896 BEGIN
26897 --
26898 IF g_log_enabled THEN
26899 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_68';
26900 END IF;
26901 --
26902 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26903
26904 trace
26905 (p_msg => 'BEGIN of AcctLineType_68'
26906 ,p_level => C_LEVEL_PROCEDURE
26907 ,p_module => l_log_module);
26908
26909 END IF;
26910 --
26911 l_component_type := 'AMB_JLT';
26912 l_component_code := 'PA_RAW_COST';
26913 l_component_type_code := 'S';
26914 l_component_appl_id := 275;
26915 l_amb_context_code := 'DEFAULT';
26916 l_entity_code := 'EXPENDITURES';
26917 l_event_class_code := 'INVENTORY_COST';
26918 l_event_type_code := 'INVENTORY_COST_ALL';
26919 l_line_definition_owner_code := 'S';
26920 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
26921 --
26922 l_balance_type_code := 'A';
26923 l_segment := NULL;
26924 l_ccid := NULL;
26925 l_adr_transaction_coa_id := NULL;
26926 l_adr_accounting_coa_id := NULL;
26927 l_adr_flexfield_segment_code := NULL;
26928 l_adr_flex_value_set_id := NULL;
26929 l_adr_value_type_code := NULL;
26930 l_adr_value_combination_id := NULL;
26931 l_adr_value_segment_code := NULL;
26932
26933 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
26934 l_bflow_class_code := ''; -- 4219869 Business Flow
26935 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
26936 l_budgetary_control_flag := 'N';
26937
26938 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26939 l_bflow_applied_to_amt := NULL; -- 5132302
26940 l_entered_amt_idx := NULL; -- 4262811
26941 l_accted_amt_idx := NULL; -- 4262811
26942 l_acc_rev_flag := NULL; -- 4262811
26943 l_accrual_line_num := NULL; -- 4262811
26944 l_tmp_amt := NULL; -- 4262811
26945 --
26946
26947 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26948 l_balance_type_code <> 'B' THEN
26952
26949
26950 --
26951 XLA_AE_LINES_PKG.SetNewLine;
26953 p_balance_type_code := l_balance_type_code;
26954 -- set the flag so later we will know whether the gain loss line needs to be created
26955
26956 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26957 p_actual_flag :='A';
26958 END IF;
26959
26960 --
26961 -- bulk performance
26962 --
26963 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26964 p_header_num => 0); -- 4262811
26965 --
26966 -- set accounting line options
26967 --
26968 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26969 p_natural_side_code => 'D'
26970 , p_gain_or_loss_flag => 'N'
26971 , p_gl_transfer_mode_code => 'S'
26972 , p_acct_entry_type_code => 'A'
26973 , p_switch_side_flag => 'Y'
26974 , p_merge_duplicate_code => 'N'
26975 );
26976 --
26977 l_acc_rev_natural_side_code := 'C'; -- 4262811
26978 --
26979 --
26980 -- set accounting line type info
26981 --
26982 xla_ae_lines_pkg.SetAcctLineType
26983 (p_component_type => l_component_type
26984 ,p_event_type_code => l_event_type_code
26985 ,p_line_definition_owner_code => l_line_definition_owner_code
26986 ,p_line_definition_code => l_line_definition_code
26987 ,p_accounting_line_code => l_component_code
26988 ,p_accounting_line_type_code => l_component_type_code
26989 ,p_accounting_line_appl_id => l_component_appl_id
26990 ,p_amb_context_code => l_amb_context_code
26991 ,p_entity_code => l_entity_code
26992 ,p_event_class_code => l_event_class_code);
26993 --
26994 -- set accounting class
26995 --
26996 xla_ae_lines_pkg.SetAcctClass(
26997 p_accounting_class_code => 'COST'
26998 , p_ae_header_id => l_ae_header_id
26999 );
27000
27001 --
27002 -- set rounding class
27003 --
27004 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
27005 'COST';
27006
27007 --
27008 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
27009 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
27010 --
27011 -- bulk performance
27012 --
27013 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
27014
27015 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
27016 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
27017
27018 -- 4955764
27019 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27020 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
27021
27022 -- 4458381 Public Sector Enh
27023
27024 --
27025 -- set accounting attributes for the line type
27026 --
27027 l_entered_amt_idx := 22;
27028 l_accted_amt_idx := 27;
27029 l_bflow_applied_to_amt_idx := NULL; -- 5132302
27030 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
27031 l_rec_acct_attrs.array_char_value(1) := p_source_23;
27032 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
27033 l_rec_acct_attrs.array_char_value(2) := p_source_24;
27034 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
27035 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
27036 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
27037 l_rec_acct_attrs.array_num_value(4) := p_source_25;
27038 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
27039 l_rec_acct_attrs.array_char_value(5) := p_source_26;
27040 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
27041 l_rec_acct_attrs.array_num_value(6) := p_source_27;
27042 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
27043 l_rec_acct_attrs.array_date_value(7) := p_source_28;
27044 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
27045 l_rec_acct_attrs.array_num_value(8) := p_source_29;
27046 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
27047 l_rec_acct_attrs.array_char_value(9) := p_source_30;
27048 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
27049 l_rec_acct_attrs.array_char_value(10) := p_source_31;
27050 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
27051 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
27052 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
27053 l_rec_acct_attrs.array_num_value(12) := p_source_25;
27054 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
27055 l_rec_acct_attrs.array_char_value(13) := p_source_26;
27056 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
27057 l_rec_acct_attrs.array_num_value(14) := p_source_27;
27058 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
27059 l_rec_acct_attrs.array_date_value(15) := p_source_28;
27060 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
27061 l_rec_acct_attrs.array_num_value(16) := p_source_29;
27062 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
27063 l_rec_acct_attrs.array_char_value(17) := p_source_30;
27064 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
27065 l_rec_acct_attrs.array_char_value(18) := p_source_32;
27066 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
27070 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
27067 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
27068 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
27069 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
27071 l_rec_acct_attrs.array_char_value(21) := p_source_35;
27072 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
27073 l_rec_acct_attrs.array_num_value(22) := p_source_25;
27074 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
27075 l_rec_acct_attrs.array_char_value(23) := p_source_26;
27076 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
27077 l_rec_acct_attrs.array_date_value(24) := p_source_28;
27078 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
27079 l_rec_acct_attrs.array_num_value(25) := p_source_29;
27080 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
27081 l_rec_acct_attrs.array_char_value(26) := p_source_30;
27082 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
27083 l_rec_acct_attrs.array_num_value(27) := p_source_27;
27084 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
27085 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
27086 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
27087 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
27088 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
27089 l_rec_acct_attrs.array_char_value(30) := p_source_35;
27090
27091 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
27092 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
27093
27094 ---------------------------------------------------------------------------------------------------------------
27095 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
27096 ---------------------------------------------------------------------------------------------------------------
27097 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
27098
27099 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27100 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27101
27102 IF xla_accounting_cache_pkg.GetValueChar
27103 (p_source_code => 'LEDGER_CATEGORY_CODE'
27104 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
27105 AND l_bflow_method_code = 'PRIOR_ENTRY'
27106 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
27107 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
27108 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
27109 )
27110 THEN
27111 xla_ae_lines_pkg.BflowUpgEntry
27112 (p_business_method_code => l_bflow_method_code
27113 ,p_business_class_code => l_bflow_class_code
27114 ,p_balance_type => l_balance_type_code);
27115 ELSE
27116 NULL;
27117 -- No business flow processing for business flow method of NONE.
27118 END IF;
27119
27120 --
27121 -- call analytical criteria
27122 --
27123
27124 --
27125 -- call description
27126 --
27127 -- No description or it is inherited.
27128 --
27129 -- call ADRs
27130 -- Bug 4922099
27131 --
27132 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27133 (NVL(l_actual_upg_option, 'N') = 'O') OR
27134 (NVL(l_enc_upg_option, 'N') = 'O')
27135 )
27136 THEN
27137 NULL;
27138 --
27139 --
27140
27141 l_ccid := AcctDerRule_12(
27142 p_application_id => p_application_id
27143 , p_ae_header_id => l_ae_header_id
27144 , p_source_4 => p_source_4
27145 , p_source_5 => p_source_5
27146 , p_source_6 => p_source_6
27147 , x_transaction_coa_id => l_adr_transaction_coa_id
27148 , x_accounting_coa_id => l_adr_accounting_coa_id
27149 , x_value_type_code => l_adr_value_type_code
27150 , p_side => 'NA'
27151 );
27152
27153 xla_ae_lines_pkg.set_ccid(
27154 p_code_combination_id => l_ccid
27155 , p_value_type_code => l_adr_value_type_code
27156 , p_transaction_coa_id => l_adr_transaction_coa_id
27157 , p_accounting_coa_id => l_adr_accounting_coa_id
27158 , p_adr_code => 'PA_COST_ACCT_RULE'
27159 , p_adr_type_code => 'S'
27160 , p_component_type => l_component_type
27161 , p_component_code => l_component_code
27162 , p_component_type_code => l_component_type_code
27163 , p_component_appl_id => l_component_appl_id
27164 , p_amb_context_code => l_amb_context_code
27165 , p_side => 'NA'
27166 );
27167
27168
27169 --
27170 --
27171 END IF;
27172 --
27173 -- Bug 4922099
27174 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
27175 (NVL(l_enc_upg_option, 'N') = 'O')
27176 ) AND
27177 (l_bflow_method_code = 'PRIOR_ENTRY')
27178 )
27179 THEN
27180 IF
27181 --
27182 1 = 2
27183 --
27184 THEN
27185 xla_accounting_err_pkg.build_message
27186 (p_appli_s_name => 'XLA'
27187 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27188 ,p_token_1 => 'LINE_NUMBER'
27189 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
27193 ,l_component_code
27190 ,p_token_2 => 'LINE_TYPE_NAME'
27191 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
27192 l_component_type
27194 ,l_component_type_code
27195 ,l_component_appl_id
27196 ,l_amb_context_code
27197 ,l_entity_code
27198 ,l_event_class_code
27199 )
27200 ,p_token_3 => 'OWNER'
27201 ,p_value_3 => xla_lookups_pkg.get_meaning(
27202 p_lookup_type => 'XLA_OWNER_TYPE'
27203 ,p_lookup_code => l_component_type_code
27204 )
27205 ,p_token_4 => 'PRODUCT_NAME'
27206 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
27207 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
27208 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
27209 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
27210 ,p_ae_header_id => NULL
27211 );
27212
27213 IF (C_LEVEL_ERROR>= g_log_level) THEN
27214 trace
27215 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27216 ,p_level => C_LEVEL_ERROR
27217 ,p_module => l_log_module);
27218 END IF;
27219 END IF;
27220 END IF;
27221 --
27222 --
27223 ------------------------------------------------------------------------------------------------
27224 -- 4219869 Business Flow
27225 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
27226 -- Prior Entry. Currently, the following code is always generated.
27227 ------------------------------------------------------------------------------------------------
27228 XLA_AE_LINES_PKG.ValidateCurrentLine;
27229
27230 ------------------------------------------------------------------------------------
27231 -- 4219869 Business Flow
27232 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
27233 ------------------------------------------------------------------------------------
27234 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27235
27236 ----------------------------------------------------------------------------------
27237 -- 4219869 Business Flow
27238 -- Update journal entry status -- Need to generate this within IF <condition>
27239 ----------------------------------------------------------------------------------
27240 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27241 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
27242 ,p_balance_type_code => l_balance_type_code
27243 );
27244
27245 -------------------------------------------------------------------------------------------
27246 -- 4262811 - Generate the Accrual Reversal lines
27247 -------------------------------------------------------------------------------------------
27248 BEGIN
27249 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
27250 (g_array_event(p_event_id).array_value_num('header_index'));
27251 IF l_acc_rev_flag IS NULL THEN
27252 l_acc_rev_flag := 'N';
27253 END IF;
27254 EXCEPTION
27255 WHEN OTHERS THEN
27256 l_acc_rev_flag := 'N';
27257 END;
27258 --
27259 IF (l_acc_rev_flag = 'Y') THEN
27260
27261 -- 4645092 ------------------------------------------------------------------------------
27262 -- To allow MPA report to determine if it should generate report process
27263 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
27264 ------------------------------------------------------------------------------------------
27265
27266 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
27267 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
27268
27269 --
27270 -- Update the line information that should be overwritten
27271 --
27272 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27273 p_header_num => 1);
27274 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
27275
27276 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27277
27278 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
27279 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27280 END IF;
27281
27282 --
27283 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27284 --
27285 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27286 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
27287 ELSE
27291 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
27288 ---------------------------------------------------------------------------------------------------
27289 -- 4262811a Switch Sign
27290 ---------------------------------------------------------------------------------------------------
27292 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27293 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27294 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27295 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27296 -- 5132302
27297 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27298 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27299
27300 END IF;
27301
27302 -- 4955764
27303 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27304 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27305
27306
27307 XLA_AE_LINES_PKG.ValidateCurrentLine;
27308 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27309
27310 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27311 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27312 ,p_balance_type_code => l_balance_type_code);
27313
27314 END IF;
27315
27316 -----------------------------------------------------------------------------------------
27317 -- 4262811 Multiperiod Accounting
27318 -----------------------------------------------------------------------------------------
27319 -- No MPA option is assigned.
27320
27321
27322 END IF;
27323 --
27324
27325 --
27326 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27327 trace
27328 (p_msg => 'END of AcctLineType_68'
27329 ,p_level => C_LEVEL_PROCEDURE
27330 ,p_module => l_log_module);
27331 END IF;
27332 --
27333 EXCEPTION
27334 WHEN xla_exceptions_pkg.application_exception THEN
27335 RAISE;
27336 WHEN OTHERS THEN
27337 xla_exceptions_pkg.raise_message
27338 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_68');
27339 END AcctLineType_68;
27340 --
27341
27342 ---------------------------------------
27343 --
27344 -- PRIVATE FUNCTION
27345 -- AcctLineType_69
27346 --
27347 ---------------------------------------
27348 PROCEDURE AcctLineType_69 (
27349 p_application_id IN NUMBER
27350 ,p_event_id IN NUMBER
27351 ,p_calculate_acctd_flag IN VARCHAR2
27352 ,p_calculate_g_l_flag IN VARCHAR2
27353 ,p_actual_flag IN OUT VARCHAR2
27354 ,p_balance_type_code OUT VARCHAR2
27355 ,p_gain_or_loss_ref OUT VARCHAR2
27356
27357 --Cost CCID
27358 , p_source_4 IN NUMBER
27359 --Allow Account Override Flag
27360 , p_source_5 IN VARCHAR2
27361 --Adjustment Cost CCID
27362 , p_source_6 IN NUMBER
27363 --Cost Clearing CCID
27364 , p_source_7 IN NUMBER
27365 --Reversing Line Flag
27366 , p_source_23 IN VARCHAR2
27367 --Actual Upgrade Credit Accounting Class
27368 , p_source_24 IN VARCHAR2
27369 --Entered Raw Cost
27370 , p_source_25 IN NUMBER
27371 --Entered Currency Code
27372 , p_source_26 IN VARCHAR2
27373 --Accounted Raw Cost
27374 , p_source_27 IN NUMBER
27375 --Exchange Rate Date
27376 , p_source_28 IN DATE
27377 --Exchange Rate
27378 , p_source_29 IN NUMBER
27379 --Exchange Rate Type
27380 , p_source_30 IN VARCHAR2
27381 --Actual Upgrade Debit Accounting Class
27382 , p_source_31 IN VARCHAR2
27383 --Use Actuals Upgrade Attributes Flag
27384 , p_source_32 IN VARCHAR2
27385 --Expenditure Item ID
27386 , p_source_33 IN NUMBER
27387 --Cost Distribution Line Number
27388 , p_source_34 IN NUMBER
27389 --Line Type
27390 , p_source_35 IN VARCHAR2
27391 , p_source_35_meaning IN VARCHAR2
27392 --Reversed Line Number
27393 , p_source_36 IN NUMBER
27394 )
27395 IS
27396
27397 l_component_type VARCHAR2(80);
27398 l_component_code VARCHAR2(30);
27399 l_component_type_code VARCHAR2(1);
27400 l_component_appl_id INTEGER;
27401 l_amb_context_code VARCHAR2(30);
27402 l_entity_code VARCHAR2(30);
27403 l_event_class_code VARCHAR2(30);
27404 l_ae_header_id NUMBER;
27405 l_event_type_code VARCHAR2(30);
27406 l_line_definition_code VARCHAR2(30);
27407 l_line_definition_owner_code VARCHAR2(1);
27408 --
27409 -- adr variables
27410 l_segment VARCHAR2(30);
27411 l_ccid NUMBER;
27412 l_adr_transaction_coa_id NUMBER;
27413 l_adr_accounting_coa_id NUMBER;
27414 l_adr_flexfield_segment_code VARCHAR2(30);
27415 l_adr_flex_value_set_id NUMBER;
27416 l_adr_value_type_code VARCHAR2(30);
27417 l_adr_value_combination_id NUMBER;
27418 l_adr_value_segment_code VARCHAR2(30);
27419
27420 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
27421 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
27422 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
27423 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
27424
27428 l_acc_rev_flag VARCHAR2(1);
27425 -- 4262811 Variables ------------------------------------------------------------------------------------------
27426 l_entered_amt_idx NUMBER;
27427 l_accted_amt_idx NUMBER;
27429 l_accrual_line_num NUMBER;
27430 l_tmp_amt NUMBER;
27431 l_acc_rev_natural_side_code VARCHAR2(1);
27432
27433 l_num_entries NUMBER;
27434 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
27435 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
27436 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
27437 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
27438 l_recog_line_1 NUMBER;
27439 l_recog_line_2 NUMBER;
27440
27441 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
27442 l_bflow_applied_to_amt NUMBER; -- 5132302
27443 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
27444
27445 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
27446
27447 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
27448 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
27449
27450 ---------------------------------------------------------------------------------------------------------------
27451
27452
27453 --
27454 -- bulk performance
27455 --
27456 l_balance_type_code VARCHAR2(1);
27457 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
27458 l_log_module VARCHAR2(240);
27459
27460 --
27461 -- Upgrade strategy
27462 --
27463 l_actual_upg_option VARCHAR2(1);
27464 l_enc_upg_option VARCHAR2(1);
27465
27466 --
27467 BEGIN
27468 --
27469 IF g_log_enabled THEN
27470 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_69';
27471 END IF;
27472 --
27473 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27474
27475 trace
27476 (p_msg => 'BEGIN of AcctLineType_69'
27477 ,p_level => C_LEVEL_PROCEDURE
27478 ,p_module => l_log_module);
27479
27480 END IF;
27481 --
27482 l_component_type := 'AMB_JLT';
27483 l_component_code := 'PA_RAW_COST';
27484 l_component_type_code := 'S';
27485 l_component_appl_id := 275;
27486 l_amb_context_code := 'DEFAULT';
27487 l_entity_code := 'EXPENDITURES';
27488 l_event_class_code := 'USG_COST';
27489 l_event_type_code := 'USG_COST_ALL';
27490 l_line_definition_owner_code := 'S';
27491 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
27492 --
27493 l_balance_type_code := 'A';
27494 l_segment := NULL;
27495 l_ccid := NULL;
27496 l_adr_transaction_coa_id := NULL;
27497 l_adr_accounting_coa_id := NULL;
27498 l_adr_flexfield_segment_code := NULL;
27499 l_adr_flex_value_set_id := NULL;
27500 l_adr_value_type_code := NULL;
27501 l_adr_value_combination_id := NULL;
27502 l_adr_value_segment_code := NULL;
27503
27504 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
27505 l_bflow_class_code := ''; -- 4219869 Business Flow
27506 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
27507 l_budgetary_control_flag := 'N';
27508
27509 l_bflow_applied_to_amt_idx := NULL; -- 5132302
27510 l_bflow_applied_to_amt := NULL; -- 5132302
27511 l_entered_amt_idx := NULL; -- 4262811
27512 l_accted_amt_idx := NULL; -- 4262811
27513 l_acc_rev_flag := NULL; -- 4262811
27514 l_accrual_line_num := NULL; -- 4262811
27515 l_tmp_amt := NULL; -- 4262811
27516 --
27517
27518 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
27519 l_balance_type_code <> 'B' THEN
27520
27521 --
27522 XLA_AE_LINES_PKG.SetNewLine;
27523
27524 p_balance_type_code := l_balance_type_code;
27525 -- set the flag so later we will know whether the gain loss line needs to be created
27526
27527 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
27528 p_actual_flag :='A';
27529 END IF;
27530
27531 --
27532 -- bulk performance
27533 --
27534 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
27535 p_header_num => 0); -- 4262811
27536 --
27537 -- set accounting line options
27538 --
27539 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
27540 p_natural_side_code => 'D'
27541 , p_gain_or_loss_flag => 'N'
27542 , p_gl_transfer_mode_code => 'S'
27543 , p_acct_entry_type_code => 'A'
27544 , p_switch_side_flag => 'Y'
27545 , p_merge_duplicate_code => 'N'
27546 );
27547 --
27548 l_acc_rev_natural_side_code := 'C'; -- 4262811
27549 --
27550 --
27551 -- set accounting line type info
27552 --
27553 xla_ae_lines_pkg.SetAcctLineType
27554 (p_component_type => l_component_type
27555 ,p_event_type_code => l_event_type_code
27556 ,p_line_definition_owner_code => l_line_definition_owner_code
27557 ,p_line_definition_code => l_line_definition_code
27558 ,p_accounting_line_code => l_component_code
27559 ,p_accounting_line_type_code => l_component_type_code
27560 ,p_accounting_line_appl_id => l_component_appl_id
27561 ,p_amb_context_code => l_amb_context_code
27565 -- set accounting class
27562 ,p_entity_code => l_entity_code
27563 ,p_event_class_code => l_event_class_code);
27564 --
27566 --
27567 xla_ae_lines_pkg.SetAcctClass(
27568 p_accounting_class_code => 'COST'
27569 , p_ae_header_id => l_ae_header_id
27570 );
27571
27572 --
27573 -- set rounding class
27574 --
27575 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
27576 'COST';
27577
27578 --
27579 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
27580 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
27581 --
27582 -- bulk performance
27583 --
27584 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
27585
27586 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
27587 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
27588
27589 -- 4955764
27590 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27591 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
27592
27593 -- 4458381 Public Sector Enh
27594
27595 --
27596 -- set accounting attributes for the line type
27597 --
27598 l_entered_amt_idx := 22;
27599 l_accted_amt_idx := 27;
27600 l_bflow_applied_to_amt_idx := NULL; -- 5132302
27601 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
27602 l_rec_acct_attrs.array_char_value(1) := p_source_23;
27603 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
27604 l_rec_acct_attrs.array_char_value(2) := p_source_24;
27605 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
27606 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
27607 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
27608 l_rec_acct_attrs.array_num_value(4) := p_source_25;
27609 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
27610 l_rec_acct_attrs.array_char_value(5) := p_source_26;
27611 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
27612 l_rec_acct_attrs.array_num_value(6) := p_source_27;
27613 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
27614 l_rec_acct_attrs.array_date_value(7) := p_source_28;
27615 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
27616 l_rec_acct_attrs.array_num_value(8) := p_source_29;
27617 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
27618 l_rec_acct_attrs.array_char_value(9) := p_source_30;
27619 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
27620 l_rec_acct_attrs.array_char_value(10) := p_source_31;
27621 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
27622 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
27623 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
27624 l_rec_acct_attrs.array_num_value(12) := p_source_25;
27625 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
27626 l_rec_acct_attrs.array_char_value(13) := p_source_26;
27627 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
27628 l_rec_acct_attrs.array_num_value(14) := p_source_27;
27629 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
27630 l_rec_acct_attrs.array_date_value(15) := p_source_28;
27631 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
27632 l_rec_acct_attrs.array_num_value(16) := p_source_29;
27633 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
27634 l_rec_acct_attrs.array_char_value(17) := p_source_30;
27635 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
27636 l_rec_acct_attrs.array_char_value(18) := p_source_32;
27637 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
27638 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
27639 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
27640 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
27641 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
27642 l_rec_acct_attrs.array_char_value(21) := p_source_35;
27643 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
27644 l_rec_acct_attrs.array_num_value(22) := p_source_25;
27645 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
27646 l_rec_acct_attrs.array_char_value(23) := p_source_26;
27647 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
27648 l_rec_acct_attrs.array_date_value(24) := p_source_28;
27649 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
27650 l_rec_acct_attrs.array_num_value(25) := p_source_29;
27651 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
27652 l_rec_acct_attrs.array_char_value(26) := p_source_30;
27653 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
27654 l_rec_acct_attrs.array_num_value(27) := p_source_27;
27655 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
27656 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
27657 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
27658 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
27659 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
27660 l_rec_acct_attrs.array_char_value(30) := p_source_35;
27661
27662 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
27663 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
27664
27668 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
27665 ---------------------------------------------------------------------------------------------------------------
27666 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
27667 ---------------------------------------------------------------------------------------------------------------
27669
27670 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27671 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27672
27673 IF xla_accounting_cache_pkg.GetValueChar
27674 (p_source_code => 'LEDGER_CATEGORY_CODE'
27675 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
27676 AND l_bflow_method_code = 'PRIOR_ENTRY'
27677 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
27678 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
27679 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
27680 )
27681 THEN
27682 xla_ae_lines_pkg.BflowUpgEntry
27683 (p_business_method_code => l_bflow_method_code
27684 ,p_business_class_code => l_bflow_class_code
27685 ,p_balance_type => l_balance_type_code);
27686 ELSE
27687 NULL;
27688 -- No business flow processing for business flow method of NONE.
27689 END IF;
27690
27691 --
27692 -- call analytical criteria
27693 --
27694
27695 --
27696 -- call description
27697 --
27698 -- No description or it is inherited.
27699 --
27700 -- call ADRs
27701 -- Bug 4922099
27702 --
27703 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27704 (NVL(l_actual_upg_option, 'N') = 'O') OR
27705 (NVL(l_enc_upg_option, 'N') = 'O')
27706 )
27707 THEN
27708 NULL;
27709 --
27710 --
27711
27712 l_ccid := AcctDerRule_12(
27713 p_application_id => p_application_id
27714 , p_ae_header_id => l_ae_header_id
27715 , p_source_4 => p_source_4
27716 , p_source_5 => p_source_5
27717 , p_source_6 => p_source_6
27718 , x_transaction_coa_id => l_adr_transaction_coa_id
27719 , x_accounting_coa_id => l_adr_accounting_coa_id
27720 , x_value_type_code => l_adr_value_type_code
27721 , p_side => 'NA'
27722 );
27723
27724 xla_ae_lines_pkg.set_ccid(
27725 p_code_combination_id => l_ccid
27726 , p_value_type_code => l_adr_value_type_code
27727 , p_transaction_coa_id => l_adr_transaction_coa_id
27728 , p_accounting_coa_id => l_adr_accounting_coa_id
27729 , p_adr_code => 'PA_COST_ACCT_RULE'
27730 , p_adr_type_code => 'S'
27731 , p_component_type => l_component_type
27732 , p_component_code => l_component_code
27733 , p_component_type_code => l_component_type_code
27734 , p_component_appl_id => l_component_appl_id
27735 , p_amb_context_code => l_amb_context_code
27736 , p_side => 'NA'
27737 );
27738
27739
27740 --
27741 --
27742 END IF;
27743 --
27744 -- Bug 4922099
27745 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
27746 (NVL(l_enc_upg_option, 'N') = 'O')
27747 ) AND
27748 (l_bflow_method_code = 'PRIOR_ENTRY')
27749 )
27750 THEN
27751 IF
27752 --
27753 1 = 2
27754 --
27755 THEN
27756 xla_accounting_err_pkg.build_message
27757 (p_appli_s_name => 'XLA'
27758 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27759 ,p_token_1 => 'LINE_NUMBER'
27760 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
27761 ,p_token_2 => 'LINE_TYPE_NAME'
27762 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
27763 l_component_type
27764 ,l_component_code
27765 ,l_component_type_code
27766 ,l_component_appl_id
27767 ,l_amb_context_code
27768 ,l_entity_code
27769 ,l_event_class_code
27770 )
27771 ,p_token_3 => 'OWNER'
27772 ,p_value_3 => xla_lookups_pkg.get_meaning(
27773 p_lookup_type => 'XLA_OWNER_TYPE'
27774 ,p_lookup_code => l_component_type_code
27775 )
27776 ,p_token_4 => 'PRODUCT_NAME'
27777 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
27778 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
27782 );
27779 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
27780 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
27781 ,p_ae_header_id => NULL
27783
27784 IF (C_LEVEL_ERROR>= g_log_level) THEN
27785 trace
27786 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27787 ,p_level => C_LEVEL_ERROR
27788 ,p_module => l_log_module);
27789 END IF;
27790 END IF;
27791 END IF;
27792 --
27793 --
27794 ------------------------------------------------------------------------------------------------
27795 -- 4219869 Business Flow
27796 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
27797 -- Prior Entry. Currently, the following code is always generated.
27798 ------------------------------------------------------------------------------------------------
27799 XLA_AE_LINES_PKG.ValidateCurrentLine;
27800
27801 ------------------------------------------------------------------------------------
27802 -- 4219869 Business Flow
27803 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
27804 ------------------------------------------------------------------------------------
27805 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27806
27807 ----------------------------------------------------------------------------------
27808 -- 4219869 Business Flow
27809 -- Update journal entry status -- Need to generate this within IF <condition>
27810 ----------------------------------------------------------------------------------
27811 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27812 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
27813 ,p_balance_type_code => l_balance_type_code
27814 );
27815
27816 -------------------------------------------------------------------------------------------
27817 -- 4262811 - Generate the Accrual Reversal lines
27818 -------------------------------------------------------------------------------------------
27819 BEGIN
27820 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
27821 (g_array_event(p_event_id).array_value_num('header_index'));
27822 IF l_acc_rev_flag IS NULL THEN
27823 l_acc_rev_flag := 'N';
27824 END IF;
27825 EXCEPTION
27826 WHEN OTHERS THEN
27827 l_acc_rev_flag := 'N';
27828 END;
27829 --
27830 IF (l_acc_rev_flag = 'Y') THEN
27831
27832 -- 4645092 ------------------------------------------------------------------------------
27833 -- To allow MPA report to determine if it should generate report process
27834 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
27835 ------------------------------------------------------------------------------------------
27836
27837 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
27838 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
27839
27840 --
27841 -- Update the line information that should be overwritten
27842 --
27843 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27844 p_header_num => 1);
27845 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
27846
27847 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27848
27849 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
27850 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27851 END IF;
27852
27853 --
27854 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27855 --
27856 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27857 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
27858 ELSE
27859 ---------------------------------------------------------------------------------------------------
27860 -- 4262811a Switch Sign
27861 ---------------------------------------------------------------------------------------------------
27862 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
27863 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27864 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27865 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27866 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27867 -- 5132302
27868 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27869 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27870
27871 END IF;
27872
27873 -- 4955764
27874 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27875 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27876
27877
27878 XLA_AE_LINES_PKG.ValidateCurrentLine;
27879 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27880
27881 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27882 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27883 ,p_balance_type_code => l_balance_type_code);
27884
27885 END IF;
27886
27890 -- No MPA option is assigned.
27887 -----------------------------------------------------------------------------------------
27888 -- 4262811 Multiperiod Accounting
27889 -----------------------------------------------------------------------------------------
27891
27892
27893 END IF;
27894 --
27895
27896 --
27897 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27898 trace
27899 (p_msg => 'END of AcctLineType_69'
27900 ,p_level => C_LEVEL_PROCEDURE
27901 ,p_module => l_log_module);
27902 END IF;
27903 --
27904 EXCEPTION
27905 WHEN xla_exceptions_pkg.application_exception THEN
27906 RAISE;
27907 WHEN OTHERS THEN
27908 xla_exceptions_pkg.raise_message
27909 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_69');
27910 END AcctLineType_69;
27911 --
27912
27913 ---------------------------------------
27914 --
27915 -- PRIVATE FUNCTION
27916 -- AcctLineType_70
27917 --
27918 ---------------------------------------
27919 PROCEDURE AcctLineType_70 (
27920 p_application_id IN NUMBER
27921 ,p_event_id IN NUMBER
27922 ,p_calculate_acctd_flag IN VARCHAR2
27923 ,p_calculate_g_l_flag IN VARCHAR2
27924 ,p_actual_flag IN OUT VARCHAR2
27925 ,p_balance_type_code OUT VARCHAR2
27926 ,p_gain_or_loss_ref OUT VARCHAR2
27927
27928 --Cost CCID
27929 , p_source_4 IN NUMBER
27930 --Allow Account Override Flag
27931 , p_source_5 IN VARCHAR2
27932 --Adjustment Cost CCID
27933 , p_source_6 IN NUMBER
27934 --Cost Clearing CCID
27935 , p_source_7 IN NUMBER
27936 --Reversing Line Flag
27937 , p_source_23 IN VARCHAR2
27938 --Actual Upgrade Credit Accounting Class
27939 , p_source_24 IN VARCHAR2
27940 --Entered Raw Cost
27941 , p_source_25 IN NUMBER
27942 --Entered Currency Code
27943 , p_source_26 IN VARCHAR2
27944 --Accounted Raw Cost
27945 , p_source_27 IN NUMBER
27946 --Exchange Rate Date
27947 , p_source_28 IN DATE
27948 --Exchange Rate
27949 , p_source_29 IN NUMBER
27950 --Exchange Rate Type
27951 , p_source_30 IN VARCHAR2
27952 --Actual Upgrade Debit Accounting Class
27953 , p_source_31 IN VARCHAR2
27954 --Use Actuals Upgrade Attributes Flag
27955 , p_source_32 IN VARCHAR2
27956 --Expenditure Item ID
27957 , p_source_33 IN NUMBER
27958 --Cost Distribution Line Number
27959 , p_source_34 IN NUMBER
27960 --Line Type
27961 , p_source_35 IN VARCHAR2
27962 , p_source_35_meaning IN VARCHAR2
27963 --Reversed Line Number
27964 , p_source_36 IN NUMBER
27965 )
27966 IS
27967
27968 l_component_type VARCHAR2(80);
27969 l_component_code VARCHAR2(30);
27970 l_component_type_code VARCHAR2(1);
27971 l_component_appl_id INTEGER;
27972 l_amb_context_code VARCHAR2(30);
27973 l_entity_code VARCHAR2(30);
27974 l_event_class_code VARCHAR2(30);
27975 l_ae_header_id NUMBER;
27976 l_event_type_code VARCHAR2(30);
27977 l_line_definition_code VARCHAR2(30);
27978 l_line_definition_owner_code VARCHAR2(1);
27979 --
27980 -- adr variables
27981 l_segment VARCHAR2(30);
27982 l_ccid NUMBER;
27983 l_adr_transaction_coa_id NUMBER;
27984 l_adr_accounting_coa_id NUMBER;
27985 l_adr_flexfield_segment_code VARCHAR2(30);
27986 l_adr_flex_value_set_id NUMBER;
27987 l_adr_value_type_code VARCHAR2(30);
27988 l_adr_value_combination_id NUMBER;
27989 l_adr_value_segment_code VARCHAR2(30);
27990
27991 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
27992 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
27993 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
27994 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
27995
27996 -- 4262811 Variables ------------------------------------------------------------------------------------------
27997 l_entered_amt_idx NUMBER;
27998 l_accted_amt_idx NUMBER;
27999 l_acc_rev_flag VARCHAR2(1);
28000 l_accrual_line_num NUMBER;
28001 l_tmp_amt NUMBER;
28002 l_acc_rev_natural_side_code VARCHAR2(1);
28003
28004 l_num_entries NUMBER;
28005 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
28006 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
28007 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
28008 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
28009 l_recog_line_1 NUMBER;
28010 l_recog_line_2 NUMBER;
28011
28012 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
28013 l_bflow_applied_to_amt NUMBER; -- 5132302
28014 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
28015
28016 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
28017
28018 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
28019 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
28020
28021 ---------------------------------------------------------------------------------------------------------------
28022
28023
28024 --
28025 -- bulk performance
28026 --
28027 l_balance_type_code VARCHAR2(1);
28028 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
28029 l_log_module VARCHAR2(240);
28030
28031 --
28035 l_enc_upg_option VARCHAR2(1);
28032 -- Upgrade strategy
28033 --
28034 l_actual_upg_option VARCHAR2(1);
28036
28037 --
28038 BEGIN
28039 --
28040 IF g_log_enabled THEN
28041 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_70';
28042 END IF;
28043 --
28044 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28045
28046 trace
28047 (p_msg => 'BEGIN of AcctLineType_70'
28048 ,p_level => C_LEVEL_PROCEDURE
28049 ,p_module => l_log_module);
28050
28051 END IF;
28052 --
28053 l_component_type := 'AMB_JLT';
28054 l_component_code := 'PA_RAW_COST';
28055 l_component_type_code := 'S';
28056 l_component_appl_id := 275;
28057 l_amb_context_code := 'DEFAULT';
28058 l_entity_code := 'EXPENDITURES';
28059 l_event_class_code := 'WIP_COST';
28060 l_event_type_code := 'WIP_COST_ALL';
28061 l_line_definition_owner_code := 'S';
28062 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
28063 --
28064 l_balance_type_code := 'A';
28065 l_segment := NULL;
28066 l_ccid := NULL;
28067 l_adr_transaction_coa_id := NULL;
28068 l_adr_accounting_coa_id := NULL;
28069 l_adr_flexfield_segment_code := NULL;
28070 l_adr_flex_value_set_id := NULL;
28071 l_adr_value_type_code := NULL;
28072 l_adr_value_combination_id := NULL;
28073 l_adr_value_segment_code := NULL;
28074
28075 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
28076 l_bflow_class_code := ''; -- 4219869 Business Flow
28077 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
28078 l_budgetary_control_flag := 'N';
28079
28080 l_bflow_applied_to_amt_idx := NULL; -- 5132302
28081 l_bflow_applied_to_amt := NULL; -- 5132302
28082 l_entered_amt_idx := NULL; -- 4262811
28083 l_accted_amt_idx := NULL; -- 4262811
28084 l_acc_rev_flag := NULL; -- 4262811
28085 l_accrual_line_num := NULL; -- 4262811
28086 l_tmp_amt := NULL; -- 4262811
28087 --
28088
28089 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
28090 l_balance_type_code <> 'B' THEN
28091
28092 --
28093 XLA_AE_LINES_PKG.SetNewLine;
28094
28095 p_balance_type_code := l_balance_type_code;
28096 -- set the flag so later we will know whether the gain loss line needs to be created
28097
28098 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
28099 p_actual_flag :='A';
28100 END IF;
28101
28102 --
28103 -- bulk performance
28104 --
28105 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
28106 p_header_num => 0); -- 4262811
28107 --
28108 -- set accounting line options
28109 --
28110 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
28111 p_natural_side_code => 'D'
28112 , p_gain_or_loss_flag => 'N'
28113 , p_gl_transfer_mode_code => 'S'
28114 , p_acct_entry_type_code => 'A'
28115 , p_switch_side_flag => 'Y'
28116 , p_merge_duplicate_code => 'N'
28117 );
28118 --
28119 l_acc_rev_natural_side_code := 'C'; -- 4262811
28120 --
28121 --
28122 -- set accounting line type info
28123 --
28124 xla_ae_lines_pkg.SetAcctLineType
28125 (p_component_type => l_component_type
28126 ,p_event_type_code => l_event_type_code
28127 ,p_line_definition_owner_code => l_line_definition_owner_code
28128 ,p_line_definition_code => l_line_definition_code
28129 ,p_accounting_line_code => l_component_code
28130 ,p_accounting_line_type_code => l_component_type_code
28131 ,p_accounting_line_appl_id => l_component_appl_id
28132 ,p_amb_context_code => l_amb_context_code
28133 ,p_entity_code => l_entity_code
28134 ,p_event_class_code => l_event_class_code);
28135 --
28136 -- set accounting class
28137 --
28138 xla_ae_lines_pkg.SetAcctClass(
28139 p_accounting_class_code => 'COST'
28140 , p_ae_header_id => l_ae_header_id
28141 );
28142
28143 --
28144 -- set rounding class
28145 --
28146 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
28147 'COST';
28148
28149 --
28150 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
28151 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
28152 --
28153 -- bulk performance
28154 --
28155 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
28156
28157 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
28158 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
28159
28160 -- 4955764
28161 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28162 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
28163
28164 -- 4458381 Public Sector Enh
28165
28166 --
28167 -- set accounting attributes for the line type
28168 --
28169 l_entered_amt_idx := 22;
28170 l_accted_amt_idx := 27;
28171 l_bflow_applied_to_amt_idx := NULL; -- 5132302
28172 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
28176 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
28173 l_rec_acct_attrs.array_char_value(1) := p_source_23;
28174 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
28175 l_rec_acct_attrs.array_char_value(2) := p_source_24;
28177 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
28178 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
28179 l_rec_acct_attrs.array_num_value(4) := p_source_25;
28180 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
28181 l_rec_acct_attrs.array_char_value(5) := p_source_26;
28182 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
28183 l_rec_acct_attrs.array_num_value(6) := p_source_27;
28184 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
28185 l_rec_acct_attrs.array_date_value(7) := p_source_28;
28186 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
28187 l_rec_acct_attrs.array_num_value(8) := p_source_29;
28188 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
28189 l_rec_acct_attrs.array_char_value(9) := p_source_30;
28190 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
28191 l_rec_acct_attrs.array_char_value(10) := p_source_31;
28192 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
28193 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
28194 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
28195 l_rec_acct_attrs.array_num_value(12) := p_source_25;
28196 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
28197 l_rec_acct_attrs.array_char_value(13) := p_source_26;
28198 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
28199 l_rec_acct_attrs.array_num_value(14) := p_source_27;
28200 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
28201 l_rec_acct_attrs.array_date_value(15) := p_source_28;
28202 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
28203 l_rec_acct_attrs.array_num_value(16) := p_source_29;
28204 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
28205 l_rec_acct_attrs.array_char_value(17) := p_source_30;
28206 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
28207 l_rec_acct_attrs.array_char_value(18) := p_source_32;
28208 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
28209 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
28210 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
28211 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
28212 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
28213 l_rec_acct_attrs.array_char_value(21) := p_source_35;
28214 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
28215 l_rec_acct_attrs.array_num_value(22) := p_source_25;
28216 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
28217 l_rec_acct_attrs.array_char_value(23) := p_source_26;
28218 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
28219 l_rec_acct_attrs.array_date_value(24) := p_source_28;
28220 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
28221 l_rec_acct_attrs.array_num_value(25) := p_source_29;
28222 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
28223 l_rec_acct_attrs.array_char_value(26) := p_source_30;
28224 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
28225 l_rec_acct_attrs.array_num_value(27) := p_source_27;
28226 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
28227 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
28228 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
28229 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
28230 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
28231 l_rec_acct_attrs.array_char_value(30) := p_source_35;
28232
28233 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
28234 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
28235
28236 ---------------------------------------------------------------------------------------------------------------
28237 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
28238 ---------------------------------------------------------------------------------------------------------------
28239 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
28240
28241 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28242 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28243
28244 IF xla_accounting_cache_pkg.GetValueChar
28245 (p_source_code => 'LEDGER_CATEGORY_CODE'
28246 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
28247 AND l_bflow_method_code = 'PRIOR_ENTRY'
28248 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
28249 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
28250 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
28251 )
28252 THEN
28253 xla_ae_lines_pkg.BflowUpgEntry
28254 (p_business_method_code => l_bflow_method_code
28255 ,p_business_class_code => l_bflow_class_code
28256 ,p_balance_type => l_balance_type_code);
28257 ELSE
28258 NULL;
28259 -- No business flow processing for business flow method of NONE.
28260 END IF;
28261
28262 --
28263 -- call analytical criteria
28264 --
28265
28266 --
28267 -- call description
28268 --
28269 -- No description or it is inherited.
28270 --
28271 -- call ADRs
28272 -- Bug 4922099
28276 (NVL(l_enc_upg_option, 'N') = 'O')
28273 --
28274 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28275 (NVL(l_actual_upg_option, 'N') = 'O') OR
28277 )
28278 THEN
28279 NULL;
28280 --
28281 --
28282
28283 l_ccid := AcctDerRule_12(
28284 p_application_id => p_application_id
28285 , p_ae_header_id => l_ae_header_id
28286 , p_source_4 => p_source_4
28287 , p_source_5 => p_source_5
28288 , p_source_6 => p_source_6
28289 , x_transaction_coa_id => l_adr_transaction_coa_id
28290 , x_accounting_coa_id => l_adr_accounting_coa_id
28291 , x_value_type_code => l_adr_value_type_code
28292 , p_side => 'NA'
28293 );
28294
28295 xla_ae_lines_pkg.set_ccid(
28296 p_code_combination_id => l_ccid
28297 , p_value_type_code => l_adr_value_type_code
28298 , p_transaction_coa_id => l_adr_transaction_coa_id
28299 , p_accounting_coa_id => l_adr_accounting_coa_id
28300 , p_adr_code => 'PA_COST_ACCT_RULE'
28301 , p_adr_type_code => 'S'
28302 , p_component_type => l_component_type
28303 , p_component_code => l_component_code
28304 , p_component_type_code => l_component_type_code
28305 , p_component_appl_id => l_component_appl_id
28306 , p_amb_context_code => l_amb_context_code
28307 , p_side => 'NA'
28308 );
28309
28310
28311 --
28312 --
28313 END IF;
28314 --
28315 -- Bug 4922099
28316 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
28317 (NVL(l_enc_upg_option, 'N') = 'O')
28318 ) AND
28319 (l_bflow_method_code = 'PRIOR_ENTRY')
28320 )
28321 THEN
28322 IF
28323 --
28324 1 = 2
28325 --
28326 THEN
28327 xla_accounting_err_pkg.build_message
28328 (p_appli_s_name => 'XLA'
28329 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28330 ,p_token_1 => 'LINE_NUMBER'
28331 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
28332 ,p_token_2 => 'LINE_TYPE_NAME'
28333 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
28334 l_component_type
28335 ,l_component_code
28336 ,l_component_type_code
28337 ,l_component_appl_id
28338 ,l_amb_context_code
28339 ,l_entity_code
28340 ,l_event_class_code
28341 )
28342 ,p_token_3 => 'OWNER'
28343 ,p_value_3 => xla_lookups_pkg.get_meaning(
28344 p_lookup_type => 'XLA_OWNER_TYPE'
28345 ,p_lookup_code => l_component_type_code
28346 )
28347 ,p_token_4 => 'PRODUCT_NAME'
28348 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
28349 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
28350 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
28351 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
28352 ,p_ae_header_id => NULL
28353 );
28354
28355 IF (C_LEVEL_ERROR>= g_log_level) THEN
28356 trace
28357 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28358 ,p_level => C_LEVEL_ERROR
28359 ,p_module => l_log_module);
28360 END IF;
28361 END IF;
28362 END IF;
28363 --
28364 --
28365 ------------------------------------------------------------------------------------------------
28366 -- 4219869 Business Flow
28367 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
28368 -- Prior Entry. Currently, the following code is always generated.
28369 ------------------------------------------------------------------------------------------------
28370 XLA_AE_LINES_PKG.ValidateCurrentLine;
28371
28372 ------------------------------------------------------------------------------------
28373 -- 4219869 Business Flow
28374 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
28375 ------------------------------------------------------------------------------------
28376 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28377
28378 ----------------------------------------------------------------------------------
28379 -- 4219869 Business Flow
28380 -- Update journal entry status -- Need to generate this within IF <condition>
28381 ----------------------------------------------------------------------------------
28382 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28386
28383 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
28384 ,p_balance_type_code => l_balance_type_code
28385 );
28387 -------------------------------------------------------------------------------------------
28388 -- 4262811 - Generate the Accrual Reversal lines
28389 -------------------------------------------------------------------------------------------
28390 BEGIN
28391 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
28392 (g_array_event(p_event_id).array_value_num('header_index'));
28393 IF l_acc_rev_flag IS NULL THEN
28394 l_acc_rev_flag := 'N';
28395 END IF;
28396 EXCEPTION
28397 WHEN OTHERS THEN
28398 l_acc_rev_flag := 'N';
28399 END;
28400 --
28401 IF (l_acc_rev_flag = 'Y') THEN
28402
28403 -- 4645092 ------------------------------------------------------------------------------
28404 -- To allow MPA report to determine if it should generate report process
28405 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
28406 ------------------------------------------------------------------------------------------
28407
28408 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
28409 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
28410
28411 --
28412 -- Update the line information that should be overwritten
28413 --
28414 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
28415 p_header_num => 1);
28416 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
28417
28418 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
28419
28420 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
28421 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
28422 END IF;
28423
28424 --
28425 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
28426 --
28427 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
28428 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
28429 ELSE
28430 ---------------------------------------------------------------------------------------------------
28431 -- 4262811a Switch Sign
28432 ---------------------------------------------------------------------------------------------------
28433 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
28434 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28435 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28436 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28437 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28438 -- 5132302
28439 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
28440 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28441
28442 END IF;
28443
28444 -- 4955764
28445 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28446 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
28447
28448
28449 XLA_AE_LINES_PKG.ValidateCurrentLine;
28450 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28451
28452 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28453 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
28454 ,p_balance_type_code => l_balance_type_code);
28455
28456 END IF;
28457
28458 -----------------------------------------------------------------------------------------
28459 -- 4262811 Multiperiod Accounting
28460 -----------------------------------------------------------------------------------------
28461 -- No MPA option is assigned.
28462
28463
28464 END IF;
28465 --
28466
28467 --
28468 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28469 trace
28470 (p_msg => 'END of AcctLineType_70'
28471 ,p_level => C_LEVEL_PROCEDURE
28472 ,p_module => l_log_module);
28473 END IF;
28474 --
28475 EXCEPTION
28476 WHEN xla_exceptions_pkg.application_exception THEN
28477 RAISE;
28478 WHEN OTHERS THEN
28479 xla_exceptions_pkg.raise_message
28480 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_70');
28481 END AcctLineType_70;
28482 --
28483
28484 ---------------------------------------
28485 --
28486 -- PRIVATE FUNCTION
28487 -- AcctLineType_71
28488 --
28489 ---------------------------------------
28490 PROCEDURE AcctLineType_71 (
28491 p_application_id IN NUMBER
28492 ,p_event_id IN NUMBER
28493 ,p_calculate_acctd_flag IN VARCHAR2
28494 ,p_calculate_g_l_flag IN VARCHAR2
28495 ,p_actual_flag IN OUT VARCHAR2
28496 ,p_balance_type_code OUT VARCHAR2
28497 ,p_gain_or_loss_ref OUT VARCHAR2
28498
28499 --Cost CCID
28500 , p_source_4 IN NUMBER
28501 --Allow Account Override Flag
28502 , p_source_5 IN VARCHAR2
28503 --Adjustment Cost CCID
28504 , p_source_6 IN NUMBER
28505 --Cost Clearing CCID
28506 , p_source_7 IN NUMBER
28507 --Reversing Line Flag
28508 , p_source_23 IN VARCHAR2
28509 --Actual Upgrade Credit Accounting Class
28513 --Entered Currency Code
28510 , p_source_24 IN VARCHAR2
28511 --Entered Raw Cost
28512 , p_source_25 IN NUMBER
28514 , p_source_26 IN VARCHAR2
28515 --Accounted Raw Cost
28516 , p_source_27 IN NUMBER
28517 --Exchange Rate Date
28518 , p_source_28 IN DATE
28519 --Exchange Rate
28520 , p_source_29 IN NUMBER
28521 --Exchange Rate Type
28522 , p_source_30 IN VARCHAR2
28523 --Actual Upgrade Debit Accounting Class
28524 , p_source_31 IN VARCHAR2
28525 --Use Actuals Upgrade Attributes Flag
28526 , p_source_32 IN VARCHAR2
28527 --Expenditure Item ID
28528 , p_source_33 IN NUMBER
28529 --Cost Distribution Line Number
28530 , p_source_34 IN NUMBER
28531 --Line Type
28532 , p_source_35 IN VARCHAR2
28533 , p_source_35_meaning IN VARCHAR2
28534 --Reversed Line Number
28535 , p_source_36 IN NUMBER
28536 )
28537 IS
28538
28539 l_component_type VARCHAR2(80);
28540 l_component_code VARCHAR2(30);
28541 l_component_type_code VARCHAR2(1);
28542 l_component_appl_id INTEGER;
28543 l_amb_context_code VARCHAR2(30);
28544 l_entity_code VARCHAR2(30);
28545 l_event_class_code VARCHAR2(30);
28546 l_ae_header_id NUMBER;
28547 l_event_type_code VARCHAR2(30);
28548 l_line_definition_code VARCHAR2(30);
28549 l_line_definition_owner_code VARCHAR2(1);
28550 --
28551 -- adr variables
28552 l_segment VARCHAR2(30);
28553 l_ccid NUMBER;
28554 l_adr_transaction_coa_id NUMBER;
28555 l_adr_accounting_coa_id NUMBER;
28556 l_adr_flexfield_segment_code VARCHAR2(30);
28557 l_adr_flex_value_set_id NUMBER;
28558 l_adr_value_type_code VARCHAR2(30);
28559 l_adr_value_combination_id NUMBER;
28560 l_adr_value_segment_code VARCHAR2(30);
28561
28562 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
28563 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
28564 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
28565 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
28566
28567 -- 4262811 Variables ------------------------------------------------------------------------------------------
28568 l_entered_amt_idx NUMBER;
28569 l_accted_amt_idx NUMBER;
28570 l_acc_rev_flag VARCHAR2(1);
28571 l_accrual_line_num NUMBER;
28572 l_tmp_amt NUMBER;
28573 l_acc_rev_natural_side_code VARCHAR2(1);
28574
28575 l_num_entries NUMBER;
28576 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
28577 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
28578 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
28579 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
28580 l_recog_line_1 NUMBER;
28581 l_recog_line_2 NUMBER;
28582
28583 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
28584 l_bflow_applied_to_amt NUMBER; -- 5132302
28585 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
28586
28587 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
28588
28589 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
28590 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
28591
28592 ---------------------------------------------------------------------------------------------------------------
28593
28594
28595 --
28596 -- bulk performance
28597 --
28598 l_balance_type_code VARCHAR2(1);
28599 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
28600 l_log_module VARCHAR2(240);
28601
28602 --
28603 -- Upgrade strategy
28604 --
28605 l_actual_upg_option VARCHAR2(1);
28606 l_enc_upg_option VARCHAR2(1);
28607
28608 --
28609 BEGIN
28610 --
28611 IF g_log_enabled THEN
28612 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_71';
28613 END IF;
28614 --
28615 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28616
28617 trace
28618 (p_msg => 'BEGIN of AcctLineType_71'
28619 ,p_level => C_LEVEL_PROCEDURE
28620 ,p_module => l_log_module);
28621
28622 END IF;
28623 --
28624 l_component_type := 'AMB_JLT';
28625 l_component_code := 'PA_RAW_COST';
28626 l_component_type_code := 'S';
28627 l_component_appl_id := 275;
28628 l_amb_context_code := 'DEFAULT';
28629 l_entity_code := 'EXPENDITURES';
28630 l_event_class_code := 'MISC_COST';
28631 l_event_type_code := 'MISC_COST_ALL';
28632 l_line_definition_owner_code := 'S';
28633 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
28634 --
28635 l_balance_type_code := 'A';
28636 l_segment := NULL;
28637 l_ccid := NULL;
28638 l_adr_transaction_coa_id := NULL;
28639 l_adr_accounting_coa_id := NULL;
28640 l_adr_flexfield_segment_code := NULL;
28641 l_adr_flex_value_set_id := NULL;
28642 l_adr_value_type_code := NULL;
28643 l_adr_value_combination_id := NULL;
28644 l_adr_value_segment_code := NULL;
28645
28646 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
28647 l_bflow_class_code := ''; -- 4219869 Business Flow
28648 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
28649 l_budgetary_control_flag := 'N';
28650
28654 l_accted_amt_idx := NULL; -- 4262811
28651 l_bflow_applied_to_amt_idx := NULL; -- 5132302
28652 l_bflow_applied_to_amt := NULL; -- 5132302
28653 l_entered_amt_idx := NULL; -- 4262811
28655 l_acc_rev_flag := NULL; -- 4262811
28656 l_accrual_line_num := NULL; -- 4262811
28657 l_tmp_amt := NULL; -- 4262811
28658 --
28659
28660 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
28661 l_balance_type_code <> 'B' THEN
28662
28663 --
28664 XLA_AE_LINES_PKG.SetNewLine;
28665
28666 p_balance_type_code := l_balance_type_code;
28667 -- set the flag so later we will know whether the gain loss line needs to be created
28668
28669 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
28670 p_actual_flag :='A';
28671 END IF;
28672
28673 --
28674 -- bulk performance
28675 --
28676 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
28677 p_header_num => 0); -- 4262811
28678 --
28679 -- set accounting line options
28680 --
28681 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
28682 p_natural_side_code => 'D'
28683 , p_gain_or_loss_flag => 'N'
28684 , p_gl_transfer_mode_code => 'S'
28685 , p_acct_entry_type_code => 'A'
28686 , p_switch_side_flag => 'Y'
28687 , p_merge_duplicate_code => 'N'
28688 );
28689 --
28690 l_acc_rev_natural_side_code := 'C'; -- 4262811
28691 --
28692 --
28693 -- set accounting line type info
28694 --
28695 xla_ae_lines_pkg.SetAcctLineType
28696 (p_component_type => l_component_type
28697 ,p_event_type_code => l_event_type_code
28698 ,p_line_definition_owner_code => l_line_definition_owner_code
28699 ,p_line_definition_code => l_line_definition_code
28700 ,p_accounting_line_code => l_component_code
28701 ,p_accounting_line_type_code => l_component_type_code
28702 ,p_accounting_line_appl_id => l_component_appl_id
28703 ,p_amb_context_code => l_amb_context_code
28704 ,p_entity_code => l_entity_code
28705 ,p_event_class_code => l_event_class_code);
28706 --
28707 -- set accounting class
28708 --
28709 xla_ae_lines_pkg.SetAcctClass(
28710 p_accounting_class_code => 'COST'
28711 , p_ae_header_id => l_ae_header_id
28712 );
28713
28714 --
28715 -- set rounding class
28716 --
28717 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
28718 'COST';
28719
28720 --
28721 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
28722 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
28723 --
28724 -- bulk performance
28725 --
28726 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
28727
28728 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
28729 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
28730
28731 -- 4955764
28732 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28733 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
28734
28735 -- 4458381 Public Sector Enh
28736
28737 --
28738 -- set accounting attributes for the line type
28739 --
28740 l_entered_amt_idx := 22;
28741 l_accted_amt_idx := 27;
28742 l_bflow_applied_to_amt_idx := NULL; -- 5132302
28743 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
28744 l_rec_acct_attrs.array_char_value(1) := p_source_23;
28745 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
28746 l_rec_acct_attrs.array_char_value(2) := p_source_24;
28747 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
28748 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
28749 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
28750 l_rec_acct_attrs.array_num_value(4) := p_source_25;
28751 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
28752 l_rec_acct_attrs.array_char_value(5) := p_source_26;
28753 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
28754 l_rec_acct_attrs.array_num_value(6) := p_source_27;
28755 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
28756 l_rec_acct_attrs.array_date_value(7) := p_source_28;
28757 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
28758 l_rec_acct_attrs.array_num_value(8) := p_source_29;
28759 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
28760 l_rec_acct_attrs.array_char_value(9) := p_source_30;
28761 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
28762 l_rec_acct_attrs.array_char_value(10) := p_source_31;
28763 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
28764 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
28765 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
28766 l_rec_acct_attrs.array_num_value(12) := p_source_25;
28767 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
28768 l_rec_acct_attrs.array_char_value(13) := p_source_26;
28769 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
28770 l_rec_acct_attrs.array_num_value(14) := p_source_27;
28771 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
28775 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
28772 l_rec_acct_attrs.array_date_value(15) := p_source_28;
28773 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
28774 l_rec_acct_attrs.array_num_value(16) := p_source_29;
28776 l_rec_acct_attrs.array_char_value(17) := p_source_30;
28777 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
28778 l_rec_acct_attrs.array_char_value(18) := p_source_32;
28779 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
28780 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
28781 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
28782 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
28783 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
28784 l_rec_acct_attrs.array_char_value(21) := p_source_35;
28785 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
28786 l_rec_acct_attrs.array_num_value(22) := p_source_25;
28787 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
28788 l_rec_acct_attrs.array_char_value(23) := p_source_26;
28789 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
28790 l_rec_acct_attrs.array_date_value(24) := p_source_28;
28791 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
28792 l_rec_acct_attrs.array_num_value(25) := p_source_29;
28793 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
28794 l_rec_acct_attrs.array_char_value(26) := p_source_30;
28795 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
28796 l_rec_acct_attrs.array_num_value(27) := p_source_27;
28797 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
28798 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
28799 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
28800 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
28801 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
28802 l_rec_acct_attrs.array_char_value(30) := p_source_35;
28803
28804 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
28805 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
28806
28807 ---------------------------------------------------------------------------------------------------------------
28808 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
28809 ---------------------------------------------------------------------------------------------------------------
28810 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
28811
28812 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28813 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28814
28815 IF xla_accounting_cache_pkg.GetValueChar
28816 (p_source_code => 'LEDGER_CATEGORY_CODE'
28817 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
28818 AND l_bflow_method_code = 'PRIOR_ENTRY'
28819 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
28820 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
28821 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
28822 )
28823 THEN
28824 xla_ae_lines_pkg.BflowUpgEntry
28825 (p_business_method_code => l_bflow_method_code
28826 ,p_business_class_code => l_bflow_class_code
28827 ,p_balance_type => l_balance_type_code);
28828 ELSE
28829 NULL;
28830 -- No business flow processing for business flow method of NONE.
28831 END IF;
28832
28833 --
28834 -- call analytical criteria
28835 --
28836
28837 --
28838 -- call description
28839 --
28840 -- No description or it is inherited.
28841 --
28842 -- call ADRs
28843 -- Bug 4922099
28844 --
28845 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28846 (NVL(l_actual_upg_option, 'N') = 'O') OR
28847 (NVL(l_enc_upg_option, 'N') = 'O')
28848 )
28849 THEN
28850 NULL;
28851 --
28852 --
28853
28854 l_ccid := AcctDerRule_12(
28855 p_application_id => p_application_id
28856 , p_ae_header_id => l_ae_header_id
28857 , p_source_4 => p_source_4
28858 , p_source_5 => p_source_5
28859 , p_source_6 => p_source_6
28860 , x_transaction_coa_id => l_adr_transaction_coa_id
28861 , x_accounting_coa_id => l_adr_accounting_coa_id
28862 , x_value_type_code => l_adr_value_type_code
28863 , p_side => 'NA'
28864 );
28865
28866 xla_ae_lines_pkg.set_ccid(
28867 p_code_combination_id => l_ccid
28868 , p_value_type_code => l_adr_value_type_code
28869 , p_transaction_coa_id => l_adr_transaction_coa_id
28870 , p_accounting_coa_id => l_adr_accounting_coa_id
28871 , p_adr_code => 'PA_COST_ACCT_RULE'
28872 , p_adr_type_code => 'S'
28873 , p_component_type => l_component_type
28874 , p_component_code => l_component_code
28875 , p_component_type_code => l_component_type_code
28876 , p_component_appl_id => l_component_appl_id
28877 , p_amb_context_code => l_amb_context_code
28878 , p_side => 'NA'
28879 );
28880
28881
28882 --
28883 --
28884 END IF;
28885 --
28886 -- Bug 4922099
28887 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
28888 (NVL(l_enc_upg_option, 'N') = 'O')
28889 ) AND
28890 (l_bflow_method_code = 'PRIOR_ENTRY')
28894 --
28891 )
28892 THEN
28893 IF
28895 1 = 2
28896 --
28897 THEN
28898 xla_accounting_err_pkg.build_message
28899 (p_appli_s_name => 'XLA'
28900 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28901 ,p_token_1 => 'LINE_NUMBER'
28902 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
28903 ,p_token_2 => 'LINE_TYPE_NAME'
28904 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
28905 l_component_type
28906 ,l_component_code
28907 ,l_component_type_code
28908 ,l_component_appl_id
28909 ,l_amb_context_code
28910 ,l_entity_code
28911 ,l_event_class_code
28912 )
28913 ,p_token_3 => 'OWNER'
28914 ,p_value_3 => xla_lookups_pkg.get_meaning(
28915 p_lookup_type => 'XLA_OWNER_TYPE'
28916 ,p_lookup_code => l_component_type_code
28917 )
28918 ,p_token_4 => 'PRODUCT_NAME'
28919 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
28920 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
28921 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
28922 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
28923 ,p_ae_header_id => NULL
28924 );
28925
28926 IF (C_LEVEL_ERROR>= g_log_level) THEN
28927 trace
28928 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28929 ,p_level => C_LEVEL_ERROR
28930 ,p_module => l_log_module);
28931 END IF;
28932 END IF;
28933 END IF;
28934 --
28935 --
28936 ------------------------------------------------------------------------------------------------
28937 -- 4219869 Business Flow
28938 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
28939 -- Prior Entry. Currently, the following code is always generated.
28940 ------------------------------------------------------------------------------------------------
28941 XLA_AE_LINES_PKG.ValidateCurrentLine;
28942
28943 ------------------------------------------------------------------------------------
28944 -- 4219869 Business Flow
28945 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
28946 ------------------------------------------------------------------------------------
28947 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28948
28949 ----------------------------------------------------------------------------------
28950 -- 4219869 Business Flow
28951 -- Update journal entry status -- Need to generate this within IF <condition>
28952 ----------------------------------------------------------------------------------
28953 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28954 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
28955 ,p_balance_type_code => l_balance_type_code
28956 );
28957
28958 -------------------------------------------------------------------------------------------
28959 -- 4262811 - Generate the Accrual Reversal lines
28960 -------------------------------------------------------------------------------------------
28961 BEGIN
28962 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
28963 (g_array_event(p_event_id).array_value_num('header_index'));
28964 IF l_acc_rev_flag IS NULL THEN
28965 l_acc_rev_flag := 'N';
28966 END IF;
28967 EXCEPTION
28968 WHEN OTHERS THEN
28969 l_acc_rev_flag := 'N';
28970 END;
28971 --
28972 IF (l_acc_rev_flag = 'Y') THEN
28973
28974 -- 4645092 ------------------------------------------------------------------------------
28975 -- To allow MPA report to determine if it should generate report process
28976 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
28977 ------------------------------------------------------------------------------------------
28978
28979 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
28980 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
28981
28982 --
28983 -- Update the line information that should be overwritten
28984 --
28985 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
28986 p_header_num => 1);
28987 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
28988
28989 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
28990
28991 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
28995 --
28992 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
28993 END IF;
28994
28996 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
28997 --
28998 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
28999 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
29000 ELSE
29001 ---------------------------------------------------------------------------------------------------
29002 -- 4262811a Switch Sign
29003 ---------------------------------------------------------------------------------------------------
29004 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
29005 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29006 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29007 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29008 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29009 -- 5132302
29010 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
29011 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29012
29013 END IF;
29014
29015 -- 4955764
29016 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29017 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
29018
29019
29020 XLA_AE_LINES_PKG.ValidateCurrentLine;
29021 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29022
29023 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29024 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
29025 ,p_balance_type_code => l_balance_type_code);
29026
29027 END IF;
29028
29029 -----------------------------------------------------------------------------------------
29030 -- 4262811 Multiperiod Accounting
29031 -----------------------------------------------------------------------------------------
29032 -- No MPA option is assigned.
29033
29034
29035 END IF;
29036 --
29037
29038 --
29039 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29040 trace
29041 (p_msg => 'END of AcctLineType_71'
29042 ,p_level => C_LEVEL_PROCEDURE
29043 ,p_module => l_log_module);
29044 END IF;
29045 --
29046 EXCEPTION
29047 WHEN xla_exceptions_pkg.application_exception THEN
29048 RAISE;
29049 WHEN OTHERS THEN
29050 xla_exceptions_pkg.raise_message
29051 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_71');
29052 END AcctLineType_71;
29053 --
29054
29055 ---------------------------------------
29056 --
29057 -- PRIVATE FUNCTION
29058 -- AcctLineType_72
29059 --
29060 ---------------------------------------
29061 PROCEDURE AcctLineType_72 (
29062 p_application_id IN NUMBER
29063 ,p_event_id IN NUMBER
29064 ,p_calculate_acctd_flag IN VARCHAR2
29065 ,p_calculate_g_l_flag IN VARCHAR2
29066 ,p_actual_flag IN OUT VARCHAR2
29067 ,p_balance_type_code OUT VARCHAR2
29068 ,p_gain_or_loss_ref OUT VARCHAR2
29069
29070 --Cost CCID
29071 , p_source_4 IN NUMBER
29072 --Allow Account Override Flag
29073 , p_source_5 IN VARCHAR2
29074 --Adjustment Cost CCID
29075 , p_source_6 IN NUMBER
29076 --Cost Clearing CCID
29077 , p_source_7 IN NUMBER
29078 --Reversing Line Flag
29079 , p_source_23 IN VARCHAR2
29080 --Actual Upgrade Credit Accounting Class
29081 , p_source_24 IN VARCHAR2
29082 --Entered Raw Cost
29083 , p_source_25 IN NUMBER
29084 --Entered Currency Code
29085 , p_source_26 IN VARCHAR2
29086 --Accounted Raw Cost
29087 , p_source_27 IN NUMBER
29088 --Exchange Rate Date
29089 , p_source_28 IN DATE
29090 --Exchange Rate
29091 , p_source_29 IN NUMBER
29092 --Exchange Rate Type
29093 , p_source_30 IN VARCHAR2
29094 --Actual Upgrade Debit Accounting Class
29095 , p_source_31 IN VARCHAR2
29096 --Use Actuals Upgrade Attributes Flag
29097 , p_source_32 IN VARCHAR2
29098 --Expenditure Item ID
29099 , p_source_33 IN NUMBER
29100 --Cost Distribution Line Number
29101 , p_source_34 IN NUMBER
29102 --Line Type
29103 , p_source_35 IN VARCHAR2
29104 , p_source_35_meaning IN VARCHAR2
29105 --Reversed Line Number
29106 , p_source_36 IN NUMBER
29107 )
29108 IS
29109
29110 l_component_type VARCHAR2(80);
29111 l_component_code VARCHAR2(30);
29112 l_component_type_code VARCHAR2(1);
29113 l_component_appl_id INTEGER;
29114 l_amb_context_code VARCHAR2(30);
29115 l_entity_code VARCHAR2(30);
29116 l_event_class_code VARCHAR2(30);
29117 l_ae_header_id NUMBER;
29118 l_event_type_code VARCHAR2(30);
29119 l_line_definition_code VARCHAR2(30);
29120 l_line_definition_owner_code VARCHAR2(1);
29121 --
29122 -- adr variables
29123 l_segment VARCHAR2(30);
29124 l_ccid NUMBER;
29125 l_adr_transaction_coa_id NUMBER;
29126 l_adr_accounting_coa_id NUMBER;
29127 l_adr_flexfield_segment_code VARCHAR2(30);
29128 l_adr_flex_value_set_id NUMBER;
29132
29129 l_adr_value_type_code VARCHAR2(30);
29130 l_adr_value_combination_id NUMBER;
29131 l_adr_value_segment_code VARCHAR2(30);
29133 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
29134 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
29135 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
29136 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
29137
29138 -- 4262811 Variables ------------------------------------------------------------------------------------------
29139 l_entered_amt_idx NUMBER;
29140 l_accted_amt_idx NUMBER;
29141 l_acc_rev_flag VARCHAR2(1);
29142 l_accrual_line_num NUMBER;
29143 l_tmp_amt NUMBER;
29144 l_acc_rev_natural_side_code VARCHAR2(1);
29145
29146 l_num_entries NUMBER;
29147 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
29148 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
29149 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
29150 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
29151 l_recog_line_1 NUMBER;
29152 l_recog_line_2 NUMBER;
29153
29154 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
29155 l_bflow_applied_to_amt NUMBER; -- 5132302
29156 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
29157
29158 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
29159
29160 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
29161 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
29162
29163 ---------------------------------------------------------------------------------------------------------------
29164
29165
29166 --
29167 -- bulk performance
29168 --
29169 l_balance_type_code VARCHAR2(1);
29170 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
29171 l_log_module VARCHAR2(240);
29172
29173 --
29174 -- Upgrade strategy
29175 --
29176 l_actual_upg_option VARCHAR2(1);
29177 l_enc_upg_option VARCHAR2(1);
29178
29179 --
29180 BEGIN
29181 --
29182 IF g_log_enabled THEN
29183 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_72';
29184 END IF;
29185 --
29186 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29187
29188 trace
29189 (p_msg => 'BEGIN of AcctLineType_72'
29190 ,p_level => C_LEVEL_PROCEDURE
29191 ,p_module => l_log_module);
29192
29193 END IF;
29194 --
29195 l_component_type := 'AMB_JLT';
29196 l_component_code := 'PA_RAW_COST_ADJ';
29197 l_component_type_code := 'S';
29198 l_component_appl_id := 275;
29199 l_amb_context_code := 'DEFAULT';
29200 l_entity_code := 'EXPENDITURES';
29201 l_event_class_code := 'MISC_COST_ADJ';
29202 l_event_type_code := 'MISC_COST_ADJ_ALL';
29203 l_line_definition_owner_code := 'S';
29204 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
29205 --
29206 l_balance_type_code := 'A';
29207 l_segment := NULL;
29208 l_ccid := NULL;
29209 l_adr_transaction_coa_id := NULL;
29210 l_adr_accounting_coa_id := NULL;
29211 l_adr_flexfield_segment_code := NULL;
29212 l_adr_flex_value_set_id := NULL;
29213 l_adr_value_type_code := NULL;
29214 l_adr_value_combination_id := NULL;
29215 l_adr_value_segment_code := NULL;
29216
29217 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
29218 l_bflow_class_code := ''; -- 4219869 Business Flow
29219 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
29220 l_budgetary_control_flag := 'N';
29221
29222 l_bflow_applied_to_amt_idx := NULL; -- 5132302
29223 l_bflow_applied_to_amt := NULL; -- 5132302
29224 l_entered_amt_idx := NULL; -- 4262811
29225 l_accted_amt_idx := NULL; -- 4262811
29226 l_acc_rev_flag := NULL; -- 4262811
29227 l_accrual_line_num := NULL; -- 4262811
29228 l_tmp_amt := NULL; -- 4262811
29229 --
29230
29231 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
29232 l_balance_type_code <> 'B' THEN
29233
29234 --
29235 XLA_AE_LINES_PKG.SetNewLine;
29236
29237 p_balance_type_code := l_balance_type_code;
29238 -- set the flag so later we will know whether the gain loss line needs to be created
29239
29240 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
29241 p_actual_flag :='A';
29242 END IF;
29243
29244 --
29245 -- bulk performance
29246 --
29247 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
29248 p_header_num => 0); -- 4262811
29249 --
29250 -- set accounting line options
29251 --
29252 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
29253 p_natural_side_code => 'D'
29254 , p_gain_or_loss_flag => 'N'
29255 , p_gl_transfer_mode_code => 'S'
29256 , p_acct_entry_type_code => 'A'
29257 , p_switch_side_flag => 'Y'
29258 , p_merge_duplicate_code => 'N'
29259 );
29260 --
29261 l_acc_rev_natural_side_code := 'C'; -- 4262811
29262 --
29263 --
29264 -- set accounting line type info
29265 --
29266 xla_ae_lines_pkg.SetAcctLineType
29267 (p_component_type => l_component_type
29271 ,p_accounting_line_code => l_component_code
29268 ,p_event_type_code => l_event_type_code
29269 ,p_line_definition_owner_code => l_line_definition_owner_code
29270 ,p_line_definition_code => l_line_definition_code
29272 ,p_accounting_line_type_code => l_component_type_code
29273 ,p_accounting_line_appl_id => l_component_appl_id
29274 ,p_amb_context_code => l_amb_context_code
29275 ,p_entity_code => l_entity_code
29276 ,p_event_class_code => l_event_class_code);
29277 --
29278 -- set accounting class
29279 --
29280 xla_ae_lines_pkg.SetAcctClass(
29281 p_accounting_class_code => 'COST'
29282 , p_ae_header_id => l_ae_header_id
29283 );
29284
29285 --
29286 -- set rounding class
29287 --
29288 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
29289 'COST';
29290
29291 --
29292 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
29293 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
29294 --
29295 -- bulk performance
29296 --
29297 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
29298
29299 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
29300 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
29301
29302 -- 4955764
29303 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29304 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
29305
29306 -- 4458381 Public Sector Enh
29307
29308 --
29309 -- set accounting attributes for the line type
29310 --
29311 l_entered_amt_idx := 22;
29312 l_accted_amt_idx := 27;
29313 l_bflow_applied_to_amt_idx := NULL; -- 5132302
29314 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
29315 l_rec_acct_attrs.array_char_value(1) := p_source_23;
29316 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
29317 l_rec_acct_attrs.array_char_value(2) := p_source_24;
29318 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
29319 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
29320 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
29321 l_rec_acct_attrs.array_num_value(4) := p_source_25;
29322 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
29323 l_rec_acct_attrs.array_char_value(5) := p_source_26;
29324 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
29325 l_rec_acct_attrs.array_num_value(6) := p_source_27;
29326 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
29327 l_rec_acct_attrs.array_date_value(7) := p_source_28;
29328 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
29329 l_rec_acct_attrs.array_num_value(8) := p_source_29;
29330 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
29331 l_rec_acct_attrs.array_char_value(9) := p_source_30;
29332 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
29333 l_rec_acct_attrs.array_char_value(10) := p_source_31;
29334 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
29335 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
29336 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
29337 l_rec_acct_attrs.array_num_value(12) := p_source_25;
29338 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
29339 l_rec_acct_attrs.array_char_value(13) := p_source_26;
29340 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
29341 l_rec_acct_attrs.array_num_value(14) := p_source_27;
29342 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
29343 l_rec_acct_attrs.array_date_value(15) := p_source_28;
29344 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
29345 l_rec_acct_attrs.array_num_value(16) := p_source_29;
29346 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
29347 l_rec_acct_attrs.array_char_value(17) := p_source_30;
29348 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
29349 l_rec_acct_attrs.array_char_value(18) := p_source_32;
29350 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
29351 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
29352 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
29353 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
29354 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
29355 l_rec_acct_attrs.array_char_value(21) := p_source_35;
29356 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
29357 l_rec_acct_attrs.array_num_value(22) := p_source_25;
29358 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
29359 l_rec_acct_attrs.array_char_value(23) := p_source_26;
29360 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
29361 l_rec_acct_attrs.array_date_value(24) := p_source_28;
29362 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
29363 l_rec_acct_attrs.array_num_value(25) := p_source_29;
29364 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
29365 l_rec_acct_attrs.array_char_value(26) := p_source_30;
29366 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
29367 l_rec_acct_attrs.array_num_value(27) := p_source_27;
29368 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
29369 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
29370 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
29374
29371 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
29372 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
29373 l_rec_acct_attrs.array_char_value(30) := p_source_35;
29375 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
29376 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
29377
29378 ---------------------------------------------------------------------------------------------------------------
29379 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
29380 ---------------------------------------------------------------------------------------------------------------
29381 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
29382
29383 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29384 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29385
29386 IF xla_accounting_cache_pkg.GetValueChar
29387 (p_source_code => 'LEDGER_CATEGORY_CODE'
29388 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
29389 AND l_bflow_method_code = 'PRIOR_ENTRY'
29390 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
29391 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
29392 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
29393 )
29394 THEN
29395 xla_ae_lines_pkg.BflowUpgEntry
29396 (p_business_method_code => l_bflow_method_code
29397 ,p_business_class_code => l_bflow_class_code
29398 ,p_balance_type => l_balance_type_code);
29399 ELSE
29400 NULL;
29401 -- No business flow processing for business flow method of NONE.
29402 END IF;
29403
29404 --
29405 -- call analytical criteria
29406 --
29407
29408 --
29409 -- call description
29410 --
29411 -- No description or it is inherited.
29412 --
29413 -- call ADRs
29414 -- Bug 4922099
29415 --
29416 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29417 (NVL(l_actual_upg_option, 'N') = 'O') OR
29418 (NVL(l_enc_upg_option, 'N') = 'O')
29419 )
29420 THEN
29421 NULL;
29422 --
29423 --
29424
29425 l_ccid := AcctDerRule_13(
29426 p_application_id => p_application_id
29427 , p_ae_header_id => l_ae_header_id
29428 , p_source_5 => p_source_5
29429 , p_source_6 => p_source_6
29430 , x_transaction_coa_id => l_adr_transaction_coa_id
29431 , x_accounting_coa_id => l_adr_accounting_coa_id
29432 , x_value_type_code => l_adr_value_type_code
29433 , p_side => 'NA'
29434 );
29435
29436 xla_ae_lines_pkg.set_ccid(
29437 p_code_combination_id => l_ccid
29438 , p_value_type_code => l_adr_value_type_code
29439 , p_transaction_coa_id => l_adr_transaction_coa_id
29440 , p_accounting_coa_id => l_adr_accounting_coa_id
29441 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
29442 , p_adr_type_code => 'S'
29443 , p_component_type => l_component_type
29444 , p_component_code => l_component_code
29445 , p_component_type_code => l_component_type_code
29446 , p_component_appl_id => l_component_appl_id
29447 , p_amb_context_code => l_amb_context_code
29448 , p_side => 'NA'
29449 );
29450
29451
29452 --
29453 --
29454 END IF;
29455 --
29456 -- Bug 4922099
29457 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
29458 (NVL(l_enc_upg_option, 'N') = 'O')
29459 ) AND
29460 (l_bflow_method_code = 'PRIOR_ENTRY')
29461 )
29462 THEN
29463 IF
29464 --
29465 1 = 2
29466 --
29467 THEN
29468 xla_accounting_err_pkg.build_message
29469 (p_appli_s_name => 'XLA'
29470 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29471 ,p_token_1 => 'LINE_NUMBER'
29472 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
29473 ,p_token_2 => 'LINE_TYPE_NAME'
29474 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
29475 l_component_type
29476 ,l_component_code
29477 ,l_component_type_code
29478 ,l_component_appl_id
29479 ,l_amb_context_code
29480 ,l_entity_code
29481 ,l_event_class_code
29482 )
29483 ,p_token_3 => 'OWNER'
29484 ,p_value_3 => xla_lookups_pkg.get_meaning(
29485 p_lookup_type => 'XLA_OWNER_TYPE'
29486 ,p_lookup_code => l_component_type_code
29487 )
29491 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
29488 ,p_token_4 => 'PRODUCT_NAME'
29489 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
29490 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
29492 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
29493 ,p_ae_header_id => NULL
29494 );
29495
29496 IF (C_LEVEL_ERROR>= g_log_level) THEN
29497 trace
29498 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29499 ,p_level => C_LEVEL_ERROR
29500 ,p_module => l_log_module);
29501 END IF;
29502 END IF;
29503 END IF;
29504 --
29505 --
29506 ------------------------------------------------------------------------------------------------
29507 -- 4219869 Business Flow
29508 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
29509 -- Prior Entry. Currently, the following code is always generated.
29510 ------------------------------------------------------------------------------------------------
29511 XLA_AE_LINES_PKG.ValidateCurrentLine;
29512
29513 ------------------------------------------------------------------------------------
29514 -- 4219869 Business Flow
29515 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
29516 ------------------------------------------------------------------------------------
29517 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29518
29519 ----------------------------------------------------------------------------------
29520 -- 4219869 Business Flow
29521 -- Update journal entry status -- Need to generate this within IF <condition>
29522 ----------------------------------------------------------------------------------
29523 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29524 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
29525 ,p_balance_type_code => l_balance_type_code
29526 );
29527
29528 -------------------------------------------------------------------------------------------
29529 -- 4262811 - Generate the Accrual Reversal lines
29530 -------------------------------------------------------------------------------------------
29531 BEGIN
29532 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
29533 (g_array_event(p_event_id).array_value_num('header_index'));
29534 IF l_acc_rev_flag IS NULL THEN
29535 l_acc_rev_flag := 'N';
29536 END IF;
29537 EXCEPTION
29538 WHEN OTHERS THEN
29539 l_acc_rev_flag := 'N';
29540 END;
29541 --
29542 IF (l_acc_rev_flag = 'Y') THEN
29543
29544 -- 4645092 ------------------------------------------------------------------------------
29545 -- To allow MPA report to determine if it should generate report process
29546 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
29547 ------------------------------------------------------------------------------------------
29548
29549 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
29550 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
29551
29552 --
29553 -- Update the line information that should be overwritten
29554 --
29555 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
29556 p_header_num => 1);
29557 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
29558
29559 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
29560
29561 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
29562 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
29563 END IF;
29564
29565 --
29566 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
29567 --
29568 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
29569 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
29570 ELSE
29571 ---------------------------------------------------------------------------------------------------
29572 -- 4262811a Switch Sign
29573 ---------------------------------------------------------------------------------------------------
29574 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
29575 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29576 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29577 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29578 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29579 -- 5132302
29580 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
29581 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29582
29583 END IF;
29584
29585 -- 4955764
29586 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29587 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
29588
29589
29590 XLA_AE_LINES_PKG.ValidateCurrentLine;
29591 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29595 ,p_balance_type_code => l_balance_type_code);
29592
29593 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29594 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
29596
29597 END IF;
29598
29599 -----------------------------------------------------------------------------------------
29600 -- 4262811 Multiperiod Accounting
29601 -----------------------------------------------------------------------------------------
29602 -- No MPA option is assigned.
29603
29604
29605 END IF;
29606 --
29607
29608 --
29609 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29610 trace
29611 (p_msg => 'END of AcctLineType_72'
29612 ,p_level => C_LEVEL_PROCEDURE
29613 ,p_module => l_log_module);
29614 END IF;
29615 --
29616 EXCEPTION
29617 WHEN xla_exceptions_pkg.application_exception THEN
29618 RAISE;
29619 WHEN OTHERS THEN
29620 xla_exceptions_pkg.raise_message
29621 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_72');
29622 END AcctLineType_72;
29623 --
29624
29625 ---------------------------------------
29626 --
29627 -- PRIVATE FUNCTION
29628 -- AcctLineType_73
29629 --
29630 ---------------------------------------
29631 PROCEDURE AcctLineType_73 (
29632 p_application_id IN NUMBER
29633 ,p_event_id IN NUMBER
29634 ,p_calculate_acctd_flag IN VARCHAR2
29635 ,p_calculate_g_l_flag IN VARCHAR2
29636 ,p_actual_flag IN OUT VARCHAR2
29637 ,p_balance_type_code OUT VARCHAR2
29638 ,p_gain_or_loss_ref OUT VARCHAR2
29639
29640 --Cost CCID
29641 , p_source_4 IN NUMBER
29642 --Allow Account Override Flag
29643 , p_source_5 IN VARCHAR2
29644 --Adjustment Cost CCID
29645 , p_source_6 IN NUMBER
29646 --Cost Clearing CCID
29647 , p_source_7 IN NUMBER
29648 --Reversing Line Flag
29649 , p_source_23 IN VARCHAR2
29650 --Actual Upgrade Credit Accounting Class
29651 , p_source_24 IN VARCHAR2
29652 --Entered Raw Cost
29653 , p_source_25 IN NUMBER
29654 --Entered Currency Code
29655 , p_source_26 IN VARCHAR2
29656 --Accounted Raw Cost
29657 , p_source_27 IN NUMBER
29658 --Exchange Rate Date
29659 , p_source_28 IN DATE
29660 --Exchange Rate
29661 , p_source_29 IN NUMBER
29662 --Exchange Rate Type
29663 , p_source_30 IN VARCHAR2
29664 --Actual Upgrade Debit Accounting Class
29665 , p_source_31 IN VARCHAR2
29666 --Use Actuals Upgrade Attributes Flag
29667 , p_source_32 IN VARCHAR2
29668 --Expenditure Item ID
29669 , p_source_33 IN NUMBER
29670 --Cost Distribution Line Number
29671 , p_source_34 IN NUMBER
29672 --Line Type
29673 , p_source_35 IN VARCHAR2
29674 , p_source_35_meaning IN VARCHAR2
29675 --Reversed Line Number
29676 , p_source_36 IN NUMBER
29677 )
29678 IS
29679
29680 l_component_type VARCHAR2(80);
29681 l_component_code VARCHAR2(30);
29682 l_component_type_code VARCHAR2(1);
29683 l_component_appl_id INTEGER;
29684 l_amb_context_code VARCHAR2(30);
29685 l_entity_code VARCHAR2(30);
29686 l_event_class_code VARCHAR2(30);
29687 l_ae_header_id NUMBER;
29688 l_event_type_code VARCHAR2(30);
29689 l_line_definition_code VARCHAR2(30);
29690 l_line_definition_owner_code VARCHAR2(1);
29691 --
29692 -- adr variables
29693 l_segment VARCHAR2(30);
29694 l_ccid NUMBER;
29695 l_adr_transaction_coa_id NUMBER;
29696 l_adr_accounting_coa_id NUMBER;
29697 l_adr_flexfield_segment_code VARCHAR2(30);
29698 l_adr_flex_value_set_id NUMBER;
29699 l_adr_value_type_code VARCHAR2(30);
29700 l_adr_value_combination_id NUMBER;
29701 l_adr_value_segment_code VARCHAR2(30);
29702
29703 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
29704 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
29705 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
29706 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
29707
29708 -- 4262811 Variables ------------------------------------------------------------------------------------------
29709 l_entered_amt_idx NUMBER;
29710 l_accted_amt_idx NUMBER;
29711 l_acc_rev_flag VARCHAR2(1);
29712 l_accrual_line_num NUMBER;
29713 l_tmp_amt NUMBER;
29714 l_acc_rev_natural_side_code VARCHAR2(1);
29715
29716 l_num_entries NUMBER;
29717 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
29718 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
29719 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
29720 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
29721 l_recog_line_1 NUMBER;
29722 l_recog_line_2 NUMBER;
29723
29724 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
29725 l_bflow_applied_to_amt NUMBER; -- 5132302
29726 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
29727
29728 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
29729
29730 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
29731 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
29732
29733 ---------------------------------------------------------------------------------------------------------------
29737 -- bulk performance
29734
29735
29736 --
29738 --
29739 l_balance_type_code VARCHAR2(1);
29740 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
29741 l_log_module VARCHAR2(240);
29742
29743 --
29744 -- Upgrade strategy
29745 --
29746 l_actual_upg_option VARCHAR2(1);
29747 l_enc_upg_option VARCHAR2(1);
29748
29749 --
29750 BEGIN
29751 --
29752 IF g_log_enabled THEN
29753 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_73';
29754 END IF;
29755 --
29756 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29757
29758 trace
29759 (p_msg => 'BEGIN of AcctLineType_73'
29760 ,p_level => C_LEVEL_PROCEDURE
29761 ,p_module => l_log_module);
29762
29763 END IF;
29764 --
29765 l_component_type := 'AMB_JLT';
29766 l_component_code := 'PA_RAW_COST_ADJ';
29767 l_component_type_code := 'S';
29768 l_component_appl_id := 275;
29769 l_amb_context_code := 'DEFAULT';
29770 l_entity_code := 'EXPENDITURES';
29771 l_event_class_code := 'LABOR_COST_ADJ';
29772 l_event_type_code := 'LABOR_COST_ADJ_ALL';
29773 l_line_definition_owner_code := 'S';
29774 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
29775 --
29776 l_balance_type_code := 'A';
29777 l_segment := NULL;
29778 l_ccid := NULL;
29779 l_adr_transaction_coa_id := NULL;
29780 l_adr_accounting_coa_id := NULL;
29781 l_adr_flexfield_segment_code := NULL;
29782 l_adr_flex_value_set_id := NULL;
29783 l_adr_value_type_code := NULL;
29784 l_adr_value_combination_id := NULL;
29785 l_adr_value_segment_code := NULL;
29786
29787 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
29788 l_bflow_class_code := ''; -- 4219869 Business Flow
29789 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
29790 l_budgetary_control_flag := 'N';
29791
29792 l_bflow_applied_to_amt_idx := NULL; -- 5132302
29793 l_bflow_applied_to_amt := NULL; -- 5132302
29794 l_entered_amt_idx := NULL; -- 4262811
29795 l_accted_amt_idx := NULL; -- 4262811
29796 l_acc_rev_flag := NULL; -- 4262811
29797 l_accrual_line_num := NULL; -- 4262811
29798 l_tmp_amt := NULL; -- 4262811
29799 --
29800
29801 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
29802 l_balance_type_code <> 'B' THEN
29803
29804 --
29805 XLA_AE_LINES_PKG.SetNewLine;
29806
29807 p_balance_type_code := l_balance_type_code;
29808 -- set the flag so later we will know whether the gain loss line needs to be created
29809
29810 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
29811 p_actual_flag :='A';
29812 END IF;
29813
29814 --
29815 -- bulk performance
29816 --
29817 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
29818 p_header_num => 0); -- 4262811
29819 --
29820 -- set accounting line options
29821 --
29822 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
29823 p_natural_side_code => 'D'
29824 , p_gain_or_loss_flag => 'N'
29825 , p_gl_transfer_mode_code => 'S'
29826 , p_acct_entry_type_code => 'A'
29827 , p_switch_side_flag => 'Y'
29828 , p_merge_duplicate_code => 'N'
29829 );
29830 --
29831 l_acc_rev_natural_side_code := 'C'; -- 4262811
29832 --
29833 --
29834 -- set accounting line type info
29835 --
29836 xla_ae_lines_pkg.SetAcctLineType
29837 (p_component_type => l_component_type
29838 ,p_event_type_code => l_event_type_code
29839 ,p_line_definition_owner_code => l_line_definition_owner_code
29840 ,p_line_definition_code => l_line_definition_code
29841 ,p_accounting_line_code => l_component_code
29842 ,p_accounting_line_type_code => l_component_type_code
29843 ,p_accounting_line_appl_id => l_component_appl_id
29844 ,p_amb_context_code => l_amb_context_code
29845 ,p_entity_code => l_entity_code
29846 ,p_event_class_code => l_event_class_code);
29847 --
29848 -- set accounting class
29849 --
29850 xla_ae_lines_pkg.SetAcctClass(
29851 p_accounting_class_code => 'COST'
29852 , p_ae_header_id => l_ae_header_id
29853 );
29854
29855 --
29856 -- set rounding class
29857 --
29858 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
29859 'COST';
29860
29861 --
29862 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
29863 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
29864 --
29865 -- bulk performance
29866 --
29867 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
29868
29869 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
29870 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
29871
29872 -- 4955764
29873 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29874 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
29875
29876 -- 4458381 Public Sector Enh
29877
29878 --
29882 l_accted_amt_idx := 27;
29879 -- set accounting attributes for the line type
29880 --
29881 l_entered_amt_idx := 22;
29883 l_bflow_applied_to_amt_idx := NULL; -- 5132302
29884 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
29885 l_rec_acct_attrs.array_char_value(1) := p_source_23;
29886 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
29887 l_rec_acct_attrs.array_char_value(2) := p_source_24;
29888 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
29889 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
29890 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
29891 l_rec_acct_attrs.array_num_value(4) := p_source_25;
29892 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
29893 l_rec_acct_attrs.array_char_value(5) := p_source_26;
29894 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
29895 l_rec_acct_attrs.array_num_value(6) := p_source_27;
29896 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
29897 l_rec_acct_attrs.array_date_value(7) := p_source_28;
29898 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
29899 l_rec_acct_attrs.array_num_value(8) := p_source_29;
29900 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
29901 l_rec_acct_attrs.array_char_value(9) := p_source_30;
29902 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
29903 l_rec_acct_attrs.array_char_value(10) := p_source_31;
29904 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
29905 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
29906 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
29907 l_rec_acct_attrs.array_num_value(12) := p_source_25;
29908 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
29909 l_rec_acct_attrs.array_char_value(13) := p_source_26;
29910 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
29911 l_rec_acct_attrs.array_num_value(14) := p_source_27;
29912 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
29913 l_rec_acct_attrs.array_date_value(15) := p_source_28;
29914 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
29915 l_rec_acct_attrs.array_num_value(16) := p_source_29;
29916 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
29917 l_rec_acct_attrs.array_char_value(17) := p_source_30;
29918 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
29919 l_rec_acct_attrs.array_char_value(18) := p_source_32;
29920 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
29921 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
29922 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
29923 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
29924 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
29925 l_rec_acct_attrs.array_char_value(21) := p_source_35;
29926 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
29927 l_rec_acct_attrs.array_num_value(22) := p_source_25;
29928 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
29929 l_rec_acct_attrs.array_char_value(23) := p_source_26;
29930 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
29931 l_rec_acct_attrs.array_date_value(24) := p_source_28;
29932 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
29933 l_rec_acct_attrs.array_num_value(25) := p_source_29;
29934 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
29935 l_rec_acct_attrs.array_char_value(26) := p_source_30;
29936 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
29937 l_rec_acct_attrs.array_num_value(27) := p_source_27;
29938 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
29939 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
29940 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
29941 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
29942 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
29943 l_rec_acct_attrs.array_char_value(30) := p_source_35;
29944
29945 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
29946 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
29947
29948 ---------------------------------------------------------------------------------------------------------------
29949 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
29950 ---------------------------------------------------------------------------------------------------------------
29951 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
29952
29953 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29954 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29955
29956 IF xla_accounting_cache_pkg.GetValueChar
29957 (p_source_code => 'LEDGER_CATEGORY_CODE'
29958 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
29959 AND l_bflow_method_code = 'PRIOR_ENTRY'
29960 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
29961 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
29962 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
29963 )
29964 THEN
29965 xla_ae_lines_pkg.BflowUpgEntry
29966 (p_business_method_code => l_bflow_method_code
29967 ,p_business_class_code => l_bflow_class_code
29968 ,p_balance_type => l_balance_type_code);
29969 ELSE
29970 NULL;
29971 -- No business flow processing for business flow method of NONE.
29972 END IF;
29973
29977
29974 --
29975 -- call analytical criteria
29976 --
29978 --
29979 -- call description
29980 --
29981 -- No description or it is inherited.
29982 --
29983 -- call ADRs
29984 -- Bug 4922099
29985 --
29986 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29987 (NVL(l_actual_upg_option, 'N') = 'O') OR
29988 (NVL(l_enc_upg_option, 'N') = 'O')
29989 )
29990 THEN
29991 NULL;
29992 --
29993 --
29994
29995 l_ccid := AcctDerRule_13(
29996 p_application_id => p_application_id
29997 , p_ae_header_id => l_ae_header_id
29998 , p_source_5 => p_source_5
29999 , p_source_6 => p_source_6
30000 , x_transaction_coa_id => l_adr_transaction_coa_id
30001 , x_accounting_coa_id => l_adr_accounting_coa_id
30002 , x_value_type_code => l_adr_value_type_code
30003 , p_side => 'NA'
30004 );
30005
30006 xla_ae_lines_pkg.set_ccid(
30007 p_code_combination_id => l_ccid
30008 , p_value_type_code => l_adr_value_type_code
30009 , p_transaction_coa_id => l_adr_transaction_coa_id
30010 , p_accounting_coa_id => l_adr_accounting_coa_id
30011 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
30012 , p_adr_type_code => 'S'
30013 , p_component_type => l_component_type
30014 , p_component_code => l_component_code
30015 , p_component_type_code => l_component_type_code
30016 , p_component_appl_id => l_component_appl_id
30017 , p_amb_context_code => l_amb_context_code
30018 , p_side => 'NA'
30019 );
30020
30021
30022 --
30023 --
30024 END IF;
30025 --
30026 -- Bug 4922099
30027 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
30028 (NVL(l_enc_upg_option, 'N') = 'O')
30029 ) AND
30030 (l_bflow_method_code = 'PRIOR_ENTRY')
30031 )
30032 THEN
30033 IF
30034 --
30035 1 = 2
30036 --
30037 THEN
30038 xla_accounting_err_pkg.build_message
30039 (p_appli_s_name => 'XLA'
30040 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30041 ,p_token_1 => 'LINE_NUMBER'
30042 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
30043 ,p_token_2 => 'LINE_TYPE_NAME'
30044 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
30045 l_component_type
30046 ,l_component_code
30047 ,l_component_type_code
30048 ,l_component_appl_id
30049 ,l_amb_context_code
30050 ,l_entity_code
30051 ,l_event_class_code
30052 )
30053 ,p_token_3 => 'OWNER'
30054 ,p_value_3 => xla_lookups_pkg.get_meaning(
30055 p_lookup_type => 'XLA_OWNER_TYPE'
30056 ,p_lookup_code => l_component_type_code
30057 )
30058 ,p_token_4 => 'PRODUCT_NAME'
30059 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
30060 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
30061 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
30062 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
30063 ,p_ae_header_id => NULL
30064 );
30065
30066 IF (C_LEVEL_ERROR>= g_log_level) THEN
30067 trace
30068 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30069 ,p_level => C_LEVEL_ERROR
30070 ,p_module => l_log_module);
30071 END IF;
30072 END IF;
30073 END IF;
30074 --
30075 --
30076 ------------------------------------------------------------------------------------------------
30077 -- 4219869 Business Flow
30078 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
30079 -- Prior Entry. Currently, the following code is always generated.
30080 ------------------------------------------------------------------------------------------------
30081 XLA_AE_LINES_PKG.ValidateCurrentLine;
30082
30083 ------------------------------------------------------------------------------------
30084 -- 4219869 Business Flow
30085 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
30086 ------------------------------------------------------------------------------------
30087 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30088
30089 ----------------------------------------------------------------------------------
30090 -- 4219869 Business Flow
30094 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
30091 -- Update journal entry status -- Need to generate this within IF <condition>
30092 ----------------------------------------------------------------------------------
30093 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30095 ,p_balance_type_code => l_balance_type_code
30096 );
30097
30098 -------------------------------------------------------------------------------------------
30099 -- 4262811 - Generate the Accrual Reversal lines
30100 -------------------------------------------------------------------------------------------
30101 BEGIN
30102 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
30103 (g_array_event(p_event_id).array_value_num('header_index'));
30104 IF l_acc_rev_flag IS NULL THEN
30105 l_acc_rev_flag := 'N';
30106 END IF;
30107 EXCEPTION
30108 WHEN OTHERS THEN
30109 l_acc_rev_flag := 'N';
30110 END;
30111 --
30112 IF (l_acc_rev_flag = 'Y') THEN
30113
30114 -- 4645092 ------------------------------------------------------------------------------
30115 -- To allow MPA report to determine if it should generate report process
30116 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
30117 ------------------------------------------------------------------------------------------
30118
30119 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
30120 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
30121
30122 --
30123 -- Update the line information that should be overwritten
30124 --
30125 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
30126 p_header_num => 1);
30127 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
30128
30129 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
30130
30131 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
30132 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
30133 END IF;
30134
30135 --
30136 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
30137 --
30138 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
30139 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
30140 ELSE
30141 ---------------------------------------------------------------------------------------------------
30142 -- 4262811a Switch Sign
30143 ---------------------------------------------------------------------------------------------------
30144 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
30145 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30146 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30147 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30148 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30149 -- 5132302
30150 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
30151 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30152
30153 END IF;
30154
30155 -- 4955764
30156 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30157 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
30158
30159
30160 XLA_AE_LINES_PKG.ValidateCurrentLine;
30161 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30162
30163 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30164 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
30165 ,p_balance_type_code => l_balance_type_code);
30166
30167 END IF;
30168
30169 -----------------------------------------------------------------------------------------
30170 -- 4262811 Multiperiod Accounting
30171 -----------------------------------------------------------------------------------------
30172 -- No MPA option is assigned.
30173
30174
30175 END IF;
30176 --
30177
30178 --
30179 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30180 trace
30181 (p_msg => 'END of AcctLineType_73'
30182 ,p_level => C_LEVEL_PROCEDURE
30183 ,p_module => l_log_module);
30184 END IF;
30185 --
30186 EXCEPTION
30187 WHEN xla_exceptions_pkg.application_exception THEN
30188 RAISE;
30189 WHEN OTHERS THEN
30190 xla_exceptions_pkg.raise_message
30191 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_73');
30192 END AcctLineType_73;
30193 --
30194
30195 ---------------------------------------
30196 --
30197 -- PRIVATE FUNCTION
30198 -- AcctLineType_74
30199 --
30200 ---------------------------------------
30201 PROCEDURE AcctLineType_74 (
30202 p_application_id IN NUMBER
30203 ,p_event_id IN NUMBER
30204 ,p_calculate_acctd_flag IN VARCHAR2
30205 ,p_calculate_g_l_flag IN VARCHAR2
30206 ,p_actual_flag IN OUT VARCHAR2
30207 ,p_balance_type_code OUT VARCHAR2
30208 ,p_gain_or_loss_ref OUT VARCHAR2
30209
30210 --Cost CCID
30211 , p_source_4 IN NUMBER
30212 --Allow Account Override Flag
30213 , p_source_5 IN VARCHAR2
30214 --Adjustment Cost CCID
30215 , p_source_6 IN NUMBER
30219 , p_source_23 IN VARCHAR2
30216 --Cost Clearing CCID
30217 , p_source_7 IN NUMBER
30218 --Reversing Line Flag
30220 --Actual Upgrade Credit Accounting Class
30221 , p_source_24 IN VARCHAR2
30222 --Entered Raw Cost
30223 , p_source_25 IN NUMBER
30224 --Entered Currency Code
30225 , p_source_26 IN VARCHAR2
30226 --Accounted Raw Cost
30227 , p_source_27 IN NUMBER
30228 --Exchange Rate Date
30229 , p_source_28 IN DATE
30230 --Exchange Rate
30231 , p_source_29 IN NUMBER
30232 --Exchange Rate Type
30233 , p_source_30 IN VARCHAR2
30234 --Actual Upgrade Debit Accounting Class
30235 , p_source_31 IN VARCHAR2
30236 --Use Actuals Upgrade Attributes Flag
30237 , p_source_32 IN VARCHAR2
30238 --Expenditure Item ID
30239 , p_source_33 IN NUMBER
30240 --Cost Distribution Line Number
30241 , p_source_34 IN NUMBER
30242 --Line Type
30243 , p_source_35 IN VARCHAR2
30244 , p_source_35_meaning IN VARCHAR2
30245 --Reversed Line Number
30246 , p_source_36 IN NUMBER
30247 )
30248 IS
30249
30250 l_component_type VARCHAR2(80);
30251 l_component_code VARCHAR2(30);
30252 l_component_type_code VARCHAR2(1);
30253 l_component_appl_id INTEGER;
30254 l_amb_context_code VARCHAR2(30);
30255 l_entity_code VARCHAR2(30);
30256 l_event_class_code VARCHAR2(30);
30257 l_ae_header_id NUMBER;
30258 l_event_type_code VARCHAR2(30);
30259 l_line_definition_code VARCHAR2(30);
30260 l_line_definition_owner_code VARCHAR2(1);
30261 --
30262 -- adr variables
30263 l_segment VARCHAR2(30);
30264 l_ccid NUMBER;
30265 l_adr_transaction_coa_id NUMBER;
30266 l_adr_accounting_coa_id NUMBER;
30267 l_adr_flexfield_segment_code VARCHAR2(30);
30268 l_adr_flex_value_set_id NUMBER;
30269 l_adr_value_type_code VARCHAR2(30);
30270 l_adr_value_combination_id NUMBER;
30271 l_adr_value_segment_code VARCHAR2(30);
30272
30273 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
30274 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
30275 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
30276 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
30277
30278 -- 4262811 Variables ------------------------------------------------------------------------------------------
30279 l_entered_amt_idx NUMBER;
30280 l_accted_amt_idx NUMBER;
30281 l_acc_rev_flag VARCHAR2(1);
30282 l_accrual_line_num NUMBER;
30283 l_tmp_amt NUMBER;
30284 l_acc_rev_natural_side_code VARCHAR2(1);
30285
30286 l_num_entries NUMBER;
30287 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
30288 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
30289 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
30290 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
30291 l_recog_line_1 NUMBER;
30292 l_recog_line_2 NUMBER;
30293
30294 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
30295 l_bflow_applied_to_amt NUMBER; -- 5132302
30296 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
30297
30298 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
30299
30300 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
30301 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
30302
30303 ---------------------------------------------------------------------------------------------------------------
30304
30305
30306 --
30307 -- bulk performance
30308 --
30309 l_balance_type_code VARCHAR2(1);
30310 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
30311 l_log_module VARCHAR2(240);
30312
30313 --
30314 -- Upgrade strategy
30315 --
30316 l_actual_upg_option VARCHAR2(1);
30317 l_enc_upg_option VARCHAR2(1);
30318
30319 --
30320 BEGIN
30321 --
30322 IF g_log_enabled THEN
30323 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_74';
30324 END IF;
30325 --
30326 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30327
30328 trace
30329 (p_msg => 'BEGIN of AcctLineType_74'
30330 ,p_level => C_LEVEL_PROCEDURE
30331 ,p_module => l_log_module);
30332
30333 END IF;
30334 --
30335 l_component_type := 'AMB_JLT';
30336 l_component_code := 'PA_RAW_COST_ADJ';
30337 l_component_type_code := 'S';
30338 l_component_appl_id := 275;
30339 l_amb_context_code := 'DEFAULT';
30340 l_entity_code := 'EXPENDITURES';
30341 l_event_class_code := 'WIP_COST_ADJ';
30342 l_event_type_code := 'WIP_COST_ADJ_ALL';
30343 l_line_definition_owner_code := 'S';
30344 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
30345 --
30346 l_balance_type_code := 'A';
30347 l_segment := NULL;
30348 l_ccid := NULL;
30349 l_adr_transaction_coa_id := NULL;
30350 l_adr_accounting_coa_id := NULL;
30351 l_adr_flexfield_segment_code := NULL;
30352 l_adr_flex_value_set_id := NULL;
30353 l_adr_value_type_code := NULL;
30354 l_adr_value_combination_id := NULL;
30355 l_adr_value_segment_code := NULL;
30356
30357 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
30361
30358 l_bflow_class_code := ''; -- 4219869 Business Flow
30359 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
30360 l_budgetary_control_flag := 'N';
30362 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30363 l_bflow_applied_to_amt := NULL; -- 5132302
30364 l_entered_amt_idx := NULL; -- 4262811
30365 l_accted_amt_idx := NULL; -- 4262811
30366 l_acc_rev_flag := NULL; -- 4262811
30367 l_accrual_line_num := NULL; -- 4262811
30368 l_tmp_amt := NULL; -- 4262811
30369 --
30370
30371 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
30372 l_balance_type_code <> 'B' THEN
30373
30374 --
30375 XLA_AE_LINES_PKG.SetNewLine;
30376
30377 p_balance_type_code := l_balance_type_code;
30378 -- set the flag so later we will know whether the gain loss line needs to be created
30379
30380 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
30381 p_actual_flag :='A';
30382 END IF;
30383
30384 --
30385 -- bulk performance
30386 --
30387 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
30388 p_header_num => 0); -- 4262811
30389 --
30390 -- set accounting line options
30391 --
30392 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
30393 p_natural_side_code => 'D'
30394 , p_gain_or_loss_flag => 'N'
30395 , p_gl_transfer_mode_code => 'S'
30396 , p_acct_entry_type_code => 'A'
30397 , p_switch_side_flag => 'Y'
30398 , p_merge_duplicate_code => 'N'
30399 );
30400 --
30401 l_acc_rev_natural_side_code := 'C'; -- 4262811
30402 --
30403 --
30404 -- set accounting line type info
30405 --
30406 xla_ae_lines_pkg.SetAcctLineType
30407 (p_component_type => l_component_type
30408 ,p_event_type_code => l_event_type_code
30409 ,p_line_definition_owner_code => l_line_definition_owner_code
30410 ,p_line_definition_code => l_line_definition_code
30411 ,p_accounting_line_code => l_component_code
30412 ,p_accounting_line_type_code => l_component_type_code
30413 ,p_accounting_line_appl_id => l_component_appl_id
30414 ,p_amb_context_code => l_amb_context_code
30415 ,p_entity_code => l_entity_code
30416 ,p_event_class_code => l_event_class_code);
30417 --
30418 -- set accounting class
30419 --
30420 xla_ae_lines_pkg.SetAcctClass(
30421 p_accounting_class_code => 'COST'
30422 , p_ae_header_id => l_ae_header_id
30423 );
30424
30425 --
30426 -- set rounding class
30427 --
30428 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
30429 'COST';
30430
30431 --
30432 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
30433 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
30434 --
30435 -- bulk performance
30436 --
30437 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
30438
30439 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
30440 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
30441
30442 -- 4955764
30443 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30444 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
30445
30446 -- 4458381 Public Sector Enh
30447
30448 --
30449 -- set accounting attributes for the line type
30450 --
30451 l_entered_amt_idx := 22;
30452 l_accted_amt_idx := 27;
30453 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30454 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
30455 l_rec_acct_attrs.array_char_value(1) := p_source_23;
30456 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
30457 l_rec_acct_attrs.array_char_value(2) := p_source_24;
30458 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
30459 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
30460 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
30461 l_rec_acct_attrs.array_num_value(4) := p_source_25;
30462 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
30463 l_rec_acct_attrs.array_char_value(5) := p_source_26;
30464 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
30465 l_rec_acct_attrs.array_num_value(6) := p_source_27;
30466 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
30467 l_rec_acct_attrs.array_date_value(7) := p_source_28;
30468 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
30469 l_rec_acct_attrs.array_num_value(8) := p_source_29;
30470 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
30471 l_rec_acct_attrs.array_char_value(9) := p_source_30;
30472 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
30473 l_rec_acct_attrs.array_char_value(10) := p_source_31;
30474 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
30475 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
30476 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
30477 l_rec_acct_attrs.array_num_value(12) := p_source_25;
30478 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
30479 l_rec_acct_attrs.array_char_value(13) := p_source_26;
30483 l_rec_acct_attrs.array_date_value(15) := p_source_28;
30480 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
30481 l_rec_acct_attrs.array_num_value(14) := p_source_27;
30482 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
30484 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
30485 l_rec_acct_attrs.array_num_value(16) := p_source_29;
30486 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
30487 l_rec_acct_attrs.array_char_value(17) := p_source_30;
30488 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
30489 l_rec_acct_attrs.array_char_value(18) := p_source_32;
30490 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
30491 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
30492 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
30493 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
30494 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
30495 l_rec_acct_attrs.array_char_value(21) := p_source_35;
30496 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
30497 l_rec_acct_attrs.array_num_value(22) := p_source_25;
30498 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
30499 l_rec_acct_attrs.array_char_value(23) := p_source_26;
30500 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
30501 l_rec_acct_attrs.array_date_value(24) := p_source_28;
30502 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
30503 l_rec_acct_attrs.array_num_value(25) := p_source_29;
30504 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
30505 l_rec_acct_attrs.array_char_value(26) := p_source_30;
30506 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
30507 l_rec_acct_attrs.array_num_value(27) := p_source_27;
30508 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
30509 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
30510 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
30511 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
30512 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
30513 l_rec_acct_attrs.array_char_value(30) := p_source_35;
30514
30515 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
30516 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
30517
30518 ---------------------------------------------------------------------------------------------------------------
30519 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
30520 ---------------------------------------------------------------------------------------------------------------
30521 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
30522
30523 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30524 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30525
30526 IF xla_accounting_cache_pkg.GetValueChar
30527 (p_source_code => 'LEDGER_CATEGORY_CODE'
30528 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
30529 AND l_bflow_method_code = 'PRIOR_ENTRY'
30530 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
30531 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
30532 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
30533 )
30534 THEN
30535 xla_ae_lines_pkg.BflowUpgEntry
30536 (p_business_method_code => l_bflow_method_code
30537 ,p_business_class_code => l_bflow_class_code
30538 ,p_balance_type => l_balance_type_code);
30539 ELSE
30540 NULL;
30541 -- No business flow processing for business flow method of NONE.
30542 END IF;
30543
30544 --
30545 -- call analytical criteria
30546 --
30547
30548 --
30549 -- call description
30550 --
30551 -- No description or it is inherited.
30552 --
30553 -- call ADRs
30554 -- Bug 4922099
30555 --
30556 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30557 (NVL(l_actual_upg_option, 'N') = 'O') OR
30558 (NVL(l_enc_upg_option, 'N') = 'O')
30559 )
30560 THEN
30561 NULL;
30562 --
30563 --
30564
30565 l_ccid := AcctDerRule_13(
30566 p_application_id => p_application_id
30567 , p_ae_header_id => l_ae_header_id
30568 , p_source_5 => p_source_5
30569 , p_source_6 => p_source_6
30570 , x_transaction_coa_id => l_adr_transaction_coa_id
30571 , x_accounting_coa_id => l_adr_accounting_coa_id
30572 , x_value_type_code => l_adr_value_type_code
30573 , p_side => 'NA'
30574 );
30575
30576 xla_ae_lines_pkg.set_ccid(
30577 p_code_combination_id => l_ccid
30578 , p_value_type_code => l_adr_value_type_code
30579 , p_transaction_coa_id => l_adr_transaction_coa_id
30580 , p_accounting_coa_id => l_adr_accounting_coa_id
30581 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
30582 , p_adr_type_code => 'S'
30583 , p_component_type => l_component_type
30584 , p_component_code => l_component_code
30585 , p_component_type_code => l_component_type_code
30586 , p_component_appl_id => l_component_appl_id
30587 , p_amb_context_code => l_amb_context_code
30588 , p_side => 'NA'
30589 );
30590
30591
30592 --
30593 --
30594 END IF;
30595 --
30596 -- Bug 4922099
30600 (l_bflow_method_code = 'PRIOR_ENTRY')
30597 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
30598 (NVL(l_enc_upg_option, 'N') = 'O')
30599 ) AND
30601 )
30602 THEN
30603 IF
30604 --
30605 1 = 2
30606 --
30607 THEN
30608 xla_accounting_err_pkg.build_message
30609 (p_appli_s_name => 'XLA'
30610 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30611 ,p_token_1 => 'LINE_NUMBER'
30612 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
30613 ,p_token_2 => 'LINE_TYPE_NAME'
30614 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
30615 l_component_type
30616 ,l_component_code
30617 ,l_component_type_code
30618 ,l_component_appl_id
30619 ,l_amb_context_code
30620 ,l_entity_code
30621 ,l_event_class_code
30622 )
30623 ,p_token_3 => 'OWNER'
30624 ,p_value_3 => xla_lookups_pkg.get_meaning(
30625 p_lookup_type => 'XLA_OWNER_TYPE'
30626 ,p_lookup_code => l_component_type_code
30627 )
30628 ,p_token_4 => 'PRODUCT_NAME'
30629 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
30630 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
30631 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
30632 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
30633 ,p_ae_header_id => NULL
30634 );
30635
30636 IF (C_LEVEL_ERROR>= g_log_level) THEN
30637 trace
30638 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30639 ,p_level => C_LEVEL_ERROR
30640 ,p_module => l_log_module);
30641 END IF;
30642 END IF;
30643 END IF;
30644 --
30645 --
30646 ------------------------------------------------------------------------------------------------
30647 -- 4219869 Business Flow
30648 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
30649 -- Prior Entry. Currently, the following code is always generated.
30650 ------------------------------------------------------------------------------------------------
30651 XLA_AE_LINES_PKG.ValidateCurrentLine;
30652
30653 ------------------------------------------------------------------------------------
30654 -- 4219869 Business Flow
30655 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
30656 ------------------------------------------------------------------------------------
30657 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30658
30659 ----------------------------------------------------------------------------------
30660 -- 4219869 Business Flow
30661 -- Update journal entry status -- Need to generate this within IF <condition>
30662 ----------------------------------------------------------------------------------
30663 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30664 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
30665 ,p_balance_type_code => l_balance_type_code
30666 );
30667
30668 -------------------------------------------------------------------------------------------
30669 -- 4262811 - Generate the Accrual Reversal lines
30670 -------------------------------------------------------------------------------------------
30671 BEGIN
30672 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
30673 (g_array_event(p_event_id).array_value_num('header_index'));
30674 IF l_acc_rev_flag IS NULL THEN
30675 l_acc_rev_flag := 'N';
30676 END IF;
30677 EXCEPTION
30678 WHEN OTHERS THEN
30679 l_acc_rev_flag := 'N';
30680 END;
30681 --
30682 IF (l_acc_rev_flag = 'Y') THEN
30683
30684 -- 4645092 ------------------------------------------------------------------------------
30685 -- To allow MPA report to determine if it should generate report process
30686 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
30687 ------------------------------------------------------------------------------------------
30688
30689 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
30690 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
30691
30692 --
30693 -- Update the line information that should be overwritten
30694 --
30695 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
30696 p_header_num => 1);
30697 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
30698
30702 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
30699 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
30700
30701 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
30703 END IF;
30704
30705 --
30706 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
30707 --
30708 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
30709 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
30710 ELSE
30711 ---------------------------------------------------------------------------------------------------
30712 -- 4262811a Switch Sign
30713 ---------------------------------------------------------------------------------------------------
30714 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
30715 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30716 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30717 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30718 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30719 -- 5132302
30720 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
30721 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30722
30723 END IF;
30724
30725 -- 4955764
30726 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30727 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
30728
30729
30730 XLA_AE_LINES_PKG.ValidateCurrentLine;
30731 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30732
30733 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30734 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
30735 ,p_balance_type_code => l_balance_type_code);
30736
30737 END IF;
30738
30739 -----------------------------------------------------------------------------------------
30740 -- 4262811 Multiperiod Accounting
30741 -----------------------------------------------------------------------------------------
30742 -- No MPA option is assigned.
30743
30744
30745 END IF;
30746 --
30747
30748 --
30749 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30750 trace
30751 (p_msg => 'END of AcctLineType_74'
30752 ,p_level => C_LEVEL_PROCEDURE
30753 ,p_module => l_log_module);
30754 END IF;
30755 --
30756 EXCEPTION
30757 WHEN xla_exceptions_pkg.application_exception THEN
30758 RAISE;
30759 WHEN OTHERS THEN
30760 xla_exceptions_pkg.raise_message
30761 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_74');
30762 END AcctLineType_74;
30763 --
30764
30765 ---------------------------------------
30766 --
30767 -- PRIVATE FUNCTION
30768 -- AcctLineType_75
30769 --
30770 ---------------------------------------
30771 PROCEDURE AcctLineType_75 (
30772 p_application_id IN NUMBER
30773 ,p_event_id IN NUMBER
30774 ,p_calculate_acctd_flag IN VARCHAR2
30775 ,p_calculate_g_l_flag IN VARCHAR2
30776 ,p_actual_flag IN OUT VARCHAR2
30777 ,p_balance_type_code OUT VARCHAR2
30778 ,p_gain_or_loss_ref OUT VARCHAR2
30779
30780 --Cost CCID
30781 , p_source_4 IN NUMBER
30782 --Allow Account Override Flag
30783 , p_source_5 IN VARCHAR2
30784 --Adjustment Cost CCID
30785 , p_source_6 IN NUMBER
30786 --Cost Clearing CCID
30787 , p_source_7 IN NUMBER
30788 --Reversing Line Flag
30789 , p_source_23 IN VARCHAR2
30790 --Actual Upgrade Credit Accounting Class
30791 , p_source_24 IN VARCHAR2
30792 --Entered Raw Cost
30793 , p_source_25 IN NUMBER
30794 --Entered Currency Code
30795 , p_source_26 IN VARCHAR2
30796 --Accounted Raw Cost
30797 , p_source_27 IN NUMBER
30798 --Exchange Rate Date
30799 , p_source_28 IN DATE
30800 --Exchange Rate
30801 , p_source_29 IN NUMBER
30802 --Exchange Rate Type
30803 , p_source_30 IN VARCHAR2
30804 --Actual Upgrade Debit Accounting Class
30805 , p_source_31 IN VARCHAR2
30806 --Use Actuals Upgrade Attributes Flag
30807 , p_source_32 IN VARCHAR2
30808 --Expenditure Item ID
30809 , p_source_33 IN NUMBER
30810 --Cost Distribution Line Number
30811 , p_source_34 IN NUMBER
30812 --Line Type
30813 , p_source_35 IN VARCHAR2
30814 , p_source_35_meaning IN VARCHAR2
30815 --Reversed Line Number
30816 , p_source_36 IN NUMBER
30817 )
30818 IS
30819
30820 l_component_type VARCHAR2(80);
30821 l_component_code VARCHAR2(30);
30822 l_component_type_code VARCHAR2(1);
30823 l_component_appl_id INTEGER;
30824 l_amb_context_code VARCHAR2(30);
30825 l_entity_code VARCHAR2(30);
30826 l_event_class_code VARCHAR2(30);
30827 l_ae_header_id NUMBER;
30828 l_event_type_code VARCHAR2(30);
30829 l_line_definition_code VARCHAR2(30);
30830 l_line_definition_owner_code VARCHAR2(1);
30831 --
30832 -- adr variables
30833 l_segment VARCHAR2(30);
30834 l_ccid NUMBER;
30838 l_adr_flex_value_set_id NUMBER;
30835 l_adr_transaction_coa_id NUMBER;
30836 l_adr_accounting_coa_id NUMBER;
30837 l_adr_flexfield_segment_code VARCHAR2(30);
30839 l_adr_value_type_code VARCHAR2(30);
30840 l_adr_value_combination_id NUMBER;
30841 l_adr_value_segment_code VARCHAR2(30);
30842
30843 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
30844 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
30845 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
30846 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
30847
30848 -- 4262811 Variables ------------------------------------------------------------------------------------------
30849 l_entered_amt_idx NUMBER;
30850 l_accted_amt_idx NUMBER;
30851 l_acc_rev_flag VARCHAR2(1);
30852 l_accrual_line_num NUMBER;
30853 l_tmp_amt NUMBER;
30854 l_acc_rev_natural_side_code VARCHAR2(1);
30855
30856 l_num_entries NUMBER;
30857 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
30858 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
30859 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
30860 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
30861 l_recog_line_1 NUMBER;
30862 l_recog_line_2 NUMBER;
30863
30864 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
30865 l_bflow_applied_to_amt NUMBER; -- 5132302
30866 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
30867
30868 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
30869
30870 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
30871 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
30872
30873 ---------------------------------------------------------------------------------------------------------------
30874
30875
30876 --
30877 -- bulk performance
30878 --
30879 l_balance_type_code VARCHAR2(1);
30880 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
30881 l_log_module VARCHAR2(240);
30882
30883 --
30884 -- Upgrade strategy
30885 --
30886 l_actual_upg_option VARCHAR2(1);
30887 l_enc_upg_option VARCHAR2(1);
30888
30889 --
30890 BEGIN
30891 --
30892 IF g_log_enabled THEN
30893 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_75';
30894 END IF;
30895 --
30896 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30897
30898 trace
30899 (p_msg => 'BEGIN of AcctLineType_75'
30900 ,p_level => C_LEVEL_PROCEDURE
30901 ,p_module => l_log_module);
30902
30903 END IF;
30904 --
30905 l_component_type := 'AMB_JLT';
30906 l_component_code := 'PA_RAW_COST_ADJ';
30907 l_component_type_code := 'S';
30908 l_component_appl_id := 275;
30909 l_amb_context_code := 'DEFAULT';
30910 l_entity_code := 'EXPENDITURES';
30911 l_event_class_code := 'INVENTORY_COST_ADJ';
30912 l_event_type_code := 'INVENTORY_COST_ADJ_ALL';
30913 l_line_definition_owner_code := 'S';
30914 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
30915 --
30916 l_balance_type_code := 'A';
30917 l_segment := NULL;
30918 l_ccid := NULL;
30919 l_adr_transaction_coa_id := NULL;
30920 l_adr_accounting_coa_id := NULL;
30921 l_adr_flexfield_segment_code := NULL;
30922 l_adr_flex_value_set_id := NULL;
30923 l_adr_value_type_code := NULL;
30924 l_adr_value_combination_id := NULL;
30925 l_adr_value_segment_code := NULL;
30926
30927 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
30928 l_bflow_class_code := ''; -- 4219869 Business Flow
30929 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
30930 l_budgetary_control_flag := 'N';
30931
30932 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30933 l_bflow_applied_to_amt := NULL; -- 5132302
30934 l_entered_amt_idx := NULL; -- 4262811
30935 l_accted_amt_idx := NULL; -- 4262811
30936 l_acc_rev_flag := NULL; -- 4262811
30937 l_accrual_line_num := NULL; -- 4262811
30938 l_tmp_amt := NULL; -- 4262811
30939 --
30940
30941 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
30942 l_balance_type_code <> 'B' THEN
30943
30944 --
30945 XLA_AE_LINES_PKG.SetNewLine;
30946
30947 p_balance_type_code := l_balance_type_code;
30948 -- set the flag so later we will know whether the gain loss line needs to be created
30949
30950 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
30951 p_actual_flag :='A';
30952 END IF;
30953
30954 --
30955 -- bulk performance
30956 --
30957 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
30958 p_header_num => 0); -- 4262811
30959 --
30960 -- set accounting line options
30961 --
30962 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
30963 p_natural_side_code => 'D'
30964 , p_gain_or_loss_flag => 'N'
30965 , p_gl_transfer_mode_code => 'S'
30966 , p_acct_entry_type_code => 'A'
30967 , p_switch_side_flag => 'Y'
30968 , p_merge_duplicate_code => 'N'
30969 );
30970 --
30971 l_acc_rev_natural_side_code := 'C'; -- 4262811
30975 --
30972 --
30973 --
30974 -- set accounting line type info
30976 xla_ae_lines_pkg.SetAcctLineType
30977 (p_component_type => l_component_type
30978 ,p_event_type_code => l_event_type_code
30979 ,p_line_definition_owner_code => l_line_definition_owner_code
30980 ,p_line_definition_code => l_line_definition_code
30981 ,p_accounting_line_code => l_component_code
30982 ,p_accounting_line_type_code => l_component_type_code
30983 ,p_accounting_line_appl_id => l_component_appl_id
30984 ,p_amb_context_code => l_amb_context_code
30985 ,p_entity_code => l_entity_code
30986 ,p_event_class_code => l_event_class_code);
30987 --
30988 -- set accounting class
30989 --
30990 xla_ae_lines_pkg.SetAcctClass(
30991 p_accounting_class_code => 'COST'
30992 , p_ae_header_id => l_ae_header_id
30993 );
30994
30995 --
30996 -- set rounding class
30997 --
30998 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
30999 'COST';
31000
31001 --
31002 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31003 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31004 --
31005 -- bulk performance
31006 --
31007 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31008
31009 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31010 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31011
31012 -- 4955764
31013 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31014 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31015
31016 -- 4458381 Public Sector Enh
31017
31018 --
31019 -- set accounting attributes for the line type
31020 --
31021 l_entered_amt_idx := 22;
31022 l_accted_amt_idx := 27;
31023 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31024 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
31025 l_rec_acct_attrs.array_char_value(1) := p_source_23;
31026 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
31027 l_rec_acct_attrs.array_char_value(2) := p_source_24;
31028 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
31029 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
31030 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
31031 l_rec_acct_attrs.array_num_value(4) := p_source_25;
31032 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
31033 l_rec_acct_attrs.array_char_value(5) := p_source_26;
31034 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
31035 l_rec_acct_attrs.array_num_value(6) := p_source_27;
31036 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
31037 l_rec_acct_attrs.array_date_value(7) := p_source_28;
31038 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
31039 l_rec_acct_attrs.array_num_value(8) := p_source_29;
31040 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
31041 l_rec_acct_attrs.array_char_value(9) := p_source_30;
31042 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
31043 l_rec_acct_attrs.array_char_value(10) := p_source_31;
31044 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
31045 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
31046 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
31047 l_rec_acct_attrs.array_num_value(12) := p_source_25;
31048 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
31049 l_rec_acct_attrs.array_char_value(13) := p_source_26;
31050 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
31051 l_rec_acct_attrs.array_num_value(14) := p_source_27;
31052 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
31053 l_rec_acct_attrs.array_date_value(15) := p_source_28;
31054 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
31055 l_rec_acct_attrs.array_num_value(16) := p_source_29;
31056 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
31057 l_rec_acct_attrs.array_char_value(17) := p_source_30;
31058 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
31059 l_rec_acct_attrs.array_char_value(18) := p_source_32;
31060 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
31061 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
31062 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
31063 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
31064 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
31065 l_rec_acct_attrs.array_char_value(21) := p_source_35;
31066 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
31067 l_rec_acct_attrs.array_num_value(22) := p_source_25;
31068 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
31069 l_rec_acct_attrs.array_char_value(23) := p_source_26;
31070 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
31071 l_rec_acct_attrs.array_date_value(24) := p_source_28;
31072 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
31073 l_rec_acct_attrs.array_num_value(25) := p_source_29;
31074 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
31075 l_rec_acct_attrs.array_char_value(26) := p_source_30;
31076 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
31077 l_rec_acct_attrs.array_num_value(27) := p_source_27;
31081 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
31078 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
31079 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
31080 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
31082 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
31083 l_rec_acct_attrs.array_char_value(30) := p_source_35;
31084
31085 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
31086 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
31087
31088 ---------------------------------------------------------------------------------------------------------------
31089 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
31090 ---------------------------------------------------------------------------------------------------------------
31091 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
31092
31093 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31094 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31095
31096 IF xla_accounting_cache_pkg.GetValueChar
31097 (p_source_code => 'LEDGER_CATEGORY_CODE'
31098 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
31099 AND l_bflow_method_code = 'PRIOR_ENTRY'
31100 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
31101 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
31102 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
31103 )
31104 THEN
31105 xla_ae_lines_pkg.BflowUpgEntry
31106 (p_business_method_code => l_bflow_method_code
31107 ,p_business_class_code => l_bflow_class_code
31108 ,p_balance_type => l_balance_type_code);
31109 ELSE
31110 NULL;
31111 -- No business flow processing for business flow method of NONE.
31112 END IF;
31113
31114 --
31115 -- call analytical criteria
31116 --
31117
31118 --
31119 -- call description
31120 --
31121 -- No description or it is inherited.
31122 --
31123 -- call ADRs
31124 -- Bug 4922099
31125 --
31126 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31127 (NVL(l_actual_upg_option, 'N') = 'O') OR
31128 (NVL(l_enc_upg_option, 'N') = 'O')
31129 )
31130 THEN
31131 NULL;
31132 --
31133 --
31134
31135 l_ccid := AcctDerRule_13(
31136 p_application_id => p_application_id
31137 , p_ae_header_id => l_ae_header_id
31138 , p_source_5 => p_source_5
31139 , p_source_6 => p_source_6
31140 , x_transaction_coa_id => l_adr_transaction_coa_id
31141 , x_accounting_coa_id => l_adr_accounting_coa_id
31142 , x_value_type_code => l_adr_value_type_code
31143 , p_side => 'NA'
31144 );
31145
31146 xla_ae_lines_pkg.set_ccid(
31147 p_code_combination_id => l_ccid
31148 , p_value_type_code => l_adr_value_type_code
31149 , p_transaction_coa_id => l_adr_transaction_coa_id
31150 , p_accounting_coa_id => l_adr_accounting_coa_id
31151 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
31152 , p_adr_type_code => 'S'
31153 , p_component_type => l_component_type
31154 , p_component_code => l_component_code
31155 , p_component_type_code => l_component_type_code
31156 , p_component_appl_id => l_component_appl_id
31157 , p_amb_context_code => l_amb_context_code
31158 , p_side => 'NA'
31159 );
31160
31161
31162 --
31163 --
31164 END IF;
31165 --
31166 -- Bug 4922099
31167 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
31168 (NVL(l_enc_upg_option, 'N') = 'O')
31169 ) AND
31170 (l_bflow_method_code = 'PRIOR_ENTRY')
31171 )
31172 THEN
31173 IF
31174 --
31175 1 = 2
31176 --
31177 THEN
31178 xla_accounting_err_pkg.build_message
31179 (p_appli_s_name => 'XLA'
31180 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31181 ,p_token_1 => 'LINE_NUMBER'
31182 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
31183 ,p_token_2 => 'LINE_TYPE_NAME'
31184 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
31185 l_component_type
31186 ,l_component_code
31187 ,l_component_type_code
31188 ,l_component_appl_id
31189 ,l_amb_context_code
31190 ,l_entity_code
31191 ,l_event_class_code
31192 )
31193 ,p_token_3 => 'OWNER'
31194 ,p_value_3 => xla_lookups_pkg.get_meaning(
31198 ,p_token_4 => 'PRODUCT_NAME'
31195 p_lookup_type => 'XLA_OWNER_TYPE'
31196 ,p_lookup_code => l_component_type_code
31197 )
31199 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
31200 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
31201 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
31202 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
31203 ,p_ae_header_id => NULL
31204 );
31205
31206 IF (C_LEVEL_ERROR>= g_log_level) THEN
31207 trace
31208 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31209 ,p_level => C_LEVEL_ERROR
31210 ,p_module => l_log_module);
31211 END IF;
31212 END IF;
31213 END IF;
31214 --
31215 --
31216 ------------------------------------------------------------------------------------------------
31217 -- 4219869 Business Flow
31218 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
31219 -- Prior Entry. Currently, the following code is always generated.
31220 ------------------------------------------------------------------------------------------------
31221 XLA_AE_LINES_PKG.ValidateCurrentLine;
31222
31223 ------------------------------------------------------------------------------------
31224 -- 4219869 Business Flow
31225 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
31226 ------------------------------------------------------------------------------------
31227 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31228
31229 ----------------------------------------------------------------------------------
31230 -- 4219869 Business Flow
31231 -- Update journal entry status -- Need to generate this within IF <condition>
31232 ----------------------------------------------------------------------------------
31233 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31234 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
31235 ,p_balance_type_code => l_balance_type_code
31236 );
31237
31238 -------------------------------------------------------------------------------------------
31239 -- 4262811 - Generate the Accrual Reversal lines
31240 -------------------------------------------------------------------------------------------
31241 BEGIN
31242 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
31243 (g_array_event(p_event_id).array_value_num('header_index'));
31244 IF l_acc_rev_flag IS NULL THEN
31245 l_acc_rev_flag := 'N';
31246 END IF;
31247 EXCEPTION
31248 WHEN OTHERS THEN
31249 l_acc_rev_flag := 'N';
31250 END;
31251 --
31252 IF (l_acc_rev_flag = 'Y') THEN
31253
31254 -- 4645092 ------------------------------------------------------------------------------
31255 -- To allow MPA report to determine if it should generate report process
31256 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
31257 ------------------------------------------------------------------------------------------
31258
31259 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
31260 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
31261
31262 --
31263 -- Update the line information that should be overwritten
31264 --
31265 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
31266 p_header_num => 1);
31267 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
31268
31269 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
31270
31271 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
31272 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
31273 END IF;
31274
31275 --
31276 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
31277 --
31278 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
31279 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
31280 ELSE
31281 ---------------------------------------------------------------------------------------------------
31282 -- 4262811a Switch Sign
31283 ---------------------------------------------------------------------------------------------------
31284 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
31285 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31286 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31287 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31288 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31289 -- 5132302
31290 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
31291 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31292
31293 END IF;
31294
31295 -- 4955764
31299
31296 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31297 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
31298
31300 XLA_AE_LINES_PKG.ValidateCurrentLine;
31301 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31302
31303 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31304 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
31305 ,p_balance_type_code => l_balance_type_code);
31306
31307 END IF;
31308
31309 -----------------------------------------------------------------------------------------
31310 -- 4262811 Multiperiod Accounting
31311 -----------------------------------------------------------------------------------------
31312 -- No MPA option is assigned.
31313
31314
31315 END IF;
31316 --
31317
31318 --
31319 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31320 trace
31321 (p_msg => 'END of AcctLineType_75'
31322 ,p_level => C_LEVEL_PROCEDURE
31323 ,p_module => l_log_module);
31324 END IF;
31325 --
31326 EXCEPTION
31327 WHEN xla_exceptions_pkg.application_exception THEN
31328 RAISE;
31329 WHEN OTHERS THEN
31330 xla_exceptions_pkg.raise_message
31331 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_75');
31332 END AcctLineType_75;
31333 --
31334
31335 ---------------------------------------
31336 --
31337 -- PRIVATE FUNCTION
31338 -- AcctLineType_76
31339 --
31340 ---------------------------------------
31341 PROCEDURE AcctLineType_76 (
31342 p_application_id IN NUMBER
31343 ,p_event_id IN NUMBER
31344 ,p_calculate_acctd_flag IN VARCHAR2
31345 ,p_calculate_g_l_flag IN VARCHAR2
31346 ,p_actual_flag IN OUT VARCHAR2
31347 ,p_balance_type_code OUT VARCHAR2
31348 ,p_gain_or_loss_ref OUT VARCHAR2
31349
31350 --Cost CCID
31351 , p_source_4 IN NUMBER
31352 --Allow Account Override Flag
31353 , p_source_5 IN VARCHAR2
31354 --Adjustment Cost CCID
31355 , p_source_6 IN NUMBER
31356 --Cost Clearing CCID
31357 , p_source_7 IN NUMBER
31358 --Reversing Line Flag
31359 , p_source_23 IN VARCHAR2
31360 --Actual Upgrade Credit Accounting Class
31361 , p_source_24 IN VARCHAR2
31362 --Entered Raw Cost
31363 , p_source_25 IN NUMBER
31364 --Entered Currency Code
31365 , p_source_26 IN VARCHAR2
31366 --Accounted Raw Cost
31367 , p_source_27 IN NUMBER
31368 --Exchange Rate Date
31369 , p_source_28 IN DATE
31370 --Exchange Rate
31371 , p_source_29 IN NUMBER
31372 --Exchange Rate Type
31373 , p_source_30 IN VARCHAR2
31374 --Actual Upgrade Debit Accounting Class
31375 , p_source_31 IN VARCHAR2
31376 --Use Actuals Upgrade Attributes Flag
31377 , p_source_32 IN VARCHAR2
31378 --Expenditure Item ID
31379 , p_source_33 IN NUMBER
31380 --Cost Distribution Line Number
31381 , p_source_34 IN NUMBER
31382 --Line Type
31383 , p_source_35 IN VARCHAR2
31384 , p_source_35_meaning IN VARCHAR2
31385 --Reversed Line Number
31386 , p_source_36 IN NUMBER
31387 )
31388 IS
31389
31390 l_component_type VARCHAR2(80);
31391 l_component_code VARCHAR2(30);
31392 l_component_type_code VARCHAR2(1);
31393 l_component_appl_id INTEGER;
31394 l_amb_context_code VARCHAR2(30);
31395 l_entity_code VARCHAR2(30);
31396 l_event_class_code VARCHAR2(30);
31397 l_ae_header_id NUMBER;
31398 l_event_type_code VARCHAR2(30);
31399 l_line_definition_code VARCHAR2(30);
31400 l_line_definition_owner_code VARCHAR2(1);
31401 --
31402 -- adr variables
31403 l_segment VARCHAR2(30);
31404 l_ccid NUMBER;
31405 l_adr_transaction_coa_id NUMBER;
31406 l_adr_accounting_coa_id NUMBER;
31407 l_adr_flexfield_segment_code VARCHAR2(30);
31408 l_adr_flex_value_set_id NUMBER;
31409 l_adr_value_type_code VARCHAR2(30);
31410 l_adr_value_combination_id NUMBER;
31411 l_adr_value_segment_code VARCHAR2(30);
31412
31413 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
31414 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
31415 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
31416 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
31417
31418 -- 4262811 Variables ------------------------------------------------------------------------------------------
31419 l_entered_amt_idx NUMBER;
31420 l_accted_amt_idx NUMBER;
31421 l_acc_rev_flag VARCHAR2(1);
31422 l_accrual_line_num NUMBER;
31423 l_tmp_amt NUMBER;
31424 l_acc_rev_natural_side_code VARCHAR2(1);
31425
31426 l_num_entries NUMBER;
31427 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
31428 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
31429 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
31430 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
31431 l_recog_line_1 NUMBER;
31432 l_recog_line_2 NUMBER;
31433
31434 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
31435 l_bflow_applied_to_amt NUMBER; -- 5132302
31436 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
31437
31441 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
31438 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
31439
31440 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
31442
31443 ---------------------------------------------------------------------------------------------------------------
31444
31445
31446 --
31447 -- bulk performance
31448 --
31449 l_balance_type_code VARCHAR2(1);
31450 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
31451 l_log_module VARCHAR2(240);
31452
31453 --
31454 -- Upgrade strategy
31455 --
31456 l_actual_upg_option VARCHAR2(1);
31457 l_enc_upg_option VARCHAR2(1);
31458
31459 --
31460 BEGIN
31461 --
31462 IF g_log_enabled THEN
31463 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_76';
31464 END IF;
31465 --
31466 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31467
31468 trace
31469 (p_msg => 'BEGIN of AcctLineType_76'
31470 ,p_level => C_LEVEL_PROCEDURE
31471 ,p_module => l_log_module);
31472
31473 END IF;
31474 --
31475 l_component_type := 'AMB_JLT';
31476 l_component_code := 'PA_RAW_COST_ADJ';
31477 l_component_type_code := 'S';
31478 l_component_appl_id := 275;
31479 l_amb_context_code := 'DEFAULT';
31480 l_entity_code := 'EXPENDITURES';
31481 l_event_class_code := 'USG_COST_ADJ';
31482 l_event_type_code := 'USG_COST_ADJ_ALL';
31483 l_line_definition_owner_code := 'S';
31484 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
31485 --
31486 l_balance_type_code := 'A';
31487 l_segment := NULL;
31488 l_ccid := NULL;
31489 l_adr_transaction_coa_id := NULL;
31490 l_adr_accounting_coa_id := NULL;
31491 l_adr_flexfield_segment_code := NULL;
31492 l_adr_flex_value_set_id := NULL;
31493 l_adr_value_type_code := NULL;
31494 l_adr_value_combination_id := NULL;
31495 l_adr_value_segment_code := NULL;
31496
31497 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
31498 l_bflow_class_code := ''; -- 4219869 Business Flow
31499 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
31500 l_budgetary_control_flag := 'N';
31501
31502 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31503 l_bflow_applied_to_amt := NULL; -- 5132302
31504 l_entered_amt_idx := NULL; -- 4262811
31505 l_accted_amt_idx := NULL; -- 4262811
31506 l_acc_rev_flag := NULL; -- 4262811
31507 l_accrual_line_num := NULL; -- 4262811
31508 l_tmp_amt := NULL; -- 4262811
31509 --
31510
31511 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
31512 l_balance_type_code <> 'B' THEN
31513
31514 --
31515 XLA_AE_LINES_PKG.SetNewLine;
31516
31517 p_balance_type_code := l_balance_type_code;
31518 -- set the flag so later we will know whether the gain loss line needs to be created
31519
31520 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
31521 p_actual_flag :='A';
31522 END IF;
31523
31524 --
31525 -- bulk performance
31526 --
31527 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
31528 p_header_num => 0); -- 4262811
31529 --
31530 -- set accounting line options
31531 --
31532 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
31533 p_natural_side_code => 'D'
31534 , p_gain_or_loss_flag => 'N'
31535 , p_gl_transfer_mode_code => 'S'
31536 , p_acct_entry_type_code => 'A'
31537 , p_switch_side_flag => 'Y'
31538 , p_merge_duplicate_code => 'N'
31539 );
31540 --
31541 l_acc_rev_natural_side_code := 'C'; -- 4262811
31542 --
31543 --
31544 -- set accounting line type info
31545 --
31546 xla_ae_lines_pkg.SetAcctLineType
31547 (p_component_type => l_component_type
31548 ,p_event_type_code => l_event_type_code
31549 ,p_line_definition_owner_code => l_line_definition_owner_code
31550 ,p_line_definition_code => l_line_definition_code
31551 ,p_accounting_line_code => l_component_code
31552 ,p_accounting_line_type_code => l_component_type_code
31553 ,p_accounting_line_appl_id => l_component_appl_id
31554 ,p_amb_context_code => l_amb_context_code
31555 ,p_entity_code => l_entity_code
31556 ,p_event_class_code => l_event_class_code);
31557 --
31558 -- set accounting class
31559 --
31560 xla_ae_lines_pkg.SetAcctClass(
31561 p_accounting_class_code => 'COST'
31562 , p_ae_header_id => l_ae_header_id
31563 );
31564
31565 --
31566 -- set rounding class
31567 --
31568 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
31569 'COST';
31570
31571 --
31572 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31573 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31574 --
31575 -- bulk performance
31576 --
31577 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31578
31579 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31583 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31580 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31581
31582 -- 4955764
31584 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31585
31586 -- 4458381 Public Sector Enh
31587
31588 --
31589 -- set accounting attributes for the line type
31590 --
31591 l_entered_amt_idx := 22;
31592 l_accted_amt_idx := 27;
31593 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31594 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
31595 l_rec_acct_attrs.array_char_value(1) := p_source_23;
31596 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
31597 l_rec_acct_attrs.array_char_value(2) := p_source_24;
31598 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
31599 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
31600 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
31601 l_rec_acct_attrs.array_num_value(4) := p_source_25;
31602 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
31603 l_rec_acct_attrs.array_char_value(5) := p_source_26;
31604 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
31605 l_rec_acct_attrs.array_num_value(6) := p_source_27;
31606 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
31607 l_rec_acct_attrs.array_date_value(7) := p_source_28;
31608 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
31609 l_rec_acct_attrs.array_num_value(8) := p_source_29;
31610 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
31611 l_rec_acct_attrs.array_char_value(9) := p_source_30;
31612 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
31613 l_rec_acct_attrs.array_char_value(10) := p_source_31;
31614 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
31615 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
31616 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
31617 l_rec_acct_attrs.array_num_value(12) := p_source_25;
31618 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
31619 l_rec_acct_attrs.array_char_value(13) := p_source_26;
31620 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
31621 l_rec_acct_attrs.array_num_value(14) := p_source_27;
31622 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
31623 l_rec_acct_attrs.array_date_value(15) := p_source_28;
31624 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
31625 l_rec_acct_attrs.array_num_value(16) := p_source_29;
31626 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
31627 l_rec_acct_attrs.array_char_value(17) := p_source_30;
31628 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
31629 l_rec_acct_attrs.array_char_value(18) := p_source_32;
31630 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
31631 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
31632 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
31633 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
31634 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
31635 l_rec_acct_attrs.array_char_value(21) := p_source_35;
31636 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
31637 l_rec_acct_attrs.array_num_value(22) := p_source_25;
31638 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
31639 l_rec_acct_attrs.array_char_value(23) := p_source_26;
31640 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
31641 l_rec_acct_attrs.array_date_value(24) := p_source_28;
31642 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
31643 l_rec_acct_attrs.array_num_value(25) := p_source_29;
31644 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
31645 l_rec_acct_attrs.array_char_value(26) := p_source_30;
31646 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
31647 l_rec_acct_attrs.array_num_value(27) := p_source_27;
31648 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
31649 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
31650 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
31651 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
31652 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
31653 l_rec_acct_attrs.array_char_value(30) := p_source_35;
31654
31655 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
31656 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
31657
31658 ---------------------------------------------------------------------------------------------------------------
31659 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
31660 ---------------------------------------------------------------------------------------------------------------
31661 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
31662
31663 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31664 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31665
31666 IF xla_accounting_cache_pkg.GetValueChar
31667 (p_source_code => 'LEDGER_CATEGORY_CODE'
31668 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
31669 AND l_bflow_method_code = 'PRIOR_ENTRY'
31670 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
31671 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
31672 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
31673 )
31674 THEN
31678 ,p_balance_type => l_balance_type_code);
31675 xla_ae_lines_pkg.BflowUpgEntry
31676 (p_business_method_code => l_bflow_method_code
31677 ,p_business_class_code => l_bflow_class_code
31679 ELSE
31680 NULL;
31681 -- No business flow processing for business flow method of NONE.
31682 END IF;
31683
31684 --
31685 -- call analytical criteria
31686 --
31687
31688 --
31689 -- call description
31690 --
31691 -- No description or it is inherited.
31692 --
31693 -- call ADRs
31694 -- Bug 4922099
31695 --
31696 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31697 (NVL(l_actual_upg_option, 'N') = 'O') OR
31698 (NVL(l_enc_upg_option, 'N') = 'O')
31699 )
31700 THEN
31701 NULL;
31702 --
31703 --
31704
31705 l_ccid := AcctDerRule_13(
31706 p_application_id => p_application_id
31707 , p_ae_header_id => l_ae_header_id
31708 , p_source_5 => p_source_5
31709 , p_source_6 => p_source_6
31710 , x_transaction_coa_id => l_adr_transaction_coa_id
31711 , x_accounting_coa_id => l_adr_accounting_coa_id
31712 , x_value_type_code => l_adr_value_type_code
31713 , p_side => 'NA'
31714 );
31715
31716 xla_ae_lines_pkg.set_ccid(
31717 p_code_combination_id => l_ccid
31718 , p_value_type_code => l_adr_value_type_code
31719 , p_transaction_coa_id => l_adr_transaction_coa_id
31720 , p_accounting_coa_id => l_adr_accounting_coa_id
31721 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
31722 , p_adr_type_code => 'S'
31723 , p_component_type => l_component_type
31724 , p_component_code => l_component_code
31725 , p_component_type_code => l_component_type_code
31726 , p_component_appl_id => l_component_appl_id
31727 , p_amb_context_code => l_amb_context_code
31728 , p_side => 'NA'
31729 );
31730
31731
31732 --
31733 --
31734 END IF;
31735 --
31736 -- Bug 4922099
31737 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
31738 (NVL(l_enc_upg_option, 'N') = 'O')
31739 ) AND
31740 (l_bflow_method_code = 'PRIOR_ENTRY')
31741 )
31742 THEN
31743 IF
31744 --
31745 1 = 2
31746 --
31747 THEN
31748 xla_accounting_err_pkg.build_message
31749 (p_appli_s_name => 'XLA'
31750 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31751 ,p_token_1 => 'LINE_NUMBER'
31752 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
31753 ,p_token_2 => 'LINE_TYPE_NAME'
31754 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
31755 l_component_type
31756 ,l_component_code
31757 ,l_component_type_code
31758 ,l_component_appl_id
31759 ,l_amb_context_code
31760 ,l_entity_code
31761 ,l_event_class_code
31762 )
31763 ,p_token_3 => 'OWNER'
31764 ,p_value_3 => xla_lookups_pkg.get_meaning(
31765 p_lookup_type => 'XLA_OWNER_TYPE'
31766 ,p_lookup_code => l_component_type_code
31767 )
31768 ,p_token_4 => 'PRODUCT_NAME'
31769 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
31770 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
31771 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
31772 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
31773 ,p_ae_header_id => NULL
31774 );
31775
31776 IF (C_LEVEL_ERROR>= g_log_level) THEN
31777 trace
31778 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31779 ,p_level => C_LEVEL_ERROR
31780 ,p_module => l_log_module);
31781 END IF;
31782 END IF;
31783 END IF;
31784 --
31785 --
31786 ------------------------------------------------------------------------------------------------
31787 -- 4219869 Business Flow
31788 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
31789 -- Prior Entry. Currently, the following code is always generated.
31790 ------------------------------------------------------------------------------------------------
31791 XLA_AE_LINES_PKG.ValidateCurrentLine;
31792
31793 ------------------------------------------------------------------------------------
31797 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31794 -- 4219869 Business Flow
31795 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
31796 ------------------------------------------------------------------------------------
31798
31799 ----------------------------------------------------------------------------------
31800 -- 4219869 Business Flow
31801 -- Update journal entry status -- Need to generate this within IF <condition>
31802 ----------------------------------------------------------------------------------
31803 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31804 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
31805 ,p_balance_type_code => l_balance_type_code
31806 );
31807
31808 -------------------------------------------------------------------------------------------
31809 -- 4262811 - Generate the Accrual Reversal lines
31810 -------------------------------------------------------------------------------------------
31811 BEGIN
31812 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
31813 (g_array_event(p_event_id).array_value_num('header_index'));
31814 IF l_acc_rev_flag IS NULL THEN
31815 l_acc_rev_flag := 'N';
31816 END IF;
31817 EXCEPTION
31818 WHEN OTHERS THEN
31819 l_acc_rev_flag := 'N';
31820 END;
31821 --
31822 IF (l_acc_rev_flag = 'Y') THEN
31823
31824 -- 4645092 ------------------------------------------------------------------------------
31825 -- To allow MPA report to determine if it should generate report process
31826 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
31827 ------------------------------------------------------------------------------------------
31828
31829 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
31830 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
31831
31832 --
31833 -- Update the line information that should be overwritten
31834 --
31835 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
31836 p_header_num => 1);
31837 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
31838
31839 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
31840
31841 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
31842 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
31843 END IF;
31844
31845 --
31846 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
31847 --
31848 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
31849 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
31850 ELSE
31851 ---------------------------------------------------------------------------------------------------
31852 -- 4262811a Switch Sign
31853 ---------------------------------------------------------------------------------------------------
31854 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
31855 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31856 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31857 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31858 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31859 -- 5132302
31860 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
31861 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31862
31863 END IF;
31864
31865 -- 4955764
31866 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31867 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
31868
31869
31870 XLA_AE_LINES_PKG.ValidateCurrentLine;
31871 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31872
31873 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31874 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
31875 ,p_balance_type_code => l_balance_type_code);
31876
31877 END IF;
31878
31879 -----------------------------------------------------------------------------------------
31880 -- 4262811 Multiperiod Accounting
31881 -----------------------------------------------------------------------------------------
31882 -- No MPA option is assigned.
31883
31884
31885 END IF;
31886 --
31887
31888 --
31889 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31890 trace
31891 (p_msg => 'END of AcctLineType_76'
31892 ,p_level => C_LEVEL_PROCEDURE
31893 ,p_module => l_log_module);
31894 END IF;
31895 --
31896 EXCEPTION
31897 WHEN xla_exceptions_pkg.application_exception THEN
31898 RAISE;
31899 WHEN OTHERS THEN
31900 xla_exceptions_pkg.raise_message
31901 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_76');
31902 END AcctLineType_76;
31903 --
31904
31905 ---------------------------------------
31906 --
31907 -- PRIVATE FUNCTION
31908 -- AcctLineType_77
31909 --
31910 ---------------------------------------
31911 PROCEDURE AcctLineType_77 (
31912 p_application_id IN NUMBER
31913 ,p_event_id IN NUMBER
31914 ,p_calculate_acctd_flag IN VARCHAR2
31918 ,p_gain_or_loss_ref OUT VARCHAR2
31915 ,p_calculate_g_l_flag IN VARCHAR2
31916 ,p_actual_flag IN OUT VARCHAR2
31917 ,p_balance_type_code OUT VARCHAR2
31919
31920 --Cost CCID
31921 , p_source_4 IN NUMBER
31922 --Allow Account Override Flag
31923 , p_source_5 IN VARCHAR2
31924 --Adjustment Cost CCID
31925 , p_source_6 IN NUMBER
31926 --Cost Clearing CCID
31927 , p_source_7 IN NUMBER
31928 --Exchange Rate Variance Flag
31929 , p_source_22 IN VARCHAR2
31930 --Reversing Line Flag
31931 , p_source_23 IN VARCHAR2
31932 --Actual Upgrade Credit Accounting Class
31933 , p_source_24 IN VARCHAR2
31934 --Entered Raw Cost
31935 , p_source_25 IN NUMBER
31936 --Entered Currency Code
31937 , p_source_26 IN VARCHAR2
31938 --Accounted Raw Cost
31939 , p_source_27 IN NUMBER
31940 --Exchange Rate Date
31941 , p_source_28 IN DATE
31942 --Exchange Rate
31943 , p_source_29 IN NUMBER
31944 --Exchange Rate Type
31945 , p_source_30 IN VARCHAR2
31946 --Actual Upgrade Debit Accounting Class
31947 , p_source_31 IN VARCHAR2
31948 --Use Actuals Upgrade Attributes Flag
31949 , p_source_32 IN VARCHAR2
31950 --Expenditure Item ID
31951 , p_source_33 IN NUMBER
31952 --Cost Distribution Line Number
31953 , p_source_34 IN NUMBER
31954 --Line Type
31955 , p_source_35 IN VARCHAR2
31956 , p_source_35_meaning IN VARCHAR2
31957 --Reversed Line Number
31958 , p_source_36 IN NUMBER
31959 )
31960 IS
31961
31962 l_component_type VARCHAR2(80);
31963 l_component_code VARCHAR2(30);
31964 l_component_type_code VARCHAR2(1);
31965 l_component_appl_id INTEGER;
31966 l_amb_context_code VARCHAR2(30);
31967 l_entity_code VARCHAR2(30);
31968 l_event_class_code VARCHAR2(30);
31969 l_ae_header_id NUMBER;
31970 l_event_type_code VARCHAR2(30);
31971 l_line_definition_code VARCHAR2(30);
31972 l_line_definition_owner_code VARCHAR2(1);
31973 --
31974 -- adr variables
31975 l_segment VARCHAR2(30);
31976 l_ccid NUMBER;
31977 l_adr_transaction_coa_id NUMBER;
31978 l_adr_accounting_coa_id NUMBER;
31979 l_adr_flexfield_segment_code VARCHAR2(30);
31980 l_adr_flex_value_set_id NUMBER;
31981 l_adr_value_type_code VARCHAR2(30);
31982 l_adr_value_combination_id NUMBER;
31983 l_adr_value_segment_code VARCHAR2(30);
31984
31985 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
31986 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
31987 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
31988 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
31989
31990 -- 4262811 Variables ------------------------------------------------------------------------------------------
31991 l_entered_amt_idx NUMBER;
31992 l_accted_amt_idx NUMBER;
31993 l_acc_rev_flag VARCHAR2(1);
31994 l_accrual_line_num NUMBER;
31995 l_tmp_amt NUMBER;
31996 l_acc_rev_natural_side_code VARCHAR2(1);
31997
31998 l_num_entries NUMBER;
31999 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
32000 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
32001 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
32002 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
32003 l_recog_line_1 NUMBER;
32004 l_recog_line_2 NUMBER;
32005
32006 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
32007 l_bflow_applied_to_amt NUMBER; -- 5132302
32008 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
32009
32010 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
32011
32012 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
32013 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
32014
32015 ---------------------------------------------------------------------------------------------------------------
32016
32017
32018 --
32019 -- bulk performance
32020 --
32021 l_balance_type_code VARCHAR2(1);
32022 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
32023 l_log_module VARCHAR2(240);
32024
32025 --
32026 -- Upgrade strategy
32027 --
32028 l_actual_upg_option VARCHAR2(1);
32029 l_enc_upg_option VARCHAR2(1);
32030
32031 --
32032 BEGIN
32033 --
32034 IF g_log_enabled THEN
32035 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_77';
32036 END IF;
32037 --
32038 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32039
32040 trace
32041 (p_msg => 'BEGIN of AcctLineType_77'
32042 ,p_level => C_LEVEL_PROCEDURE
32043 ,p_module => l_log_module);
32044
32045 END IF;
32046 --
32047 l_component_type := 'AMB_JLT';
32048 l_component_code := 'PA_RAW_COST_ADJ';
32049 l_component_type_code := 'S';
32050 l_component_appl_id := 275;
32051 l_amb_context_code := 'DEFAULT';
32052 l_entity_code := 'EXPENDITURES';
32053 l_event_class_code := 'SUPPLIER_COST_ADJ';
32054 l_event_type_code := 'SUPPLIER_COST_ADJ_ALL';
32055 l_line_definition_owner_code := 'S';
32056 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
32057 --
32058 l_balance_type_code := 'A';
32062 l_adr_accounting_coa_id := NULL;
32059 l_segment := NULL;
32060 l_ccid := NULL;
32061 l_adr_transaction_coa_id := NULL;
32063 l_adr_flexfield_segment_code := NULL;
32064 l_adr_flex_value_set_id := NULL;
32065 l_adr_value_type_code := NULL;
32066 l_adr_value_combination_id := NULL;
32067 l_adr_value_segment_code := NULL;
32068
32069 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
32070 l_bflow_class_code := ''; -- 4219869 Business Flow
32071 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
32072 l_budgetary_control_flag := 'N';
32073
32074 l_bflow_applied_to_amt_idx := NULL; -- 5132302
32075 l_bflow_applied_to_amt := NULL; -- 5132302
32076 l_entered_amt_idx := NULL; -- 4262811
32077 l_accted_amt_idx := NULL; -- 4262811
32078 l_acc_rev_flag := NULL; -- 4262811
32079 l_accrual_line_num := NULL; -- 4262811
32080 l_tmp_amt := NULL; -- 4262811
32081 --
32082
32083 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
32084 l_balance_type_code <> 'B' THEN
32085 IF NVL(p_source_22,'
32086 ') = 'N'
32087 THEN
32088
32089 --
32090 XLA_AE_LINES_PKG.SetNewLine;
32091
32092 p_balance_type_code := l_balance_type_code;
32093 -- set the flag so later we will know whether the gain loss line needs to be created
32094
32095 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
32096 p_actual_flag :='A';
32097 END IF;
32098
32099 --
32100 -- bulk performance
32101 --
32102 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
32103 p_header_num => 0); -- 4262811
32104 --
32105 -- set accounting line options
32106 --
32107 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
32108 p_natural_side_code => 'D'
32109 , p_gain_or_loss_flag => 'N'
32110 , p_gl_transfer_mode_code => 'S'
32111 , p_acct_entry_type_code => 'A'
32112 , p_switch_side_flag => 'Y'
32113 , p_merge_duplicate_code => 'N'
32114 );
32115 --
32116 l_acc_rev_natural_side_code := 'C'; -- 4262811
32117 --
32118 --
32119 -- set accounting line type info
32120 --
32121 xla_ae_lines_pkg.SetAcctLineType
32122 (p_component_type => l_component_type
32123 ,p_event_type_code => l_event_type_code
32124 ,p_line_definition_owner_code => l_line_definition_owner_code
32125 ,p_line_definition_code => l_line_definition_code
32126 ,p_accounting_line_code => l_component_code
32127 ,p_accounting_line_type_code => l_component_type_code
32128 ,p_accounting_line_appl_id => l_component_appl_id
32129 ,p_amb_context_code => l_amb_context_code
32130 ,p_entity_code => l_entity_code
32131 ,p_event_class_code => l_event_class_code);
32132 --
32133 -- set accounting class
32134 --
32135 xla_ae_lines_pkg.SetAcctClass(
32136 p_accounting_class_code => 'COST'
32137 , p_ae_header_id => l_ae_header_id
32138 );
32139
32140 --
32141 -- set rounding class
32142 --
32143 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
32144 'COST';
32145
32146 --
32147 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
32148 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
32149 --
32150 -- bulk performance
32151 --
32152 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
32153
32154 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
32155 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
32156
32157 -- 4955764
32158 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32159 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
32160
32161 -- 4458381 Public Sector Enh
32162
32163 --
32164 -- set accounting attributes for the line type
32165 --
32166 l_entered_amt_idx := 22;
32167 l_accted_amt_idx := 27;
32168 l_bflow_applied_to_amt_idx := NULL; -- 5132302
32169 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
32170 l_rec_acct_attrs.array_char_value(1) := p_source_23;
32171 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
32172 l_rec_acct_attrs.array_char_value(2) := p_source_24;
32173 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
32174 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
32175 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
32176 l_rec_acct_attrs.array_num_value(4) := p_source_25;
32177 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
32178 l_rec_acct_attrs.array_char_value(5) := p_source_26;
32179 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
32180 l_rec_acct_attrs.array_num_value(6) := p_source_27;
32181 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
32182 l_rec_acct_attrs.array_date_value(7) := p_source_28;
32183 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
32184 l_rec_acct_attrs.array_num_value(8) := p_source_29;
32185 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
32186 l_rec_acct_attrs.array_char_value(9) := p_source_30;
32190 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
32187 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
32188 l_rec_acct_attrs.array_char_value(10) := p_source_31;
32189 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
32191 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
32192 l_rec_acct_attrs.array_num_value(12) := p_source_25;
32193 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
32194 l_rec_acct_attrs.array_char_value(13) := p_source_26;
32195 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
32196 l_rec_acct_attrs.array_num_value(14) := p_source_27;
32197 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
32198 l_rec_acct_attrs.array_date_value(15) := p_source_28;
32199 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
32200 l_rec_acct_attrs.array_num_value(16) := p_source_29;
32201 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
32202 l_rec_acct_attrs.array_char_value(17) := p_source_30;
32203 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
32204 l_rec_acct_attrs.array_char_value(18) := p_source_32;
32205 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
32206 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
32207 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
32208 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
32209 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
32210 l_rec_acct_attrs.array_char_value(21) := p_source_35;
32211 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
32212 l_rec_acct_attrs.array_num_value(22) := p_source_25;
32213 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
32214 l_rec_acct_attrs.array_char_value(23) := p_source_26;
32215 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
32216 l_rec_acct_attrs.array_date_value(24) := p_source_28;
32217 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
32218 l_rec_acct_attrs.array_num_value(25) := p_source_29;
32219 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
32220 l_rec_acct_attrs.array_char_value(26) := p_source_30;
32221 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
32222 l_rec_acct_attrs.array_num_value(27) := p_source_27;
32223 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
32224 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
32225 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
32226 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
32227 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
32228 l_rec_acct_attrs.array_char_value(30) := p_source_35;
32229
32230 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
32231 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
32232
32233 ---------------------------------------------------------------------------------------------------------------
32234 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
32235 ---------------------------------------------------------------------------------------------------------------
32236 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
32237
32238 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32239 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32240
32241 IF xla_accounting_cache_pkg.GetValueChar
32242 (p_source_code => 'LEDGER_CATEGORY_CODE'
32243 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
32244 AND l_bflow_method_code = 'PRIOR_ENTRY'
32245 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
32246 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
32247 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
32248 )
32249 THEN
32250 xla_ae_lines_pkg.BflowUpgEntry
32251 (p_business_method_code => l_bflow_method_code
32252 ,p_business_class_code => l_bflow_class_code
32253 ,p_balance_type => l_balance_type_code);
32254 ELSE
32255 NULL;
32256 -- No business flow processing for business flow method of NONE.
32257 END IF;
32258
32259 --
32260 -- call analytical criteria
32261 --
32262
32263 --
32264 -- call description
32265 --
32266 -- No description or it is inherited.
32267 --
32268 -- call ADRs
32269 -- Bug 4922099
32270 --
32271 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32272 (NVL(l_actual_upg_option, 'N') = 'O') OR
32273 (NVL(l_enc_upg_option, 'N') = 'O')
32274 )
32275 THEN
32276 NULL;
32277 --
32278 --
32279
32280 l_ccid := AcctDerRule_13(
32281 p_application_id => p_application_id
32282 , p_ae_header_id => l_ae_header_id
32283 , p_source_5 => p_source_5
32284 , p_source_6 => p_source_6
32285 , x_transaction_coa_id => l_adr_transaction_coa_id
32286 , x_accounting_coa_id => l_adr_accounting_coa_id
32287 , x_value_type_code => l_adr_value_type_code
32288 , p_side => 'NA'
32289 );
32290
32291 xla_ae_lines_pkg.set_ccid(
32292 p_code_combination_id => l_ccid
32293 , p_value_type_code => l_adr_value_type_code
32294 , p_transaction_coa_id => l_adr_transaction_coa_id
32295 , p_accounting_coa_id => l_adr_accounting_coa_id
32296 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
32300 , p_component_type_code => l_component_type_code
32297 , p_adr_type_code => 'S'
32298 , p_component_type => l_component_type
32299 , p_component_code => l_component_code
32301 , p_component_appl_id => l_component_appl_id
32302 , p_amb_context_code => l_amb_context_code
32303 , p_side => 'NA'
32304 );
32305
32306
32307 --
32308 --
32309 END IF;
32310 --
32311 -- Bug 4922099
32312 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
32313 (NVL(l_enc_upg_option, 'N') = 'O')
32314 ) AND
32315 (l_bflow_method_code = 'PRIOR_ENTRY')
32316 )
32317 THEN
32318 IF
32319 --
32320 1 = 2
32321 --
32322 THEN
32323 xla_accounting_err_pkg.build_message
32324 (p_appli_s_name => 'XLA'
32325 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32326 ,p_token_1 => 'LINE_NUMBER'
32327 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
32328 ,p_token_2 => 'LINE_TYPE_NAME'
32329 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
32330 l_component_type
32331 ,l_component_code
32332 ,l_component_type_code
32333 ,l_component_appl_id
32334 ,l_amb_context_code
32335 ,l_entity_code
32336 ,l_event_class_code
32337 )
32338 ,p_token_3 => 'OWNER'
32339 ,p_value_3 => xla_lookups_pkg.get_meaning(
32340 p_lookup_type => 'XLA_OWNER_TYPE'
32341 ,p_lookup_code => l_component_type_code
32342 )
32343 ,p_token_4 => 'PRODUCT_NAME'
32344 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
32345 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
32346 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
32347 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
32348 ,p_ae_header_id => NULL
32349 );
32350
32351 IF (C_LEVEL_ERROR>= g_log_level) THEN
32352 trace
32353 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32354 ,p_level => C_LEVEL_ERROR
32355 ,p_module => l_log_module);
32356 END IF;
32357 END IF;
32358 END IF;
32359 --
32360 --
32361 ------------------------------------------------------------------------------------------------
32362 -- 4219869 Business Flow
32363 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
32364 -- Prior Entry. Currently, the following code is always generated.
32365 ------------------------------------------------------------------------------------------------
32366 XLA_AE_LINES_PKG.ValidateCurrentLine;
32367
32368 ------------------------------------------------------------------------------------
32369 -- 4219869 Business Flow
32370 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
32371 ------------------------------------------------------------------------------------
32372 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32373
32374 ----------------------------------------------------------------------------------
32375 -- 4219869 Business Flow
32376 -- Update journal entry status -- Need to generate this within IF <condition>
32377 ----------------------------------------------------------------------------------
32378 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32379 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32380 ,p_balance_type_code => l_balance_type_code
32381 );
32382
32383 -------------------------------------------------------------------------------------------
32384 -- 4262811 - Generate the Accrual Reversal lines
32385 -------------------------------------------------------------------------------------------
32386 BEGIN
32387 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
32388 (g_array_event(p_event_id).array_value_num('header_index'));
32389 IF l_acc_rev_flag IS NULL THEN
32390 l_acc_rev_flag := 'N';
32391 END IF;
32392 EXCEPTION
32393 WHEN OTHERS THEN
32394 l_acc_rev_flag := 'N';
32395 END;
32396 --
32397 IF (l_acc_rev_flag = 'Y') THEN
32398
32399 -- 4645092 ------------------------------------------------------------------------------
32400 -- To allow MPA report to determine if it should generate report process
32401 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
32405 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
32402 ------------------------------------------------------------------------------------------
32403
32404 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
32406
32407 --
32408 -- Update the line information that should be overwritten
32409 --
32410 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
32411 p_header_num => 1);
32412 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
32413
32414 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32415
32416 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
32417 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32418 END IF;
32419
32420 --
32421 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32422 --
32423 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
32424 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
32425 ELSE
32426 ---------------------------------------------------------------------------------------------------
32427 -- 4262811a Switch Sign
32428 ---------------------------------------------------------------------------------------------------
32429 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
32430 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32431 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32432 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32433 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32434 -- 5132302
32435 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
32436 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32437
32438 END IF;
32439
32440 -- 4955764
32441 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32442 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
32443
32444
32445 XLA_AE_LINES_PKG.ValidateCurrentLine;
32446 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32447
32448 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32449 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
32450 ,p_balance_type_code => l_balance_type_code);
32451
32452 END IF;
32453
32454 -----------------------------------------------------------------------------------------
32455 -- 4262811 Multiperiod Accounting
32456 -----------------------------------------------------------------------------------------
32457 -- No MPA option is assigned.
32458
32459
32460 END IF;
32461 END IF;
32462 --
32463
32464 --
32465 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32466 trace
32467 (p_msg => 'END of AcctLineType_77'
32468 ,p_level => C_LEVEL_PROCEDURE
32469 ,p_module => l_log_module);
32470 END IF;
32471 --
32472 EXCEPTION
32473 WHEN xla_exceptions_pkg.application_exception THEN
32474 RAISE;
32475 WHEN OTHERS THEN
32476 xla_exceptions_pkg.raise_message
32477 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_77');
32478 END AcctLineType_77;
32479 --
32480
32481 ---------------------------------------
32482 --
32483 -- PRIVATE FUNCTION
32484 -- AcctLineType_78
32485 --
32486 ---------------------------------------
32487 PROCEDURE AcctLineType_78 (
32488 p_application_id IN NUMBER
32489 ,p_event_id IN NUMBER
32490 ,p_calculate_acctd_flag IN VARCHAR2
32491 ,p_calculate_g_l_flag IN VARCHAR2
32492 ,p_actual_flag IN OUT VARCHAR2
32493 ,p_balance_type_code OUT VARCHAR2
32494 ,p_gain_or_loss_ref OUT VARCHAR2
32495
32496 --Cost CCID
32497 , p_source_4 IN NUMBER
32498 --Allow Account Override Flag
32499 , p_source_5 IN VARCHAR2
32500 --Cost Clearing CCID
32501 , p_source_7 IN NUMBER
32502 --Adjustment Cost Clearing CCID
32503 , p_source_8 IN NUMBER
32504 --Exchange Rate Variance Flag
32505 , p_source_22 IN VARCHAR2
32506 --Reversing Line Flag
32507 , p_source_23 IN VARCHAR2
32508 --Actual Upgrade Credit Accounting Class
32509 , p_source_24 IN VARCHAR2
32510 --Entered Raw Cost
32511 , p_source_25 IN NUMBER
32512 --Entered Currency Code
32513 , p_source_26 IN VARCHAR2
32514 --Accounted Raw Cost
32515 , p_source_27 IN NUMBER
32516 --Exchange Rate Date
32517 , p_source_28 IN DATE
32518 --Exchange Rate
32519 , p_source_29 IN NUMBER
32520 --Exchange Rate Type
32521 , p_source_30 IN VARCHAR2
32522 --Actual Upgrade Debit Accounting Class
32523 , p_source_31 IN VARCHAR2
32524 --Use Actuals Upgrade Attributes Flag
32525 , p_source_32 IN VARCHAR2
32526 --Expenditure Item ID
32527 , p_source_33 IN NUMBER
32528 --Cost Distribution Line Number
32529 , p_source_34 IN NUMBER
32530 --Line Type
32531 , p_source_35 IN VARCHAR2
32532 , p_source_35_meaning IN VARCHAR2
32533 --Reversed Line Number
32534 , p_source_36 IN NUMBER
32535 )
32536 IS
32537
32541 l_component_appl_id INTEGER;
32538 l_component_type VARCHAR2(80);
32539 l_component_code VARCHAR2(30);
32540 l_component_type_code VARCHAR2(1);
32542 l_amb_context_code VARCHAR2(30);
32543 l_entity_code VARCHAR2(30);
32544 l_event_class_code VARCHAR2(30);
32545 l_ae_header_id NUMBER;
32546 l_event_type_code VARCHAR2(30);
32547 l_line_definition_code VARCHAR2(30);
32548 l_line_definition_owner_code VARCHAR2(1);
32549 --
32550 -- adr variables
32551 l_segment VARCHAR2(30);
32552 l_ccid NUMBER;
32553 l_adr_transaction_coa_id NUMBER;
32554 l_adr_accounting_coa_id NUMBER;
32555 l_adr_flexfield_segment_code VARCHAR2(30);
32556 l_adr_flex_value_set_id NUMBER;
32557 l_adr_value_type_code VARCHAR2(30);
32558 l_adr_value_combination_id NUMBER;
32559 l_adr_value_segment_code VARCHAR2(30);
32560
32561 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
32562 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
32563 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
32564 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
32565
32566 -- 4262811 Variables ------------------------------------------------------------------------------------------
32567 l_entered_amt_idx NUMBER;
32568 l_accted_amt_idx NUMBER;
32569 l_acc_rev_flag VARCHAR2(1);
32570 l_accrual_line_num NUMBER;
32571 l_tmp_amt NUMBER;
32572 l_acc_rev_natural_side_code VARCHAR2(1);
32573
32574 l_num_entries NUMBER;
32575 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
32576 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
32577 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
32578 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
32579 l_recog_line_1 NUMBER;
32580 l_recog_line_2 NUMBER;
32581
32582 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
32583 l_bflow_applied_to_amt NUMBER; -- 5132302
32584 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
32585
32586 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
32587
32588 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
32589 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
32590
32591 ---------------------------------------------------------------------------------------------------------------
32592
32593
32594 --
32595 -- bulk performance
32596 --
32597 l_balance_type_code VARCHAR2(1);
32598 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
32599 l_log_module VARCHAR2(240);
32600
32601 --
32602 -- Upgrade strategy
32603 --
32604 l_actual_upg_option VARCHAR2(1);
32605 l_enc_upg_option VARCHAR2(1);
32606
32607 --
32608 BEGIN
32609 --
32610 IF g_log_enabled THEN
32611 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_78';
32612 END IF;
32613 --
32614 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32615
32616 trace
32617 (p_msg => 'BEGIN of AcctLineType_78'
32618 ,p_level => C_LEVEL_PROCEDURE
32619 ,p_module => l_log_module);
32620
32621 END IF;
32622 --
32623 l_component_type := 'AMB_JLT';
32624 l_component_code := 'PA_RAW_COST_ADJ_CLEAR_FED';
32625 l_component_type_code := 'S';
32626 l_component_appl_id := 275;
32627 l_amb_context_code := 'DEFAULT';
32628 l_entity_code := 'EXPENDITURES';
32629 l_event_class_code := 'SUPPLIER_COST_ADJ';
32630 l_event_type_code := 'SUPPLIER_COST_ADJ_ALL';
32631 l_line_definition_owner_code := 'S';
32632 l_line_definition_code := 'FV_PROJECTS_JLD';
32633 --
32634 l_balance_type_code := 'A';
32635 l_segment := NULL;
32636 l_ccid := NULL;
32637 l_adr_transaction_coa_id := NULL;
32638 l_adr_accounting_coa_id := NULL;
32639 l_adr_flexfield_segment_code := NULL;
32640 l_adr_flex_value_set_id := NULL;
32641 l_adr_value_type_code := NULL;
32642 l_adr_value_combination_id := NULL;
32643 l_adr_value_segment_code := NULL;
32644
32645 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
32646 l_bflow_class_code := ''; -- 4219869 Business Flow
32647 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
32648 l_budgetary_control_flag := 'N';
32649
32650 l_bflow_applied_to_amt_idx := NULL; -- 5132302
32651 l_bflow_applied_to_amt := NULL; -- 5132302
32652 l_entered_amt_idx := NULL; -- 4262811
32653 l_accted_amt_idx := NULL; -- 4262811
32654 l_acc_rev_flag := NULL; -- 4262811
32655 l_accrual_line_num := NULL; -- 4262811
32656 l_tmp_amt := NULL; -- 4262811
32657 --
32658
32659 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
32660 l_balance_type_code <> 'B' THEN
32661 IF NVL(p_source_22,'
32662 ') = 'N'
32663 THEN
32664
32665 --
32666 XLA_AE_LINES_PKG.SetNewLine;
32667
32668 p_balance_type_code := l_balance_type_code;
32669 -- set the flag so later we will know whether the gain loss line needs to be created
32670
32671 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
32672 p_actual_flag :='A';
32673 END IF;
32674
32675 --
32679 p_header_num => 0); -- 4262811
32676 -- bulk performance
32677 --
32678 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
32680 --
32681 -- set accounting line options
32682 --
32683 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
32684 p_natural_side_code => 'C'
32685 , p_gain_or_loss_flag => 'N'
32686 , p_gl_transfer_mode_code => 'S'
32687 , p_acct_entry_type_code => 'A'
32688 , p_switch_side_flag => 'Y'
32689 , p_merge_duplicate_code => 'N'
32690 );
32691 --
32692 l_acc_rev_natural_side_code := 'D'; -- 4262811
32693 --
32694 --
32695 -- set accounting line type info
32696 --
32697 xla_ae_lines_pkg.SetAcctLineType
32698 (p_component_type => l_component_type
32699 ,p_event_type_code => l_event_type_code
32700 ,p_line_definition_owner_code => l_line_definition_owner_code
32701 ,p_line_definition_code => l_line_definition_code
32702 ,p_accounting_line_code => l_component_code
32703 ,p_accounting_line_type_code => l_component_type_code
32704 ,p_accounting_line_appl_id => l_component_appl_id
32705 ,p_amb_context_code => l_amb_context_code
32706 ,p_entity_code => l_entity_code
32707 ,p_event_class_code => l_event_class_code);
32708 --
32709 -- set accounting class
32710 --
32711 xla_ae_lines_pkg.SetAcctClass(
32712 p_accounting_class_code => 'FEDERAL_PROJECT_COST_CLEARING'
32713 , p_ae_header_id => l_ae_header_id
32714 );
32715
32716 --
32717 -- set rounding class
32718 --
32719 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
32720 'FEDERAL_PROJECT_COST_CLEARING';
32721
32722 --
32723 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
32724 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
32725 --
32726 -- bulk performance
32727 --
32728 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
32729
32730 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
32731 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
32732
32733 -- 4955764
32734 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32735 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
32736
32737 -- 4458381 Public Sector Enh
32738
32739 --
32740 -- set accounting attributes for the line type
32741 --
32742 l_entered_amt_idx := 22;
32743 l_accted_amt_idx := 27;
32744 l_bflow_applied_to_amt_idx := NULL; -- 5132302
32745 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
32746 l_rec_acct_attrs.array_char_value(1) := p_source_23;
32747 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
32748 l_rec_acct_attrs.array_char_value(2) := p_source_24;
32749 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
32750 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
32751 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
32752 l_rec_acct_attrs.array_num_value(4) := p_source_25;
32753 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
32754 l_rec_acct_attrs.array_char_value(5) := p_source_26;
32755 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
32756 l_rec_acct_attrs.array_num_value(6) := p_source_27;
32757 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
32758 l_rec_acct_attrs.array_date_value(7) := p_source_28;
32759 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
32760 l_rec_acct_attrs.array_num_value(8) := p_source_29;
32761 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
32762 l_rec_acct_attrs.array_char_value(9) := p_source_30;
32763 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
32764 l_rec_acct_attrs.array_char_value(10) := p_source_31;
32765 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
32766 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
32767 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
32768 l_rec_acct_attrs.array_num_value(12) := p_source_25;
32769 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
32770 l_rec_acct_attrs.array_char_value(13) := p_source_26;
32771 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
32772 l_rec_acct_attrs.array_num_value(14) := p_source_27;
32773 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
32774 l_rec_acct_attrs.array_date_value(15) := p_source_28;
32775 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
32776 l_rec_acct_attrs.array_num_value(16) := p_source_29;
32777 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
32778 l_rec_acct_attrs.array_char_value(17) := p_source_30;
32779 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
32780 l_rec_acct_attrs.array_char_value(18) := p_source_32;
32781 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
32782 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
32783 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
32784 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
32785 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
32786 l_rec_acct_attrs.array_char_value(21) := p_source_35;
32790 l_rec_acct_attrs.array_char_value(23) := p_source_26;
32787 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
32788 l_rec_acct_attrs.array_num_value(22) := p_source_25;
32789 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
32791 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
32792 l_rec_acct_attrs.array_date_value(24) := p_source_28;
32793 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
32794 l_rec_acct_attrs.array_num_value(25) := p_source_29;
32795 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
32796 l_rec_acct_attrs.array_char_value(26) := p_source_30;
32797 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
32798 l_rec_acct_attrs.array_num_value(27) := p_source_27;
32799 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
32800 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
32801 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
32802 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
32803 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
32804 l_rec_acct_attrs.array_char_value(30) := p_source_35;
32805
32806 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
32807 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
32808
32809 ---------------------------------------------------------------------------------------------------------------
32810 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
32811 ---------------------------------------------------------------------------------------------------------------
32812 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
32813
32814 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32815 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32816
32817 IF xla_accounting_cache_pkg.GetValueChar
32818 (p_source_code => 'LEDGER_CATEGORY_CODE'
32819 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
32820 AND l_bflow_method_code = 'PRIOR_ENTRY'
32821 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
32822 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
32823 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
32824 )
32825 THEN
32826 xla_ae_lines_pkg.BflowUpgEntry
32827 (p_business_method_code => l_bflow_method_code
32828 ,p_business_class_code => l_bflow_class_code
32829 ,p_balance_type => l_balance_type_code);
32830 ELSE
32831 NULL;
32832 -- No business flow processing for business flow method of NONE.
32833 END IF;
32834
32835 --
32836 -- call analytical criteria
32837 --
32838
32839 --
32840 -- call description
32841 --
32842 -- No description or it is inherited.
32843 --
32844 -- call ADRs
32845 -- Bug 4922099
32846 --
32847 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32848 (NVL(l_actual_upg_option, 'N') = 'O') OR
32849 (NVL(l_enc_upg_option, 'N') = 'O')
32850 )
32851 THEN
32852 NULL;
32853 --
32854 --
32855
32856 l_ccid := AcctDerRule_15(
32857 p_application_id => p_application_id
32858 , p_ae_header_id => l_ae_header_id
32859 , p_source_5 => p_source_5
32860 , p_source_8 => p_source_8
32861 , x_transaction_coa_id => l_adr_transaction_coa_id
32862 , x_accounting_coa_id => l_adr_accounting_coa_id
32863 , x_value_type_code => l_adr_value_type_code
32864 , p_side => 'NA'
32865 );
32866
32867 xla_ae_lines_pkg.set_ccid(
32868 p_code_combination_id => l_ccid
32869 , p_value_type_code => l_adr_value_type_code
32870 , p_transaction_coa_id => l_adr_transaction_coa_id
32871 , p_accounting_coa_id => l_adr_accounting_coa_id
32872 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
32873 , p_adr_type_code => 'S'
32874 , p_component_type => l_component_type
32875 , p_component_code => l_component_code
32876 , p_component_type_code => l_component_type_code
32877 , p_component_appl_id => l_component_appl_id
32878 , p_amb_context_code => l_amb_context_code
32879 , p_side => 'NA'
32880 );
32881
32882
32883 l_segment := AcctDerRule_5(
32884 p_application_id => p_application_id
32885 , p_ae_header_id => l_ae_header_id
32886 , x_transaction_coa_id => l_adr_transaction_coa_id
32887 , x_accounting_coa_id => l_adr_accounting_coa_id
32888 , x_flexfield_segment_code => l_adr_flexfield_segment_code
32889 , x_flex_value_set_id => l_adr_flex_value_set_id
32890 , x_value_type_code => l_adr_value_type_code
32891 , x_value_combination_id => l_adr_value_combination_id
32892 , x_value_segment_code => l_adr_value_segment_code
32893 , p_side => 'NA'
32894 , p_override_seg_flag => 'Y'
32895 );
32896
32897 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
32898
32899 xla_ae_lines_pkg.set_segment(
32900 p_to_segment_code => 'GL_ACCOUNT'
32901 , p_segment_value => l_segment
32902 , p_from_segment_code => l_adr_value_segment_code
32903 , p_from_combination_id => l_adr_value_combination_id
32904 , p_value_type_code => l_adr_value_type_code
32908 , p_flex_value_set_id => l_adr_flex_value_set_id
32905 , p_transaction_coa_id => l_adr_transaction_coa_id
32906 , p_accounting_coa_id => l_adr_accounting_coa_id
32907 , p_flexfield_segment_code => l_adr_flexfield_segment_code
32909 , p_adr_code => 'FV_490201_PROJECTS'
32910 , p_adr_type_code => 'S'
32911 , p_component_type => l_component_type
32912 , p_component_code => l_component_code
32913 , p_component_type_code => l_component_type_code
32914 , p_component_appl_id => l_component_appl_id
32915 , p_amb_context_code => l_amb_context_code
32916 , p_entity_code => 'EXPENDITURES'
32917 , p_event_class_code => 'SUPPLIER_COST_ADJ'
32918 , p_side => 'NA'
32919 );
32920
32921 END IF;
32922
32923 --
32924 --
32925 END IF;
32926 --
32927 -- Bug 4922099
32928 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
32929 (NVL(l_enc_upg_option, 'N') = 'O')
32930 ) AND
32931 (l_bflow_method_code = 'PRIOR_ENTRY')
32932 )
32933 THEN
32934 IF
32935 --
32936 1 = 2
32937 --
32938 THEN
32939 xla_accounting_err_pkg.build_message
32940 (p_appli_s_name => 'XLA'
32941 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32942 ,p_token_1 => 'LINE_NUMBER'
32943 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
32944 ,p_token_2 => 'LINE_TYPE_NAME'
32945 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
32946 l_component_type
32947 ,l_component_code
32948 ,l_component_type_code
32949 ,l_component_appl_id
32950 ,l_amb_context_code
32951 ,l_entity_code
32952 ,l_event_class_code
32953 )
32954 ,p_token_3 => 'OWNER'
32955 ,p_value_3 => xla_lookups_pkg.get_meaning(
32956 p_lookup_type => 'XLA_OWNER_TYPE'
32957 ,p_lookup_code => l_component_type_code
32958 )
32959 ,p_token_4 => 'PRODUCT_NAME'
32960 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
32961 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
32962 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
32963 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
32964 ,p_ae_header_id => NULL
32965 );
32966
32967 IF (C_LEVEL_ERROR>= g_log_level) THEN
32968 trace
32969 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32970 ,p_level => C_LEVEL_ERROR
32971 ,p_module => l_log_module);
32972 END IF;
32973 END IF;
32974 END IF;
32975 --
32976 --
32977 ------------------------------------------------------------------------------------------------
32978 -- 4219869 Business Flow
32979 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
32980 -- Prior Entry. Currently, the following code is always generated.
32981 ------------------------------------------------------------------------------------------------
32982 XLA_AE_LINES_PKG.ValidateCurrentLine;
32983
32984 ------------------------------------------------------------------------------------
32985 -- 4219869 Business Flow
32986 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
32987 ------------------------------------------------------------------------------------
32988 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32989
32990 ----------------------------------------------------------------------------------
32991 -- 4219869 Business Flow
32992 -- Update journal entry status -- Need to generate this within IF <condition>
32993 ----------------------------------------------------------------------------------
32994 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32995 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32996 ,p_balance_type_code => l_balance_type_code
32997 );
32998
32999 -------------------------------------------------------------------------------------------
33000 -- 4262811 - Generate the Accrual Reversal lines
33001 -------------------------------------------------------------------------------------------
33002 BEGIN
33003 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
33004 (g_array_event(p_event_id).array_value_num('header_index'));
33005 IF l_acc_rev_flag IS NULL THEN
33006 l_acc_rev_flag := 'N';
33007 END IF;
33011 END;
33008 EXCEPTION
33009 WHEN OTHERS THEN
33010 l_acc_rev_flag := 'N';
33012 --
33013 IF (l_acc_rev_flag = 'Y') THEN
33014
33015 -- 4645092 ------------------------------------------------------------------------------
33016 -- To allow MPA report to determine if it should generate report process
33017 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
33018 ------------------------------------------------------------------------------------------
33019
33020 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
33021 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
33022
33023 --
33024 -- Update the line information that should be overwritten
33025 --
33026 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
33027 p_header_num => 1);
33028 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
33029
33030 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
33031
33032 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
33033 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
33034 END IF;
33035
33036 --
33037 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
33038 --
33039 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
33040 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
33041 ELSE
33042 ---------------------------------------------------------------------------------------------------
33043 -- 4262811a Switch Sign
33044 ---------------------------------------------------------------------------------------------------
33045 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
33046 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33047 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33048 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33049 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33050 -- 5132302
33051 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
33052 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33053
33054 END IF;
33055
33056 -- 4955764
33057 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33058 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
33059
33060
33061 XLA_AE_LINES_PKG.ValidateCurrentLine;
33062 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33063
33064 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33065 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
33066 ,p_balance_type_code => l_balance_type_code);
33067
33068 END IF;
33069
33070 -----------------------------------------------------------------------------------------
33071 -- 4262811 Multiperiod Accounting
33072 -----------------------------------------------------------------------------------------
33073 -- No MPA option is assigned.
33074
33075
33076 END IF;
33077 END IF;
33078 --
33079
33080 --
33081 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33082 trace
33083 (p_msg => 'END of AcctLineType_78'
33084 ,p_level => C_LEVEL_PROCEDURE
33085 ,p_module => l_log_module);
33086 END IF;
33087 --
33088 EXCEPTION
33089 WHEN xla_exceptions_pkg.application_exception THEN
33090 RAISE;
33091 WHEN OTHERS THEN
33092 xla_exceptions_pkg.raise_message
33093 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_78');
33094 END AcctLineType_78;
33095 --
33096
33097 ---------------------------------------
33098 --
33099 -- PRIVATE FUNCTION
33100 -- AcctLineType_79
33101 --
33102 ---------------------------------------
33103 PROCEDURE AcctLineType_79 (
33104 p_application_id IN NUMBER
33105 ,p_event_id IN NUMBER
33106 ,p_calculate_acctd_flag IN VARCHAR2
33107 ,p_calculate_g_l_flag IN VARCHAR2
33108 ,p_actual_flag IN OUT VARCHAR2
33109 ,p_balance_type_code OUT VARCHAR2
33110 ,p_gain_or_loss_ref OUT VARCHAR2
33111
33112 --Cost CCID
33113 , p_source_4 IN NUMBER
33114 --Allow Account Override Flag
33115 , p_source_5 IN VARCHAR2
33116 --Adjustment Cost CCID
33117 , p_source_6 IN NUMBER
33118 --Cost Clearing CCID
33119 , p_source_7 IN NUMBER
33120 --Reversing Line Flag
33121 , p_source_23 IN VARCHAR2
33122 --Actual Upgrade Credit Accounting Class
33123 , p_source_24 IN VARCHAR2
33124 --Entered Raw Cost
33125 , p_source_25 IN NUMBER
33126 --Entered Currency Code
33127 , p_source_26 IN VARCHAR2
33128 --Accounted Raw Cost
33129 , p_source_27 IN NUMBER
33130 --Exchange Rate Date
33131 , p_source_28 IN DATE
33132 --Exchange Rate
33133 , p_source_29 IN NUMBER
33134 --Exchange Rate Type
33135 , p_source_30 IN VARCHAR2
33136 --Actual Upgrade Debit Accounting Class
33137 , p_source_31 IN VARCHAR2
33138 --Use Actuals Upgrade Attributes Flag
33139 , p_source_32 IN VARCHAR2
33140 --Expenditure Item ID
33144 --Line Type
33141 , p_source_33 IN NUMBER
33142 --Cost Distribution Line Number
33143 , p_source_34 IN NUMBER
33145 , p_source_35 IN VARCHAR2
33146 , p_source_35_meaning IN VARCHAR2
33147 --Reversed Line Number
33148 , p_source_36 IN NUMBER
33149 )
33150 IS
33151
33152 l_component_type VARCHAR2(80);
33153 l_component_code VARCHAR2(30);
33154 l_component_type_code VARCHAR2(1);
33155 l_component_appl_id INTEGER;
33156 l_amb_context_code VARCHAR2(30);
33157 l_entity_code VARCHAR2(30);
33158 l_event_class_code VARCHAR2(30);
33159 l_ae_header_id NUMBER;
33160 l_event_type_code VARCHAR2(30);
33161 l_line_definition_code VARCHAR2(30);
33162 l_line_definition_owner_code VARCHAR2(1);
33163 --
33164 -- adr variables
33165 l_segment VARCHAR2(30);
33166 l_ccid NUMBER;
33167 l_adr_transaction_coa_id NUMBER;
33168 l_adr_accounting_coa_id NUMBER;
33169 l_adr_flexfield_segment_code VARCHAR2(30);
33170 l_adr_flex_value_set_id NUMBER;
33171 l_adr_value_type_code VARCHAR2(30);
33172 l_adr_value_combination_id NUMBER;
33173 l_adr_value_segment_code VARCHAR2(30);
33174
33175 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
33176 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
33177 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
33178 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
33179
33180 -- 4262811 Variables ------------------------------------------------------------------------------------------
33181 l_entered_amt_idx NUMBER;
33182 l_accted_amt_idx NUMBER;
33183 l_acc_rev_flag VARCHAR2(1);
33184 l_accrual_line_num NUMBER;
33185 l_tmp_amt NUMBER;
33186 l_acc_rev_natural_side_code VARCHAR2(1);
33187
33188 l_num_entries NUMBER;
33189 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
33190 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
33191 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
33192 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
33193 l_recog_line_1 NUMBER;
33194 l_recog_line_2 NUMBER;
33195
33196 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
33197 l_bflow_applied_to_amt NUMBER; -- 5132302
33198 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
33199
33200 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
33201
33202 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
33203 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
33204
33205 ---------------------------------------------------------------------------------------------------------------
33206
33207
33208 --
33209 -- bulk performance
33210 --
33211 l_balance_type_code VARCHAR2(1);
33212 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
33213 l_log_module VARCHAR2(240);
33214
33215 --
33216 -- Upgrade strategy
33217 --
33218 l_actual_upg_option VARCHAR2(1);
33219 l_enc_upg_option VARCHAR2(1);
33220
33221 --
33222 BEGIN
33223 --
33224 IF g_log_enabled THEN
33225 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_79';
33226 END IF;
33227 --
33228 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33229
33230 trace
33231 (p_msg => 'BEGIN of AcctLineType_79'
33232 ,p_level => C_LEVEL_PROCEDURE
33233 ,p_module => l_log_module);
33234
33235 END IF;
33236 --
33237 l_component_type := 'AMB_JLT';
33238 l_component_code := 'PA_RAW_COST_ADJ_FED';
33239 l_component_type_code := 'S';
33240 l_component_appl_id := 275;
33241 l_amb_context_code := 'DEFAULT';
33242 l_entity_code := 'EXPENDITURES';
33243 l_event_class_code := 'INVENTORY_COST_ADJ';
33244 l_event_type_code := 'INVENTORY_COST_ADJ_ALL';
33245 l_line_definition_owner_code := 'S';
33246 l_line_definition_code := 'FV_PROJECTS_JLD';
33247 --
33248 l_balance_type_code := 'A';
33249 l_segment := NULL;
33250 l_ccid := NULL;
33251 l_adr_transaction_coa_id := NULL;
33252 l_adr_accounting_coa_id := NULL;
33253 l_adr_flexfield_segment_code := NULL;
33254 l_adr_flex_value_set_id := NULL;
33255 l_adr_value_type_code := NULL;
33256 l_adr_value_combination_id := NULL;
33257 l_adr_value_segment_code := NULL;
33258
33259 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
33260 l_bflow_class_code := ''; -- 4219869 Business Flow
33261 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
33262 l_budgetary_control_flag := 'N';
33263
33264 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33265 l_bflow_applied_to_amt := NULL; -- 5132302
33266 l_entered_amt_idx := NULL; -- 4262811
33267 l_accted_amt_idx := NULL; -- 4262811
33268 l_acc_rev_flag := NULL; -- 4262811
33269 l_accrual_line_num := NULL; -- 4262811
33270 l_tmp_amt := NULL; -- 4262811
33271 --
33272
33273 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
33274 l_balance_type_code <> 'B' THEN
33275
33276 --
33277 XLA_AE_LINES_PKG.SetNewLine;
33278
33282 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
33279 p_balance_type_code := l_balance_type_code;
33280 -- set the flag so later we will know whether the gain loss line needs to be created
33281
33283 p_actual_flag :='A';
33284 END IF;
33285
33286 --
33287 -- bulk performance
33288 --
33289 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
33290 p_header_num => 0); -- 4262811
33291 --
33292 -- set accounting line options
33293 --
33294 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
33295 p_natural_side_code => 'D'
33296 , p_gain_or_loss_flag => 'N'
33297 , p_gl_transfer_mode_code => 'S'
33298 , p_acct_entry_type_code => 'A'
33299 , p_switch_side_flag => 'Y'
33300 , p_merge_duplicate_code => 'N'
33301 );
33302 --
33303 l_acc_rev_natural_side_code := 'C'; -- 4262811
33304 --
33305 --
33306 -- set accounting line type info
33307 --
33308 xla_ae_lines_pkg.SetAcctLineType
33309 (p_component_type => l_component_type
33310 ,p_event_type_code => l_event_type_code
33311 ,p_line_definition_owner_code => l_line_definition_owner_code
33312 ,p_line_definition_code => l_line_definition_code
33313 ,p_accounting_line_code => l_component_code
33314 ,p_accounting_line_type_code => l_component_type_code
33315 ,p_accounting_line_appl_id => l_component_appl_id
33316 ,p_amb_context_code => l_amb_context_code
33317 ,p_entity_code => l_entity_code
33318 ,p_event_class_code => l_event_class_code);
33319 --
33320 -- set accounting class
33321 --
33322 xla_ae_lines_pkg.SetAcctClass(
33323 p_accounting_class_code => 'FEDERAL_PROJECT_COST'
33324 , p_ae_header_id => l_ae_header_id
33325 );
33326
33327 --
33328 -- set rounding class
33329 --
33330 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33331 'FEDERAL_PROJECT_COST';
33332
33333 --
33334 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33335 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33336 --
33337 -- bulk performance
33338 --
33339 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33340
33341 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33342 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33343
33344 -- 4955764
33345 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33346 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33347
33348 -- 4458381 Public Sector Enh
33349
33350 --
33351 -- set accounting attributes for the line type
33352 --
33353 l_entered_amt_idx := 22;
33354 l_accted_amt_idx := 27;
33355 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33356 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33357 l_rec_acct_attrs.array_char_value(1) := p_source_23;
33358 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
33359 l_rec_acct_attrs.array_char_value(2) := p_source_24;
33360 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
33361 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
33362 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
33363 l_rec_acct_attrs.array_num_value(4) := p_source_25;
33364 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
33365 l_rec_acct_attrs.array_char_value(5) := p_source_26;
33366 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
33367 l_rec_acct_attrs.array_num_value(6) := p_source_27;
33368 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
33369 l_rec_acct_attrs.array_date_value(7) := p_source_28;
33370 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
33371 l_rec_acct_attrs.array_num_value(8) := p_source_29;
33372 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
33373 l_rec_acct_attrs.array_char_value(9) := p_source_30;
33374 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
33375 l_rec_acct_attrs.array_char_value(10) := p_source_31;
33376 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
33377 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
33378 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
33379 l_rec_acct_attrs.array_num_value(12) := p_source_25;
33380 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
33381 l_rec_acct_attrs.array_char_value(13) := p_source_26;
33382 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
33383 l_rec_acct_attrs.array_num_value(14) := p_source_27;
33384 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
33385 l_rec_acct_attrs.array_date_value(15) := p_source_28;
33386 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
33387 l_rec_acct_attrs.array_num_value(16) := p_source_29;
33388 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
33389 l_rec_acct_attrs.array_char_value(17) := p_source_30;
33390 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
33391 l_rec_acct_attrs.array_char_value(18) := p_source_32;
33392 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
33393 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
33397 l_rec_acct_attrs.array_char_value(21) := p_source_35;
33394 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
33395 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
33396 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
33398 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
33399 l_rec_acct_attrs.array_num_value(22) := p_source_25;
33400 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
33401 l_rec_acct_attrs.array_char_value(23) := p_source_26;
33402 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
33403 l_rec_acct_attrs.array_date_value(24) := p_source_28;
33404 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
33405 l_rec_acct_attrs.array_num_value(25) := p_source_29;
33406 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
33407 l_rec_acct_attrs.array_char_value(26) := p_source_30;
33408 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
33409 l_rec_acct_attrs.array_num_value(27) := p_source_27;
33410 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
33411 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
33412 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
33413 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
33414 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
33415 l_rec_acct_attrs.array_char_value(30) := p_source_35;
33416
33417 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
33418 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
33419
33420 ---------------------------------------------------------------------------------------------------------------
33421 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
33422 ---------------------------------------------------------------------------------------------------------------
33423 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
33424
33425 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33426 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33427
33428 IF xla_accounting_cache_pkg.GetValueChar
33429 (p_source_code => 'LEDGER_CATEGORY_CODE'
33430 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
33431 AND l_bflow_method_code = 'PRIOR_ENTRY'
33432 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
33433 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
33434 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
33435 )
33436 THEN
33437 xla_ae_lines_pkg.BflowUpgEntry
33438 (p_business_method_code => l_bflow_method_code
33439 ,p_business_class_code => l_bflow_class_code
33440 ,p_balance_type => l_balance_type_code);
33441 ELSE
33442 NULL;
33443 -- No business flow processing for business flow method of NONE.
33444 END IF;
33445
33446 --
33447 -- call analytical criteria
33448 --
33449
33450 --
33451 -- call description
33452 --
33453 -- No description or it is inherited.
33454 --
33455 -- call ADRs
33456 -- Bug 4922099
33457 --
33458 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33459 (NVL(l_actual_upg_option, 'N') = 'O') OR
33460 (NVL(l_enc_upg_option, 'N') = 'O')
33461 )
33462 THEN
33463 NULL;
33464 --
33465 --
33466
33467 l_ccid := AcctDerRule_13(
33468 p_application_id => p_application_id
33469 , p_ae_header_id => l_ae_header_id
33470 , p_source_5 => p_source_5
33471 , p_source_6 => p_source_6
33472 , x_transaction_coa_id => l_adr_transaction_coa_id
33473 , x_accounting_coa_id => l_adr_accounting_coa_id
33474 , x_value_type_code => l_adr_value_type_code
33475 , p_side => 'NA'
33476 );
33477
33478 xla_ae_lines_pkg.set_ccid(
33479 p_code_combination_id => l_ccid
33480 , p_value_type_code => l_adr_value_type_code
33481 , p_transaction_coa_id => l_adr_transaction_coa_id
33482 , p_accounting_coa_id => l_adr_accounting_coa_id
33483 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
33484 , p_adr_type_code => 'S'
33485 , p_component_type => l_component_type
33486 , p_component_code => l_component_code
33487 , p_component_type_code => l_component_type_code
33488 , p_component_appl_id => l_component_appl_id
33489 , p_amb_context_code => l_amb_context_code
33490 , p_side => 'NA'
33491 );
33492
33493
33494 l_segment := AcctDerRule_4(
33495 p_application_id => p_application_id
33496 , p_ae_header_id => l_ae_header_id
33497 , x_transaction_coa_id => l_adr_transaction_coa_id
33498 , x_accounting_coa_id => l_adr_accounting_coa_id
33499 , x_flexfield_segment_code => l_adr_flexfield_segment_code
33500 , x_flex_value_set_id => l_adr_flex_value_set_id
33501 , x_value_type_code => l_adr_value_type_code
33502 , x_value_combination_id => l_adr_value_combination_id
33503 , x_value_segment_code => l_adr_value_segment_code
33504 , p_side => 'NA'
33505 , p_override_seg_flag => 'Y'
33506 );
33507
33508 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
33509
33510 xla_ae_lines_pkg.set_segment(
33514 , p_from_combination_id => l_adr_value_combination_id
33511 p_to_segment_code => 'GL_ACCOUNT'
33512 , p_segment_value => l_segment
33513 , p_from_segment_code => l_adr_value_segment_code
33515 , p_value_type_code => l_adr_value_type_code
33516 , p_transaction_coa_id => l_adr_transaction_coa_id
33517 , p_accounting_coa_id => l_adr_accounting_coa_id
33518 , p_flexfield_segment_code => l_adr_flexfield_segment_code
33519 , p_flex_value_set_id => l_adr_flex_value_set_id
33520 , p_adr_code => 'FV_461001_PROJECTS'
33521 , p_adr_type_code => 'S'
33522 , p_component_type => l_component_type
33523 , p_component_code => l_component_code
33524 , p_component_type_code => l_component_type_code
33525 , p_component_appl_id => l_component_appl_id
33526 , p_amb_context_code => l_amb_context_code
33527 , p_entity_code => 'EXPENDITURES'
33528 , p_event_class_code => 'INVENTORY_COST_ADJ'
33529 , p_side => 'NA'
33530 );
33531
33532 END IF;
33533
33534 --
33535 --
33536 END IF;
33537 --
33538 -- Bug 4922099
33539 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
33540 (NVL(l_enc_upg_option, 'N') = 'O')
33541 ) AND
33542 (l_bflow_method_code = 'PRIOR_ENTRY')
33543 )
33544 THEN
33545 IF
33546 --
33547 1 = 2
33548 --
33549 THEN
33550 xla_accounting_err_pkg.build_message
33551 (p_appli_s_name => 'XLA'
33552 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33553 ,p_token_1 => 'LINE_NUMBER'
33554 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
33555 ,p_token_2 => 'LINE_TYPE_NAME'
33556 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
33557 l_component_type
33558 ,l_component_code
33559 ,l_component_type_code
33560 ,l_component_appl_id
33561 ,l_amb_context_code
33562 ,l_entity_code
33563 ,l_event_class_code
33564 )
33565 ,p_token_3 => 'OWNER'
33566 ,p_value_3 => xla_lookups_pkg.get_meaning(
33567 p_lookup_type => 'XLA_OWNER_TYPE'
33568 ,p_lookup_code => l_component_type_code
33569 )
33570 ,p_token_4 => 'PRODUCT_NAME'
33571 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
33572 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
33573 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
33574 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
33575 ,p_ae_header_id => NULL
33576 );
33577
33578 IF (C_LEVEL_ERROR>= g_log_level) THEN
33579 trace
33580 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33581 ,p_level => C_LEVEL_ERROR
33582 ,p_module => l_log_module);
33583 END IF;
33584 END IF;
33585 END IF;
33586 --
33587 --
33588 ------------------------------------------------------------------------------------------------
33589 -- 4219869 Business Flow
33590 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
33591 -- Prior Entry. Currently, the following code is always generated.
33592 ------------------------------------------------------------------------------------------------
33593 XLA_AE_LINES_PKG.ValidateCurrentLine;
33594
33595 ------------------------------------------------------------------------------------
33596 -- 4219869 Business Flow
33597 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
33598 ------------------------------------------------------------------------------------
33599 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33600
33601 ----------------------------------------------------------------------------------
33602 -- 4219869 Business Flow
33603 -- Update journal entry status -- Need to generate this within IF <condition>
33604 ----------------------------------------------------------------------------------
33605 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33606 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
33607 ,p_balance_type_code => l_balance_type_code
33608 );
33609
33610 -------------------------------------------------------------------------------------------
33611 -- 4262811 - Generate the Accrual Reversal lines
33612 -------------------------------------------------------------------------------------------
33616 IF l_acc_rev_flag IS NULL THEN
33613 BEGIN
33614 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
33615 (g_array_event(p_event_id).array_value_num('header_index'));
33617 l_acc_rev_flag := 'N';
33618 END IF;
33619 EXCEPTION
33620 WHEN OTHERS THEN
33621 l_acc_rev_flag := 'N';
33622 END;
33623 --
33624 IF (l_acc_rev_flag = 'Y') THEN
33625
33626 -- 4645092 ------------------------------------------------------------------------------
33627 -- To allow MPA report to determine if it should generate report process
33628 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
33629 ------------------------------------------------------------------------------------------
33630
33631 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
33632 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
33633
33634 --
33635 -- Update the line information that should be overwritten
33636 --
33637 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
33638 p_header_num => 1);
33639 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
33640
33641 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
33642
33643 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
33644 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
33645 END IF;
33646
33647 --
33648 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
33649 --
33650 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
33651 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
33652 ELSE
33653 ---------------------------------------------------------------------------------------------------
33654 -- 4262811a Switch Sign
33655 ---------------------------------------------------------------------------------------------------
33656 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
33657 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33658 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33659 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33660 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33661 -- 5132302
33662 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
33663 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33664
33665 END IF;
33666
33667 -- 4955764
33668 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33669 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
33670
33671
33672 XLA_AE_LINES_PKG.ValidateCurrentLine;
33673 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33674
33675 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33676 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
33677 ,p_balance_type_code => l_balance_type_code);
33678
33679 END IF;
33680
33681 -----------------------------------------------------------------------------------------
33682 -- 4262811 Multiperiod Accounting
33683 -----------------------------------------------------------------------------------------
33684 -- No MPA option is assigned.
33685
33686
33687 END IF;
33688 --
33689
33690 --
33691 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33692 trace
33693 (p_msg => 'END of AcctLineType_79'
33694 ,p_level => C_LEVEL_PROCEDURE
33695 ,p_module => l_log_module);
33696 END IF;
33697 --
33698 EXCEPTION
33699 WHEN xla_exceptions_pkg.application_exception THEN
33700 RAISE;
33701 WHEN OTHERS THEN
33702 xla_exceptions_pkg.raise_message
33703 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_79');
33704 END AcctLineType_79;
33705 --
33706
33707 ---------------------------------------
33708 --
33709 -- PRIVATE FUNCTION
33710 -- AcctLineType_80
33711 --
33712 ---------------------------------------
33713 PROCEDURE AcctLineType_80 (
33714 p_application_id IN NUMBER
33715 ,p_event_id IN NUMBER
33716 ,p_calculate_acctd_flag IN VARCHAR2
33717 ,p_calculate_g_l_flag IN VARCHAR2
33718 ,p_actual_flag IN OUT VARCHAR2
33719 ,p_balance_type_code OUT VARCHAR2
33720 ,p_gain_or_loss_ref OUT VARCHAR2
33721
33722 --Cost CCID
33723 , p_source_4 IN NUMBER
33724 --Allow Account Override Flag
33725 , p_source_5 IN VARCHAR2
33726 --Adjustment Cost CCID
33727 , p_source_6 IN NUMBER
33728 --Cost Clearing CCID
33729 , p_source_7 IN NUMBER
33730 --Reversing Line Flag
33731 , p_source_23 IN VARCHAR2
33732 --Actual Upgrade Credit Accounting Class
33733 , p_source_24 IN VARCHAR2
33734 --Entered Raw Cost
33735 , p_source_25 IN NUMBER
33736 --Entered Currency Code
33737 , p_source_26 IN VARCHAR2
33738 --Accounted Raw Cost
33739 , p_source_27 IN NUMBER
33740 --Exchange Rate Date
33741 , p_source_28 IN DATE
33742 --Exchange Rate
33743 , p_source_29 IN NUMBER
33744 --Exchange Rate Type
33748 --Use Actuals Upgrade Attributes Flag
33745 , p_source_30 IN VARCHAR2
33746 --Actual Upgrade Debit Accounting Class
33747 , p_source_31 IN VARCHAR2
33749 , p_source_32 IN VARCHAR2
33750 --Expenditure Item ID
33751 , p_source_33 IN NUMBER
33752 --Cost Distribution Line Number
33753 , p_source_34 IN NUMBER
33754 --Line Type
33755 , p_source_35 IN VARCHAR2
33756 , p_source_35_meaning IN VARCHAR2
33757 --Reversed Line Number
33758 , p_source_36 IN NUMBER
33759 )
33760 IS
33761
33762 l_component_type VARCHAR2(80);
33763 l_component_code VARCHAR2(30);
33764 l_component_type_code VARCHAR2(1);
33765 l_component_appl_id INTEGER;
33766 l_amb_context_code VARCHAR2(30);
33767 l_entity_code VARCHAR2(30);
33768 l_event_class_code VARCHAR2(30);
33769 l_ae_header_id NUMBER;
33770 l_event_type_code VARCHAR2(30);
33771 l_line_definition_code VARCHAR2(30);
33772 l_line_definition_owner_code VARCHAR2(1);
33773 --
33774 -- adr variables
33775 l_segment VARCHAR2(30);
33776 l_ccid NUMBER;
33777 l_adr_transaction_coa_id NUMBER;
33778 l_adr_accounting_coa_id NUMBER;
33779 l_adr_flexfield_segment_code VARCHAR2(30);
33780 l_adr_flex_value_set_id NUMBER;
33781 l_adr_value_type_code VARCHAR2(30);
33782 l_adr_value_combination_id NUMBER;
33783 l_adr_value_segment_code VARCHAR2(30);
33784
33785 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
33786 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
33787 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
33788 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
33789
33790 -- 4262811 Variables ------------------------------------------------------------------------------------------
33791 l_entered_amt_idx NUMBER;
33792 l_accted_amt_idx NUMBER;
33793 l_acc_rev_flag VARCHAR2(1);
33794 l_accrual_line_num NUMBER;
33795 l_tmp_amt NUMBER;
33796 l_acc_rev_natural_side_code VARCHAR2(1);
33797
33798 l_num_entries NUMBER;
33799 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
33800 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
33801 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
33802 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
33803 l_recog_line_1 NUMBER;
33804 l_recog_line_2 NUMBER;
33805
33806 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
33807 l_bflow_applied_to_amt NUMBER; -- 5132302
33808 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
33809
33810 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
33811
33812 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
33813 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
33814
33815 ---------------------------------------------------------------------------------------------------------------
33816
33817
33818 --
33819 -- bulk performance
33820 --
33821 l_balance_type_code VARCHAR2(1);
33822 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
33823 l_log_module VARCHAR2(240);
33824
33825 --
33826 -- Upgrade strategy
33827 --
33828 l_actual_upg_option VARCHAR2(1);
33829 l_enc_upg_option VARCHAR2(1);
33830
33831 --
33832 BEGIN
33833 --
33834 IF g_log_enabled THEN
33835 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_80';
33836 END IF;
33837 --
33838 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33839
33840 trace
33841 (p_msg => 'BEGIN of AcctLineType_80'
33842 ,p_level => C_LEVEL_PROCEDURE
33843 ,p_module => l_log_module);
33844
33845 END IF;
33846 --
33847 l_component_type := 'AMB_JLT';
33848 l_component_code := 'PA_RAW_COST_ADJ_FED';
33849 l_component_type_code := 'S';
33850 l_component_appl_id := 275;
33851 l_amb_context_code := 'DEFAULT';
33852 l_entity_code := 'EXPENDITURES';
33853 l_event_class_code := 'WIP_COST_ADJ';
33854 l_event_type_code := 'WIP_COST_ADJ_ALL';
33855 l_line_definition_owner_code := 'S';
33856 l_line_definition_code := 'FV_PROJECTS_JLD';
33857 --
33858 l_balance_type_code := 'A';
33859 l_segment := NULL;
33860 l_ccid := NULL;
33861 l_adr_transaction_coa_id := NULL;
33862 l_adr_accounting_coa_id := NULL;
33863 l_adr_flexfield_segment_code := NULL;
33864 l_adr_flex_value_set_id := NULL;
33865 l_adr_value_type_code := NULL;
33866 l_adr_value_combination_id := NULL;
33867 l_adr_value_segment_code := NULL;
33868
33869 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
33870 l_bflow_class_code := ''; -- 4219869 Business Flow
33871 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
33872 l_budgetary_control_flag := 'N';
33873
33874 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33875 l_bflow_applied_to_amt := NULL; -- 5132302
33876 l_entered_amt_idx := NULL; -- 4262811
33877 l_accted_amt_idx := NULL; -- 4262811
33878 l_acc_rev_flag := NULL; -- 4262811
33879 l_accrual_line_num := NULL; -- 4262811
33880 l_tmp_amt := NULL; -- 4262811
33881 --
33882
33886 --
33883 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
33884 l_balance_type_code <> 'B' THEN
33885
33887 XLA_AE_LINES_PKG.SetNewLine;
33888
33889 p_balance_type_code := l_balance_type_code;
33890 -- set the flag so later we will know whether the gain loss line needs to be created
33891
33892 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
33893 p_actual_flag :='A';
33894 END IF;
33895
33896 --
33897 -- bulk performance
33898 --
33899 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
33900 p_header_num => 0); -- 4262811
33901 --
33902 -- set accounting line options
33903 --
33904 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
33905 p_natural_side_code => 'D'
33906 , p_gain_or_loss_flag => 'N'
33907 , p_gl_transfer_mode_code => 'S'
33908 , p_acct_entry_type_code => 'A'
33909 , p_switch_side_flag => 'Y'
33910 , p_merge_duplicate_code => 'N'
33911 );
33912 --
33913 l_acc_rev_natural_side_code := 'C'; -- 4262811
33914 --
33915 --
33916 -- set accounting line type info
33917 --
33918 xla_ae_lines_pkg.SetAcctLineType
33919 (p_component_type => l_component_type
33920 ,p_event_type_code => l_event_type_code
33921 ,p_line_definition_owner_code => l_line_definition_owner_code
33922 ,p_line_definition_code => l_line_definition_code
33923 ,p_accounting_line_code => l_component_code
33924 ,p_accounting_line_type_code => l_component_type_code
33925 ,p_accounting_line_appl_id => l_component_appl_id
33926 ,p_amb_context_code => l_amb_context_code
33927 ,p_entity_code => l_entity_code
33928 ,p_event_class_code => l_event_class_code);
33929 --
33930 -- set accounting class
33931 --
33932 xla_ae_lines_pkg.SetAcctClass(
33933 p_accounting_class_code => 'FEDERAL_PROJECT_COST'
33934 , p_ae_header_id => l_ae_header_id
33935 );
33936
33937 --
33938 -- set rounding class
33939 --
33940 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33941 'FEDERAL_PROJECT_COST';
33942
33943 --
33944 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33945 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33946 --
33947 -- bulk performance
33948 --
33949 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33950
33951 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33952 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33953
33954 -- 4955764
33955 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33956 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33957
33958 -- 4458381 Public Sector Enh
33959
33960 --
33961 -- set accounting attributes for the line type
33962 --
33963 l_entered_amt_idx := 22;
33964 l_accted_amt_idx := 27;
33965 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33966 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33967 l_rec_acct_attrs.array_char_value(1) := p_source_23;
33968 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
33969 l_rec_acct_attrs.array_char_value(2) := p_source_24;
33970 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
33971 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
33972 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
33973 l_rec_acct_attrs.array_num_value(4) := p_source_25;
33974 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
33975 l_rec_acct_attrs.array_char_value(5) := p_source_26;
33976 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
33977 l_rec_acct_attrs.array_num_value(6) := p_source_27;
33978 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
33979 l_rec_acct_attrs.array_date_value(7) := p_source_28;
33980 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
33981 l_rec_acct_attrs.array_num_value(8) := p_source_29;
33982 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
33983 l_rec_acct_attrs.array_char_value(9) := p_source_30;
33984 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
33985 l_rec_acct_attrs.array_char_value(10) := p_source_31;
33986 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
33987 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
33988 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
33989 l_rec_acct_attrs.array_num_value(12) := p_source_25;
33990 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
33991 l_rec_acct_attrs.array_char_value(13) := p_source_26;
33992 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
33993 l_rec_acct_attrs.array_num_value(14) := p_source_27;
33994 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
33995 l_rec_acct_attrs.array_date_value(15) := p_source_28;
33996 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
33997 l_rec_acct_attrs.array_num_value(16) := p_source_29;
33998 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
33999 l_rec_acct_attrs.array_char_value(17) := p_source_30;
34000 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
34004 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
34001 l_rec_acct_attrs.array_char_value(18) := p_source_32;
34002 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
34003 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
34005 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
34006 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
34007 l_rec_acct_attrs.array_char_value(21) := p_source_35;
34008 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
34009 l_rec_acct_attrs.array_num_value(22) := p_source_25;
34010 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
34011 l_rec_acct_attrs.array_char_value(23) := p_source_26;
34012 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
34013 l_rec_acct_attrs.array_date_value(24) := p_source_28;
34014 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
34015 l_rec_acct_attrs.array_num_value(25) := p_source_29;
34016 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
34017 l_rec_acct_attrs.array_char_value(26) := p_source_30;
34018 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
34019 l_rec_acct_attrs.array_num_value(27) := p_source_27;
34020 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
34021 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
34022 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
34023 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
34024 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
34025 l_rec_acct_attrs.array_char_value(30) := p_source_35;
34026
34027 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
34028 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
34029
34030 ---------------------------------------------------------------------------------------------------------------
34031 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
34032 ---------------------------------------------------------------------------------------------------------------
34033 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
34034
34035 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34036 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34037
34038 IF xla_accounting_cache_pkg.GetValueChar
34039 (p_source_code => 'LEDGER_CATEGORY_CODE'
34040 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
34041 AND l_bflow_method_code = 'PRIOR_ENTRY'
34042 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
34043 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
34044 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
34045 )
34046 THEN
34047 xla_ae_lines_pkg.BflowUpgEntry
34048 (p_business_method_code => l_bflow_method_code
34049 ,p_business_class_code => l_bflow_class_code
34050 ,p_balance_type => l_balance_type_code);
34051 ELSE
34052 NULL;
34053 -- No business flow processing for business flow method of NONE.
34054 END IF;
34055
34056 --
34057 -- call analytical criteria
34058 --
34059
34060 --
34061 -- call description
34062 --
34063 -- No description or it is inherited.
34064 --
34065 -- call ADRs
34066 -- Bug 4922099
34067 --
34068 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34069 (NVL(l_actual_upg_option, 'N') = 'O') OR
34070 (NVL(l_enc_upg_option, 'N') = 'O')
34071 )
34072 THEN
34073 NULL;
34074 --
34075 --
34076
34077 l_ccid := AcctDerRule_13(
34078 p_application_id => p_application_id
34079 , p_ae_header_id => l_ae_header_id
34080 , p_source_5 => p_source_5
34081 , p_source_6 => p_source_6
34082 , x_transaction_coa_id => l_adr_transaction_coa_id
34083 , x_accounting_coa_id => l_adr_accounting_coa_id
34084 , x_value_type_code => l_adr_value_type_code
34085 , p_side => 'NA'
34086 );
34087
34088 xla_ae_lines_pkg.set_ccid(
34089 p_code_combination_id => l_ccid
34090 , p_value_type_code => l_adr_value_type_code
34091 , p_transaction_coa_id => l_adr_transaction_coa_id
34092 , p_accounting_coa_id => l_adr_accounting_coa_id
34093 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
34094 , p_adr_type_code => 'S'
34095 , p_component_type => l_component_type
34096 , p_component_code => l_component_code
34097 , p_component_type_code => l_component_type_code
34098 , p_component_appl_id => l_component_appl_id
34099 , p_amb_context_code => l_amb_context_code
34100 , p_side => 'NA'
34101 );
34102
34103
34104 l_segment := AcctDerRule_4(
34105 p_application_id => p_application_id
34106 , p_ae_header_id => l_ae_header_id
34107 , x_transaction_coa_id => l_adr_transaction_coa_id
34108 , x_accounting_coa_id => l_adr_accounting_coa_id
34109 , x_flexfield_segment_code => l_adr_flexfield_segment_code
34110 , x_flex_value_set_id => l_adr_flex_value_set_id
34111 , x_value_type_code => l_adr_value_type_code
34112 , x_value_combination_id => l_adr_value_combination_id
34113 , x_value_segment_code => l_adr_value_segment_code
34114 , p_side => 'NA'
34118 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
34115 , p_override_seg_flag => 'Y'
34116 );
34117
34119
34120 xla_ae_lines_pkg.set_segment(
34121 p_to_segment_code => 'GL_ACCOUNT'
34122 , p_segment_value => l_segment
34123 , p_from_segment_code => l_adr_value_segment_code
34124 , p_from_combination_id => l_adr_value_combination_id
34125 , p_value_type_code => l_adr_value_type_code
34126 , p_transaction_coa_id => l_adr_transaction_coa_id
34127 , p_accounting_coa_id => l_adr_accounting_coa_id
34128 , p_flexfield_segment_code => l_adr_flexfield_segment_code
34129 , p_flex_value_set_id => l_adr_flex_value_set_id
34130 , p_adr_code => 'FV_461001_PROJECTS'
34131 , p_adr_type_code => 'S'
34132 , p_component_type => l_component_type
34133 , p_component_code => l_component_code
34134 , p_component_type_code => l_component_type_code
34135 , p_component_appl_id => l_component_appl_id
34136 , p_amb_context_code => l_amb_context_code
34137 , p_entity_code => 'EXPENDITURES'
34138 , p_event_class_code => 'WIP_COST_ADJ'
34139 , p_side => 'NA'
34140 );
34141
34142 END IF;
34143
34144 --
34145 --
34146 END IF;
34147 --
34148 -- Bug 4922099
34149 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
34150 (NVL(l_enc_upg_option, 'N') = 'O')
34151 ) AND
34152 (l_bflow_method_code = 'PRIOR_ENTRY')
34153 )
34154 THEN
34155 IF
34156 --
34157 1 = 2
34158 --
34159 THEN
34160 xla_accounting_err_pkg.build_message
34161 (p_appli_s_name => 'XLA'
34162 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34163 ,p_token_1 => 'LINE_NUMBER'
34164 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
34165 ,p_token_2 => 'LINE_TYPE_NAME'
34166 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
34167 l_component_type
34168 ,l_component_code
34169 ,l_component_type_code
34170 ,l_component_appl_id
34171 ,l_amb_context_code
34172 ,l_entity_code
34173 ,l_event_class_code
34174 )
34175 ,p_token_3 => 'OWNER'
34176 ,p_value_3 => xla_lookups_pkg.get_meaning(
34177 p_lookup_type => 'XLA_OWNER_TYPE'
34178 ,p_lookup_code => l_component_type_code
34179 )
34180 ,p_token_4 => 'PRODUCT_NAME'
34181 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
34182 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
34183 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
34184 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
34185 ,p_ae_header_id => NULL
34186 );
34187
34188 IF (C_LEVEL_ERROR>= g_log_level) THEN
34189 trace
34190 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34191 ,p_level => C_LEVEL_ERROR
34192 ,p_module => l_log_module);
34193 END IF;
34194 END IF;
34195 END IF;
34196 --
34197 --
34198 ------------------------------------------------------------------------------------------------
34199 -- 4219869 Business Flow
34200 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
34201 -- Prior Entry. Currently, the following code is always generated.
34202 ------------------------------------------------------------------------------------------------
34203 XLA_AE_LINES_PKG.ValidateCurrentLine;
34204
34205 ------------------------------------------------------------------------------------
34206 -- 4219869 Business Flow
34207 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
34208 ------------------------------------------------------------------------------------
34209 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34210
34211 ----------------------------------------------------------------------------------
34212 -- 4219869 Business Flow
34213 -- Update journal entry status -- Need to generate this within IF <condition>
34214 ----------------------------------------------------------------------------------
34215 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34216 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
34217 ,p_balance_type_code => l_balance_type_code
34218 );
34219
34223 BEGIN
34220 -------------------------------------------------------------------------------------------
34221 -- 4262811 - Generate the Accrual Reversal lines
34222 -------------------------------------------------------------------------------------------
34224 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
34225 (g_array_event(p_event_id).array_value_num('header_index'));
34226 IF l_acc_rev_flag IS NULL THEN
34227 l_acc_rev_flag := 'N';
34228 END IF;
34229 EXCEPTION
34230 WHEN OTHERS THEN
34231 l_acc_rev_flag := 'N';
34232 END;
34233 --
34234 IF (l_acc_rev_flag = 'Y') THEN
34235
34236 -- 4645092 ------------------------------------------------------------------------------
34237 -- To allow MPA report to determine if it should generate report process
34238 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
34239 ------------------------------------------------------------------------------------------
34240
34241 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
34242 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
34243
34244 --
34245 -- Update the line information that should be overwritten
34246 --
34247 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
34248 p_header_num => 1);
34249 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
34250
34251 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
34252
34253 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
34254 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
34255 END IF;
34256
34257 --
34258 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
34259 --
34260 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
34261 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
34262 ELSE
34263 ---------------------------------------------------------------------------------------------------
34264 -- 4262811a Switch Sign
34265 ---------------------------------------------------------------------------------------------------
34266 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
34267 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34268 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34269 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34270 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34271 -- 5132302
34272 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
34273 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34274
34275 END IF;
34276
34277 -- 4955764
34278 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34279 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
34280
34281
34282 XLA_AE_LINES_PKG.ValidateCurrentLine;
34283 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34284
34285 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34286 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
34287 ,p_balance_type_code => l_balance_type_code);
34288
34289 END IF;
34290
34291 -----------------------------------------------------------------------------------------
34292 -- 4262811 Multiperiod Accounting
34293 -----------------------------------------------------------------------------------------
34294 -- No MPA option is assigned.
34295
34296
34297 END IF;
34298 --
34299
34300 --
34301 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34302 trace
34303 (p_msg => 'END of AcctLineType_80'
34304 ,p_level => C_LEVEL_PROCEDURE
34305 ,p_module => l_log_module);
34306 END IF;
34307 --
34308 EXCEPTION
34309 WHEN xla_exceptions_pkg.application_exception THEN
34310 RAISE;
34311 WHEN OTHERS THEN
34312 xla_exceptions_pkg.raise_message
34313 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_80');
34314 END AcctLineType_80;
34315 --
34316
34317 ---------------------------------------
34318 --
34319 -- PRIVATE FUNCTION
34320 -- AcctLineType_81
34321 --
34322 ---------------------------------------
34323 PROCEDURE AcctLineType_81 (
34324 p_application_id IN NUMBER
34325 ,p_event_id IN NUMBER
34326 ,p_calculate_acctd_flag IN VARCHAR2
34327 ,p_calculate_g_l_flag IN VARCHAR2
34328 ,p_actual_flag IN OUT VARCHAR2
34329 ,p_balance_type_code OUT VARCHAR2
34330 ,p_gain_or_loss_ref OUT VARCHAR2
34331
34332 --Cost CCID
34333 , p_source_4 IN NUMBER
34334 --Allow Account Override Flag
34335 , p_source_5 IN VARCHAR2
34336 --Adjustment Cost CCID
34337 , p_source_6 IN NUMBER
34338 --Cost Clearing CCID
34339 , p_source_7 IN NUMBER
34340 --Reversing Line Flag
34341 , p_source_23 IN VARCHAR2
34342 --Actual Upgrade Credit Accounting Class
34343 , p_source_24 IN VARCHAR2
34344 --Entered Raw Cost
34345 , p_source_25 IN NUMBER
34346 --Entered Currency Code
34347 , p_source_26 IN VARCHAR2
34351 , p_source_28 IN DATE
34348 --Accounted Raw Cost
34349 , p_source_27 IN NUMBER
34350 --Exchange Rate Date
34352 --Exchange Rate
34353 , p_source_29 IN NUMBER
34354 --Exchange Rate Type
34355 , p_source_30 IN VARCHAR2
34356 --Actual Upgrade Debit Accounting Class
34357 , p_source_31 IN VARCHAR2
34358 --Use Actuals Upgrade Attributes Flag
34359 , p_source_32 IN VARCHAR2
34360 --Expenditure Item ID
34361 , p_source_33 IN NUMBER
34362 --Cost Distribution Line Number
34363 , p_source_34 IN NUMBER
34364 --Line Type
34365 , p_source_35 IN VARCHAR2
34366 , p_source_35_meaning IN VARCHAR2
34367 --Reversed Line Number
34368 , p_source_36 IN NUMBER
34369 )
34370 IS
34371
34372 l_component_type VARCHAR2(80);
34373 l_component_code VARCHAR2(30);
34374 l_component_type_code VARCHAR2(1);
34375 l_component_appl_id INTEGER;
34376 l_amb_context_code VARCHAR2(30);
34377 l_entity_code VARCHAR2(30);
34378 l_event_class_code VARCHAR2(30);
34379 l_ae_header_id NUMBER;
34380 l_event_type_code VARCHAR2(30);
34381 l_line_definition_code VARCHAR2(30);
34382 l_line_definition_owner_code VARCHAR2(1);
34383 --
34384 -- adr variables
34385 l_segment VARCHAR2(30);
34386 l_ccid NUMBER;
34387 l_adr_transaction_coa_id NUMBER;
34388 l_adr_accounting_coa_id NUMBER;
34389 l_adr_flexfield_segment_code VARCHAR2(30);
34390 l_adr_flex_value_set_id NUMBER;
34391 l_adr_value_type_code VARCHAR2(30);
34392 l_adr_value_combination_id NUMBER;
34393 l_adr_value_segment_code VARCHAR2(30);
34394
34395 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
34396 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
34397 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
34398 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
34399
34400 -- 4262811 Variables ------------------------------------------------------------------------------------------
34401 l_entered_amt_idx NUMBER;
34402 l_accted_amt_idx NUMBER;
34403 l_acc_rev_flag VARCHAR2(1);
34404 l_accrual_line_num NUMBER;
34405 l_tmp_amt NUMBER;
34406 l_acc_rev_natural_side_code VARCHAR2(1);
34407
34408 l_num_entries NUMBER;
34409 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
34410 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
34411 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
34412 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
34413 l_recog_line_1 NUMBER;
34414 l_recog_line_2 NUMBER;
34415
34416 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
34417 l_bflow_applied_to_amt NUMBER; -- 5132302
34418 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
34419
34420 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
34421
34422 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
34423 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
34424
34425 ---------------------------------------------------------------------------------------------------------------
34426
34427
34428 --
34429 -- bulk performance
34430 --
34431 l_balance_type_code VARCHAR2(1);
34432 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
34433 l_log_module VARCHAR2(240);
34434
34435 --
34436 -- Upgrade strategy
34437 --
34438 l_actual_upg_option VARCHAR2(1);
34439 l_enc_upg_option VARCHAR2(1);
34440
34441 --
34442 BEGIN
34443 --
34444 IF g_log_enabled THEN
34445 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_81';
34446 END IF;
34447 --
34448 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34449
34450 trace
34451 (p_msg => 'BEGIN of AcctLineType_81'
34452 ,p_level => C_LEVEL_PROCEDURE
34453 ,p_module => l_log_module);
34454
34455 END IF;
34456 --
34457 l_component_type := 'AMB_JLT';
34458 l_component_code := 'PA_RAW_COST_ADJ_FED';
34459 l_component_type_code := 'S';
34460 l_component_appl_id := 275;
34461 l_amb_context_code := 'DEFAULT';
34462 l_entity_code := 'EXPENDITURES';
34463 l_event_class_code := 'USG_COST_ADJ';
34464 l_event_type_code := 'USG_COST_ADJ_ALL';
34465 l_line_definition_owner_code := 'S';
34466 l_line_definition_code := 'FV_PROJECTS_JLD';
34467 --
34468 l_balance_type_code := 'A';
34469 l_segment := NULL;
34470 l_ccid := NULL;
34471 l_adr_transaction_coa_id := NULL;
34472 l_adr_accounting_coa_id := NULL;
34473 l_adr_flexfield_segment_code := NULL;
34474 l_adr_flex_value_set_id := NULL;
34475 l_adr_value_type_code := NULL;
34476 l_adr_value_combination_id := NULL;
34477 l_adr_value_segment_code := NULL;
34478
34479 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
34480 l_bflow_class_code := ''; -- 4219869 Business Flow
34481 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
34482 l_budgetary_control_flag := 'N';
34483
34484 l_bflow_applied_to_amt_idx := NULL; -- 5132302
34485 l_bflow_applied_to_amt := NULL; -- 5132302
34486 l_entered_amt_idx := NULL; -- 4262811
34490 l_tmp_amt := NULL; -- 4262811
34487 l_accted_amt_idx := NULL; -- 4262811
34488 l_acc_rev_flag := NULL; -- 4262811
34489 l_accrual_line_num := NULL; -- 4262811
34491 --
34492
34493 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
34494 l_balance_type_code <> 'B' THEN
34495
34496 --
34497 XLA_AE_LINES_PKG.SetNewLine;
34498
34499 p_balance_type_code := l_balance_type_code;
34500 -- set the flag so later we will know whether the gain loss line needs to be created
34501
34502 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
34503 p_actual_flag :='A';
34504 END IF;
34505
34506 --
34507 -- bulk performance
34508 --
34509 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
34510 p_header_num => 0); -- 4262811
34511 --
34512 -- set accounting line options
34513 --
34514 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
34515 p_natural_side_code => 'D'
34516 , p_gain_or_loss_flag => 'N'
34517 , p_gl_transfer_mode_code => 'S'
34518 , p_acct_entry_type_code => 'A'
34519 , p_switch_side_flag => 'Y'
34520 , p_merge_duplicate_code => 'N'
34521 );
34522 --
34523 l_acc_rev_natural_side_code := 'C'; -- 4262811
34524 --
34525 --
34526 -- set accounting line type info
34527 --
34528 xla_ae_lines_pkg.SetAcctLineType
34529 (p_component_type => l_component_type
34530 ,p_event_type_code => l_event_type_code
34531 ,p_line_definition_owner_code => l_line_definition_owner_code
34532 ,p_line_definition_code => l_line_definition_code
34533 ,p_accounting_line_code => l_component_code
34534 ,p_accounting_line_type_code => l_component_type_code
34535 ,p_accounting_line_appl_id => l_component_appl_id
34536 ,p_amb_context_code => l_amb_context_code
34537 ,p_entity_code => l_entity_code
34538 ,p_event_class_code => l_event_class_code);
34539 --
34540 -- set accounting class
34541 --
34542 xla_ae_lines_pkg.SetAcctClass(
34543 p_accounting_class_code => 'FEDERAL_PROJECT_COST'
34544 , p_ae_header_id => l_ae_header_id
34545 );
34546
34547 --
34548 -- set rounding class
34549 --
34550 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
34551 'FEDERAL_PROJECT_COST';
34552
34553 --
34554 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
34555 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
34556 --
34557 -- bulk performance
34558 --
34559 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
34560
34561 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
34562 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
34563
34564 -- 4955764
34565 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34566 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
34567
34568 -- 4458381 Public Sector Enh
34569
34570 --
34571 -- set accounting attributes for the line type
34572 --
34573 l_entered_amt_idx := 22;
34574 l_accted_amt_idx := 27;
34575 l_bflow_applied_to_amt_idx := NULL; -- 5132302
34576 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
34577 l_rec_acct_attrs.array_char_value(1) := p_source_23;
34578 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
34579 l_rec_acct_attrs.array_char_value(2) := p_source_24;
34580 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
34581 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
34582 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
34583 l_rec_acct_attrs.array_num_value(4) := p_source_25;
34584 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
34585 l_rec_acct_attrs.array_char_value(5) := p_source_26;
34586 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
34587 l_rec_acct_attrs.array_num_value(6) := p_source_27;
34588 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
34589 l_rec_acct_attrs.array_date_value(7) := p_source_28;
34590 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
34591 l_rec_acct_attrs.array_num_value(8) := p_source_29;
34592 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
34593 l_rec_acct_attrs.array_char_value(9) := p_source_30;
34594 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
34595 l_rec_acct_attrs.array_char_value(10) := p_source_31;
34596 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
34597 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
34598 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
34599 l_rec_acct_attrs.array_num_value(12) := p_source_25;
34600 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
34601 l_rec_acct_attrs.array_char_value(13) := p_source_26;
34602 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
34603 l_rec_acct_attrs.array_num_value(14) := p_source_27;
34604 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
34605 l_rec_acct_attrs.array_date_value(15) := p_source_28;
34606 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
34610 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
34607 l_rec_acct_attrs.array_num_value(16) := p_source_29;
34608 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
34609 l_rec_acct_attrs.array_char_value(17) := p_source_30;
34611 l_rec_acct_attrs.array_char_value(18) := p_source_32;
34612 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
34613 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
34614 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
34615 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
34616 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
34617 l_rec_acct_attrs.array_char_value(21) := p_source_35;
34618 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
34619 l_rec_acct_attrs.array_num_value(22) := p_source_25;
34620 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
34621 l_rec_acct_attrs.array_char_value(23) := p_source_26;
34622 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
34623 l_rec_acct_attrs.array_date_value(24) := p_source_28;
34624 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
34625 l_rec_acct_attrs.array_num_value(25) := p_source_29;
34626 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
34627 l_rec_acct_attrs.array_char_value(26) := p_source_30;
34628 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
34629 l_rec_acct_attrs.array_num_value(27) := p_source_27;
34630 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
34631 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
34632 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
34633 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
34634 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
34635 l_rec_acct_attrs.array_char_value(30) := p_source_35;
34636
34637 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
34638 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
34639
34640 ---------------------------------------------------------------------------------------------------------------
34641 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
34642 ---------------------------------------------------------------------------------------------------------------
34643 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
34644
34645 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34646 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34647
34648 IF xla_accounting_cache_pkg.GetValueChar
34649 (p_source_code => 'LEDGER_CATEGORY_CODE'
34650 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
34651 AND l_bflow_method_code = 'PRIOR_ENTRY'
34652 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
34653 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
34654 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
34655 )
34656 THEN
34657 xla_ae_lines_pkg.BflowUpgEntry
34658 (p_business_method_code => l_bflow_method_code
34659 ,p_business_class_code => l_bflow_class_code
34660 ,p_balance_type => l_balance_type_code);
34661 ELSE
34662 NULL;
34663 -- No business flow processing for business flow method of NONE.
34664 END IF;
34665
34666 --
34667 -- call analytical criteria
34668 --
34669
34670 --
34671 -- call description
34672 --
34673 -- No description or it is inherited.
34674 --
34675 -- call ADRs
34676 -- Bug 4922099
34677 --
34678 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34679 (NVL(l_actual_upg_option, 'N') = 'O') OR
34680 (NVL(l_enc_upg_option, 'N') = 'O')
34681 )
34682 THEN
34683 NULL;
34684 --
34685 --
34686
34687 l_ccid := AcctDerRule_13(
34688 p_application_id => p_application_id
34689 , p_ae_header_id => l_ae_header_id
34690 , p_source_5 => p_source_5
34691 , p_source_6 => p_source_6
34692 , x_transaction_coa_id => l_adr_transaction_coa_id
34693 , x_accounting_coa_id => l_adr_accounting_coa_id
34694 , x_value_type_code => l_adr_value_type_code
34695 , p_side => 'NA'
34696 );
34697
34698 xla_ae_lines_pkg.set_ccid(
34699 p_code_combination_id => l_ccid
34700 , p_value_type_code => l_adr_value_type_code
34701 , p_transaction_coa_id => l_adr_transaction_coa_id
34702 , p_accounting_coa_id => l_adr_accounting_coa_id
34703 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
34704 , p_adr_type_code => 'S'
34705 , p_component_type => l_component_type
34706 , p_component_code => l_component_code
34707 , p_component_type_code => l_component_type_code
34708 , p_component_appl_id => l_component_appl_id
34709 , p_amb_context_code => l_amb_context_code
34710 , p_side => 'NA'
34711 );
34712
34713
34714 l_segment := AcctDerRule_4(
34715 p_application_id => p_application_id
34716 , p_ae_header_id => l_ae_header_id
34717 , x_transaction_coa_id => l_adr_transaction_coa_id
34718 , x_accounting_coa_id => l_adr_accounting_coa_id
34719 , x_flexfield_segment_code => l_adr_flexfield_segment_code
34720 , x_flex_value_set_id => l_adr_flex_value_set_id
34724 , p_side => 'NA'
34721 , x_value_type_code => l_adr_value_type_code
34722 , x_value_combination_id => l_adr_value_combination_id
34723 , x_value_segment_code => l_adr_value_segment_code
34725 , p_override_seg_flag => 'Y'
34726 );
34727
34728 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
34729
34730 xla_ae_lines_pkg.set_segment(
34731 p_to_segment_code => 'GL_ACCOUNT'
34732 , p_segment_value => l_segment
34733 , p_from_segment_code => l_adr_value_segment_code
34734 , p_from_combination_id => l_adr_value_combination_id
34735 , p_value_type_code => l_adr_value_type_code
34736 , p_transaction_coa_id => l_adr_transaction_coa_id
34737 , p_accounting_coa_id => l_adr_accounting_coa_id
34738 , p_flexfield_segment_code => l_adr_flexfield_segment_code
34739 , p_flex_value_set_id => l_adr_flex_value_set_id
34740 , p_adr_code => 'FV_461001_PROJECTS'
34741 , p_adr_type_code => 'S'
34742 , p_component_type => l_component_type
34743 , p_component_code => l_component_code
34744 , p_component_type_code => l_component_type_code
34745 , p_component_appl_id => l_component_appl_id
34746 , p_amb_context_code => l_amb_context_code
34747 , p_entity_code => 'EXPENDITURES'
34748 , p_event_class_code => 'USG_COST_ADJ'
34749 , p_side => 'NA'
34750 );
34751
34752 END IF;
34753
34754 --
34755 --
34756 END IF;
34757 --
34758 -- Bug 4922099
34759 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
34760 (NVL(l_enc_upg_option, 'N') = 'O')
34761 ) AND
34762 (l_bflow_method_code = 'PRIOR_ENTRY')
34763 )
34764 THEN
34765 IF
34766 --
34767 1 = 2
34768 --
34769 THEN
34770 xla_accounting_err_pkg.build_message
34771 (p_appli_s_name => 'XLA'
34772 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34773 ,p_token_1 => 'LINE_NUMBER'
34774 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
34775 ,p_token_2 => 'LINE_TYPE_NAME'
34776 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
34777 l_component_type
34778 ,l_component_code
34779 ,l_component_type_code
34780 ,l_component_appl_id
34781 ,l_amb_context_code
34782 ,l_entity_code
34783 ,l_event_class_code
34784 )
34785 ,p_token_3 => 'OWNER'
34786 ,p_value_3 => xla_lookups_pkg.get_meaning(
34787 p_lookup_type => 'XLA_OWNER_TYPE'
34788 ,p_lookup_code => l_component_type_code
34789 )
34790 ,p_token_4 => 'PRODUCT_NAME'
34791 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
34792 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
34793 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
34794 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
34795 ,p_ae_header_id => NULL
34796 );
34797
34798 IF (C_LEVEL_ERROR>= g_log_level) THEN
34799 trace
34800 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34801 ,p_level => C_LEVEL_ERROR
34802 ,p_module => l_log_module);
34803 END IF;
34804 END IF;
34805 END IF;
34806 --
34807 --
34808 ------------------------------------------------------------------------------------------------
34809 -- 4219869 Business Flow
34810 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
34811 -- Prior Entry. Currently, the following code is always generated.
34812 ------------------------------------------------------------------------------------------------
34813 XLA_AE_LINES_PKG.ValidateCurrentLine;
34814
34815 ------------------------------------------------------------------------------------
34816 -- 4219869 Business Flow
34817 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
34818 ------------------------------------------------------------------------------------
34819 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34820
34821 ----------------------------------------------------------------------------------
34822 -- 4219869 Business Flow
34823 -- Update journal entry status -- Need to generate this within IF <condition>
34824 ----------------------------------------------------------------------------------
34828 );
34825 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34826 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
34827 ,p_balance_type_code => l_balance_type_code
34829
34830 -------------------------------------------------------------------------------------------
34831 -- 4262811 - Generate the Accrual Reversal lines
34832 -------------------------------------------------------------------------------------------
34833 BEGIN
34834 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
34835 (g_array_event(p_event_id).array_value_num('header_index'));
34836 IF l_acc_rev_flag IS NULL THEN
34837 l_acc_rev_flag := 'N';
34838 END IF;
34839 EXCEPTION
34840 WHEN OTHERS THEN
34841 l_acc_rev_flag := 'N';
34842 END;
34843 --
34844 IF (l_acc_rev_flag = 'Y') THEN
34845
34846 -- 4645092 ------------------------------------------------------------------------------
34847 -- To allow MPA report to determine if it should generate report process
34848 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
34849 ------------------------------------------------------------------------------------------
34850
34851 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
34852 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
34853
34854 --
34855 -- Update the line information that should be overwritten
34856 --
34857 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
34858 p_header_num => 1);
34859 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
34860
34861 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
34862
34863 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
34864 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
34865 END IF;
34866
34867 --
34868 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
34869 --
34870 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
34871 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
34872 ELSE
34873 ---------------------------------------------------------------------------------------------------
34874 -- 4262811a Switch Sign
34875 ---------------------------------------------------------------------------------------------------
34876 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
34877 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34878 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34879 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34880 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34881 -- 5132302
34882 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
34883 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34884
34885 END IF;
34886
34887 -- 4955764
34888 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34889 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
34890
34891
34892 XLA_AE_LINES_PKG.ValidateCurrentLine;
34893 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34894
34895 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34896 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
34897 ,p_balance_type_code => l_balance_type_code);
34898
34899 END IF;
34900
34901 -----------------------------------------------------------------------------------------
34902 -- 4262811 Multiperiod Accounting
34903 -----------------------------------------------------------------------------------------
34904 -- No MPA option is assigned.
34905
34906
34907 END IF;
34908 --
34909
34910 --
34911 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34912 trace
34913 (p_msg => 'END of AcctLineType_81'
34914 ,p_level => C_LEVEL_PROCEDURE
34915 ,p_module => l_log_module);
34916 END IF;
34917 --
34918 EXCEPTION
34919 WHEN xla_exceptions_pkg.application_exception THEN
34920 RAISE;
34921 WHEN OTHERS THEN
34922 xla_exceptions_pkg.raise_message
34923 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_81');
34924 END AcctLineType_81;
34925 --
34926
34927 ---------------------------------------
34928 --
34929 -- PRIVATE FUNCTION
34930 -- AcctLineType_82
34931 --
34932 ---------------------------------------
34933 PROCEDURE AcctLineType_82 (
34934 p_application_id IN NUMBER
34935 ,p_event_id IN NUMBER
34936 ,p_calculate_acctd_flag IN VARCHAR2
34937 ,p_calculate_g_l_flag IN VARCHAR2
34938 ,p_actual_flag IN OUT VARCHAR2
34939 ,p_balance_type_code OUT VARCHAR2
34940 ,p_gain_or_loss_ref OUT VARCHAR2
34941
34942 --Cost CCID
34943 , p_source_4 IN NUMBER
34944 --Allow Account Override Flag
34945 , p_source_5 IN VARCHAR2
34946 --Adjustment Cost CCID
34947 , p_source_6 IN NUMBER
34948 --Cost Clearing CCID
34949 , p_source_7 IN NUMBER
34950 --Reversing Line Flag
34951 , p_source_23 IN VARCHAR2
34955 , p_source_25 IN NUMBER
34952 --Actual Upgrade Credit Accounting Class
34953 , p_source_24 IN VARCHAR2
34954 --Entered Raw Cost
34956 --Entered Currency Code
34957 , p_source_26 IN VARCHAR2
34958 --Accounted Raw Cost
34959 , p_source_27 IN NUMBER
34960 --Exchange Rate Date
34961 , p_source_28 IN DATE
34962 --Exchange Rate
34963 , p_source_29 IN NUMBER
34964 --Exchange Rate Type
34965 , p_source_30 IN VARCHAR2
34966 --Actual Upgrade Debit Accounting Class
34967 , p_source_31 IN VARCHAR2
34968 --Use Actuals Upgrade Attributes Flag
34969 , p_source_32 IN VARCHAR2
34970 --Expenditure Item ID
34971 , p_source_33 IN NUMBER
34972 --Cost Distribution Line Number
34973 , p_source_34 IN NUMBER
34974 --Line Type
34975 , p_source_35 IN VARCHAR2
34976 , p_source_35_meaning IN VARCHAR2
34977 --Reversed Line Number
34978 , p_source_36 IN NUMBER
34979 )
34980 IS
34981
34982 l_component_type VARCHAR2(80);
34983 l_component_code VARCHAR2(30);
34984 l_component_type_code VARCHAR2(1);
34985 l_component_appl_id INTEGER;
34986 l_amb_context_code VARCHAR2(30);
34987 l_entity_code VARCHAR2(30);
34988 l_event_class_code VARCHAR2(30);
34989 l_ae_header_id NUMBER;
34990 l_event_type_code VARCHAR2(30);
34991 l_line_definition_code VARCHAR2(30);
34992 l_line_definition_owner_code VARCHAR2(1);
34993 --
34994 -- adr variables
34995 l_segment VARCHAR2(30);
34996 l_ccid NUMBER;
34997 l_adr_transaction_coa_id NUMBER;
34998 l_adr_accounting_coa_id NUMBER;
34999 l_adr_flexfield_segment_code VARCHAR2(30);
35000 l_adr_flex_value_set_id NUMBER;
35001 l_adr_value_type_code VARCHAR2(30);
35002 l_adr_value_combination_id NUMBER;
35003 l_adr_value_segment_code VARCHAR2(30);
35004
35005 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
35006 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
35007 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
35008 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
35009
35010 -- 4262811 Variables ------------------------------------------------------------------------------------------
35011 l_entered_amt_idx NUMBER;
35012 l_accted_amt_idx NUMBER;
35013 l_acc_rev_flag VARCHAR2(1);
35014 l_accrual_line_num NUMBER;
35015 l_tmp_amt NUMBER;
35016 l_acc_rev_natural_side_code VARCHAR2(1);
35017
35018 l_num_entries NUMBER;
35019 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
35020 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
35021 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
35022 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
35023 l_recog_line_1 NUMBER;
35024 l_recog_line_2 NUMBER;
35025
35026 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
35027 l_bflow_applied_to_amt NUMBER; -- 5132302
35028 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
35029
35030 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
35031
35032 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
35033 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
35034
35035 ---------------------------------------------------------------------------------------------------------------
35036
35037
35038 --
35039 -- bulk performance
35040 --
35041 l_balance_type_code VARCHAR2(1);
35042 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
35043 l_log_module VARCHAR2(240);
35044
35045 --
35046 -- Upgrade strategy
35047 --
35048 l_actual_upg_option VARCHAR2(1);
35049 l_enc_upg_option VARCHAR2(1);
35050
35051 --
35052 BEGIN
35053 --
35054 IF g_log_enabled THEN
35055 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_82';
35056 END IF;
35057 --
35058 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35059
35060 trace
35061 (p_msg => 'BEGIN of AcctLineType_82'
35062 ,p_level => C_LEVEL_PROCEDURE
35063 ,p_module => l_log_module);
35064
35065 END IF;
35066 --
35067 l_component_type := 'AMB_JLT';
35068 l_component_code := 'PA_RAW_COST_ADJ_FED';
35069 l_component_type_code := 'S';
35070 l_component_appl_id := 275;
35071 l_amb_context_code := 'DEFAULT';
35072 l_entity_code := 'EXPENDITURES';
35073 l_event_class_code := 'MISC_COST_ADJ';
35074 l_event_type_code := 'MISC_COST_ADJ_ALL';
35075 l_line_definition_owner_code := 'S';
35076 l_line_definition_code := 'FV_PROJECTS_JLD';
35077 --
35078 l_balance_type_code := 'A';
35079 l_segment := NULL;
35080 l_ccid := NULL;
35081 l_adr_transaction_coa_id := NULL;
35082 l_adr_accounting_coa_id := NULL;
35083 l_adr_flexfield_segment_code := NULL;
35084 l_adr_flex_value_set_id := NULL;
35085 l_adr_value_type_code := NULL;
35086 l_adr_value_combination_id := NULL;
35087 l_adr_value_segment_code := NULL;
35088
35089 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
35090 l_bflow_class_code := ''; -- 4219869 Business Flow
35091 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
35095 l_bflow_applied_to_amt := NULL; -- 5132302
35092 l_budgetary_control_flag := 'N';
35093
35094 l_bflow_applied_to_amt_idx := NULL; -- 5132302
35096 l_entered_amt_idx := NULL; -- 4262811
35097 l_accted_amt_idx := NULL; -- 4262811
35098 l_acc_rev_flag := NULL; -- 4262811
35099 l_accrual_line_num := NULL; -- 4262811
35100 l_tmp_amt := NULL; -- 4262811
35101 --
35102
35103 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
35104 l_balance_type_code <> 'B' THEN
35105
35106 --
35107 XLA_AE_LINES_PKG.SetNewLine;
35108
35109 p_balance_type_code := l_balance_type_code;
35110 -- set the flag so later we will know whether the gain loss line needs to be created
35111
35112 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
35113 p_actual_flag :='A';
35114 END IF;
35115
35116 --
35117 -- bulk performance
35118 --
35119 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
35120 p_header_num => 0); -- 4262811
35121 --
35122 -- set accounting line options
35123 --
35124 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
35125 p_natural_side_code => 'D'
35126 , p_gain_or_loss_flag => 'N'
35127 , p_gl_transfer_mode_code => 'S'
35128 , p_acct_entry_type_code => 'A'
35129 , p_switch_side_flag => 'Y'
35130 , p_merge_duplicate_code => 'N'
35131 );
35132 --
35133 l_acc_rev_natural_side_code := 'C'; -- 4262811
35134 --
35135 --
35136 -- set accounting line type info
35137 --
35138 xla_ae_lines_pkg.SetAcctLineType
35139 (p_component_type => l_component_type
35140 ,p_event_type_code => l_event_type_code
35141 ,p_line_definition_owner_code => l_line_definition_owner_code
35142 ,p_line_definition_code => l_line_definition_code
35143 ,p_accounting_line_code => l_component_code
35144 ,p_accounting_line_type_code => l_component_type_code
35145 ,p_accounting_line_appl_id => l_component_appl_id
35146 ,p_amb_context_code => l_amb_context_code
35147 ,p_entity_code => l_entity_code
35148 ,p_event_class_code => l_event_class_code);
35149 --
35150 -- set accounting class
35151 --
35152 xla_ae_lines_pkg.SetAcctClass(
35153 p_accounting_class_code => 'FEDERAL_PROJECT_COST'
35154 , p_ae_header_id => l_ae_header_id
35155 );
35156
35157 --
35158 -- set rounding class
35159 --
35160 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
35161 'FEDERAL_PROJECT_COST';
35162
35163 --
35164 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
35165 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
35166 --
35167 -- bulk performance
35168 --
35169 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
35170
35171 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
35172 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
35173
35174 -- 4955764
35175 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35176 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
35177
35178 -- 4458381 Public Sector Enh
35179
35180 --
35181 -- set accounting attributes for the line type
35182 --
35183 l_entered_amt_idx := 22;
35184 l_accted_amt_idx := 27;
35185 l_bflow_applied_to_amt_idx := NULL; -- 5132302
35186 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
35187 l_rec_acct_attrs.array_char_value(1) := p_source_23;
35188 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
35189 l_rec_acct_attrs.array_char_value(2) := p_source_24;
35190 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
35191 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
35192 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
35193 l_rec_acct_attrs.array_num_value(4) := p_source_25;
35194 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
35195 l_rec_acct_attrs.array_char_value(5) := p_source_26;
35196 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
35197 l_rec_acct_attrs.array_num_value(6) := p_source_27;
35198 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
35199 l_rec_acct_attrs.array_date_value(7) := p_source_28;
35200 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
35201 l_rec_acct_attrs.array_num_value(8) := p_source_29;
35202 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
35203 l_rec_acct_attrs.array_char_value(9) := p_source_30;
35204 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
35205 l_rec_acct_attrs.array_char_value(10) := p_source_31;
35206 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
35207 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
35208 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
35209 l_rec_acct_attrs.array_num_value(12) := p_source_25;
35210 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
35211 l_rec_acct_attrs.array_char_value(13) := p_source_26;
35212 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
35216 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
35213 l_rec_acct_attrs.array_num_value(14) := p_source_27;
35214 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
35215 l_rec_acct_attrs.array_date_value(15) := p_source_28;
35217 l_rec_acct_attrs.array_num_value(16) := p_source_29;
35218 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
35219 l_rec_acct_attrs.array_char_value(17) := p_source_30;
35220 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
35221 l_rec_acct_attrs.array_char_value(18) := p_source_32;
35222 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
35223 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
35224 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
35225 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
35226 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
35227 l_rec_acct_attrs.array_char_value(21) := p_source_35;
35228 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
35229 l_rec_acct_attrs.array_num_value(22) := p_source_25;
35230 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
35231 l_rec_acct_attrs.array_char_value(23) := p_source_26;
35232 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
35233 l_rec_acct_attrs.array_date_value(24) := p_source_28;
35234 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
35235 l_rec_acct_attrs.array_num_value(25) := p_source_29;
35236 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
35237 l_rec_acct_attrs.array_char_value(26) := p_source_30;
35238 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
35239 l_rec_acct_attrs.array_num_value(27) := p_source_27;
35240 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
35241 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
35242 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
35243 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
35244 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
35245 l_rec_acct_attrs.array_char_value(30) := p_source_35;
35246
35247 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
35248 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
35249
35250 ---------------------------------------------------------------------------------------------------------------
35251 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
35252 ---------------------------------------------------------------------------------------------------------------
35253 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
35254
35255 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35256 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35257
35258 IF xla_accounting_cache_pkg.GetValueChar
35259 (p_source_code => 'LEDGER_CATEGORY_CODE'
35260 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
35261 AND l_bflow_method_code = 'PRIOR_ENTRY'
35262 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
35263 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
35264 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
35265 )
35266 THEN
35267 xla_ae_lines_pkg.BflowUpgEntry
35268 (p_business_method_code => l_bflow_method_code
35269 ,p_business_class_code => l_bflow_class_code
35270 ,p_balance_type => l_balance_type_code);
35271 ELSE
35272 NULL;
35273 -- No business flow processing for business flow method of NONE.
35274 END IF;
35275
35276 --
35277 -- call analytical criteria
35278 --
35279
35280 --
35281 -- call description
35282 --
35283 -- No description or it is inherited.
35284 --
35285 -- call ADRs
35286 -- Bug 4922099
35287 --
35288 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35289 (NVL(l_actual_upg_option, 'N') = 'O') OR
35290 (NVL(l_enc_upg_option, 'N') = 'O')
35291 )
35292 THEN
35293 NULL;
35294 --
35295 --
35296
35297 l_ccid := AcctDerRule_13(
35298 p_application_id => p_application_id
35299 , p_ae_header_id => l_ae_header_id
35300 , p_source_5 => p_source_5
35301 , p_source_6 => p_source_6
35302 , x_transaction_coa_id => l_adr_transaction_coa_id
35303 , x_accounting_coa_id => l_adr_accounting_coa_id
35304 , x_value_type_code => l_adr_value_type_code
35305 , p_side => 'NA'
35306 );
35307
35308 xla_ae_lines_pkg.set_ccid(
35309 p_code_combination_id => l_ccid
35310 , p_value_type_code => l_adr_value_type_code
35311 , p_transaction_coa_id => l_adr_transaction_coa_id
35312 , p_accounting_coa_id => l_adr_accounting_coa_id
35313 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
35314 , p_adr_type_code => 'S'
35315 , p_component_type => l_component_type
35316 , p_component_code => l_component_code
35317 , p_component_type_code => l_component_type_code
35318 , p_component_appl_id => l_component_appl_id
35319 , p_amb_context_code => l_amb_context_code
35320 , p_side => 'NA'
35321 );
35322
35323
35324 l_segment := AcctDerRule_4(
35325 p_application_id => p_application_id
35326 , p_ae_header_id => l_ae_header_id
35330 , x_flex_value_set_id => l_adr_flex_value_set_id
35327 , x_transaction_coa_id => l_adr_transaction_coa_id
35328 , x_accounting_coa_id => l_adr_accounting_coa_id
35329 , x_flexfield_segment_code => l_adr_flexfield_segment_code
35331 , x_value_type_code => l_adr_value_type_code
35332 , x_value_combination_id => l_adr_value_combination_id
35333 , x_value_segment_code => l_adr_value_segment_code
35334 , p_side => 'NA'
35335 , p_override_seg_flag => 'Y'
35336 );
35337
35338 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
35339
35340 xla_ae_lines_pkg.set_segment(
35341 p_to_segment_code => 'GL_ACCOUNT'
35342 , p_segment_value => l_segment
35343 , p_from_segment_code => l_adr_value_segment_code
35344 , p_from_combination_id => l_adr_value_combination_id
35345 , p_value_type_code => l_adr_value_type_code
35346 , p_transaction_coa_id => l_adr_transaction_coa_id
35347 , p_accounting_coa_id => l_adr_accounting_coa_id
35348 , p_flexfield_segment_code => l_adr_flexfield_segment_code
35349 , p_flex_value_set_id => l_adr_flex_value_set_id
35350 , p_adr_code => 'FV_461001_PROJECTS'
35351 , p_adr_type_code => 'S'
35352 , p_component_type => l_component_type
35353 , p_component_code => l_component_code
35354 , p_component_type_code => l_component_type_code
35355 , p_component_appl_id => l_component_appl_id
35356 , p_amb_context_code => l_amb_context_code
35357 , p_entity_code => 'EXPENDITURES'
35358 , p_event_class_code => 'MISC_COST_ADJ'
35359 , p_side => 'NA'
35360 );
35361
35362 END IF;
35363
35364 --
35365 --
35366 END IF;
35367 --
35368 -- Bug 4922099
35369 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
35370 (NVL(l_enc_upg_option, 'N') = 'O')
35371 ) AND
35372 (l_bflow_method_code = 'PRIOR_ENTRY')
35373 )
35374 THEN
35375 IF
35376 --
35377 1 = 2
35378 --
35379 THEN
35380 xla_accounting_err_pkg.build_message
35381 (p_appli_s_name => 'XLA'
35382 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35383 ,p_token_1 => 'LINE_NUMBER'
35384 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
35385 ,p_token_2 => 'LINE_TYPE_NAME'
35386 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
35387 l_component_type
35388 ,l_component_code
35389 ,l_component_type_code
35390 ,l_component_appl_id
35391 ,l_amb_context_code
35392 ,l_entity_code
35393 ,l_event_class_code
35394 )
35395 ,p_token_3 => 'OWNER'
35396 ,p_value_3 => xla_lookups_pkg.get_meaning(
35397 p_lookup_type => 'XLA_OWNER_TYPE'
35398 ,p_lookup_code => l_component_type_code
35399 )
35400 ,p_token_4 => 'PRODUCT_NAME'
35401 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
35402 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
35403 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
35404 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
35405 ,p_ae_header_id => NULL
35406 );
35407
35408 IF (C_LEVEL_ERROR>= g_log_level) THEN
35409 trace
35410 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35411 ,p_level => C_LEVEL_ERROR
35412 ,p_module => l_log_module);
35413 END IF;
35414 END IF;
35415 END IF;
35416 --
35417 --
35418 ------------------------------------------------------------------------------------------------
35419 -- 4219869 Business Flow
35420 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
35421 -- Prior Entry. Currently, the following code is always generated.
35422 ------------------------------------------------------------------------------------------------
35423 XLA_AE_LINES_PKG.ValidateCurrentLine;
35424
35425 ------------------------------------------------------------------------------------
35426 -- 4219869 Business Flow
35427 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
35428 ------------------------------------------------------------------------------------
35429 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35430
35434 ----------------------------------------------------------------------------------
35431 ----------------------------------------------------------------------------------
35432 -- 4219869 Business Flow
35433 -- Update journal entry status -- Need to generate this within IF <condition>
35435 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35436 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
35437 ,p_balance_type_code => l_balance_type_code
35438 );
35439
35440 -------------------------------------------------------------------------------------------
35441 -- 4262811 - Generate the Accrual Reversal lines
35442 -------------------------------------------------------------------------------------------
35443 BEGIN
35444 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
35445 (g_array_event(p_event_id).array_value_num('header_index'));
35446 IF l_acc_rev_flag IS NULL THEN
35447 l_acc_rev_flag := 'N';
35448 END IF;
35449 EXCEPTION
35450 WHEN OTHERS THEN
35451 l_acc_rev_flag := 'N';
35452 END;
35453 --
35454 IF (l_acc_rev_flag = 'Y') THEN
35455
35456 -- 4645092 ------------------------------------------------------------------------------
35457 -- To allow MPA report to determine if it should generate report process
35458 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
35459 ------------------------------------------------------------------------------------------
35460
35461 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
35462 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
35463
35464 --
35465 -- Update the line information that should be overwritten
35466 --
35467 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
35468 p_header_num => 1);
35469 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
35470
35471 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
35472
35473 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
35474 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
35475 END IF;
35476
35477 --
35478 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
35479 --
35480 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
35481 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
35482 ELSE
35483 ---------------------------------------------------------------------------------------------------
35484 -- 4262811a Switch Sign
35485 ---------------------------------------------------------------------------------------------------
35486 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
35487 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35488 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35489 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35490 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35491 -- 5132302
35492 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
35493 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35494
35495 END IF;
35496
35497 -- 4955764
35498 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35499 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
35500
35501
35502 XLA_AE_LINES_PKG.ValidateCurrentLine;
35503 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35504
35505 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35506 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
35507 ,p_balance_type_code => l_balance_type_code);
35508
35509 END IF;
35510
35511 -----------------------------------------------------------------------------------------
35512 -- 4262811 Multiperiod Accounting
35513 -----------------------------------------------------------------------------------------
35514 -- No MPA option is assigned.
35515
35516
35517 END IF;
35518 --
35519
35520 --
35521 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35522 trace
35523 (p_msg => 'END of AcctLineType_82'
35524 ,p_level => C_LEVEL_PROCEDURE
35525 ,p_module => l_log_module);
35526 END IF;
35527 --
35528 EXCEPTION
35529 WHEN xla_exceptions_pkg.application_exception THEN
35530 RAISE;
35531 WHEN OTHERS THEN
35532 xla_exceptions_pkg.raise_message
35533 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_82');
35534 END AcctLineType_82;
35535 --
35536
35537 ---------------------------------------
35538 --
35539 -- PRIVATE FUNCTION
35540 -- AcctLineType_83
35541 --
35542 ---------------------------------------
35543 PROCEDURE AcctLineType_83 (
35544 p_application_id IN NUMBER
35545 ,p_event_id IN NUMBER
35546 ,p_calculate_acctd_flag IN VARCHAR2
35547 ,p_calculate_g_l_flag IN VARCHAR2
35548 ,p_actual_flag IN OUT VARCHAR2
35549 ,p_balance_type_code OUT VARCHAR2
35550 ,p_gain_or_loss_ref OUT VARCHAR2
35551
35552 --PO Distribution ID
35553 , p_source_2 IN NUMBER
35554 --Cost CCID
35558 --Adjustment Cost CCID
35555 , p_source_4 IN NUMBER
35556 --Allow Account Override Flag
35557 , p_source_5 IN VARCHAR2
35559 , p_source_6 IN NUMBER
35560 --Cost Clearing CCID
35561 , p_source_7 IN NUMBER
35562 --Exchange Rate Variance Flag
35563 , p_source_22 IN VARCHAR2
35564 --Reversing Line Flag
35565 , p_source_23 IN VARCHAR2
35566 --Actual Upgrade Credit Accounting Class
35567 , p_source_24 IN VARCHAR2
35568 --Entered Raw Cost
35569 , p_source_25 IN NUMBER
35570 --Entered Currency Code
35571 , p_source_26 IN VARCHAR2
35572 --Accounted Raw Cost
35573 , p_source_27 IN NUMBER
35574 --Exchange Rate Date
35575 , p_source_28 IN DATE
35576 --Exchange Rate
35577 , p_source_29 IN NUMBER
35578 --Exchange Rate Type
35579 , p_source_30 IN VARCHAR2
35580 --Actual Upgrade Debit Accounting Class
35581 , p_source_31 IN VARCHAR2
35582 --Use Actuals Upgrade Attributes Flag
35583 , p_source_32 IN VARCHAR2
35584 --Expenditure Item ID
35585 , p_source_33 IN NUMBER
35586 --Cost Distribution Line Number
35587 , p_source_34 IN NUMBER
35588 --Line Type
35589 , p_source_35 IN VARCHAR2
35590 , p_source_35_meaning IN VARCHAR2
35591 --Reversed Line Number
35592 , p_source_36 IN NUMBER
35593 )
35594 IS
35595
35596 l_component_type VARCHAR2(80);
35597 l_component_code VARCHAR2(30);
35598 l_component_type_code VARCHAR2(1);
35599 l_component_appl_id INTEGER;
35600 l_amb_context_code VARCHAR2(30);
35601 l_entity_code VARCHAR2(30);
35602 l_event_class_code VARCHAR2(30);
35603 l_ae_header_id NUMBER;
35604 l_event_type_code VARCHAR2(30);
35605 l_line_definition_code VARCHAR2(30);
35606 l_line_definition_owner_code VARCHAR2(1);
35607 --
35608 -- adr variables
35609 l_segment VARCHAR2(30);
35610 l_ccid NUMBER;
35611 l_adr_transaction_coa_id NUMBER;
35612 l_adr_accounting_coa_id NUMBER;
35613 l_adr_flexfield_segment_code VARCHAR2(30);
35614 l_adr_flex_value_set_id NUMBER;
35615 l_adr_value_type_code VARCHAR2(30);
35616 l_adr_value_combination_id NUMBER;
35617 l_adr_value_segment_code VARCHAR2(30);
35618
35619 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
35620 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
35621 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
35622 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
35623
35624 -- 4262811 Variables ------------------------------------------------------------------------------------------
35625 l_entered_amt_idx NUMBER;
35626 l_accted_amt_idx NUMBER;
35627 l_acc_rev_flag VARCHAR2(1);
35628 l_accrual_line_num NUMBER;
35629 l_tmp_amt NUMBER;
35630 l_acc_rev_natural_side_code VARCHAR2(1);
35631
35632 l_num_entries NUMBER;
35633 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
35634 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
35635 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
35636 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
35637 l_recog_line_1 NUMBER;
35638 l_recog_line_2 NUMBER;
35639
35640 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
35641 l_bflow_applied_to_amt NUMBER; -- 5132302
35642 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
35643
35644 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
35645
35646 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
35647 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
35648
35649 ---------------------------------------------------------------------------------------------------------------
35650
35651
35652 --
35653 -- bulk performance
35654 --
35655 l_balance_type_code VARCHAR2(1);
35656 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
35657 l_log_module VARCHAR2(240);
35658
35659 --
35660 -- Upgrade strategy
35661 --
35662 l_actual_upg_option VARCHAR2(1);
35663 l_enc_upg_option VARCHAR2(1);
35664
35665 --
35666 BEGIN
35667 --
35668 IF g_log_enabled THEN
35669 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_83';
35670 END IF;
35671 --
35672 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35673
35674 trace
35675 (p_msg => 'BEGIN of AcctLineType_83'
35676 ,p_level => C_LEVEL_PROCEDURE
35677 ,p_module => l_log_module);
35678
35679 END IF;
35680 --
35681 l_component_type := 'AMB_JLT';
35682 l_component_code := 'PA_RAW_COST_ADJ_FED';
35683 l_component_type_code := 'S';
35684 l_component_appl_id := 275;
35685 l_amb_context_code := 'DEFAULT';
35686 l_entity_code := 'EXPENDITURES';
35687 l_event_class_code := 'SUPPLIER_COST_ADJ';
35688 l_event_type_code := 'SUPPLIER_COST_ADJ_ALL';
35689 l_line_definition_owner_code := 'S';
35690 l_line_definition_code := 'FV_PROJECTS_JLD';
35691 --
35692 l_balance_type_code := 'A';
35693 l_segment := NULL;
35694 l_ccid := NULL;
35695 l_adr_transaction_coa_id := NULL;
35696 l_adr_accounting_coa_id := NULL;
35697 l_adr_flexfield_segment_code := NULL;
35701 l_adr_value_segment_code := NULL;
35698 l_adr_flex_value_set_id := NULL;
35699 l_adr_value_type_code := NULL;
35700 l_adr_value_combination_id := NULL;
35702
35703 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
35704 l_bflow_class_code := ''; -- 4219869 Business Flow
35705 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
35706 l_budgetary_control_flag := 'N';
35707
35708 l_bflow_applied_to_amt_idx := NULL; -- 5132302
35709 l_bflow_applied_to_amt := NULL; -- 5132302
35710 l_entered_amt_idx := NULL; -- 4262811
35711 l_accted_amt_idx := NULL; -- 4262811
35712 l_acc_rev_flag := NULL; -- 4262811
35713 l_accrual_line_num := NULL; -- 4262811
35714 l_tmp_amt := NULL; -- 4262811
35715 --
35716
35717 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
35718 l_balance_type_code <> 'B' THEN
35719 IF NVL(p_source_22,'
35720 ') = 'N'
35721 THEN
35722
35723 --
35724 XLA_AE_LINES_PKG.SetNewLine;
35725
35726 p_balance_type_code := l_balance_type_code;
35727 -- set the flag so later we will know whether the gain loss line needs to be created
35728
35729 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
35730 p_actual_flag :='A';
35731 END IF;
35732
35733 --
35734 -- bulk performance
35735 --
35736 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
35737 p_header_num => 0); -- 4262811
35738 --
35739 -- set accounting line options
35740 --
35741 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
35742 p_natural_side_code => 'D'
35743 , p_gain_or_loss_flag => 'N'
35744 , p_gl_transfer_mode_code => 'S'
35745 , p_acct_entry_type_code => 'A'
35746 , p_switch_side_flag => 'Y'
35747 , p_merge_duplicate_code => 'N'
35748 );
35749 --
35750 l_acc_rev_natural_side_code := 'C'; -- 4262811
35751 --
35752 --
35753 -- set accounting line type info
35754 --
35755 xla_ae_lines_pkg.SetAcctLineType
35756 (p_component_type => l_component_type
35757 ,p_event_type_code => l_event_type_code
35758 ,p_line_definition_owner_code => l_line_definition_owner_code
35759 ,p_line_definition_code => l_line_definition_code
35760 ,p_accounting_line_code => l_component_code
35761 ,p_accounting_line_type_code => l_component_type_code
35762 ,p_accounting_line_appl_id => l_component_appl_id
35763 ,p_amb_context_code => l_amb_context_code
35764 ,p_entity_code => l_entity_code
35765 ,p_event_class_code => l_event_class_code);
35766 --
35767 -- set accounting class
35768 --
35769 xla_ae_lines_pkg.SetAcctClass(
35770 p_accounting_class_code => 'FEDERAL_PROJECT_COST'
35771 , p_ae_header_id => l_ae_header_id
35772 );
35773
35774 --
35775 -- set rounding class
35776 --
35777 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
35778 'FEDERAL_PROJECT_COST';
35779
35780 --
35781 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
35782 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
35783 --
35784 -- bulk performance
35785 --
35786 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
35787
35788 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
35789 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
35790
35791 -- 4955764
35792 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35793 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
35794
35795 -- 4458381 Public Sector Enh
35796
35797 --
35798 -- set accounting attributes for the line type
35799 --
35800 l_entered_amt_idx := 22;
35801 l_accted_amt_idx := 27;
35802 l_bflow_applied_to_amt_idx := NULL; -- 5132302
35803 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
35804 l_rec_acct_attrs.array_char_value(1) := p_source_23;
35805 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
35806 l_rec_acct_attrs.array_char_value(2) := p_source_24;
35807 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
35808 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
35809 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
35810 l_rec_acct_attrs.array_num_value(4) := p_source_25;
35811 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
35812 l_rec_acct_attrs.array_char_value(5) := p_source_26;
35813 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
35814 l_rec_acct_attrs.array_num_value(6) := p_source_27;
35815 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
35816 l_rec_acct_attrs.array_date_value(7) := p_source_28;
35817 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
35818 l_rec_acct_attrs.array_num_value(8) := p_source_29;
35819 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
35820 l_rec_acct_attrs.array_char_value(9) := p_source_30;
35821 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
35822 l_rec_acct_attrs.array_char_value(10) := p_source_31;
35823 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
35827 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
35824 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
35825 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
35826 l_rec_acct_attrs.array_num_value(12) := p_source_25;
35828 l_rec_acct_attrs.array_char_value(13) := p_source_26;
35829 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
35830 l_rec_acct_attrs.array_num_value(14) := p_source_27;
35831 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
35832 l_rec_acct_attrs.array_date_value(15) := p_source_28;
35833 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
35834 l_rec_acct_attrs.array_num_value(16) := p_source_29;
35835 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
35836 l_rec_acct_attrs.array_char_value(17) := p_source_30;
35837 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
35838 l_rec_acct_attrs.array_char_value(18) := p_source_32;
35839 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
35840 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
35841 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
35842 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
35843 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
35844 l_rec_acct_attrs.array_char_value(21) := p_source_35;
35845 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
35846 l_rec_acct_attrs.array_num_value(22) := p_source_25;
35847 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
35848 l_rec_acct_attrs.array_char_value(23) := p_source_26;
35849 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
35850 l_rec_acct_attrs.array_date_value(24) := p_source_28;
35851 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
35852 l_rec_acct_attrs.array_num_value(25) := p_source_29;
35853 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
35854 l_rec_acct_attrs.array_char_value(26) := p_source_30;
35855 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
35856 l_rec_acct_attrs.array_num_value(27) := p_source_27;
35857 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
35858 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
35859 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
35860 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
35861 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
35862 l_rec_acct_attrs.array_char_value(30) := p_source_35;
35863
35864 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
35865 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
35866
35867 ---------------------------------------------------------------------------------------------------------------
35868 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
35869 ---------------------------------------------------------------------------------------------------------------
35870 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
35871
35872 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35873 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35874
35875 IF xla_accounting_cache_pkg.GetValueChar
35876 (p_source_code => 'LEDGER_CATEGORY_CODE'
35877 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
35878 AND l_bflow_method_code = 'PRIOR_ENTRY'
35879 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
35880 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
35881 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
35882 )
35883 THEN
35884 xla_ae_lines_pkg.BflowUpgEntry
35885 (p_business_method_code => l_bflow_method_code
35886 ,p_business_class_code => l_bflow_class_code
35887 ,p_balance_type => l_balance_type_code);
35888 ELSE
35889 NULL;
35890 -- No business flow processing for business flow method of NONE.
35891 END IF;
35892
35893 --
35894 -- call analytical criteria
35895 --
35896
35897 --
35898 -- call description
35899 --
35900 -- No description or it is inherited.
35901 --
35902 -- call ADRs
35903 -- Bug 4922099
35904 --
35905 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35906 (NVL(l_actual_upg_option, 'N') = 'O') OR
35907 (NVL(l_enc_upg_option, 'N') = 'O')
35908 )
35909 THEN
35910 NULL;
35911 --
35912 --
35913
35914 l_ccid := AcctDerRule_13(
35915 p_application_id => p_application_id
35916 , p_ae_header_id => l_ae_header_id
35917 , p_source_5 => p_source_5
35918 , p_source_6 => p_source_6
35919 , x_transaction_coa_id => l_adr_transaction_coa_id
35920 , x_accounting_coa_id => l_adr_accounting_coa_id
35921 , x_value_type_code => l_adr_value_type_code
35922 , p_side => 'NA'
35923 );
35924
35925 xla_ae_lines_pkg.set_ccid(
35926 p_code_combination_id => l_ccid
35927 , p_value_type_code => l_adr_value_type_code
35928 , p_transaction_coa_id => l_adr_transaction_coa_id
35929 , p_accounting_coa_id => l_adr_accounting_coa_id
35930 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
35931 , p_adr_type_code => 'S'
35932 , p_component_type => l_component_type
35933 , p_component_code => l_component_code
35937 , p_side => 'NA'
35934 , p_component_type_code => l_component_type_code
35935 , p_component_appl_id => l_component_appl_id
35936 , p_amb_context_code => l_amb_context_code
35938 );
35939
35940
35941 l_segment := AcctDerRule_6(
35942 p_application_id => p_application_id
35943 , p_ae_header_id => l_ae_header_id
35944 , p_source_2 => p_source_2
35945 , x_transaction_coa_id => l_adr_transaction_coa_id
35946 , x_accounting_coa_id => l_adr_accounting_coa_id
35947 , x_flexfield_segment_code => l_adr_flexfield_segment_code
35948 , x_flex_value_set_id => l_adr_flex_value_set_id
35949 , x_value_type_code => l_adr_value_type_code
35950 , x_value_combination_id => l_adr_value_combination_id
35951 , x_value_segment_code => l_adr_value_segment_code
35952 , p_side => 'NA'
35953 , p_override_seg_flag => 'Y'
35954 );
35955
35956 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
35957
35958 xla_ae_lines_pkg.set_segment(
35959 p_to_segment_code => 'GL_ACCOUNT'
35960 , p_segment_value => l_segment
35961 , p_from_segment_code => l_adr_value_segment_code
35962 , p_from_combination_id => l_adr_value_combination_id
35963 , p_value_type_code => l_adr_value_type_code
35964 , p_transaction_coa_id => l_adr_transaction_coa_id
35965 , p_accounting_coa_id => l_adr_accounting_coa_id
35966 , p_flexfield_segment_code => l_adr_flexfield_segment_code
35967 , p_flex_value_set_id => l_adr_flex_value_set_id
35968 , p_adr_code => 'FV_4XXX_PROJECTS'
35969 , p_adr_type_code => 'S'
35970 , p_component_type => l_component_type
35971 , p_component_code => l_component_code
35972 , p_component_type_code => l_component_type_code
35973 , p_component_appl_id => l_component_appl_id
35974 , p_amb_context_code => l_amb_context_code
35975 , p_entity_code => 'EXPENDITURES'
35976 , p_event_class_code => 'SUPPLIER_COST_ADJ'
35977 , p_side => 'NA'
35978 );
35979
35980 END IF;
35981
35982 --
35983 --
35984 END IF;
35985 --
35986 -- Bug 4922099
35987 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
35988 (NVL(l_enc_upg_option, 'N') = 'O')
35989 ) AND
35990 (l_bflow_method_code = 'PRIOR_ENTRY')
35991 )
35992 THEN
35993 IF
35994 --
35995 1 = 2
35996 --
35997 THEN
35998 xla_accounting_err_pkg.build_message
35999 (p_appli_s_name => 'XLA'
36000 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36001 ,p_token_1 => 'LINE_NUMBER'
36002 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
36003 ,p_token_2 => 'LINE_TYPE_NAME'
36004 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
36005 l_component_type
36006 ,l_component_code
36007 ,l_component_type_code
36008 ,l_component_appl_id
36009 ,l_amb_context_code
36010 ,l_entity_code
36011 ,l_event_class_code
36012 )
36013 ,p_token_3 => 'OWNER'
36014 ,p_value_3 => xla_lookups_pkg.get_meaning(
36015 p_lookup_type => 'XLA_OWNER_TYPE'
36016 ,p_lookup_code => l_component_type_code
36017 )
36018 ,p_token_4 => 'PRODUCT_NAME'
36019 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
36020 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
36021 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
36022 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
36023 ,p_ae_header_id => NULL
36024 );
36025
36026 IF (C_LEVEL_ERROR>= g_log_level) THEN
36027 trace
36028 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36029 ,p_level => C_LEVEL_ERROR
36030 ,p_module => l_log_module);
36031 END IF;
36032 END IF;
36033 END IF;
36034 --
36035 --
36036 ------------------------------------------------------------------------------------------------
36037 -- 4219869 Business Flow
36038 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
36039 -- Prior Entry. Currently, the following code is always generated.
36043 ------------------------------------------------------------------------------------
36040 ------------------------------------------------------------------------------------------------
36041 XLA_AE_LINES_PKG.ValidateCurrentLine;
36042
36044 -- 4219869 Business Flow
36045 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
36046 ------------------------------------------------------------------------------------
36047 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36048
36049 ----------------------------------------------------------------------------------
36050 -- 4219869 Business Flow
36051 -- Update journal entry status -- Need to generate this within IF <condition>
36052 ----------------------------------------------------------------------------------
36053 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36054 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
36055 ,p_balance_type_code => l_balance_type_code
36056 );
36057
36058 -------------------------------------------------------------------------------------------
36059 -- 4262811 - Generate the Accrual Reversal lines
36060 -------------------------------------------------------------------------------------------
36061 BEGIN
36062 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
36063 (g_array_event(p_event_id).array_value_num('header_index'));
36064 IF l_acc_rev_flag IS NULL THEN
36065 l_acc_rev_flag := 'N';
36066 END IF;
36067 EXCEPTION
36068 WHEN OTHERS THEN
36069 l_acc_rev_flag := 'N';
36070 END;
36071 --
36072 IF (l_acc_rev_flag = 'Y') THEN
36073
36074 -- 4645092 ------------------------------------------------------------------------------
36075 -- To allow MPA report to determine if it should generate report process
36076 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
36077 ------------------------------------------------------------------------------------------
36078
36079 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
36080 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
36081
36082 --
36083 -- Update the line information that should be overwritten
36084 --
36085 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
36086 p_header_num => 1);
36087 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
36088
36089 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
36090
36091 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
36092 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
36093 END IF;
36094
36095 --
36096 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
36097 --
36098 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
36099 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
36100 ELSE
36101 ---------------------------------------------------------------------------------------------------
36102 -- 4262811a Switch Sign
36103 ---------------------------------------------------------------------------------------------------
36104 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
36105 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36106 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36107 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36108 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36109 -- 5132302
36110 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
36111 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36112
36113 END IF;
36114
36115 -- 4955764
36116 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36117 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
36118
36119
36120 XLA_AE_LINES_PKG.ValidateCurrentLine;
36121 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36122
36123 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36124 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
36125 ,p_balance_type_code => l_balance_type_code);
36126
36127 END IF;
36128
36129 -----------------------------------------------------------------------------------------
36130 -- 4262811 Multiperiod Accounting
36131 -----------------------------------------------------------------------------------------
36132 -- No MPA option is assigned.
36133
36134
36135 END IF;
36136 END IF;
36137 --
36138
36139 --
36140 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36141 trace
36142 (p_msg => 'END of AcctLineType_83'
36143 ,p_level => C_LEVEL_PROCEDURE
36144 ,p_module => l_log_module);
36145 END IF;
36146 --
36147 EXCEPTION
36148 WHEN xla_exceptions_pkg.application_exception THEN
36149 RAISE;
36150 WHEN OTHERS THEN
36151 xla_exceptions_pkg.raise_message
36152 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_83');
36153 END AcctLineType_83;
36154 --
36155
36156 ---------------------------------------
36157 --
36158 -- PRIVATE FUNCTION
36162 PROCEDURE AcctLineType_84 (
36159 -- AcctLineType_84
36160 --
36161 ---------------------------------------
36163 p_application_id IN NUMBER
36164 ,p_event_id IN NUMBER
36165 ,p_calculate_acctd_flag IN VARCHAR2
36166 ,p_calculate_g_l_flag IN VARCHAR2
36167 ,p_actual_flag IN OUT VARCHAR2
36168 ,p_balance_type_code OUT VARCHAR2
36169 ,p_gain_or_loss_ref OUT VARCHAR2
36170
36171 --Cost CCID
36172 , p_source_4 IN NUMBER
36173 --Allow Account Override Flag
36174 , p_source_5 IN VARCHAR2
36175 --Adjustment Cost CCID
36176 , p_source_6 IN NUMBER
36177 --Cost Clearing CCID
36178 , p_source_7 IN NUMBER
36179 --Reversing Line Flag
36180 , p_source_23 IN VARCHAR2
36181 --Actual Upgrade Credit Accounting Class
36182 , p_source_24 IN VARCHAR2
36183 --Entered Raw Cost
36184 , p_source_25 IN NUMBER
36185 --Entered Currency Code
36186 , p_source_26 IN VARCHAR2
36187 --Accounted Raw Cost
36188 , p_source_27 IN NUMBER
36189 --Exchange Rate Date
36190 , p_source_28 IN DATE
36191 --Exchange Rate
36192 , p_source_29 IN NUMBER
36193 --Exchange Rate Type
36194 , p_source_30 IN VARCHAR2
36195 --Actual Upgrade Debit Accounting Class
36196 , p_source_31 IN VARCHAR2
36197 --Use Actuals Upgrade Attributes Flag
36198 , p_source_32 IN VARCHAR2
36199 --Expenditure Item ID
36200 , p_source_33 IN NUMBER
36201 --Cost Distribution Line Number
36202 , p_source_34 IN NUMBER
36203 --Line Type
36204 , p_source_35 IN VARCHAR2
36205 , p_source_35_meaning IN VARCHAR2
36206 --Reversed Line Number
36207 , p_source_36 IN NUMBER
36208 )
36209 IS
36210
36211 l_component_type VARCHAR2(80);
36212 l_component_code VARCHAR2(30);
36213 l_component_type_code VARCHAR2(1);
36214 l_component_appl_id INTEGER;
36215 l_amb_context_code VARCHAR2(30);
36216 l_entity_code VARCHAR2(30);
36217 l_event_class_code VARCHAR2(30);
36218 l_ae_header_id NUMBER;
36219 l_event_type_code VARCHAR2(30);
36220 l_line_definition_code VARCHAR2(30);
36221 l_line_definition_owner_code VARCHAR2(1);
36222 --
36223 -- adr variables
36224 l_segment VARCHAR2(30);
36225 l_ccid NUMBER;
36226 l_adr_transaction_coa_id NUMBER;
36227 l_adr_accounting_coa_id NUMBER;
36228 l_adr_flexfield_segment_code VARCHAR2(30);
36229 l_adr_flex_value_set_id NUMBER;
36230 l_adr_value_type_code VARCHAR2(30);
36231 l_adr_value_combination_id NUMBER;
36232 l_adr_value_segment_code VARCHAR2(30);
36233
36234 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
36235 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
36236 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
36237 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
36238
36239 -- 4262811 Variables ------------------------------------------------------------------------------------------
36240 l_entered_amt_idx NUMBER;
36241 l_accted_amt_idx NUMBER;
36242 l_acc_rev_flag VARCHAR2(1);
36243 l_accrual_line_num NUMBER;
36244 l_tmp_amt NUMBER;
36245 l_acc_rev_natural_side_code VARCHAR2(1);
36246
36247 l_num_entries NUMBER;
36248 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
36249 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
36250 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
36251 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
36252 l_recog_line_1 NUMBER;
36253 l_recog_line_2 NUMBER;
36254
36255 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
36256 l_bflow_applied_to_amt NUMBER; -- 5132302
36257 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
36258
36259 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
36260
36261 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
36262 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
36263
36264 ---------------------------------------------------------------------------------------------------------------
36265
36266
36267 --
36268 -- bulk performance
36269 --
36270 l_balance_type_code VARCHAR2(1);
36271 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
36272 l_log_module VARCHAR2(240);
36273
36274 --
36275 -- Upgrade strategy
36276 --
36277 l_actual_upg_option VARCHAR2(1);
36278 l_enc_upg_option VARCHAR2(1);
36279
36280 --
36281 BEGIN
36282 --
36283 IF g_log_enabled THEN
36284 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_84';
36285 END IF;
36286 --
36287 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36288
36289 trace
36290 (p_msg => 'BEGIN of AcctLineType_84'
36291 ,p_level => C_LEVEL_PROCEDURE
36292 ,p_module => l_log_module);
36293
36294 END IF;
36295 --
36296 l_component_type := 'AMB_JLT';
36297 l_component_code := 'PA_RAW_COST_ADJ_FED';
36298 l_component_type_code := 'S';
36299 l_component_appl_id := 275;
36300 l_amb_context_code := 'DEFAULT';
36301 l_entity_code := 'EXPENDITURES';
36302 l_event_class_code := 'LABOR_COST_ADJ';
36306 --
36303 l_event_type_code := 'LABOR_COST_ADJ_ALL';
36304 l_line_definition_owner_code := 'S';
36305 l_line_definition_code := 'FV_PROJECTS_JLD';
36307 l_balance_type_code := 'A';
36308 l_segment := NULL;
36309 l_ccid := NULL;
36310 l_adr_transaction_coa_id := NULL;
36311 l_adr_accounting_coa_id := NULL;
36312 l_adr_flexfield_segment_code := NULL;
36313 l_adr_flex_value_set_id := NULL;
36314 l_adr_value_type_code := NULL;
36315 l_adr_value_combination_id := NULL;
36316 l_adr_value_segment_code := NULL;
36317
36318 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
36319 l_bflow_class_code := ''; -- 4219869 Business Flow
36320 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
36321 l_budgetary_control_flag := 'N';
36322
36323 l_bflow_applied_to_amt_idx := NULL; -- 5132302
36324 l_bflow_applied_to_amt := NULL; -- 5132302
36325 l_entered_amt_idx := NULL; -- 4262811
36326 l_accted_amt_idx := NULL; -- 4262811
36327 l_acc_rev_flag := NULL; -- 4262811
36328 l_accrual_line_num := NULL; -- 4262811
36329 l_tmp_amt := NULL; -- 4262811
36330 --
36331
36332 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
36333 l_balance_type_code <> 'B' THEN
36334
36335 --
36336 XLA_AE_LINES_PKG.SetNewLine;
36337
36338 p_balance_type_code := l_balance_type_code;
36339 -- set the flag so later we will know whether the gain loss line needs to be created
36340
36341 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
36342 p_actual_flag :='A';
36343 END IF;
36344
36345 --
36346 -- bulk performance
36347 --
36348 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
36349 p_header_num => 0); -- 4262811
36350 --
36351 -- set accounting line options
36352 --
36353 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
36354 p_natural_side_code => 'D'
36355 , p_gain_or_loss_flag => 'N'
36356 , p_gl_transfer_mode_code => 'S'
36357 , p_acct_entry_type_code => 'A'
36358 , p_switch_side_flag => 'Y'
36359 , p_merge_duplicate_code => 'N'
36360 );
36361 --
36362 l_acc_rev_natural_side_code := 'C'; -- 4262811
36363 --
36364 --
36365 -- set accounting line type info
36366 --
36367 xla_ae_lines_pkg.SetAcctLineType
36368 (p_component_type => l_component_type
36369 ,p_event_type_code => l_event_type_code
36370 ,p_line_definition_owner_code => l_line_definition_owner_code
36371 ,p_line_definition_code => l_line_definition_code
36372 ,p_accounting_line_code => l_component_code
36373 ,p_accounting_line_type_code => l_component_type_code
36374 ,p_accounting_line_appl_id => l_component_appl_id
36375 ,p_amb_context_code => l_amb_context_code
36376 ,p_entity_code => l_entity_code
36377 ,p_event_class_code => l_event_class_code);
36378 --
36379 -- set accounting class
36380 --
36381 xla_ae_lines_pkg.SetAcctClass(
36382 p_accounting_class_code => 'FEDERAL_PROJECT_COST'
36383 , p_ae_header_id => l_ae_header_id
36384 );
36385
36386 --
36387 -- set rounding class
36388 --
36389 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
36390 'FEDERAL_PROJECT_COST';
36391
36392 --
36393 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
36394 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
36395 --
36396 -- bulk performance
36397 --
36398 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
36399
36400 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
36401 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
36402
36403 -- 4955764
36404 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36405 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
36406
36407 -- 4458381 Public Sector Enh
36408
36409 --
36410 -- set accounting attributes for the line type
36411 --
36412 l_entered_amt_idx := 22;
36413 l_accted_amt_idx := 27;
36414 l_bflow_applied_to_amt_idx := NULL; -- 5132302
36415 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
36416 l_rec_acct_attrs.array_char_value(1) := p_source_23;
36417 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
36418 l_rec_acct_attrs.array_char_value(2) := p_source_24;
36419 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
36420 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
36421 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
36422 l_rec_acct_attrs.array_num_value(4) := p_source_25;
36423 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
36424 l_rec_acct_attrs.array_char_value(5) := p_source_26;
36425 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
36426 l_rec_acct_attrs.array_num_value(6) := p_source_27;
36427 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
36428 l_rec_acct_attrs.array_date_value(7) := p_source_28;
36429 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
36433 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
36430 l_rec_acct_attrs.array_num_value(8) := p_source_29;
36431 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
36432 l_rec_acct_attrs.array_char_value(9) := p_source_30;
36434 l_rec_acct_attrs.array_char_value(10) := p_source_31;
36435 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
36436 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
36437 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
36438 l_rec_acct_attrs.array_num_value(12) := p_source_25;
36439 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
36440 l_rec_acct_attrs.array_char_value(13) := p_source_26;
36441 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
36442 l_rec_acct_attrs.array_num_value(14) := p_source_27;
36443 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
36444 l_rec_acct_attrs.array_date_value(15) := p_source_28;
36445 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
36446 l_rec_acct_attrs.array_num_value(16) := p_source_29;
36447 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
36448 l_rec_acct_attrs.array_char_value(17) := p_source_30;
36449 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
36450 l_rec_acct_attrs.array_char_value(18) := p_source_32;
36451 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
36452 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
36453 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
36454 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
36455 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
36456 l_rec_acct_attrs.array_char_value(21) := p_source_35;
36457 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
36458 l_rec_acct_attrs.array_num_value(22) := p_source_25;
36459 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
36460 l_rec_acct_attrs.array_char_value(23) := p_source_26;
36461 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
36462 l_rec_acct_attrs.array_date_value(24) := p_source_28;
36463 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
36464 l_rec_acct_attrs.array_num_value(25) := p_source_29;
36465 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
36466 l_rec_acct_attrs.array_char_value(26) := p_source_30;
36467 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
36468 l_rec_acct_attrs.array_num_value(27) := p_source_27;
36469 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
36470 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
36471 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
36472 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
36473 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
36474 l_rec_acct_attrs.array_char_value(30) := p_source_35;
36475
36476 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
36477 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
36478
36479 ---------------------------------------------------------------------------------------------------------------
36480 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
36481 ---------------------------------------------------------------------------------------------------------------
36482 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
36483
36484 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36485 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36486
36487 IF xla_accounting_cache_pkg.GetValueChar
36488 (p_source_code => 'LEDGER_CATEGORY_CODE'
36489 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
36490 AND l_bflow_method_code = 'PRIOR_ENTRY'
36491 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
36492 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
36493 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
36494 )
36495 THEN
36496 xla_ae_lines_pkg.BflowUpgEntry
36497 (p_business_method_code => l_bflow_method_code
36498 ,p_business_class_code => l_bflow_class_code
36499 ,p_balance_type => l_balance_type_code);
36500 ELSE
36501 NULL;
36502 -- No business flow processing for business flow method of NONE.
36503 END IF;
36504
36505 --
36506 -- call analytical criteria
36507 --
36508
36509 --
36510 -- call description
36511 --
36512 -- No description or it is inherited.
36513 --
36514 -- call ADRs
36515 -- Bug 4922099
36516 --
36517 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36518 (NVL(l_actual_upg_option, 'N') = 'O') OR
36519 (NVL(l_enc_upg_option, 'N') = 'O')
36520 )
36521 THEN
36522 NULL;
36523 --
36524 --
36525
36526 l_ccid := AcctDerRule_13(
36527 p_application_id => p_application_id
36528 , p_ae_header_id => l_ae_header_id
36529 , p_source_5 => p_source_5
36530 , p_source_6 => p_source_6
36531 , x_transaction_coa_id => l_adr_transaction_coa_id
36532 , x_accounting_coa_id => l_adr_accounting_coa_id
36533 , x_value_type_code => l_adr_value_type_code
36534 , p_side => 'NA'
36535 );
36536
36537 xla_ae_lines_pkg.set_ccid(
36538 p_code_combination_id => l_ccid
36539 , p_value_type_code => l_adr_value_type_code
36543 , p_adr_type_code => 'S'
36540 , p_transaction_coa_id => l_adr_transaction_coa_id
36541 , p_accounting_coa_id => l_adr_accounting_coa_id
36542 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
36544 , p_component_type => l_component_type
36545 , p_component_code => l_component_code
36546 , p_component_type_code => l_component_type_code
36547 , p_component_appl_id => l_component_appl_id
36548 , p_amb_context_code => l_amb_context_code
36549 , p_side => 'NA'
36550 );
36551
36552
36553 l_segment := AcctDerRule_4(
36554 p_application_id => p_application_id
36555 , p_ae_header_id => l_ae_header_id
36556 , x_transaction_coa_id => l_adr_transaction_coa_id
36557 , x_accounting_coa_id => l_adr_accounting_coa_id
36558 , x_flexfield_segment_code => l_adr_flexfield_segment_code
36559 , x_flex_value_set_id => l_adr_flex_value_set_id
36560 , x_value_type_code => l_adr_value_type_code
36561 , x_value_combination_id => l_adr_value_combination_id
36562 , x_value_segment_code => l_adr_value_segment_code
36563 , p_side => 'NA'
36564 , p_override_seg_flag => 'Y'
36565 );
36566
36567 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
36568
36569 xla_ae_lines_pkg.set_segment(
36570 p_to_segment_code => 'GL_ACCOUNT'
36571 , p_segment_value => l_segment
36572 , p_from_segment_code => l_adr_value_segment_code
36573 , p_from_combination_id => l_adr_value_combination_id
36574 , p_value_type_code => l_adr_value_type_code
36575 , p_transaction_coa_id => l_adr_transaction_coa_id
36576 , p_accounting_coa_id => l_adr_accounting_coa_id
36577 , p_flexfield_segment_code => l_adr_flexfield_segment_code
36578 , p_flex_value_set_id => l_adr_flex_value_set_id
36579 , p_adr_code => 'FV_461001_PROJECTS'
36580 , p_adr_type_code => 'S'
36581 , p_component_type => l_component_type
36582 , p_component_code => l_component_code
36583 , p_component_type_code => l_component_type_code
36584 , p_component_appl_id => l_component_appl_id
36585 , p_amb_context_code => l_amb_context_code
36586 , p_entity_code => 'EXPENDITURES'
36587 , p_event_class_code => 'LABOR_COST_ADJ'
36588 , p_side => 'NA'
36589 );
36590
36591 END IF;
36592
36593 --
36594 --
36595 END IF;
36596 --
36597 -- Bug 4922099
36598 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
36599 (NVL(l_enc_upg_option, 'N') = 'O')
36600 ) AND
36601 (l_bflow_method_code = 'PRIOR_ENTRY')
36602 )
36603 THEN
36604 IF
36605 --
36606 1 = 2
36607 --
36608 THEN
36609 xla_accounting_err_pkg.build_message
36610 (p_appli_s_name => 'XLA'
36611 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36612 ,p_token_1 => 'LINE_NUMBER'
36613 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
36614 ,p_token_2 => 'LINE_TYPE_NAME'
36615 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
36616 l_component_type
36617 ,l_component_code
36618 ,l_component_type_code
36619 ,l_component_appl_id
36620 ,l_amb_context_code
36621 ,l_entity_code
36622 ,l_event_class_code
36623 )
36624 ,p_token_3 => 'OWNER'
36625 ,p_value_3 => xla_lookups_pkg.get_meaning(
36626 p_lookup_type => 'XLA_OWNER_TYPE'
36627 ,p_lookup_code => l_component_type_code
36628 )
36629 ,p_token_4 => 'PRODUCT_NAME'
36630 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
36631 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
36632 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
36633 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
36634 ,p_ae_header_id => NULL
36635 );
36636
36637 IF (C_LEVEL_ERROR>= g_log_level) THEN
36638 trace
36639 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36640 ,p_level => C_LEVEL_ERROR
36641 ,p_module => l_log_module);
36642 END IF;
36643 END IF;
36644 END IF;
36645 --
36646 --
36650 -- Prior Entry. Currently, the following code is always generated.
36647 ------------------------------------------------------------------------------------------------
36648 -- 4219869 Business Flow
36649 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
36651 ------------------------------------------------------------------------------------------------
36652 XLA_AE_LINES_PKG.ValidateCurrentLine;
36653
36654 ------------------------------------------------------------------------------------
36655 -- 4219869 Business Flow
36656 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
36657 ------------------------------------------------------------------------------------
36658 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36659
36660 ----------------------------------------------------------------------------------
36661 -- 4219869 Business Flow
36662 -- Update journal entry status -- Need to generate this within IF <condition>
36663 ----------------------------------------------------------------------------------
36664 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36665 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
36666 ,p_balance_type_code => l_balance_type_code
36667 );
36668
36669 -------------------------------------------------------------------------------------------
36670 -- 4262811 - Generate the Accrual Reversal lines
36671 -------------------------------------------------------------------------------------------
36672 BEGIN
36673 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
36674 (g_array_event(p_event_id).array_value_num('header_index'));
36675 IF l_acc_rev_flag IS NULL THEN
36676 l_acc_rev_flag := 'N';
36677 END IF;
36678 EXCEPTION
36679 WHEN OTHERS THEN
36680 l_acc_rev_flag := 'N';
36681 END;
36682 --
36683 IF (l_acc_rev_flag = 'Y') THEN
36684
36685 -- 4645092 ------------------------------------------------------------------------------
36686 -- To allow MPA report to determine if it should generate report process
36687 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
36688 ------------------------------------------------------------------------------------------
36689
36690 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
36691 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
36692
36693 --
36694 -- Update the line information that should be overwritten
36695 --
36696 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
36697 p_header_num => 1);
36698 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
36699
36700 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
36701
36702 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
36703 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
36704 END IF;
36705
36706 --
36707 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
36708 --
36709 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
36710 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
36711 ELSE
36712 ---------------------------------------------------------------------------------------------------
36713 -- 4262811a Switch Sign
36714 ---------------------------------------------------------------------------------------------------
36715 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
36716 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36717 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36718 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36719 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36720 -- 5132302
36721 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
36722 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36723
36724 END IF;
36725
36726 -- 4955764
36727 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36728 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
36729
36730
36731 XLA_AE_LINES_PKG.ValidateCurrentLine;
36732 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36733
36734 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36735 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
36736 ,p_balance_type_code => l_balance_type_code);
36737
36738 END IF;
36739
36740 -----------------------------------------------------------------------------------------
36741 -- 4262811 Multiperiod Accounting
36742 -----------------------------------------------------------------------------------------
36743 -- No MPA option is assigned.
36744
36745
36746 END IF;
36747 --
36748
36749 --
36750 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36751 trace
36752 (p_msg => 'END of AcctLineType_84'
36753 ,p_level => C_LEVEL_PROCEDURE
36754 ,p_module => l_log_module);
36755 END IF;
36756 --
36757 EXCEPTION
36758 WHEN xla_exceptions_pkg.application_exception THEN
36759 RAISE;
36760 WHEN OTHERS THEN
36764 --
36761 xla_exceptions_pkg.raise_message
36762 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_84');
36763 END AcctLineType_84;
36765
36766 ---------------------------------------
36767 --
36768 -- PRIVATE FUNCTION
36769 -- AcctLineType_85
36770 --
36771 ---------------------------------------
36772 PROCEDURE AcctLineType_85 (
36773 p_application_id IN NUMBER
36774 ,p_event_id IN NUMBER
36775 ,p_calculate_acctd_flag IN VARCHAR2
36776 ,p_calculate_g_l_flag IN VARCHAR2
36777 ,p_actual_flag IN OUT VARCHAR2
36778 ,p_balance_type_code OUT VARCHAR2
36779 ,p_gain_or_loss_ref OUT VARCHAR2
36780
36781 --Cost CCID
36782 , p_source_4 IN NUMBER
36783 --Allow Account Override Flag
36784 , p_source_5 IN VARCHAR2
36785 --Cost Clearing CCID
36786 , p_source_7 IN NUMBER
36787 --Adjustment Cost Clearing CCID
36788 , p_source_8 IN NUMBER
36789 --Reversing Line Flag
36790 , p_source_23 IN VARCHAR2
36791 --Actual Upgrade Credit Accounting Class
36792 , p_source_24 IN VARCHAR2
36793 --Entered Raw Cost
36794 , p_source_25 IN NUMBER
36795 --Entered Currency Code
36796 , p_source_26 IN VARCHAR2
36797 --Accounted Raw Cost
36798 , p_source_27 IN NUMBER
36799 --Exchange Rate Date
36800 , p_source_28 IN DATE
36801 --Exchange Rate
36802 , p_source_29 IN NUMBER
36803 --Exchange Rate Type
36804 , p_source_30 IN VARCHAR2
36805 --Actual Upgrade Debit Accounting Class
36806 , p_source_31 IN VARCHAR2
36807 --Use Actuals Upgrade Attributes Flag
36808 , p_source_32 IN VARCHAR2
36809 --Expenditure Item ID
36810 , p_source_33 IN NUMBER
36811 --Cost Distribution Line Number
36812 , p_source_34 IN NUMBER
36813 --Line Type
36814 , p_source_35 IN VARCHAR2
36815 , p_source_35_meaning IN VARCHAR2
36816 --Reversed Line Number
36817 , p_source_36 IN NUMBER
36818 )
36819 IS
36820
36821 l_component_type VARCHAR2(80);
36822 l_component_code VARCHAR2(30);
36823 l_component_type_code VARCHAR2(1);
36824 l_component_appl_id INTEGER;
36825 l_amb_context_code VARCHAR2(30);
36826 l_entity_code VARCHAR2(30);
36827 l_event_class_code VARCHAR2(30);
36828 l_ae_header_id NUMBER;
36829 l_event_type_code VARCHAR2(30);
36830 l_line_definition_code VARCHAR2(30);
36831 l_line_definition_owner_code VARCHAR2(1);
36832 --
36833 -- adr variables
36834 l_segment VARCHAR2(30);
36835 l_ccid NUMBER;
36836 l_adr_transaction_coa_id NUMBER;
36837 l_adr_accounting_coa_id NUMBER;
36838 l_adr_flexfield_segment_code VARCHAR2(30);
36839 l_adr_flex_value_set_id NUMBER;
36840 l_adr_value_type_code VARCHAR2(30);
36841 l_adr_value_combination_id NUMBER;
36842 l_adr_value_segment_code VARCHAR2(30);
36843
36844 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
36845 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
36846 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
36847 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
36848
36849 -- 4262811 Variables ------------------------------------------------------------------------------------------
36850 l_entered_amt_idx NUMBER;
36851 l_accted_amt_idx NUMBER;
36852 l_acc_rev_flag VARCHAR2(1);
36853 l_accrual_line_num NUMBER;
36854 l_tmp_amt NUMBER;
36855 l_acc_rev_natural_side_code VARCHAR2(1);
36856
36857 l_num_entries NUMBER;
36858 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
36859 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
36860 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
36861 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
36862 l_recog_line_1 NUMBER;
36863 l_recog_line_2 NUMBER;
36864
36865 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
36866 l_bflow_applied_to_amt NUMBER; -- 5132302
36867 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
36868
36869 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
36870
36871 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
36872 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
36873
36874 ---------------------------------------------------------------------------------------------------------------
36875
36876
36877 --
36878 -- bulk performance
36879 --
36880 l_balance_type_code VARCHAR2(1);
36881 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
36882 l_log_module VARCHAR2(240);
36883
36884 --
36885 -- Upgrade strategy
36886 --
36887 l_actual_upg_option VARCHAR2(1);
36888 l_enc_upg_option VARCHAR2(1);
36889
36890 --
36891 BEGIN
36892 --
36893 IF g_log_enabled THEN
36894 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_85';
36895 END IF;
36896 --
36897 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36898
36899 trace
36900 (p_msg => 'BEGIN of AcctLineType_85'
36901 ,p_level => C_LEVEL_PROCEDURE
36902 ,p_module => l_log_module);
36903
36904 END IF;
36905 --
36906 l_component_type := 'AMB_JLT';
36907 l_component_code := 'PA_RAW_COST_CLEARING';
36911 l_entity_code := 'EXPENDITURES';
36908 l_component_type_code := 'S';
36909 l_component_appl_id := 275;
36910 l_amb_context_code := 'DEFAULT';
36912 l_event_class_code := 'WIP_COST';
36913 l_event_type_code := 'WIP_COST_ALL';
36914 l_line_definition_owner_code := 'S';
36915 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
36916 --
36917 l_balance_type_code := 'A';
36918 l_segment := NULL;
36919 l_ccid := NULL;
36920 l_adr_transaction_coa_id := NULL;
36921 l_adr_accounting_coa_id := NULL;
36922 l_adr_flexfield_segment_code := NULL;
36923 l_adr_flex_value_set_id := NULL;
36924 l_adr_value_type_code := NULL;
36925 l_adr_value_combination_id := NULL;
36926 l_adr_value_segment_code := NULL;
36927
36928 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
36929 l_bflow_class_code := ''; -- 4219869 Business Flow
36930 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
36931 l_budgetary_control_flag := 'N';
36932
36933 l_bflow_applied_to_amt_idx := NULL; -- 5132302
36934 l_bflow_applied_to_amt := NULL; -- 5132302
36935 l_entered_amt_idx := NULL; -- 4262811
36936 l_accted_amt_idx := NULL; -- 4262811
36937 l_acc_rev_flag := NULL; -- 4262811
36938 l_accrual_line_num := NULL; -- 4262811
36939 l_tmp_amt := NULL; -- 4262811
36940 --
36941
36942 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
36943 l_balance_type_code <> 'B' THEN
36944
36945 --
36946 XLA_AE_LINES_PKG.SetNewLine;
36947
36948 p_balance_type_code := l_balance_type_code;
36949 -- set the flag so later we will know whether the gain loss line needs to be created
36950
36951 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
36952 p_actual_flag :='A';
36953 END IF;
36954
36955 --
36956 -- bulk performance
36957 --
36958 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
36959 p_header_num => 0); -- 4262811
36960 --
36961 -- set accounting line options
36962 --
36963 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
36964 p_natural_side_code => 'C'
36965 , p_gain_or_loss_flag => 'N'
36966 , p_gl_transfer_mode_code => 'S'
36967 , p_acct_entry_type_code => 'A'
36968 , p_switch_side_flag => 'Y'
36969 , p_merge_duplicate_code => 'N'
36970 );
36971 --
36972 l_acc_rev_natural_side_code := 'D'; -- 4262811
36973 --
36974 --
36975 -- set accounting line type info
36976 --
36977 xla_ae_lines_pkg.SetAcctLineType
36978 (p_component_type => l_component_type
36979 ,p_event_type_code => l_event_type_code
36980 ,p_line_definition_owner_code => l_line_definition_owner_code
36981 ,p_line_definition_code => l_line_definition_code
36982 ,p_accounting_line_code => l_component_code
36983 ,p_accounting_line_type_code => l_component_type_code
36984 ,p_accounting_line_appl_id => l_component_appl_id
36985 ,p_amb_context_code => l_amb_context_code
36986 ,p_entity_code => l_entity_code
36987 ,p_event_class_code => l_event_class_code);
36988 --
36989 -- set accounting class
36990 --
36991 xla_ae_lines_pkg.SetAcctClass(
36992 p_accounting_class_code => 'COST_CLEARING'
36993 , p_ae_header_id => l_ae_header_id
36994 );
36995
36996 --
36997 -- set rounding class
36998 --
36999 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
37000 'COST_CLEARING';
37001
37002 --
37003 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
37004 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
37005 --
37006 -- bulk performance
37007 --
37008 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
37009
37010 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
37011 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
37012
37013 -- 4955764
37014 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37015 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
37016
37017 -- 4458381 Public Sector Enh
37018
37019 --
37020 -- set accounting attributes for the line type
37021 --
37022 l_entered_amt_idx := 22;
37023 l_accted_amt_idx := 27;
37024 l_bflow_applied_to_amt_idx := NULL; -- 5132302
37025 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
37026 l_rec_acct_attrs.array_char_value(1) := p_source_23;
37027 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
37028 l_rec_acct_attrs.array_char_value(2) := p_source_24;
37029 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
37030 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
37031 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
37032 l_rec_acct_attrs.array_num_value(4) := p_source_25;
37033 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
37034 l_rec_acct_attrs.array_char_value(5) := p_source_26;
37035 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
37036 l_rec_acct_attrs.array_num_value(6) := p_source_27;
37040 l_rec_acct_attrs.array_num_value(8) := p_source_29;
37037 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
37038 l_rec_acct_attrs.array_date_value(7) := p_source_28;
37039 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
37041 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
37042 l_rec_acct_attrs.array_char_value(9) := p_source_30;
37043 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
37044 l_rec_acct_attrs.array_char_value(10) := p_source_31;
37045 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
37046 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
37047 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
37048 l_rec_acct_attrs.array_num_value(12) := p_source_25;
37049 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
37050 l_rec_acct_attrs.array_char_value(13) := p_source_26;
37051 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
37052 l_rec_acct_attrs.array_num_value(14) := p_source_27;
37053 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
37054 l_rec_acct_attrs.array_date_value(15) := p_source_28;
37055 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
37056 l_rec_acct_attrs.array_num_value(16) := p_source_29;
37057 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
37058 l_rec_acct_attrs.array_char_value(17) := p_source_30;
37059 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
37060 l_rec_acct_attrs.array_char_value(18) := p_source_32;
37061 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
37062 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
37063 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
37064 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
37065 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
37066 l_rec_acct_attrs.array_char_value(21) := p_source_35;
37067 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
37068 l_rec_acct_attrs.array_num_value(22) := p_source_25;
37069 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
37070 l_rec_acct_attrs.array_char_value(23) := p_source_26;
37071 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
37072 l_rec_acct_attrs.array_date_value(24) := p_source_28;
37073 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
37074 l_rec_acct_attrs.array_num_value(25) := p_source_29;
37075 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
37076 l_rec_acct_attrs.array_char_value(26) := p_source_30;
37077 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
37078 l_rec_acct_attrs.array_num_value(27) := p_source_27;
37079 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
37080 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
37081 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
37082 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
37083 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
37084 l_rec_acct_attrs.array_char_value(30) := p_source_35;
37085
37086 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
37087 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
37088
37089 ---------------------------------------------------------------------------------------------------------------
37090 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
37091 ---------------------------------------------------------------------------------------------------------------
37092 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
37093
37094 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37095 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37096
37097 IF xla_accounting_cache_pkg.GetValueChar
37098 (p_source_code => 'LEDGER_CATEGORY_CODE'
37099 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
37100 AND l_bflow_method_code = 'PRIOR_ENTRY'
37101 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
37102 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
37103 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
37104 )
37105 THEN
37106 xla_ae_lines_pkg.BflowUpgEntry
37107 (p_business_method_code => l_bflow_method_code
37108 ,p_business_class_code => l_bflow_class_code
37109 ,p_balance_type => l_balance_type_code);
37110 ELSE
37111 NULL;
37112 -- No business flow processing for business flow method of NONE.
37113 END IF;
37114
37115 --
37116 -- call analytical criteria
37117 --
37118
37119 --
37120 -- call description
37121 --
37122 -- No description or it is inherited.
37123 --
37124 -- call ADRs
37125 -- Bug 4922099
37126 --
37127 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37128 (NVL(l_actual_upg_option, 'N') = 'O') OR
37129 (NVL(l_enc_upg_option, 'N') = 'O')
37130 )
37131 THEN
37132 NULL;
37133 --
37134 --
37135
37136 l_ccid := AcctDerRule_14(
37137 p_application_id => p_application_id
37138 , p_ae_header_id => l_ae_header_id
37139 , p_source_5 => p_source_5
37140 , p_source_7 => p_source_7
37141 , p_source_8 => p_source_8
37142 , x_transaction_coa_id => l_adr_transaction_coa_id
37143 , x_accounting_coa_id => l_adr_accounting_coa_id
37144 , x_value_type_code => l_adr_value_type_code
37148 xla_ae_lines_pkg.set_ccid(
37145 , p_side => 'NA'
37146 );
37147
37149 p_code_combination_id => l_ccid
37150 , p_value_type_code => l_adr_value_type_code
37151 , p_transaction_coa_id => l_adr_transaction_coa_id
37152 , p_accounting_coa_id => l_adr_accounting_coa_id
37153 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
37154 , p_adr_type_code => 'S'
37155 , p_component_type => l_component_type
37156 , p_component_code => l_component_code
37157 , p_component_type_code => l_component_type_code
37158 , p_component_appl_id => l_component_appl_id
37159 , p_amb_context_code => l_amb_context_code
37160 , p_side => 'NA'
37161 );
37162
37163
37164 --
37165 --
37166 END IF;
37167 --
37168 -- Bug 4922099
37169 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
37170 (NVL(l_enc_upg_option, 'N') = 'O')
37171 ) AND
37172 (l_bflow_method_code = 'PRIOR_ENTRY')
37173 )
37174 THEN
37175 IF
37176 --
37177 1 = 2
37178 --
37179 THEN
37180 xla_accounting_err_pkg.build_message
37181 (p_appli_s_name => 'XLA'
37182 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37183 ,p_token_1 => 'LINE_NUMBER'
37184 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
37185 ,p_token_2 => 'LINE_TYPE_NAME'
37186 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
37187 l_component_type
37188 ,l_component_code
37189 ,l_component_type_code
37190 ,l_component_appl_id
37191 ,l_amb_context_code
37192 ,l_entity_code
37193 ,l_event_class_code
37194 )
37195 ,p_token_3 => 'OWNER'
37196 ,p_value_3 => xla_lookups_pkg.get_meaning(
37197 p_lookup_type => 'XLA_OWNER_TYPE'
37198 ,p_lookup_code => l_component_type_code
37199 )
37200 ,p_token_4 => 'PRODUCT_NAME'
37201 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
37202 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
37203 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
37204 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
37205 ,p_ae_header_id => NULL
37206 );
37207
37208 IF (C_LEVEL_ERROR>= g_log_level) THEN
37209 trace
37210 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37211 ,p_level => C_LEVEL_ERROR
37212 ,p_module => l_log_module);
37213 END IF;
37214 END IF;
37215 END IF;
37216 --
37217 --
37218 ------------------------------------------------------------------------------------------------
37219 -- 4219869 Business Flow
37220 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
37221 -- Prior Entry. Currently, the following code is always generated.
37222 ------------------------------------------------------------------------------------------------
37223 XLA_AE_LINES_PKG.ValidateCurrentLine;
37224
37225 ------------------------------------------------------------------------------------
37226 -- 4219869 Business Flow
37227 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
37228 ------------------------------------------------------------------------------------
37229 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37230
37231 ----------------------------------------------------------------------------------
37232 -- 4219869 Business Flow
37233 -- Update journal entry status -- Need to generate this within IF <condition>
37234 ----------------------------------------------------------------------------------
37235 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37236 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
37237 ,p_balance_type_code => l_balance_type_code
37238 );
37239
37240 -------------------------------------------------------------------------------------------
37241 -- 4262811 - Generate the Accrual Reversal lines
37242 -------------------------------------------------------------------------------------------
37243 BEGIN
37244 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
37245 (g_array_event(p_event_id).array_value_num('header_index'));
37246 IF l_acc_rev_flag IS NULL THEN
37247 l_acc_rev_flag := 'N';
37248 END IF;
37249 EXCEPTION
37250 WHEN OTHERS THEN
37254 IF (l_acc_rev_flag = 'Y') THEN
37251 l_acc_rev_flag := 'N';
37252 END;
37253 --
37255
37256 -- 4645092 ------------------------------------------------------------------------------
37257 -- To allow MPA report to determine if it should generate report process
37258 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
37259 ------------------------------------------------------------------------------------------
37260
37261 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
37262 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
37263
37264 --
37265 -- Update the line information that should be overwritten
37266 --
37267 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
37268 p_header_num => 1);
37269 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
37270
37271 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
37272
37273 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
37274 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
37275 END IF;
37276
37277 --
37278 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
37279 --
37280 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
37281 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
37282 ELSE
37283 ---------------------------------------------------------------------------------------------------
37284 -- 4262811a Switch Sign
37285 ---------------------------------------------------------------------------------------------------
37286 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
37287 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37288 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37289 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37290 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37291 -- 5132302
37292 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
37293 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37294
37295 END IF;
37296
37297 -- 4955764
37298 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37299 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
37300
37301
37302 XLA_AE_LINES_PKG.ValidateCurrentLine;
37303 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37304
37305 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37306 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
37307 ,p_balance_type_code => l_balance_type_code);
37308
37309 END IF;
37310
37311 -----------------------------------------------------------------------------------------
37312 -- 4262811 Multiperiod Accounting
37313 -----------------------------------------------------------------------------------------
37314 -- No MPA option is assigned.
37315
37316
37317 END IF;
37318 --
37319
37320 --
37321 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37322 trace
37323 (p_msg => 'END of AcctLineType_85'
37324 ,p_level => C_LEVEL_PROCEDURE
37325 ,p_module => l_log_module);
37326 END IF;
37327 --
37328 EXCEPTION
37329 WHEN xla_exceptions_pkg.application_exception THEN
37330 RAISE;
37331 WHEN OTHERS THEN
37332 xla_exceptions_pkg.raise_message
37333 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_85');
37334 END AcctLineType_85;
37335 --
37336
37337 ---------------------------------------
37338 --
37339 -- PRIVATE FUNCTION
37340 -- AcctLineType_86
37341 --
37342 ---------------------------------------
37343 PROCEDURE AcctLineType_86 (
37344 p_application_id IN NUMBER
37345 ,p_event_id IN NUMBER
37346 ,p_calculate_acctd_flag IN VARCHAR2
37347 ,p_calculate_g_l_flag IN VARCHAR2
37348 ,p_actual_flag IN OUT VARCHAR2
37349 ,p_balance_type_code OUT VARCHAR2
37350 ,p_gain_or_loss_ref OUT VARCHAR2
37351
37352 --Cost CCID
37353 , p_source_4 IN NUMBER
37354 --Allow Account Override Flag
37355 , p_source_5 IN VARCHAR2
37356 --Cost Clearing CCID
37357 , p_source_7 IN NUMBER
37358 --Adjustment Cost Clearing CCID
37359 , p_source_8 IN NUMBER
37360 --Reversing Line Flag
37361 , p_source_23 IN VARCHAR2
37362 --Actual Upgrade Credit Accounting Class
37363 , p_source_24 IN VARCHAR2
37364 --Entered Raw Cost
37365 , p_source_25 IN NUMBER
37366 --Entered Currency Code
37367 , p_source_26 IN VARCHAR2
37368 --Accounted Raw Cost
37369 , p_source_27 IN NUMBER
37370 --Exchange Rate Date
37371 , p_source_28 IN DATE
37372 --Exchange Rate
37373 , p_source_29 IN NUMBER
37374 --Exchange Rate Type
37375 , p_source_30 IN VARCHAR2
37376 --Actual Upgrade Debit Accounting Class
37377 , p_source_31 IN VARCHAR2
37378 --Use Actuals Upgrade Attributes Flag
37379 , p_source_32 IN VARCHAR2
37380 --Expenditure Item ID
37381 , p_source_33 IN NUMBER
37382 --Cost Distribution Line Number
37386 , p_source_35_meaning IN VARCHAR2
37383 , p_source_34 IN NUMBER
37384 --Line Type
37385 , p_source_35 IN VARCHAR2
37387 --Reversed Line Number
37388 , p_source_36 IN NUMBER
37389 )
37390 IS
37391
37392 l_component_type VARCHAR2(80);
37393 l_component_code VARCHAR2(30);
37394 l_component_type_code VARCHAR2(1);
37395 l_component_appl_id INTEGER;
37396 l_amb_context_code VARCHAR2(30);
37397 l_entity_code VARCHAR2(30);
37398 l_event_class_code VARCHAR2(30);
37399 l_ae_header_id NUMBER;
37400 l_event_type_code VARCHAR2(30);
37401 l_line_definition_code VARCHAR2(30);
37402 l_line_definition_owner_code VARCHAR2(1);
37403 --
37404 -- adr variables
37405 l_segment VARCHAR2(30);
37406 l_ccid NUMBER;
37407 l_adr_transaction_coa_id NUMBER;
37408 l_adr_accounting_coa_id NUMBER;
37409 l_adr_flexfield_segment_code VARCHAR2(30);
37410 l_adr_flex_value_set_id NUMBER;
37411 l_adr_value_type_code VARCHAR2(30);
37412 l_adr_value_combination_id NUMBER;
37413 l_adr_value_segment_code VARCHAR2(30);
37414
37415 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
37416 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
37417 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
37418 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
37419
37420 -- 4262811 Variables ------------------------------------------------------------------------------------------
37421 l_entered_amt_idx NUMBER;
37422 l_accted_amt_idx NUMBER;
37423 l_acc_rev_flag VARCHAR2(1);
37424 l_accrual_line_num NUMBER;
37425 l_tmp_amt NUMBER;
37426 l_acc_rev_natural_side_code VARCHAR2(1);
37427
37428 l_num_entries NUMBER;
37429 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
37430 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
37431 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
37432 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
37433 l_recog_line_1 NUMBER;
37434 l_recog_line_2 NUMBER;
37435
37436 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
37437 l_bflow_applied_to_amt NUMBER; -- 5132302
37438 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
37439
37440 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
37441
37442 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
37443 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
37444
37445 ---------------------------------------------------------------------------------------------------------------
37446
37447
37448 --
37449 -- bulk performance
37450 --
37451 l_balance_type_code VARCHAR2(1);
37452 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
37453 l_log_module VARCHAR2(240);
37454
37455 --
37456 -- Upgrade strategy
37457 --
37458 l_actual_upg_option VARCHAR2(1);
37459 l_enc_upg_option VARCHAR2(1);
37460
37461 --
37462 BEGIN
37463 --
37464 IF g_log_enabled THEN
37465 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_86';
37466 END IF;
37467 --
37468 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37469
37470 trace
37471 (p_msg => 'BEGIN of AcctLineType_86'
37472 ,p_level => C_LEVEL_PROCEDURE
37473 ,p_module => l_log_module);
37474
37475 END IF;
37476 --
37477 l_component_type := 'AMB_JLT';
37478 l_component_code := 'PA_RAW_COST_CLEARING';
37479 l_component_type_code := 'S';
37480 l_component_appl_id := 275;
37481 l_amb_context_code := 'DEFAULT';
37482 l_entity_code := 'EXPENDITURES';
37483 l_event_class_code := 'LABOR_COST';
37484 l_event_type_code := 'LABOR_COST_ALL';
37485 l_line_definition_owner_code := 'S';
37486 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
37487 --
37488 l_balance_type_code := 'A';
37489 l_segment := NULL;
37490 l_ccid := NULL;
37491 l_adr_transaction_coa_id := NULL;
37492 l_adr_accounting_coa_id := NULL;
37493 l_adr_flexfield_segment_code := NULL;
37494 l_adr_flex_value_set_id := NULL;
37495 l_adr_value_type_code := NULL;
37496 l_adr_value_combination_id := NULL;
37497 l_adr_value_segment_code := NULL;
37498
37499 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
37500 l_bflow_class_code := ''; -- 4219869 Business Flow
37501 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
37502 l_budgetary_control_flag := 'N';
37503
37504 l_bflow_applied_to_amt_idx := NULL; -- 5132302
37505 l_bflow_applied_to_amt := NULL; -- 5132302
37506 l_entered_amt_idx := NULL; -- 4262811
37507 l_accted_amt_idx := NULL; -- 4262811
37508 l_acc_rev_flag := NULL; -- 4262811
37509 l_accrual_line_num := NULL; -- 4262811
37510 l_tmp_amt := NULL; -- 4262811
37511 --
37512
37513 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
37514 l_balance_type_code <> 'B' THEN
37515
37516 --
37517 XLA_AE_LINES_PKG.SetNewLine;
37518
37519 p_balance_type_code := l_balance_type_code;
37523 p_actual_flag :='A';
37520 -- set the flag so later we will know whether the gain loss line needs to be created
37521
37522 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
37524 END IF;
37525
37526 --
37527 -- bulk performance
37528 --
37529 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
37530 p_header_num => 0); -- 4262811
37531 --
37532 -- set accounting line options
37533 --
37534 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
37535 p_natural_side_code => 'C'
37536 , p_gain_or_loss_flag => 'N'
37537 , p_gl_transfer_mode_code => 'S'
37538 , p_acct_entry_type_code => 'A'
37539 , p_switch_side_flag => 'Y'
37540 , p_merge_duplicate_code => 'N'
37541 );
37542 --
37543 l_acc_rev_natural_side_code := 'D'; -- 4262811
37544 --
37545 --
37546 -- set accounting line type info
37547 --
37548 xla_ae_lines_pkg.SetAcctLineType
37549 (p_component_type => l_component_type
37550 ,p_event_type_code => l_event_type_code
37551 ,p_line_definition_owner_code => l_line_definition_owner_code
37552 ,p_line_definition_code => l_line_definition_code
37553 ,p_accounting_line_code => l_component_code
37554 ,p_accounting_line_type_code => l_component_type_code
37555 ,p_accounting_line_appl_id => l_component_appl_id
37556 ,p_amb_context_code => l_amb_context_code
37557 ,p_entity_code => l_entity_code
37558 ,p_event_class_code => l_event_class_code);
37559 --
37560 -- set accounting class
37561 --
37562 xla_ae_lines_pkg.SetAcctClass(
37563 p_accounting_class_code => 'COST_CLEARING'
37564 , p_ae_header_id => l_ae_header_id
37565 );
37566
37567 --
37568 -- set rounding class
37569 --
37570 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
37571 'COST_CLEARING';
37572
37573 --
37574 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
37575 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
37576 --
37577 -- bulk performance
37578 --
37579 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
37580
37581 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
37582 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
37583
37584 -- 4955764
37585 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37586 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
37587
37588 -- 4458381 Public Sector Enh
37589
37590 --
37591 -- set accounting attributes for the line type
37592 --
37593 l_entered_amt_idx := 22;
37594 l_accted_amt_idx := 27;
37595 l_bflow_applied_to_amt_idx := NULL; -- 5132302
37596 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
37597 l_rec_acct_attrs.array_char_value(1) := p_source_23;
37598 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
37599 l_rec_acct_attrs.array_char_value(2) := p_source_24;
37600 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
37601 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
37602 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
37603 l_rec_acct_attrs.array_num_value(4) := p_source_25;
37604 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
37605 l_rec_acct_attrs.array_char_value(5) := p_source_26;
37606 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
37607 l_rec_acct_attrs.array_num_value(6) := p_source_27;
37608 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
37609 l_rec_acct_attrs.array_date_value(7) := p_source_28;
37610 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
37611 l_rec_acct_attrs.array_num_value(8) := p_source_29;
37612 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
37613 l_rec_acct_attrs.array_char_value(9) := p_source_30;
37614 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
37615 l_rec_acct_attrs.array_char_value(10) := p_source_31;
37616 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
37617 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
37618 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
37619 l_rec_acct_attrs.array_num_value(12) := p_source_25;
37620 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
37621 l_rec_acct_attrs.array_char_value(13) := p_source_26;
37622 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
37623 l_rec_acct_attrs.array_num_value(14) := p_source_27;
37624 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
37625 l_rec_acct_attrs.array_date_value(15) := p_source_28;
37626 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
37627 l_rec_acct_attrs.array_num_value(16) := p_source_29;
37628 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
37629 l_rec_acct_attrs.array_char_value(17) := p_source_30;
37630 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
37631 l_rec_acct_attrs.array_char_value(18) := p_source_32;
37632 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
37633 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
37634 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
37638 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
37635 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
37636 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
37637 l_rec_acct_attrs.array_char_value(21) := p_source_35;
37639 l_rec_acct_attrs.array_num_value(22) := p_source_25;
37640 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
37641 l_rec_acct_attrs.array_char_value(23) := p_source_26;
37642 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
37643 l_rec_acct_attrs.array_date_value(24) := p_source_28;
37644 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
37645 l_rec_acct_attrs.array_num_value(25) := p_source_29;
37646 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
37647 l_rec_acct_attrs.array_char_value(26) := p_source_30;
37648 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
37649 l_rec_acct_attrs.array_num_value(27) := p_source_27;
37650 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
37651 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
37652 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
37653 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
37654 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
37655 l_rec_acct_attrs.array_char_value(30) := p_source_35;
37656
37657 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
37658 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
37659
37660 ---------------------------------------------------------------------------------------------------------------
37661 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
37662 ---------------------------------------------------------------------------------------------------------------
37663 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
37664
37665 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37666 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37667
37668 IF xla_accounting_cache_pkg.GetValueChar
37669 (p_source_code => 'LEDGER_CATEGORY_CODE'
37670 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
37671 AND l_bflow_method_code = 'PRIOR_ENTRY'
37672 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
37673 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
37674 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
37675 )
37676 THEN
37677 xla_ae_lines_pkg.BflowUpgEntry
37678 (p_business_method_code => l_bflow_method_code
37679 ,p_business_class_code => l_bflow_class_code
37680 ,p_balance_type => l_balance_type_code);
37681 ELSE
37682 NULL;
37683 -- No business flow processing for business flow method of NONE.
37684 END IF;
37685
37686 --
37687 -- call analytical criteria
37688 --
37689
37690 --
37691 -- call description
37692 --
37693 -- No description or it is inherited.
37694 --
37695 -- call ADRs
37696 -- Bug 4922099
37697 --
37698 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37699 (NVL(l_actual_upg_option, 'N') = 'O') OR
37700 (NVL(l_enc_upg_option, 'N') = 'O')
37701 )
37702 THEN
37703 NULL;
37704 --
37705 --
37706
37707 l_ccid := AcctDerRule_14(
37708 p_application_id => p_application_id
37709 , p_ae_header_id => l_ae_header_id
37710 , p_source_5 => p_source_5
37711 , p_source_7 => p_source_7
37712 , p_source_8 => p_source_8
37713 , x_transaction_coa_id => l_adr_transaction_coa_id
37714 , x_accounting_coa_id => l_adr_accounting_coa_id
37715 , x_value_type_code => l_adr_value_type_code
37716 , p_side => 'NA'
37717 );
37718
37719 xla_ae_lines_pkg.set_ccid(
37720 p_code_combination_id => l_ccid
37721 , p_value_type_code => l_adr_value_type_code
37722 , p_transaction_coa_id => l_adr_transaction_coa_id
37723 , p_accounting_coa_id => l_adr_accounting_coa_id
37724 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
37725 , p_adr_type_code => 'S'
37726 , p_component_type => l_component_type
37727 , p_component_code => l_component_code
37728 , p_component_type_code => l_component_type_code
37729 , p_component_appl_id => l_component_appl_id
37730 , p_amb_context_code => l_amb_context_code
37731 , p_side => 'NA'
37732 );
37733
37734
37735 --
37736 --
37737 END IF;
37738 --
37739 -- Bug 4922099
37740 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
37741 (NVL(l_enc_upg_option, 'N') = 'O')
37742 ) AND
37743 (l_bflow_method_code = 'PRIOR_ENTRY')
37744 )
37745 THEN
37746 IF
37747 --
37748 1 = 2
37749 --
37750 THEN
37751 xla_accounting_err_pkg.build_message
37752 (p_appli_s_name => 'XLA'
37753 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37754 ,p_token_1 => 'LINE_NUMBER'
37755 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
37756 ,p_token_2 => 'LINE_TYPE_NAME'
37760 ,l_component_type_code
37757 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
37758 l_component_type
37759 ,l_component_code
37761 ,l_component_appl_id
37762 ,l_amb_context_code
37763 ,l_entity_code
37764 ,l_event_class_code
37765 )
37766 ,p_token_3 => 'OWNER'
37767 ,p_value_3 => xla_lookups_pkg.get_meaning(
37768 p_lookup_type => 'XLA_OWNER_TYPE'
37769 ,p_lookup_code => l_component_type_code
37770 )
37771 ,p_token_4 => 'PRODUCT_NAME'
37772 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
37773 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
37774 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
37775 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
37776 ,p_ae_header_id => NULL
37777 );
37778
37779 IF (C_LEVEL_ERROR>= g_log_level) THEN
37780 trace
37781 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37782 ,p_level => C_LEVEL_ERROR
37783 ,p_module => l_log_module);
37784 END IF;
37785 END IF;
37786 END IF;
37787 --
37788 --
37789 ------------------------------------------------------------------------------------------------
37790 -- 4219869 Business Flow
37791 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
37792 -- Prior Entry. Currently, the following code is always generated.
37793 ------------------------------------------------------------------------------------------------
37794 XLA_AE_LINES_PKG.ValidateCurrentLine;
37795
37796 ------------------------------------------------------------------------------------
37797 -- 4219869 Business Flow
37798 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
37799 ------------------------------------------------------------------------------------
37800 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37801
37802 ----------------------------------------------------------------------------------
37803 -- 4219869 Business Flow
37804 -- Update journal entry status -- Need to generate this within IF <condition>
37805 ----------------------------------------------------------------------------------
37806 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37807 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
37808 ,p_balance_type_code => l_balance_type_code
37809 );
37810
37811 -------------------------------------------------------------------------------------------
37812 -- 4262811 - Generate the Accrual Reversal lines
37813 -------------------------------------------------------------------------------------------
37814 BEGIN
37815 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
37816 (g_array_event(p_event_id).array_value_num('header_index'));
37817 IF l_acc_rev_flag IS NULL THEN
37818 l_acc_rev_flag := 'N';
37819 END IF;
37820 EXCEPTION
37821 WHEN OTHERS THEN
37822 l_acc_rev_flag := 'N';
37823 END;
37824 --
37825 IF (l_acc_rev_flag = 'Y') THEN
37826
37827 -- 4645092 ------------------------------------------------------------------------------
37828 -- To allow MPA report to determine if it should generate report process
37829 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
37830 ------------------------------------------------------------------------------------------
37831
37832 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
37833 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
37834
37835 --
37836 -- Update the line information that should be overwritten
37837 --
37838 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
37839 p_header_num => 1);
37840 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
37841
37842 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
37843
37844 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
37845 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
37846 END IF;
37847
37848 --
37849 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
37850 --
37851 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
37852 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
37853 ELSE
37854 ---------------------------------------------------------------------------------------------------
37858 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37855 -- 4262811a Switch Sign
37856 ---------------------------------------------------------------------------------------------------
37857 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
37859 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37860 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37861 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37862 -- 5132302
37863 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
37864 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37865
37866 END IF;
37867
37868 -- 4955764
37869 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37870 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
37871
37872
37873 XLA_AE_LINES_PKG.ValidateCurrentLine;
37874 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37875
37876 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37877 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
37878 ,p_balance_type_code => l_balance_type_code);
37879
37880 END IF;
37881
37882 -----------------------------------------------------------------------------------------
37883 -- 4262811 Multiperiod Accounting
37884 -----------------------------------------------------------------------------------------
37885 -- No MPA option is assigned.
37886
37887
37888 END IF;
37889 --
37890
37891 --
37892 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37893 trace
37894 (p_msg => 'END of AcctLineType_86'
37895 ,p_level => C_LEVEL_PROCEDURE
37896 ,p_module => l_log_module);
37897 END IF;
37898 --
37899 EXCEPTION
37900 WHEN xla_exceptions_pkg.application_exception THEN
37901 RAISE;
37902 WHEN OTHERS THEN
37903 xla_exceptions_pkg.raise_message
37904 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_86');
37905 END AcctLineType_86;
37906 --
37907
37908 ---------------------------------------
37909 --
37910 -- PRIVATE FUNCTION
37911 -- AcctLineType_87
37912 --
37913 ---------------------------------------
37914 PROCEDURE AcctLineType_87 (
37915 p_application_id IN NUMBER
37916 ,p_event_id IN NUMBER
37917 ,p_calculate_acctd_flag IN VARCHAR2
37918 ,p_calculate_g_l_flag IN VARCHAR2
37919 ,p_actual_flag IN OUT VARCHAR2
37920 ,p_balance_type_code OUT VARCHAR2
37921 ,p_gain_or_loss_ref OUT VARCHAR2
37922
37923 --Cost CCID
37924 , p_source_4 IN NUMBER
37925 --Allow Account Override Flag
37926 , p_source_5 IN VARCHAR2
37927 --Cost Clearing CCID
37928 , p_source_7 IN NUMBER
37929 --Adjustment Cost Clearing CCID
37930 , p_source_8 IN NUMBER
37931 --Reversing Line Flag
37932 , p_source_23 IN VARCHAR2
37933 --Actual Upgrade Credit Accounting Class
37934 , p_source_24 IN VARCHAR2
37935 --Entered Raw Cost
37936 , p_source_25 IN NUMBER
37937 --Entered Currency Code
37938 , p_source_26 IN VARCHAR2
37939 --Accounted Raw Cost
37940 , p_source_27 IN NUMBER
37941 --Exchange Rate Date
37942 , p_source_28 IN DATE
37943 --Exchange Rate
37944 , p_source_29 IN NUMBER
37945 --Exchange Rate Type
37946 , p_source_30 IN VARCHAR2
37947 --Actual Upgrade Debit Accounting Class
37948 , p_source_31 IN VARCHAR2
37949 --Use Actuals Upgrade Attributes Flag
37950 , p_source_32 IN VARCHAR2
37951 --Expenditure Item ID
37952 , p_source_33 IN NUMBER
37953 --Cost Distribution Line Number
37954 , p_source_34 IN NUMBER
37955 --Line Type
37956 , p_source_35 IN VARCHAR2
37957 , p_source_35_meaning IN VARCHAR2
37958 --Reversed Line Number
37959 , p_source_36 IN NUMBER
37960 )
37961 IS
37962
37963 l_component_type VARCHAR2(80);
37964 l_component_code VARCHAR2(30);
37965 l_component_type_code VARCHAR2(1);
37966 l_component_appl_id INTEGER;
37967 l_amb_context_code VARCHAR2(30);
37968 l_entity_code VARCHAR2(30);
37969 l_event_class_code VARCHAR2(30);
37970 l_ae_header_id NUMBER;
37971 l_event_type_code VARCHAR2(30);
37972 l_line_definition_code VARCHAR2(30);
37973 l_line_definition_owner_code VARCHAR2(1);
37974 --
37975 -- adr variables
37976 l_segment VARCHAR2(30);
37977 l_ccid NUMBER;
37978 l_adr_transaction_coa_id NUMBER;
37979 l_adr_accounting_coa_id NUMBER;
37980 l_adr_flexfield_segment_code VARCHAR2(30);
37981 l_adr_flex_value_set_id NUMBER;
37982 l_adr_value_type_code VARCHAR2(30);
37983 l_adr_value_combination_id NUMBER;
37984 l_adr_value_segment_code VARCHAR2(30);
37985
37986 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
37987 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
37988 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
37989 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
37990
37991 -- 4262811 Variables ------------------------------------------------------------------------------------------
37992 l_entered_amt_idx NUMBER;
37993 l_accted_amt_idx NUMBER;
37997 l_acc_rev_natural_side_code VARCHAR2(1);
37994 l_acc_rev_flag VARCHAR2(1);
37995 l_accrual_line_num NUMBER;
37996 l_tmp_amt NUMBER;
37998
37999 l_num_entries NUMBER;
38000 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
38001 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
38002 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
38003 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
38004 l_recog_line_1 NUMBER;
38005 l_recog_line_2 NUMBER;
38006
38007 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
38008 l_bflow_applied_to_amt NUMBER; -- 5132302
38009 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
38010
38011 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
38012
38013 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
38014 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
38015
38016 ---------------------------------------------------------------------------------------------------------------
38017
38018
38019 --
38020 -- bulk performance
38021 --
38022 l_balance_type_code VARCHAR2(1);
38023 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
38024 l_log_module VARCHAR2(240);
38025
38026 --
38027 -- Upgrade strategy
38028 --
38029 l_actual_upg_option VARCHAR2(1);
38030 l_enc_upg_option VARCHAR2(1);
38031
38032 --
38033 BEGIN
38034 --
38035 IF g_log_enabled THEN
38036 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_87';
38037 END IF;
38038 --
38039 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38040
38041 trace
38042 (p_msg => 'BEGIN of AcctLineType_87'
38043 ,p_level => C_LEVEL_PROCEDURE
38044 ,p_module => l_log_module);
38045
38046 END IF;
38047 --
38048 l_component_type := 'AMB_JLT';
38049 l_component_code := 'PA_RAW_COST_CLEARING';
38050 l_component_type_code := 'S';
38051 l_component_appl_id := 275;
38052 l_amb_context_code := 'DEFAULT';
38053 l_entity_code := 'EXPENDITURES';
38054 l_event_class_code := 'USG_COST';
38055 l_event_type_code := 'USG_COST_ALL';
38056 l_line_definition_owner_code := 'S';
38057 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
38058 --
38059 l_balance_type_code := 'A';
38060 l_segment := NULL;
38061 l_ccid := NULL;
38062 l_adr_transaction_coa_id := NULL;
38063 l_adr_accounting_coa_id := NULL;
38064 l_adr_flexfield_segment_code := NULL;
38065 l_adr_flex_value_set_id := NULL;
38066 l_adr_value_type_code := NULL;
38067 l_adr_value_combination_id := NULL;
38068 l_adr_value_segment_code := NULL;
38069
38070 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
38071 l_bflow_class_code := ''; -- 4219869 Business Flow
38072 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
38073 l_budgetary_control_flag := 'N';
38074
38075 l_bflow_applied_to_amt_idx := NULL; -- 5132302
38076 l_bflow_applied_to_amt := NULL; -- 5132302
38077 l_entered_amt_idx := NULL; -- 4262811
38078 l_accted_amt_idx := NULL; -- 4262811
38079 l_acc_rev_flag := NULL; -- 4262811
38080 l_accrual_line_num := NULL; -- 4262811
38081 l_tmp_amt := NULL; -- 4262811
38082 --
38083
38084 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
38085 l_balance_type_code <> 'B' THEN
38086
38087 --
38088 XLA_AE_LINES_PKG.SetNewLine;
38089
38090 p_balance_type_code := l_balance_type_code;
38091 -- set the flag so later we will know whether the gain loss line needs to be created
38092
38093 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
38094 p_actual_flag :='A';
38095 END IF;
38096
38097 --
38098 -- bulk performance
38099 --
38100 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
38101 p_header_num => 0); -- 4262811
38102 --
38103 -- set accounting line options
38104 --
38105 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
38106 p_natural_side_code => 'C'
38107 , p_gain_or_loss_flag => 'N'
38108 , p_gl_transfer_mode_code => 'S'
38109 , p_acct_entry_type_code => 'A'
38110 , p_switch_side_flag => 'Y'
38111 , p_merge_duplicate_code => 'N'
38112 );
38113 --
38114 l_acc_rev_natural_side_code := 'D'; -- 4262811
38115 --
38116 --
38117 -- set accounting line type info
38118 --
38119 xla_ae_lines_pkg.SetAcctLineType
38120 (p_component_type => l_component_type
38121 ,p_event_type_code => l_event_type_code
38122 ,p_line_definition_owner_code => l_line_definition_owner_code
38123 ,p_line_definition_code => l_line_definition_code
38124 ,p_accounting_line_code => l_component_code
38125 ,p_accounting_line_type_code => l_component_type_code
38126 ,p_accounting_line_appl_id => l_component_appl_id
38127 ,p_amb_context_code => l_amb_context_code
38128 ,p_entity_code => l_entity_code
38129 ,p_event_class_code => l_event_class_code);
38130 --
38131 -- set accounting class
38132 --
38136 );
38133 xla_ae_lines_pkg.SetAcctClass(
38134 p_accounting_class_code => 'COST_CLEARING'
38135 , p_ae_header_id => l_ae_header_id
38137
38138 --
38139 -- set rounding class
38140 --
38141 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
38142 'COST_CLEARING';
38143
38144 --
38145 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
38146 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
38147 --
38148 -- bulk performance
38149 --
38150 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
38151
38152 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
38153 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
38154
38155 -- 4955764
38156 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38157 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
38158
38159 -- 4458381 Public Sector Enh
38160
38161 --
38162 -- set accounting attributes for the line type
38163 --
38164 l_entered_amt_idx := 22;
38165 l_accted_amt_idx := 27;
38166 l_bflow_applied_to_amt_idx := NULL; -- 5132302
38167 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
38168 l_rec_acct_attrs.array_char_value(1) := p_source_23;
38169 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
38170 l_rec_acct_attrs.array_char_value(2) := p_source_24;
38171 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
38172 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
38173 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
38174 l_rec_acct_attrs.array_num_value(4) := p_source_25;
38175 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
38176 l_rec_acct_attrs.array_char_value(5) := p_source_26;
38177 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
38178 l_rec_acct_attrs.array_num_value(6) := p_source_27;
38179 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
38180 l_rec_acct_attrs.array_date_value(7) := p_source_28;
38181 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
38182 l_rec_acct_attrs.array_num_value(8) := p_source_29;
38183 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
38184 l_rec_acct_attrs.array_char_value(9) := p_source_30;
38185 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
38186 l_rec_acct_attrs.array_char_value(10) := p_source_31;
38187 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
38188 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
38189 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
38190 l_rec_acct_attrs.array_num_value(12) := p_source_25;
38191 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
38192 l_rec_acct_attrs.array_char_value(13) := p_source_26;
38193 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
38194 l_rec_acct_attrs.array_num_value(14) := p_source_27;
38195 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
38196 l_rec_acct_attrs.array_date_value(15) := p_source_28;
38197 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
38198 l_rec_acct_attrs.array_num_value(16) := p_source_29;
38199 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
38200 l_rec_acct_attrs.array_char_value(17) := p_source_30;
38201 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
38202 l_rec_acct_attrs.array_char_value(18) := p_source_32;
38203 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
38204 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
38205 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
38206 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
38207 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
38208 l_rec_acct_attrs.array_char_value(21) := p_source_35;
38209 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
38210 l_rec_acct_attrs.array_num_value(22) := p_source_25;
38211 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
38212 l_rec_acct_attrs.array_char_value(23) := p_source_26;
38213 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
38214 l_rec_acct_attrs.array_date_value(24) := p_source_28;
38215 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
38216 l_rec_acct_attrs.array_num_value(25) := p_source_29;
38217 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
38218 l_rec_acct_attrs.array_char_value(26) := p_source_30;
38219 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
38220 l_rec_acct_attrs.array_num_value(27) := p_source_27;
38221 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
38222 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
38223 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
38224 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
38225 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
38226 l_rec_acct_attrs.array_char_value(30) := p_source_35;
38227
38228 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
38229 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
38230
38231 ---------------------------------------------------------------------------------------------------------------
38232 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
38236 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38233 ---------------------------------------------------------------------------------------------------------------
38234 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
38235
38237 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38238
38239 IF xla_accounting_cache_pkg.GetValueChar
38240 (p_source_code => 'LEDGER_CATEGORY_CODE'
38241 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
38242 AND l_bflow_method_code = 'PRIOR_ENTRY'
38243 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
38244 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
38245 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
38246 )
38247 THEN
38248 xla_ae_lines_pkg.BflowUpgEntry
38249 (p_business_method_code => l_bflow_method_code
38250 ,p_business_class_code => l_bflow_class_code
38251 ,p_balance_type => l_balance_type_code);
38252 ELSE
38253 NULL;
38254 -- No business flow processing for business flow method of NONE.
38255 END IF;
38256
38257 --
38258 -- call analytical criteria
38259 --
38260
38261 --
38262 -- call description
38263 --
38264 -- No description or it is inherited.
38265 --
38266 -- call ADRs
38267 -- Bug 4922099
38268 --
38269 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38270 (NVL(l_actual_upg_option, 'N') = 'O') OR
38271 (NVL(l_enc_upg_option, 'N') = 'O')
38272 )
38273 THEN
38274 NULL;
38275 --
38276 --
38277
38278 l_ccid := AcctDerRule_14(
38279 p_application_id => p_application_id
38280 , p_ae_header_id => l_ae_header_id
38281 , p_source_5 => p_source_5
38282 , p_source_7 => p_source_7
38283 , p_source_8 => p_source_8
38284 , x_transaction_coa_id => l_adr_transaction_coa_id
38285 , x_accounting_coa_id => l_adr_accounting_coa_id
38286 , x_value_type_code => l_adr_value_type_code
38287 , p_side => 'NA'
38288 );
38289
38290 xla_ae_lines_pkg.set_ccid(
38291 p_code_combination_id => l_ccid
38292 , p_value_type_code => l_adr_value_type_code
38293 , p_transaction_coa_id => l_adr_transaction_coa_id
38294 , p_accounting_coa_id => l_adr_accounting_coa_id
38295 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
38296 , p_adr_type_code => 'S'
38297 , p_component_type => l_component_type
38298 , p_component_code => l_component_code
38299 , p_component_type_code => l_component_type_code
38300 , p_component_appl_id => l_component_appl_id
38301 , p_amb_context_code => l_amb_context_code
38302 , p_side => 'NA'
38303 );
38304
38305
38306 --
38307 --
38308 END IF;
38309 --
38310 -- Bug 4922099
38311 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
38312 (NVL(l_enc_upg_option, 'N') = 'O')
38313 ) AND
38314 (l_bflow_method_code = 'PRIOR_ENTRY')
38315 )
38316 THEN
38317 IF
38318 --
38319 1 = 2
38320 --
38321 THEN
38322 xla_accounting_err_pkg.build_message
38323 (p_appli_s_name => 'XLA'
38324 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38325 ,p_token_1 => 'LINE_NUMBER'
38326 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
38327 ,p_token_2 => 'LINE_TYPE_NAME'
38328 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
38329 l_component_type
38330 ,l_component_code
38331 ,l_component_type_code
38332 ,l_component_appl_id
38333 ,l_amb_context_code
38334 ,l_entity_code
38335 ,l_event_class_code
38336 )
38337 ,p_token_3 => 'OWNER'
38338 ,p_value_3 => xla_lookups_pkg.get_meaning(
38339 p_lookup_type => 'XLA_OWNER_TYPE'
38340 ,p_lookup_code => l_component_type_code
38341 )
38342 ,p_token_4 => 'PRODUCT_NAME'
38343 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
38344 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
38345 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
38346 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
38347 ,p_ae_header_id => NULL
38351 trace
38348 );
38349
38350 IF (C_LEVEL_ERROR>= g_log_level) THEN
38352 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38353 ,p_level => C_LEVEL_ERROR
38354 ,p_module => l_log_module);
38355 END IF;
38356 END IF;
38357 END IF;
38358 --
38359 --
38360 ------------------------------------------------------------------------------------------------
38361 -- 4219869 Business Flow
38362 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
38363 -- Prior Entry. Currently, the following code is always generated.
38364 ------------------------------------------------------------------------------------------------
38365 XLA_AE_LINES_PKG.ValidateCurrentLine;
38366
38367 ------------------------------------------------------------------------------------
38368 -- 4219869 Business Flow
38369 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
38370 ------------------------------------------------------------------------------------
38371 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38372
38373 ----------------------------------------------------------------------------------
38374 -- 4219869 Business Flow
38375 -- Update journal entry status -- Need to generate this within IF <condition>
38376 ----------------------------------------------------------------------------------
38377 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38378 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
38379 ,p_balance_type_code => l_balance_type_code
38380 );
38381
38382 -------------------------------------------------------------------------------------------
38383 -- 4262811 - Generate the Accrual Reversal lines
38384 -------------------------------------------------------------------------------------------
38385 BEGIN
38386 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
38387 (g_array_event(p_event_id).array_value_num('header_index'));
38388 IF l_acc_rev_flag IS NULL THEN
38389 l_acc_rev_flag := 'N';
38390 END IF;
38391 EXCEPTION
38392 WHEN OTHERS THEN
38393 l_acc_rev_flag := 'N';
38394 END;
38395 --
38396 IF (l_acc_rev_flag = 'Y') THEN
38397
38398 -- 4645092 ------------------------------------------------------------------------------
38399 -- To allow MPA report to determine if it should generate report process
38400 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
38401 ------------------------------------------------------------------------------------------
38402
38403 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
38404 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
38405
38406 --
38407 -- Update the line information that should be overwritten
38408 --
38409 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
38410 p_header_num => 1);
38411 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
38412
38413 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
38414
38415 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
38416 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
38417 END IF;
38418
38419 --
38420 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
38421 --
38422 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
38423 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
38424 ELSE
38425 ---------------------------------------------------------------------------------------------------
38426 -- 4262811a Switch Sign
38427 ---------------------------------------------------------------------------------------------------
38428 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
38429 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38430 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38431 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38432 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38433 -- 5132302
38434 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
38435 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38436
38437 END IF;
38438
38439 -- 4955764
38440 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38441 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
38442
38443
38444 XLA_AE_LINES_PKG.ValidateCurrentLine;
38445 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38446
38447 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38448 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
38449 ,p_balance_type_code => l_balance_type_code);
38450
38451 END IF;
38452
38453 -----------------------------------------------------------------------------------------
38454 -- 4262811 Multiperiod Accounting
38455 -----------------------------------------------------------------------------------------
38456 -- No MPA option is assigned.
38457
38458
38459 END IF;
38463 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38460 --
38461
38462 --
38464 trace
38465 (p_msg => 'END of AcctLineType_87'
38466 ,p_level => C_LEVEL_PROCEDURE
38467 ,p_module => l_log_module);
38468 END IF;
38469 --
38470 EXCEPTION
38471 WHEN xla_exceptions_pkg.application_exception THEN
38472 RAISE;
38473 WHEN OTHERS THEN
38474 xla_exceptions_pkg.raise_message
38475 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_87');
38476 END AcctLineType_87;
38477 --
38478
38479 ---------------------------------------
38480 --
38481 -- PRIVATE FUNCTION
38482 -- AcctLineType_88
38483 --
38484 ---------------------------------------
38485 PROCEDURE AcctLineType_88 (
38486 p_application_id IN NUMBER
38487 ,p_event_id IN NUMBER
38488 ,p_calculate_acctd_flag IN VARCHAR2
38489 ,p_calculate_g_l_flag IN VARCHAR2
38490 ,p_actual_flag IN OUT VARCHAR2
38491 ,p_balance_type_code OUT VARCHAR2
38492 ,p_gain_or_loss_ref OUT VARCHAR2
38493
38494 --Cost CCID
38495 , p_source_4 IN NUMBER
38496 --Allow Account Override Flag
38497 , p_source_5 IN VARCHAR2
38498 --Cost Clearing CCID
38499 , p_source_7 IN NUMBER
38500 --Adjustment Cost Clearing CCID
38501 , p_source_8 IN NUMBER
38502 --Exchange Rate Variance Flag
38503 , p_source_22 IN VARCHAR2
38504 --Reversing Line Flag
38505 , p_source_23 IN VARCHAR2
38506 --Actual Upgrade Credit Accounting Class
38507 , p_source_24 IN VARCHAR2
38508 --Entered Raw Cost
38509 , p_source_25 IN NUMBER
38510 --Entered Currency Code
38511 , p_source_26 IN VARCHAR2
38512 --Accounted Raw Cost
38513 , p_source_27 IN NUMBER
38514 --Exchange Rate Date
38515 , p_source_28 IN DATE
38516 --Exchange Rate
38517 , p_source_29 IN NUMBER
38518 --Exchange Rate Type
38519 , p_source_30 IN VARCHAR2
38520 --Actual Upgrade Debit Accounting Class
38521 , p_source_31 IN VARCHAR2
38522 --Use Actuals Upgrade Attributes Flag
38523 , p_source_32 IN VARCHAR2
38524 --Expenditure Item ID
38525 , p_source_33 IN NUMBER
38526 --Cost Distribution Line Number
38527 , p_source_34 IN NUMBER
38528 --Line Type
38529 , p_source_35 IN VARCHAR2
38530 , p_source_35_meaning IN VARCHAR2
38531 --Reversed Line Number
38532 , p_source_36 IN NUMBER
38533 )
38534 IS
38535
38536 l_component_type VARCHAR2(80);
38537 l_component_code VARCHAR2(30);
38538 l_component_type_code VARCHAR2(1);
38539 l_component_appl_id INTEGER;
38540 l_amb_context_code VARCHAR2(30);
38541 l_entity_code VARCHAR2(30);
38542 l_event_class_code VARCHAR2(30);
38543 l_ae_header_id NUMBER;
38544 l_event_type_code VARCHAR2(30);
38545 l_line_definition_code VARCHAR2(30);
38546 l_line_definition_owner_code VARCHAR2(1);
38547 --
38548 -- adr variables
38549 l_segment VARCHAR2(30);
38550 l_ccid NUMBER;
38551 l_adr_transaction_coa_id NUMBER;
38552 l_adr_accounting_coa_id NUMBER;
38553 l_adr_flexfield_segment_code VARCHAR2(30);
38554 l_adr_flex_value_set_id NUMBER;
38555 l_adr_value_type_code VARCHAR2(30);
38556 l_adr_value_combination_id NUMBER;
38557 l_adr_value_segment_code VARCHAR2(30);
38558
38559 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
38560 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
38561 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
38562 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
38563
38564 -- 4262811 Variables ------------------------------------------------------------------------------------------
38565 l_entered_amt_idx NUMBER;
38566 l_accted_amt_idx NUMBER;
38567 l_acc_rev_flag VARCHAR2(1);
38568 l_accrual_line_num NUMBER;
38569 l_tmp_amt NUMBER;
38570 l_acc_rev_natural_side_code VARCHAR2(1);
38571
38572 l_num_entries NUMBER;
38573 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
38574 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
38575 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
38576 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
38577 l_recog_line_1 NUMBER;
38578 l_recog_line_2 NUMBER;
38579
38580 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
38581 l_bflow_applied_to_amt NUMBER; -- 5132302
38582 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
38583
38584 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
38585
38586 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
38587 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
38588
38589 ---------------------------------------------------------------------------------------------------------------
38590
38591
38592 --
38593 -- bulk performance
38594 --
38595 l_balance_type_code VARCHAR2(1);
38596 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
38597 l_log_module VARCHAR2(240);
38598
38599 --
38600 -- Upgrade strategy
38601 --
38602 l_actual_upg_option VARCHAR2(1);
38603 l_enc_upg_option VARCHAR2(1);
38604
38605 --
38606 BEGIN
38607 --
38611 --
38608 IF g_log_enabled THEN
38609 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_88';
38610 END IF;
38612 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38613
38614 trace
38615 (p_msg => 'BEGIN of AcctLineType_88'
38616 ,p_level => C_LEVEL_PROCEDURE
38617 ,p_module => l_log_module);
38618
38619 END IF;
38620 --
38621 l_component_type := 'AMB_JLT';
38622 l_component_code := 'PA_RAW_COST_CLEARING';
38623 l_component_type_code := 'S';
38624 l_component_appl_id := 275;
38625 l_amb_context_code := 'DEFAULT';
38626 l_entity_code := 'EXPENDITURES';
38627 l_event_class_code := 'SUPPLIER_COST';
38628 l_event_type_code := 'SUPPLIER_COST_ALL';
38629 l_line_definition_owner_code := 'S';
38630 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
38631 --
38632 l_balance_type_code := 'A';
38633 l_segment := NULL;
38634 l_ccid := NULL;
38635 l_adr_transaction_coa_id := NULL;
38636 l_adr_accounting_coa_id := NULL;
38637 l_adr_flexfield_segment_code := NULL;
38638 l_adr_flex_value_set_id := NULL;
38639 l_adr_value_type_code := NULL;
38640 l_adr_value_combination_id := NULL;
38641 l_adr_value_segment_code := NULL;
38642
38643 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
38644 l_bflow_class_code := ''; -- 4219869 Business Flow
38645 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
38646 l_budgetary_control_flag := 'N';
38647
38648 l_bflow_applied_to_amt_idx := NULL; -- 5132302
38649 l_bflow_applied_to_amt := NULL; -- 5132302
38650 l_entered_amt_idx := NULL; -- 4262811
38651 l_accted_amt_idx := NULL; -- 4262811
38652 l_acc_rev_flag := NULL; -- 4262811
38653 l_accrual_line_num := NULL; -- 4262811
38654 l_tmp_amt := NULL; -- 4262811
38655 --
38656
38657 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
38658 l_balance_type_code <> 'B' THEN
38659 IF NVL(p_source_22,'
38660 ') = 'N'
38661 THEN
38662
38663 --
38664 XLA_AE_LINES_PKG.SetNewLine;
38665
38666 p_balance_type_code := l_balance_type_code;
38667 -- set the flag so later we will know whether the gain loss line needs to be created
38668
38669 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
38670 p_actual_flag :='A';
38671 END IF;
38672
38673 --
38674 -- bulk performance
38675 --
38676 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
38677 p_header_num => 0); -- 4262811
38678 --
38679 -- set accounting line options
38680 --
38681 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
38682 p_natural_side_code => 'C'
38683 , p_gain_or_loss_flag => 'N'
38684 , p_gl_transfer_mode_code => 'S'
38685 , p_acct_entry_type_code => 'A'
38686 , p_switch_side_flag => 'Y'
38687 , p_merge_duplicate_code => 'N'
38688 );
38689 --
38690 l_acc_rev_natural_side_code := 'D'; -- 4262811
38691 --
38692 --
38693 -- set accounting line type info
38694 --
38695 xla_ae_lines_pkg.SetAcctLineType
38696 (p_component_type => l_component_type
38697 ,p_event_type_code => l_event_type_code
38698 ,p_line_definition_owner_code => l_line_definition_owner_code
38699 ,p_line_definition_code => l_line_definition_code
38700 ,p_accounting_line_code => l_component_code
38701 ,p_accounting_line_type_code => l_component_type_code
38702 ,p_accounting_line_appl_id => l_component_appl_id
38703 ,p_amb_context_code => l_amb_context_code
38704 ,p_entity_code => l_entity_code
38705 ,p_event_class_code => l_event_class_code);
38706 --
38707 -- set accounting class
38708 --
38709 xla_ae_lines_pkg.SetAcctClass(
38710 p_accounting_class_code => 'COST_CLEARING'
38711 , p_ae_header_id => l_ae_header_id
38712 );
38713
38714 --
38715 -- set rounding class
38716 --
38717 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
38718 'COST_CLEARING';
38719
38720 --
38721 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
38722 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
38723 --
38724 -- bulk performance
38725 --
38726 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
38727
38728 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
38729 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
38730
38731 -- 4955764
38732 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38733 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
38734
38735 -- 4458381 Public Sector Enh
38736
38737 --
38738 -- set accounting attributes for the line type
38739 --
38740 l_entered_amt_idx := 22;
38741 l_accted_amt_idx := 27;
38742 l_bflow_applied_to_amt_idx := NULL; -- 5132302
38743 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
38744 l_rec_acct_attrs.array_char_value(1) := p_source_23;
38745 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
38749 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
38746 l_rec_acct_attrs.array_char_value(2) := p_source_24;
38747 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
38748 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
38750 l_rec_acct_attrs.array_num_value(4) := p_source_25;
38751 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
38752 l_rec_acct_attrs.array_char_value(5) := p_source_26;
38753 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
38754 l_rec_acct_attrs.array_num_value(6) := p_source_27;
38755 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
38756 l_rec_acct_attrs.array_date_value(7) := p_source_28;
38757 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
38758 l_rec_acct_attrs.array_num_value(8) := p_source_29;
38759 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
38760 l_rec_acct_attrs.array_char_value(9) := p_source_30;
38761 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
38762 l_rec_acct_attrs.array_char_value(10) := p_source_31;
38763 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
38764 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
38765 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
38766 l_rec_acct_attrs.array_num_value(12) := p_source_25;
38767 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
38768 l_rec_acct_attrs.array_char_value(13) := p_source_26;
38769 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
38770 l_rec_acct_attrs.array_num_value(14) := p_source_27;
38771 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
38772 l_rec_acct_attrs.array_date_value(15) := p_source_28;
38773 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
38774 l_rec_acct_attrs.array_num_value(16) := p_source_29;
38775 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
38776 l_rec_acct_attrs.array_char_value(17) := p_source_30;
38777 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
38778 l_rec_acct_attrs.array_char_value(18) := p_source_32;
38779 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
38780 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
38781 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
38782 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
38783 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
38784 l_rec_acct_attrs.array_char_value(21) := p_source_35;
38785 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
38786 l_rec_acct_attrs.array_num_value(22) := p_source_25;
38787 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
38788 l_rec_acct_attrs.array_char_value(23) := p_source_26;
38789 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
38790 l_rec_acct_attrs.array_date_value(24) := p_source_28;
38791 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
38792 l_rec_acct_attrs.array_num_value(25) := p_source_29;
38793 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
38794 l_rec_acct_attrs.array_char_value(26) := p_source_30;
38795 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
38796 l_rec_acct_attrs.array_num_value(27) := p_source_27;
38797 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
38798 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
38799 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
38800 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
38801 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
38802 l_rec_acct_attrs.array_char_value(30) := p_source_35;
38803
38804 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
38805 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
38806
38807 ---------------------------------------------------------------------------------------------------------------
38808 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
38809 ---------------------------------------------------------------------------------------------------------------
38810 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
38811
38812 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38813 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38814
38815 IF xla_accounting_cache_pkg.GetValueChar
38816 (p_source_code => 'LEDGER_CATEGORY_CODE'
38817 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
38818 AND l_bflow_method_code = 'PRIOR_ENTRY'
38819 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
38820 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
38821 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
38822 )
38823 THEN
38824 xla_ae_lines_pkg.BflowUpgEntry
38825 (p_business_method_code => l_bflow_method_code
38826 ,p_business_class_code => l_bflow_class_code
38827 ,p_balance_type => l_balance_type_code);
38828 ELSE
38829 NULL;
38830 -- No business flow processing for business flow method of NONE.
38831 END IF;
38832
38833 --
38834 -- call analytical criteria
38835 --
38836
38837 --
38838 -- call description
38839 --
38840 -- No description or it is inherited.
38841 --
38842 -- call ADRs
38843 -- Bug 4922099
38844 --
38845 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38846 (NVL(l_actual_upg_option, 'N') = 'O') OR
38850 NULL;
38847 (NVL(l_enc_upg_option, 'N') = 'O')
38848 )
38849 THEN
38851 --
38852 --
38853
38854 l_ccid := AcctDerRule_14(
38855 p_application_id => p_application_id
38856 , p_ae_header_id => l_ae_header_id
38857 , p_source_5 => p_source_5
38858 , p_source_7 => p_source_7
38859 , p_source_8 => p_source_8
38860 , x_transaction_coa_id => l_adr_transaction_coa_id
38861 , x_accounting_coa_id => l_adr_accounting_coa_id
38862 , x_value_type_code => l_adr_value_type_code
38863 , p_side => 'NA'
38864 );
38865
38866 xla_ae_lines_pkg.set_ccid(
38867 p_code_combination_id => l_ccid
38868 , p_value_type_code => l_adr_value_type_code
38869 , p_transaction_coa_id => l_adr_transaction_coa_id
38870 , p_accounting_coa_id => l_adr_accounting_coa_id
38871 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
38872 , p_adr_type_code => 'S'
38873 , p_component_type => l_component_type
38874 , p_component_code => l_component_code
38875 , p_component_type_code => l_component_type_code
38876 , p_component_appl_id => l_component_appl_id
38877 , p_amb_context_code => l_amb_context_code
38878 , p_side => 'NA'
38879 );
38880
38881
38882 --
38883 --
38884 END IF;
38885 --
38886 -- Bug 4922099
38887 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
38888 (NVL(l_enc_upg_option, 'N') = 'O')
38889 ) AND
38890 (l_bflow_method_code = 'PRIOR_ENTRY')
38891 )
38892 THEN
38893 IF
38894 --
38895 1 = 2
38896 --
38897 THEN
38898 xla_accounting_err_pkg.build_message
38899 (p_appli_s_name => 'XLA'
38900 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38901 ,p_token_1 => 'LINE_NUMBER'
38902 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
38903 ,p_token_2 => 'LINE_TYPE_NAME'
38904 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
38905 l_component_type
38906 ,l_component_code
38907 ,l_component_type_code
38908 ,l_component_appl_id
38909 ,l_amb_context_code
38910 ,l_entity_code
38911 ,l_event_class_code
38912 )
38913 ,p_token_3 => 'OWNER'
38914 ,p_value_3 => xla_lookups_pkg.get_meaning(
38915 p_lookup_type => 'XLA_OWNER_TYPE'
38916 ,p_lookup_code => l_component_type_code
38917 )
38918 ,p_token_4 => 'PRODUCT_NAME'
38919 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
38920 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
38921 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
38922 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
38923 ,p_ae_header_id => NULL
38924 );
38925
38926 IF (C_LEVEL_ERROR>= g_log_level) THEN
38927 trace
38928 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38929 ,p_level => C_LEVEL_ERROR
38930 ,p_module => l_log_module);
38931 END IF;
38932 END IF;
38933 END IF;
38934 --
38935 --
38936 ------------------------------------------------------------------------------------------------
38937 -- 4219869 Business Flow
38938 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
38939 -- Prior Entry. Currently, the following code is always generated.
38940 ------------------------------------------------------------------------------------------------
38941 XLA_AE_LINES_PKG.ValidateCurrentLine;
38942
38943 ------------------------------------------------------------------------------------
38944 -- 4219869 Business Flow
38945 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
38946 ------------------------------------------------------------------------------------
38947 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38948
38949 ----------------------------------------------------------------------------------
38950 -- 4219869 Business Flow
38951 -- Update journal entry status -- Need to generate this within IF <condition>
38952 ----------------------------------------------------------------------------------
38953 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38954 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
38955 ,p_balance_type_code => l_balance_type_code
38959 -- 4262811 - Generate the Accrual Reversal lines
38956 );
38957
38958 -------------------------------------------------------------------------------------------
38960 -------------------------------------------------------------------------------------------
38961 BEGIN
38962 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
38963 (g_array_event(p_event_id).array_value_num('header_index'));
38964 IF l_acc_rev_flag IS NULL THEN
38965 l_acc_rev_flag := 'N';
38966 END IF;
38967 EXCEPTION
38968 WHEN OTHERS THEN
38969 l_acc_rev_flag := 'N';
38970 END;
38971 --
38972 IF (l_acc_rev_flag = 'Y') THEN
38973
38974 -- 4645092 ------------------------------------------------------------------------------
38975 -- To allow MPA report to determine if it should generate report process
38976 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
38977 ------------------------------------------------------------------------------------------
38978
38979 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
38980 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
38981
38982 --
38983 -- Update the line information that should be overwritten
38984 --
38985 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
38986 p_header_num => 1);
38987 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
38988
38989 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
38990
38991 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
38992 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
38993 END IF;
38994
38995 --
38996 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
38997 --
38998 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
38999 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
39000 ELSE
39001 ---------------------------------------------------------------------------------------------------
39002 -- 4262811a Switch Sign
39003 ---------------------------------------------------------------------------------------------------
39004 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
39005 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39006 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39007 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39008 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39009 -- 5132302
39010 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
39011 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39012
39013 END IF;
39014
39015 -- 4955764
39016 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39017 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
39018
39019
39020 XLA_AE_LINES_PKG.ValidateCurrentLine;
39021 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39022
39023 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39024 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
39025 ,p_balance_type_code => l_balance_type_code);
39026
39027 END IF;
39028
39029 -----------------------------------------------------------------------------------------
39030 -- 4262811 Multiperiod Accounting
39031 -----------------------------------------------------------------------------------------
39032 -- No MPA option is assigned.
39033
39034
39035 END IF;
39036 END IF;
39037 --
39038
39039 --
39040 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39041 trace
39042 (p_msg => 'END of AcctLineType_88'
39043 ,p_level => C_LEVEL_PROCEDURE
39044 ,p_module => l_log_module);
39045 END IF;
39046 --
39047 EXCEPTION
39048 WHEN xla_exceptions_pkg.application_exception THEN
39049 RAISE;
39050 WHEN OTHERS THEN
39051 xla_exceptions_pkg.raise_message
39052 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_88');
39053 END AcctLineType_88;
39054 --
39055
39056 ---------------------------------------
39057 --
39058 -- PRIVATE FUNCTION
39059 -- AcctLineType_89
39060 --
39061 ---------------------------------------
39062 PROCEDURE AcctLineType_89 (
39063 p_application_id IN NUMBER
39064 ,p_event_id IN NUMBER
39065 ,p_calculate_acctd_flag IN VARCHAR2
39066 ,p_calculate_g_l_flag IN VARCHAR2
39067 ,p_actual_flag IN OUT VARCHAR2
39068 ,p_balance_type_code OUT VARCHAR2
39069 ,p_gain_or_loss_ref OUT VARCHAR2
39070
39071 --Cost CCID
39072 , p_source_4 IN NUMBER
39073 --Allow Account Override Flag
39074 , p_source_5 IN VARCHAR2
39075 --Cost Clearing CCID
39076 , p_source_7 IN NUMBER
39077 --Adjustment Cost Clearing CCID
39078 , p_source_8 IN NUMBER
39079 --Reversing Line Flag
39080 , p_source_23 IN VARCHAR2
39081 --Actual Upgrade Credit Accounting Class
39082 , p_source_24 IN VARCHAR2
39083 --Entered Raw Cost
39084 , p_source_25 IN NUMBER
39088 , p_source_27 IN NUMBER
39085 --Entered Currency Code
39086 , p_source_26 IN VARCHAR2
39087 --Accounted Raw Cost
39089 --Exchange Rate Date
39090 , p_source_28 IN DATE
39091 --Exchange Rate
39092 , p_source_29 IN NUMBER
39093 --Exchange Rate Type
39094 , p_source_30 IN VARCHAR2
39095 --Actual Upgrade Debit Accounting Class
39096 , p_source_31 IN VARCHAR2
39097 --Use Actuals Upgrade Attributes Flag
39098 , p_source_32 IN VARCHAR2
39099 --Expenditure Item ID
39100 , p_source_33 IN NUMBER
39101 --Cost Distribution Line Number
39102 , p_source_34 IN NUMBER
39103 --Line Type
39104 , p_source_35 IN VARCHAR2
39105 , p_source_35_meaning IN VARCHAR2
39106 --Reversed Line Number
39107 , p_source_36 IN NUMBER
39108 )
39109 IS
39110
39111 l_component_type VARCHAR2(80);
39112 l_component_code VARCHAR2(30);
39113 l_component_type_code VARCHAR2(1);
39114 l_component_appl_id INTEGER;
39115 l_amb_context_code VARCHAR2(30);
39116 l_entity_code VARCHAR2(30);
39117 l_event_class_code VARCHAR2(30);
39118 l_ae_header_id NUMBER;
39119 l_event_type_code VARCHAR2(30);
39120 l_line_definition_code VARCHAR2(30);
39121 l_line_definition_owner_code VARCHAR2(1);
39122 --
39123 -- adr variables
39124 l_segment VARCHAR2(30);
39125 l_ccid NUMBER;
39126 l_adr_transaction_coa_id NUMBER;
39127 l_adr_accounting_coa_id NUMBER;
39128 l_adr_flexfield_segment_code VARCHAR2(30);
39129 l_adr_flex_value_set_id NUMBER;
39130 l_adr_value_type_code VARCHAR2(30);
39131 l_adr_value_combination_id NUMBER;
39132 l_adr_value_segment_code VARCHAR2(30);
39133
39134 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
39135 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
39136 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
39137 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
39138
39139 -- 4262811 Variables ------------------------------------------------------------------------------------------
39140 l_entered_amt_idx NUMBER;
39141 l_accted_amt_idx NUMBER;
39142 l_acc_rev_flag VARCHAR2(1);
39143 l_accrual_line_num NUMBER;
39144 l_tmp_amt NUMBER;
39145 l_acc_rev_natural_side_code VARCHAR2(1);
39146
39147 l_num_entries NUMBER;
39148 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
39149 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
39150 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
39151 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
39152 l_recog_line_1 NUMBER;
39153 l_recog_line_2 NUMBER;
39154
39155 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
39156 l_bflow_applied_to_amt NUMBER; -- 5132302
39157 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
39158
39159 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
39160
39161 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
39162 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
39163
39164 ---------------------------------------------------------------------------------------------------------------
39165
39166
39167 --
39168 -- bulk performance
39169 --
39170 l_balance_type_code VARCHAR2(1);
39171 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
39172 l_log_module VARCHAR2(240);
39173
39174 --
39175 -- Upgrade strategy
39176 --
39177 l_actual_upg_option VARCHAR2(1);
39178 l_enc_upg_option VARCHAR2(1);
39179
39180 --
39181 BEGIN
39182 --
39183 IF g_log_enabled THEN
39184 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_89';
39185 END IF;
39186 --
39187 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39188
39189 trace
39190 (p_msg => 'BEGIN of AcctLineType_89'
39191 ,p_level => C_LEVEL_PROCEDURE
39192 ,p_module => l_log_module);
39193
39194 END IF;
39195 --
39196 l_component_type := 'AMB_JLT';
39197 l_component_code := 'PA_RAW_COST_CLEARING';
39198 l_component_type_code := 'S';
39199 l_component_appl_id := 275;
39200 l_amb_context_code := 'DEFAULT';
39201 l_entity_code := 'EXPENDITURES';
39202 l_event_class_code := 'INVENTORY_COST';
39203 l_event_type_code := 'INVENTORY_COST_ALL';
39204 l_line_definition_owner_code := 'S';
39205 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
39206 --
39207 l_balance_type_code := 'A';
39208 l_segment := NULL;
39209 l_ccid := NULL;
39210 l_adr_transaction_coa_id := NULL;
39211 l_adr_accounting_coa_id := NULL;
39212 l_adr_flexfield_segment_code := NULL;
39213 l_adr_flex_value_set_id := NULL;
39214 l_adr_value_type_code := NULL;
39215 l_adr_value_combination_id := NULL;
39216 l_adr_value_segment_code := NULL;
39217
39218 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
39219 l_bflow_class_code := ''; -- 4219869 Business Flow
39220 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
39221 l_budgetary_control_flag := 'N';
39222
39223 l_bflow_applied_to_amt_idx := NULL; -- 5132302
39224 l_bflow_applied_to_amt := NULL; -- 5132302
39228 l_accrual_line_num := NULL; -- 4262811
39225 l_entered_amt_idx := NULL; -- 4262811
39226 l_accted_amt_idx := NULL; -- 4262811
39227 l_acc_rev_flag := NULL; -- 4262811
39229 l_tmp_amt := NULL; -- 4262811
39230 --
39231
39232 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
39233 l_balance_type_code <> 'B' THEN
39234
39235 --
39236 XLA_AE_LINES_PKG.SetNewLine;
39237
39238 p_balance_type_code := l_balance_type_code;
39239 -- set the flag so later we will know whether the gain loss line needs to be created
39240
39241 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
39242 p_actual_flag :='A';
39243 END IF;
39244
39245 --
39246 -- bulk performance
39247 --
39248 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
39249 p_header_num => 0); -- 4262811
39250 --
39251 -- set accounting line options
39252 --
39253 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
39254 p_natural_side_code => 'C'
39255 , p_gain_or_loss_flag => 'N'
39256 , p_gl_transfer_mode_code => 'S'
39257 , p_acct_entry_type_code => 'A'
39258 , p_switch_side_flag => 'Y'
39259 , p_merge_duplicate_code => 'N'
39260 );
39261 --
39262 l_acc_rev_natural_side_code := 'D'; -- 4262811
39263 --
39264 --
39265 -- set accounting line type info
39266 --
39267 xla_ae_lines_pkg.SetAcctLineType
39268 (p_component_type => l_component_type
39269 ,p_event_type_code => l_event_type_code
39270 ,p_line_definition_owner_code => l_line_definition_owner_code
39271 ,p_line_definition_code => l_line_definition_code
39272 ,p_accounting_line_code => l_component_code
39273 ,p_accounting_line_type_code => l_component_type_code
39274 ,p_accounting_line_appl_id => l_component_appl_id
39275 ,p_amb_context_code => l_amb_context_code
39276 ,p_entity_code => l_entity_code
39277 ,p_event_class_code => l_event_class_code);
39278 --
39279 -- set accounting class
39280 --
39281 xla_ae_lines_pkg.SetAcctClass(
39282 p_accounting_class_code => 'COST_CLEARING'
39283 , p_ae_header_id => l_ae_header_id
39284 );
39285
39286 --
39287 -- set rounding class
39288 --
39289 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
39290 'COST_CLEARING';
39291
39292 --
39293 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
39294 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
39295 --
39296 -- bulk performance
39297 --
39298 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
39299
39300 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
39301 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
39302
39303 -- 4955764
39304 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39305 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
39306
39307 -- 4458381 Public Sector Enh
39308
39309 --
39310 -- set accounting attributes for the line type
39311 --
39312 l_entered_amt_idx := 22;
39313 l_accted_amt_idx := 27;
39314 l_bflow_applied_to_amt_idx := NULL; -- 5132302
39315 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
39316 l_rec_acct_attrs.array_char_value(1) := p_source_23;
39317 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
39318 l_rec_acct_attrs.array_char_value(2) := p_source_24;
39319 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
39320 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
39321 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
39322 l_rec_acct_attrs.array_num_value(4) := p_source_25;
39323 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
39324 l_rec_acct_attrs.array_char_value(5) := p_source_26;
39325 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
39326 l_rec_acct_attrs.array_num_value(6) := p_source_27;
39327 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
39328 l_rec_acct_attrs.array_date_value(7) := p_source_28;
39329 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
39330 l_rec_acct_attrs.array_num_value(8) := p_source_29;
39331 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
39332 l_rec_acct_attrs.array_char_value(9) := p_source_30;
39333 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
39334 l_rec_acct_attrs.array_char_value(10) := p_source_31;
39335 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
39336 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
39337 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
39338 l_rec_acct_attrs.array_num_value(12) := p_source_25;
39339 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
39340 l_rec_acct_attrs.array_char_value(13) := p_source_26;
39341 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
39342 l_rec_acct_attrs.array_num_value(14) := p_source_27;
39343 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
39344 l_rec_acct_attrs.array_date_value(15) := p_source_28;
39348 l_rec_acct_attrs.array_char_value(17) := p_source_30;
39345 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
39346 l_rec_acct_attrs.array_num_value(16) := p_source_29;
39347 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
39349 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
39350 l_rec_acct_attrs.array_char_value(18) := p_source_32;
39351 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
39352 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
39353 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
39354 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
39355 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
39356 l_rec_acct_attrs.array_char_value(21) := p_source_35;
39357 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
39358 l_rec_acct_attrs.array_num_value(22) := p_source_25;
39359 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
39360 l_rec_acct_attrs.array_char_value(23) := p_source_26;
39361 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
39362 l_rec_acct_attrs.array_date_value(24) := p_source_28;
39363 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
39364 l_rec_acct_attrs.array_num_value(25) := p_source_29;
39365 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
39366 l_rec_acct_attrs.array_char_value(26) := p_source_30;
39367 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
39368 l_rec_acct_attrs.array_num_value(27) := p_source_27;
39369 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
39370 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
39371 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
39372 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
39373 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
39374 l_rec_acct_attrs.array_char_value(30) := p_source_35;
39375
39376 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
39377 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
39378
39379 ---------------------------------------------------------------------------------------------------------------
39380 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
39381 ---------------------------------------------------------------------------------------------------------------
39382 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
39383
39384 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39385 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39386
39387 IF xla_accounting_cache_pkg.GetValueChar
39388 (p_source_code => 'LEDGER_CATEGORY_CODE'
39389 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
39390 AND l_bflow_method_code = 'PRIOR_ENTRY'
39391 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
39392 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
39393 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
39394 )
39395 THEN
39396 xla_ae_lines_pkg.BflowUpgEntry
39397 (p_business_method_code => l_bflow_method_code
39398 ,p_business_class_code => l_bflow_class_code
39399 ,p_balance_type => l_balance_type_code);
39400 ELSE
39401 NULL;
39402 -- No business flow processing for business flow method of NONE.
39403 END IF;
39404
39405 --
39406 -- call analytical criteria
39407 --
39408
39409 --
39410 -- call description
39411 --
39412 -- No description or it is inherited.
39413 --
39414 -- call ADRs
39415 -- Bug 4922099
39416 --
39417 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39418 (NVL(l_actual_upg_option, 'N') = 'O') OR
39419 (NVL(l_enc_upg_option, 'N') = 'O')
39420 )
39421 THEN
39422 NULL;
39423 --
39424 --
39425
39426 l_ccid := AcctDerRule_14(
39427 p_application_id => p_application_id
39428 , p_ae_header_id => l_ae_header_id
39429 , p_source_5 => p_source_5
39430 , p_source_7 => p_source_7
39431 , p_source_8 => p_source_8
39432 , x_transaction_coa_id => l_adr_transaction_coa_id
39433 , x_accounting_coa_id => l_adr_accounting_coa_id
39434 , x_value_type_code => l_adr_value_type_code
39435 , p_side => 'NA'
39436 );
39437
39438 xla_ae_lines_pkg.set_ccid(
39439 p_code_combination_id => l_ccid
39440 , p_value_type_code => l_adr_value_type_code
39441 , p_transaction_coa_id => l_adr_transaction_coa_id
39442 , p_accounting_coa_id => l_adr_accounting_coa_id
39443 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
39444 , p_adr_type_code => 'S'
39445 , p_component_type => l_component_type
39446 , p_component_code => l_component_code
39447 , p_component_type_code => l_component_type_code
39448 , p_component_appl_id => l_component_appl_id
39449 , p_amb_context_code => l_amb_context_code
39450 , p_side => 'NA'
39451 );
39452
39453
39454 --
39455 --
39456 END IF;
39457 --
39458 -- Bug 4922099
39459 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
39460 (NVL(l_enc_upg_option, 'N') = 'O')
39461 ) AND
39462 (l_bflow_method_code = 'PRIOR_ENTRY')
39463 )
39464 THEN
39468 --
39465 IF
39466 --
39467 1 = 2
39469 THEN
39470 xla_accounting_err_pkg.build_message
39471 (p_appli_s_name => 'XLA'
39472 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39473 ,p_token_1 => 'LINE_NUMBER'
39474 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
39475 ,p_token_2 => 'LINE_TYPE_NAME'
39476 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
39477 l_component_type
39478 ,l_component_code
39479 ,l_component_type_code
39480 ,l_component_appl_id
39481 ,l_amb_context_code
39482 ,l_entity_code
39483 ,l_event_class_code
39484 )
39485 ,p_token_3 => 'OWNER'
39486 ,p_value_3 => xla_lookups_pkg.get_meaning(
39487 p_lookup_type => 'XLA_OWNER_TYPE'
39488 ,p_lookup_code => l_component_type_code
39489 )
39490 ,p_token_4 => 'PRODUCT_NAME'
39491 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
39492 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
39493 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
39494 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
39495 ,p_ae_header_id => NULL
39496 );
39497
39498 IF (C_LEVEL_ERROR>= g_log_level) THEN
39499 trace
39500 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39501 ,p_level => C_LEVEL_ERROR
39502 ,p_module => l_log_module);
39503 END IF;
39504 END IF;
39505 END IF;
39506 --
39507 --
39508 ------------------------------------------------------------------------------------------------
39509 -- 4219869 Business Flow
39510 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
39511 -- Prior Entry. Currently, the following code is always generated.
39512 ------------------------------------------------------------------------------------------------
39513 XLA_AE_LINES_PKG.ValidateCurrentLine;
39514
39515 ------------------------------------------------------------------------------------
39516 -- 4219869 Business Flow
39517 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
39518 ------------------------------------------------------------------------------------
39519 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39520
39521 ----------------------------------------------------------------------------------
39522 -- 4219869 Business Flow
39523 -- Update journal entry status -- Need to generate this within IF <condition>
39524 ----------------------------------------------------------------------------------
39525 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39526 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
39527 ,p_balance_type_code => l_balance_type_code
39528 );
39529
39530 -------------------------------------------------------------------------------------------
39531 -- 4262811 - Generate the Accrual Reversal lines
39532 -------------------------------------------------------------------------------------------
39533 BEGIN
39534 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
39535 (g_array_event(p_event_id).array_value_num('header_index'));
39536 IF l_acc_rev_flag IS NULL THEN
39537 l_acc_rev_flag := 'N';
39538 END IF;
39539 EXCEPTION
39540 WHEN OTHERS THEN
39541 l_acc_rev_flag := 'N';
39542 END;
39543 --
39544 IF (l_acc_rev_flag = 'Y') THEN
39545
39546 -- 4645092 ------------------------------------------------------------------------------
39547 -- To allow MPA report to determine if it should generate report process
39548 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
39549 ------------------------------------------------------------------------------------------
39550
39551 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
39552 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
39553
39554 --
39555 -- Update the line information that should be overwritten
39556 --
39557 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
39558 p_header_num => 1);
39559 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
39560
39561 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
39562
39563 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
39567 --
39564 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
39565 END IF;
39566
39568 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
39569 --
39570 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
39571 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
39572 ELSE
39573 ---------------------------------------------------------------------------------------------------
39574 -- 4262811a Switch Sign
39575 ---------------------------------------------------------------------------------------------------
39576 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
39577 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39578 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39579 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39580 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39581 -- 5132302
39582 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
39583 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39584
39585 END IF;
39586
39587 -- 4955764
39588 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39589 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
39590
39591
39592 XLA_AE_LINES_PKG.ValidateCurrentLine;
39593 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39594
39595 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39596 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
39597 ,p_balance_type_code => l_balance_type_code);
39598
39599 END IF;
39600
39601 -----------------------------------------------------------------------------------------
39602 -- 4262811 Multiperiod Accounting
39603 -----------------------------------------------------------------------------------------
39604 -- No MPA option is assigned.
39605
39606
39607 END IF;
39608 --
39609
39610 --
39611 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39612 trace
39613 (p_msg => 'END of AcctLineType_89'
39614 ,p_level => C_LEVEL_PROCEDURE
39615 ,p_module => l_log_module);
39616 END IF;
39617 --
39618 EXCEPTION
39619 WHEN xla_exceptions_pkg.application_exception THEN
39620 RAISE;
39621 WHEN OTHERS THEN
39622 xla_exceptions_pkg.raise_message
39623 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_89');
39624 END AcctLineType_89;
39625 --
39626
39627 ---------------------------------------
39628 --
39629 -- PRIVATE FUNCTION
39630 -- AcctLineType_90
39631 --
39632 ---------------------------------------
39633 PROCEDURE AcctLineType_90 (
39634 p_application_id IN NUMBER
39635 ,p_event_id IN NUMBER
39636 ,p_calculate_acctd_flag IN VARCHAR2
39637 ,p_calculate_g_l_flag IN VARCHAR2
39638 ,p_actual_flag IN OUT VARCHAR2
39639 ,p_balance_type_code OUT VARCHAR2
39640 ,p_gain_or_loss_ref OUT VARCHAR2
39641
39642 --Cost CCID
39643 , p_source_4 IN NUMBER
39644 --Allow Account Override Flag
39645 , p_source_5 IN VARCHAR2
39646 --Cost Clearing CCID
39647 , p_source_7 IN NUMBER
39648 --Adjustment Cost Clearing CCID
39649 , p_source_8 IN NUMBER
39650 --Reversing Line Flag
39651 , p_source_23 IN VARCHAR2
39652 --Actual Upgrade Credit Accounting Class
39653 , p_source_24 IN VARCHAR2
39654 --Entered Raw Cost
39655 , p_source_25 IN NUMBER
39656 --Entered Currency Code
39657 , p_source_26 IN VARCHAR2
39658 --Accounted Raw Cost
39659 , p_source_27 IN NUMBER
39660 --Exchange Rate Date
39661 , p_source_28 IN DATE
39662 --Exchange Rate
39663 , p_source_29 IN NUMBER
39664 --Exchange Rate Type
39665 , p_source_30 IN VARCHAR2
39666 --Actual Upgrade Debit Accounting Class
39667 , p_source_31 IN VARCHAR2
39668 --Use Actuals Upgrade Attributes Flag
39669 , p_source_32 IN VARCHAR2
39670 --Expenditure Item ID
39671 , p_source_33 IN NUMBER
39672 --Cost Distribution Line Number
39673 , p_source_34 IN NUMBER
39674 --Line Type
39675 , p_source_35 IN VARCHAR2
39676 , p_source_35_meaning IN VARCHAR2
39677 --Reversed Line Number
39678 , p_source_36 IN NUMBER
39679 )
39680 IS
39681
39682 l_component_type VARCHAR2(80);
39683 l_component_code VARCHAR2(30);
39684 l_component_type_code VARCHAR2(1);
39685 l_component_appl_id INTEGER;
39686 l_amb_context_code VARCHAR2(30);
39687 l_entity_code VARCHAR2(30);
39688 l_event_class_code VARCHAR2(30);
39689 l_ae_header_id NUMBER;
39690 l_event_type_code VARCHAR2(30);
39691 l_line_definition_code VARCHAR2(30);
39692 l_line_definition_owner_code VARCHAR2(1);
39693 --
39694 -- adr variables
39695 l_segment VARCHAR2(30);
39696 l_ccid NUMBER;
39697 l_adr_transaction_coa_id NUMBER;
39698 l_adr_accounting_coa_id NUMBER;
39699 l_adr_flexfield_segment_code VARCHAR2(30);
39700 l_adr_flex_value_set_id NUMBER;
39704
39701 l_adr_value_type_code VARCHAR2(30);
39702 l_adr_value_combination_id NUMBER;
39703 l_adr_value_segment_code VARCHAR2(30);
39705 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
39706 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
39707 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
39708 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
39709
39710 -- 4262811 Variables ------------------------------------------------------------------------------------------
39711 l_entered_amt_idx NUMBER;
39712 l_accted_amt_idx NUMBER;
39713 l_acc_rev_flag VARCHAR2(1);
39714 l_accrual_line_num NUMBER;
39715 l_tmp_amt NUMBER;
39716 l_acc_rev_natural_side_code VARCHAR2(1);
39717
39718 l_num_entries NUMBER;
39719 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
39720 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
39721 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
39722 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
39723 l_recog_line_1 NUMBER;
39724 l_recog_line_2 NUMBER;
39725
39726 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
39727 l_bflow_applied_to_amt NUMBER; -- 5132302
39728 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
39729
39730 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
39731
39732 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
39733 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
39734
39735 ---------------------------------------------------------------------------------------------------------------
39736
39737
39738 --
39739 -- bulk performance
39740 --
39741 l_balance_type_code VARCHAR2(1);
39742 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
39743 l_log_module VARCHAR2(240);
39744
39745 --
39746 -- Upgrade strategy
39747 --
39748 l_actual_upg_option VARCHAR2(1);
39749 l_enc_upg_option VARCHAR2(1);
39750
39751 --
39752 BEGIN
39753 --
39754 IF g_log_enabled THEN
39755 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_90';
39756 END IF;
39757 --
39758 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39759
39760 trace
39761 (p_msg => 'BEGIN of AcctLineType_90'
39762 ,p_level => C_LEVEL_PROCEDURE
39763 ,p_module => l_log_module);
39764
39765 END IF;
39766 --
39767 l_component_type := 'AMB_JLT';
39768 l_component_code := 'PA_RAW_COST_CLEARING';
39769 l_component_type_code := 'S';
39770 l_component_appl_id := 275;
39771 l_amb_context_code := 'DEFAULT';
39772 l_entity_code := 'EXPENDITURES';
39773 l_event_class_code := 'MISC_COST';
39774 l_event_type_code := 'MISC_COST_ALL';
39775 l_line_definition_owner_code := 'S';
39776 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
39777 --
39778 l_balance_type_code := 'A';
39779 l_segment := NULL;
39780 l_ccid := NULL;
39781 l_adr_transaction_coa_id := NULL;
39782 l_adr_accounting_coa_id := NULL;
39783 l_adr_flexfield_segment_code := NULL;
39784 l_adr_flex_value_set_id := NULL;
39785 l_adr_value_type_code := NULL;
39786 l_adr_value_combination_id := NULL;
39787 l_adr_value_segment_code := NULL;
39788
39789 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
39790 l_bflow_class_code := ''; -- 4219869 Business Flow
39791 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
39792 l_budgetary_control_flag := 'N';
39793
39794 l_bflow_applied_to_amt_idx := NULL; -- 5132302
39795 l_bflow_applied_to_amt := NULL; -- 5132302
39796 l_entered_amt_idx := NULL; -- 4262811
39797 l_accted_amt_idx := NULL; -- 4262811
39798 l_acc_rev_flag := NULL; -- 4262811
39799 l_accrual_line_num := NULL; -- 4262811
39800 l_tmp_amt := NULL; -- 4262811
39801 --
39802
39803 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
39804 l_balance_type_code <> 'B' THEN
39805
39806 --
39807 XLA_AE_LINES_PKG.SetNewLine;
39808
39809 p_balance_type_code := l_balance_type_code;
39810 -- set the flag so later we will know whether the gain loss line needs to be created
39811
39812 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
39813 p_actual_flag :='A';
39814 END IF;
39815
39816 --
39817 -- bulk performance
39818 --
39819 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
39820 p_header_num => 0); -- 4262811
39821 --
39822 -- set accounting line options
39823 --
39824 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
39825 p_natural_side_code => 'C'
39826 , p_gain_or_loss_flag => 'N'
39827 , p_gl_transfer_mode_code => 'S'
39828 , p_acct_entry_type_code => 'A'
39829 , p_switch_side_flag => 'Y'
39830 , p_merge_duplicate_code => 'N'
39831 );
39832 --
39833 l_acc_rev_natural_side_code := 'D'; -- 4262811
39834 --
39835 --
39836 -- set accounting line type info
39837 --
39838 xla_ae_lines_pkg.SetAcctLineType
39839 (p_component_type => l_component_type
39843 ,p_accounting_line_code => l_component_code
39840 ,p_event_type_code => l_event_type_code
39841 ,p_line_definition_owner_code => l_line_definition_owner_code
39842 ,p_line_definition_code => l_line_definition_code
39844 ,p_accounting_line_type_code => l_component_type_code
39845 ,p_accounting_line_appl_id => l_component_appl_id
39846 ,p_amb_context_code => l_amb_context_code
39847 ,p_entity_code => l_entity_code
39848 ,p_event_class_code => l_event_class_code);
39849 --
39850 -- set accounting class
39851 --
39852 xla_ae_lines_pkg.SetAcctClass(
39853 p_accounting_class_code => 'COST_CLEARING'
39854 , p_ae_header_id => l_ae_header_id
39855 );
39856
39857 --
39858 -- set rounding class
39859 --
39860 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
39861 'COST_CLEARING';
39862
39863 --
39864 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
39865 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
39866 --
39867 -- bulk performance
39868 --
39869 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
39870
39871 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
39872 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
39873
39874 -- 4955764
39875 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39876 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
39877
39878 -- 4458381 Public Sector Enh
39879
39880 --
39881 -- set accounting attributes for the line type
39882 --
39883 l_entered_amt_idx := 22;
39884 l_accted_amt_idx := 27;
39885 l_bflow_applied_to_amt_idx := NULL; -- 5132302
39886 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
39887 l_rec_acct_attrs.array_char_value(1) := p_source_23;
39888 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
39889 l_rec_acct_attrs.array_char_value(2) := p_source_24;
39890 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
39891 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
39892 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
39893 l_rec_acct_attrs.array_num_value(4) := p_source_25;
39894 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
39895 l_rec_acct_attrs.array_char_value(5) := p_source_26;
39896 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
39897 l_rec_acct_attrs.array_num_value(6) := p_source_27;
39898 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
39899 l_rec_acct_attrs.array_date_value(7) := p_source_28;
39900 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
39901 l_rec_acct_attrs.array_num_value(8) := p_source_29;
39902 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
39903 l_rec_acct_attrs.array_char_value(9) := p_source_30;
39904 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
39905 l_rec_acct_attrs.array_char_value(10) := p_source_31;
39906 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
39907 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
39908 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
39909 l_rec_acct_attrs.array_num_value(12) := p_source_25;
39910 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
39911 l_rec_acct_attrs.array_char_value(13) := p_source_26;
39912 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
39913 l_rec_acct_attrs.array_num_value(14) := p_source_27;
39914 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
39915 l_rec_acct_attrs.array_date_value(15) := p_source_28;
39916 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
39917 l_rec_acct_attrs.array_num_value(16) := p_source_29;
39918 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
39919 l_rec_acct_attrs.array_char_value(17) := p_source_30;
39920 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
39921 l_rec_acct_attrs.array_char_value(18) := p_source_32;
39922 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
39923 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
39924 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
39925 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
39926 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
39927 l_rec_acct_attrs.array_char_value(21) := p_source_35;
39928 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
39929 l_rec_acct_attrs.array_num_value(22) := p_source_25;
39930 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
39931 l_rec_acct_attrs.array_char_value(23) := p_source_26;
39932 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
39933 l_rec_acct_attrs.array_date_value(24) := p_source_28;
39934 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
39935 l_rec_acct_attrs.array_num_value(25) := p_source_29;
39936 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
39937 l_rec_acct_attrs.array_char_value(26) := p_source_30;
39938 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
39939 l_rec_acct_attrs.array_num_value(27) := p_source_27;
39940 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
39941 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
39942 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
39946
39943 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
39944 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
39945 l_rec_acct_attrs.array_char_value(30) := p_source_35;
39947 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
39948 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
39949
39950 ---------------------------------------------------------------------------------------------------------------
39951 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
39952 ---------------------------------------------------------------------------------------------------------------
39953 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
39954
39955 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39956 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39957
39958 IF xla_accounting_cache_pkg.GetValueChar
39959 (p_source_code => 'LEDGER_CATEGORY_CODE'
39960 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
39961 AND l_bflow_method_code = 'PRIOR_ENTRY'
39962 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
39963 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
39964 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
39965 )
39966 THEN
39967 xla_ae_lines_pkg.BflowUpgEntry
39968 (p_business_method_code => l_bflow_method_code
39969 ,p_business_class_code => l_bflow_class_code
39970 ,p_balance_type => l_balance_type_code);
39971 ELSE
39972 NULL;
39973 -- No business flow processing for business flow method of NONE.
39974 END IF;
39975
39976 --
39977 -- call analytical criteria
39978 --
39979
39980 --
39981 -- call description
39982 --
39983 -- No description or it is inherited.
39984 --
39985 -- call ADRs
39986 -- Bug 4922099
39987 --
39988 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39989 (NVL(l_actual_upg_option, 'N') = 'O') OR
39990 (NVL(l_enc_upg_option, 'N') = 'O')
39991 )
39992 THEN
39993 NULL;
39994 --
39995 --
39996
39997 l_ccid := AcctDerRule_14(
39998 p_application_id => p_application_id
39999 , p_ae_header_id => l_ae_header_id
40000 , p_source_5 => p_source_5
40001 , p_source_7 => p_source_7
40002 , p_source_8 => p_source_8
40003 , x_transaction_coa_id => l_adr_transaction_coa_id
40004 , x_accounting_coa_id => l_adr_accounting_coa_id
40005 , x_value_type_code => l_adr_value_type_code
40006 , p_side => 'NA'
40007 );
40008
40009 xla_ae_lines_pkg.set_ccid(
40010 p_code_combination_id => l_ccid
40011 , p_value_type_code => l_adr_value_type_code
40012 , p_transaction_coa_id => l_adr_transaction_coa_id
40013 , p_accounting_coa_id => l_adr_accounting_coa_id
40014 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
40015 , p_adr_type_code => 'S'
40016 , p_component_type => l_component_type
40017 , p_component_code => l_component_code
40018 , p_component_type_code => l_component_type_code
40019 , p_component_appl_id => l_component_appl_id
40020 , p_amb_context_code => l_amb_context_code
40021 , p_side => 'NA'
40022 );
40023
40024
40025 --
40026 --
40027 END IF;
40028 --
40029 -- Bug 4922099
40030 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
40031 (NVL(l_enc_upg_option, 'N') = 'O')
40032 ) AND
40033 (l_bflow_method_code = 'PRIOR_ENTRY')
40034 )
40035 THEN
40036 IF
40037 --
40038 1 = 2
40039 --
40040 THEN
40041 xla_accounting_err_pkg.build_message
40042 (p_appli_s_name => 'XLA'
40043 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40044 ,p_token_1 => 'LINE_NUMBER'
40045 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
40046 ,p_token_2 => 'LINE_TYPE_NAME'
40047 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
40048 l_component_type
40049 ,l_component_code
40050 ,l_component_type_code
40051 ,l_component_appl_id
40052 ,l_amb_context_code
40053 ,l_entity_code
40054 ,l_event_class_code
40055 )
40056 ,p_token_3 => 'OWNER'
40057 ,p_value_3 => xla_lookups_pkg.get_meaning(
40058 p_lookup_type => 'XLA_OWNER_TYPE'
40059 ,p_lookup_code => l_component_type_code
40063 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
40060 )
40061 ,p_token_4 => 'PRODUCT_NAME'
40062 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
40064 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
40065 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
40066 ,p_ae_header_id => NULL
40067 );
40068
40069 IF (C_LEVEL_ERROR>= g_log_level) THEN
40070 trace
40071 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40072 ,p_level => C_LEVEL_ERROR
40073 ,p_module => l_log_module);
40074 END IF;
40075 END IF;
40076 END IF;
40077 --
40078 --
40079 ------------------------------------------------------------------------------------------------
40080 -- 4219869 Business Flow
40081 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
40082 -- Prior Entry. Currently, the following code is always generated.
40083 ------------------------------------------------------------------------------------------------
40084 XLA_AE_LINES_PKG.ValidateCurrentLine;
40085
40086 ------------------------------------------------------------------------------------
40087 -- 4219869 Business Flow
40088 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
40089 ------------------------------------------------------------------------------------
40090 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40091
40092 ----------------------------------------------------------------------------------
40093 -- 4219869 Business Flow
40094 -- Update journal entry status -- Need to generate this within IF <condition>
40095 ----------------------------------------------------------------------------------
40096 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40097 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
40098 ,p_balance_type_code => l_balance_type_code
40099 );
40100
40101 -------------------------------------------------------------------------------------------
40102 -- 4262811 - Generate the Accrual Reversal lines
40103 -------------------------------------------------------------------------------------------
40104 BEGIN
40105 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
40106 (g_array_event(p_event_id).array_value_num('header_index'));
40107 IF l_acc_rev_flag IS NULL THEN
40108 l_acc_rev_flag := 'N';
40109 END IF;
40110 EXCEPTION
40111 WHEN OTHERS THEN
40112 l_acc_rev_flag := 'N';
40113 END;
40114 --
40115 IF (l_acc_rev_flag = 'Y') THEN
40116
40117 -- 4645092 ------------------------------------------------------------------------------
40118 -- To allow MPA report to determine if it should generate report process
40119 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
40120 ------------------------------------------------------------------------------------------
40121
40122 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
40123 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
40124
40125 --
40126 -- Update the line information that should be overwritten
40127 --
40128 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
40129 p_header_num => 1);
40130 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
40131
40132 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
40133
40134 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
40135 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
40136 END IF;
40137
40138 --
40139 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
40140 --
40141 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
40142 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
40143 ELSE
40144 ---------------------------------------------------------------------------------------------------
40145 -- 4262811a Switch Sign
40146 ---------------------------------------------------------------------------------------------------
40147 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
40148 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40149 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40150 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40151 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40152 -- 5132302
40153 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
40154 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40155
40156 END IF;
40157
40158 -- 4955764
40159 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40160 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
40161
40162
40166 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40163 XLA_AE_LINES_PKG.ValidateCurrentLine;
40164 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40165
40167 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
40168 ,p_balance_type_code => l_balance_type_code);
40169
40170 END IF;
40171
40172 -----------------------------------------------------------------------------------------
40173 -- 4262811 Multiperiod Accounting
40174 -----------------------------------------------------------------------------------------
40175 -- No MPA option is assigned.
40176
40177
40178 END IF;
40179 --
40180
40181 --
40182 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40183 trace
40184 (p_msg => 'END of AcctLineType_90'
40185 ,p_level => C_LEVEL_PROCEDURE
40186 ,p_module => l_log_module);
40187 END IF;
40188 --
40189 EXCEPTION
40190 WHEN xla_exceptions_pkg.application_exception THEN
40191 RAISE;
40192 WHEN OTHERS THEN
40193 xla_exceptions_pkg.raise_message
40194 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_90');
40195 END AcctLineType_90;
40196 --
40197
40198 ---------------------------------------
40199 --
40200 -- PRIVATE FUNCTION
40201 -- AcctLineType_91
40202 --
40203 ---------------------------------------
40204 PROCEDURE AcctLineType_91 (
40205 p_application_id IN NUMBER
40206 ,p_event_id IN NUMBER
40207 ,p_calculate_acctd_flag IN VARCHAR2
40208 ,p_calculate_g_l_flag IN VARCHAR2
40209 ,p_actual_flag IN OUT VARCHAR2
40210 ,p_balance_type_code OUT VARCHAR2
40211 ,p_gain_or_loss_ref OUT VARCHAR2
40212
40213 --Cost CCID
40214 , p_source_4 IN NUMBER
40215 --Allow Account Override Flag
40216 , p_source_5 IN VARCHAR2
40217 --Cost Clearing CCID
40218 , p_source_7 IN NUMBER
40219 --Adjustment Cost Clearing CCID
40220 , p_source_8 IN NUMBER
40221 --Reversing Line Flag
40222 , p_source_23 IN VARCHAR2
40223 --Actual Upgrade Credit Accounting Class
40224 , p_source_24 IN VARCHAR2
40225 --Entered Raw Cost
40226 , p_source_25 IN NUMBER
40227 --Entered Currency Code
40228 , p_source_26 IN VARCHAR2
40229 --Accounted Raw Cost
40230 , p_source_27 IN NUMBER
40231 --Exchange Rate Date
40232 , p_source_28 IN DATE
40233 --Exchange Rate
40234 , p_source_29 IN NUMBER
40235 --Exchange Rate Type
40236 , p_source_30 IN VARCHAR2
40237 --Actual Upgrade Debit Accounting Class
40238 , p_source_31 IN VARCHAR2
40239 --Use Actuals Upgrade Attributes Flag
40240 , p_source_32 IN VARCHAR2
40241 --Expenditure Item ID
40242 , p_source_33 IN NUMBER
40243 --Cost Distribution Line Number
40244 , p_source_34 IN NUMBER
40245 --Line Type
40246 , p_source_35 IN VARCHAR2
40247 , p_source_35_meaning IN VARCHAR2
40248 --Reversed Line Number
40249 , p_source_36 IN NUMBER
40250 )
40251 IS
40252
40253 l_component_type VARCHAR2(80);
40254 l_component_code VARCHAR2(30);
40255 l_component_type_code VARCHAR2(1);
40256 l_component_appl_id INTEGER;
40257 l_amb_context_code VARCHAR2(30);
40258 l_entity_code VARCHAR2(30);
40259 l_event_class_code VARCHAR2(30);
40260 l_ae_header_id NUMBER;
40261 l_event_type_code VARCHAR2(30);
40262 l_line_definition_code VARCHAR2(30);
40263 l_line_definition_owner_code VARCHAR2(1);
40264 --
40265 -- adr variables
40266 l_segment VARCHAR2(30);
40267 l_ccid NUMBER;
40268 l_adr_transaction_coa_id NUMBER;
40269 l_adr_accounting_coa_id NUMBER;
40270 l_adr_flexfield_segment_code VARCHAR2(30);
40271 l_adr_flex_value_set_id NUMBER;
40272 l_adr_value_type_code VARCHAR2(30);
40273 l_adr_value_combination_id NUMBER;
40274 l_adr_value_segment_code VARCHAR2(30);
40275
40276 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
40277 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
40278 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
40279 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
40280
40281 -- 4262811 Variables ------------------------------------------------------------------------------------------
40282 l_entered_amt_idx NUMBER;
40283 l_accted_amt_idx NUMBER;
40284 l_acc_rev_flag VARCHAR2(1);
40285 l_accrual_line_num NUMBER;
40286 l_tmp_amt NUMBER;
40287 l_acc_rev_natural_side_code VARCHAR2(1);
40288
40289 l_num_entries NUMBER;
40290 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
40291 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
40292 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
40293 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
40294 l_recog_line_1 NUMBER;
40295 l_recog_line_2 NUMBER;
40296
40297 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
40298 l_bflow_applied_to_amt NUMBER; -- 5132302
40299 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
40300
40301 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
40302
40303 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
40304 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
40305
40309 --
40306 ---------------------------------------------------------------------------------------------------------------
40307
40308
40310 -- bulk performance
40311 --
40312 l_balance_type_code VARCHAR2(1);
40313 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
40314 l_log_module VARCHAR2(240);
40315
40316 --
40317 -- Upgrade strategy
40318 --
40319 l_actual_upg_option VARCHAR2(1);
40320 l_enc_upg_option VARCHAR2(1);
40321
40322 --
40323 BEGIN
40324 --
40325 IF g_log_enabled THEN
40326 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_91';
40327 END IF;
40328 --
40329 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40330
40331 trace
40332 (p_msg => 'BEGIN of AcctLineType_91'
40333 ,p_level => C_LEVEL_PROCEDURE
40334 ,p_module => l_log_module);
40335
40336 END IF;
40337 --
40338 l_component_type := 'AMB_JLT';
40339 l_component_code := 'PA_RAW_COST_CLEARING_ADJ';
40340 l_component_type_code := 'S';
40341 l_component_appl_id := 275;
40342 l_amb_context_code := 'DEFAULT';
40343 l_entity_code := 'EXPENDITURES';
40344 l_event_class_code := 'INVENTORY_COST_ADJ';
40345 l_event_type_code := 'INVENTORY_COST_ADJ_ALL';
40346 l_line_definition_owner_code := 'S';
40347 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
40348 --
40349 l_balance_type_code := 'A';
40350 l_segment := NULL;
40351 l_ccid := NULL;
40352 l_adr_transaction_coa_id := NULL;
40353 l_adr_accounting_coa_id := NULL;
40354 l_adr_flexfield_segment_code := NULL;
40355 l_adr_flex_value_set_id := NULL;
40356 l_adr_value_type_code := NULL;
40357 l_adr_value_combination_id := NULL;
40358 l_adr_value_segment_code := NULL;
40359
40360 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
40361 l_bflow_class_code := ''; -- 4219869 Business Flow
40362 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
40363 l_budgetary_control_flag := 'N';
40364
40365 l_bflow_applied_to_amt_idx := NULL; -- 5132302
40366 l_bflow_applied_to_amt := NULL; -- 5132302
40367 l_entered_amt_idx := NULL; -- 4262811
40368 l_accted_amt_idx := NULL; -- 4262811
40369 l_acc_rev_flag := NULL; -- 4262811
40370 l_accrual_line_num := NULL; -- 4262811
40371 l_tmp_amt := NULL; -- 4262811
40372 --
40373
40374 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
40375 l_balance_type_code <> 'B' THEN
40376
40377 --
40378 XLA_AE_LINES_PKG.SetNewLine;
40379
40380 p_balance_type_code := l_balance_type_code;
40381 -- set the flag so later we will know whether the gain loss line needs to be created
40382
40383 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
40384 p_actual_flag :='A';
40385 END IF;
40386
40387 --
40388 -- bulk performance
40389 --
40390 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
40391 p_header_num => 0); -- 4262811
40392 --
40393 -- set accounting line options
40394 --
40395 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
40396 p_natural_side_code => 'C'
40397 , p_gain_or_loss_flag => 'N'
40398 , p_gl_transfer_mode_code => 'S'
40399 , p_acct_entry_type_code => 'A'
40400 , p_switch_side_flag => 'Y'
40401 , p_merge_duplicate_code => 'N'
40402 );
40403 --
40404 l_acc_rev_natural_side_code := 'D'; -- 4262811
40405 --
40406 --
40407 -- set accounting line type info
40408 --
40409 xla_ae_lines_pkg.SetAcctLineType
40410 (p_component_type => l_component_type
40411 ,p_event_type_code => l_event_type_code
40412 ,p_line_definition_owner_code => l_line_definition_owner_code
40413 ,p_line_definition_code => l_line_definition_code
40414 ,p_accounting_line_code => l_component_code
40415 ,p_accounting_line_type_code => l_component_type_code
40416 ,p_accounting_line_appl_id => l_component_appl_id
40417 ,p_amb_context_code => l_amb_context_code
40418 ,p_entity_code => l_entity_code
40419 ,p_event_class_code => l_event_class_code);
40420 --
40421 -- set accounting class
40422 --
40423 xla_ae_lines_pkg.SetAcctClass(
40424 p_accounting_class_code => 'COST_CLEARING'
40425 , p_ae_header_id => l_ae_header_id
40426 );
40427
40428 --
40429 -- set rounding class
40430 --
40431 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
40432 'COST_CLEARING';
40433
40434 --
40435 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
40436 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
40437 --
40438 -- bulk performance
40439 --
40440 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
40441
40442 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
40443 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
40444
40445 -- 4955764
40446 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40450
40447 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
40448
40449 -- 4458381 Public Sector Enh
40451 --
40452 -- set accounting attributes for the line type
40453 --
40454 l_entered_amt_idx := 22;
40455 l_accted_amt_idx := 27;
40456 l_bflow_applied_to_amt_idx := NULL; -- 5132302
40457 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
40458 l_rec_acct_attrs.array_char_value(1) := p_source_23;
40459 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
40460 l_rec_acct_attrs.array_char_value(2) := p_source_24;
40461 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
40462 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
40463 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
40464 l_rec_acct_attrs.array_num_value(4) := p_source_25;
40465 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
40466 l_rec_acct_attrs.array_char_value(5) := p_source_26;
40467 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
40468 l_rec_acct_attrs.array_num_value(6) := p_source_27;
40469 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
40470 l_rec_acct_attrs.array_date_value(7) := p_source_28;
40471 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
40472 l_rec_acct_attrs.array_num_value(8) := p_source_29;
40473 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
40474 l_rec_acct_attrs.array_char_value(9) := p_source_30;
40475 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
40476 l_rec_acct_attrs.array_char_value(10) := p_source_31;
40477 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
40478 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
40479 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
40480 l_rec_acct_attrs.array_num_value(12) := p_source_25;
40481 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
40482 l_rec_acct_attrs.array_char_value(13) := p_source_26;
40483 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
40484 l_rec_acct_attrs.array_num_value(14) := p_source_27;
40485 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
40486 l_rec_acct_attrs.array_date_value(15) := p_source_28;
40487 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
40488 l_rec_acct_attrs.array_num_value(16) := p_source_29;
40489 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
40490 l_rec_acct_attrs.array_char_value(17) := p_source_30;
40491 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
40492 l_rec_acct_attrs.array_char_value(18) := p_source_32;
40493 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
40494 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
40495 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
40496 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
40497 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
40498 l_rec_acct_attrs.array_char_value(21) := p_source_35;
40499 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
40500 l_rec_acct_attrs.array_num_value(22) := p_source_25;
40501 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
40502 l_rec_acct_attrs.array_char_value(23) := p_source_26;
40503 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
40504 l_rec_acct_attrs.array_date_value(24) := p_source_28;
40505 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
40506 l_rec_acct_attrs.array_num_value(25) := p_source_29;
40507 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
40508 l_rec_acct_attrs.array_char_value(26) := p_source_30;
40509 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
40510 l_rec_acct_attrs.array_num_value(27) := p_source_27;
40511 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
40512 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
40513 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
40514 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
40515 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
40516 l_rec_acct_attrs.array_char_value(30) := p_source_35;
40517
40518 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
40519 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
40520
40521 ---------------------------------------------------------------------------------------------------------------
40522 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
40523 ---------------------------------------------------------------------------------------------------------------
40524 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
40525
40526 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40527 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40528
40529 IF xla_accounting_cache_pkg.GetValueChar
40530 (p_source_code => 'LEDGER_CATEGORY_CODE'
40531 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
40532 AND l_bflow_method_code = 'PRIOR_ENTRY'
40533 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
40534 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
40535 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
40536 )
40537 THEN
40538 xla_ae_lines_pkg.BflowUpgEntry
40539 (p_business_method_code => l_bflow_method_code
40540 ,p_business_class_code => l_bflow_class_code
40544 -- No business flow processing for business flow method of NONE.
40541 ,p_balance_type => l_balance_type_code);
40542 ELSE
40543 NULL;
40545 END IF;
40546
40547 --
40548 -- call analytical criteria
40549 --
40550
40551 --
40552 -- call description
40553 --
40554 -- No description or it is inherited.
40555 --
40556 -- call ADRs
40557 -- Bug 4922099
40558 --
40559 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40560 (NVL(l_actual_upg_option, 'N') = 'O') OR
40561 (NVL(l_enc_upg_option, 'N') = 'O')
40562 )
40563 THEN
40564 NULL;
40565 --
40566 --
40567
40568 l_ccid := AcctDerRule_15(
40569 p_application_id => p_application_id
40570 , p_ae_header_id => l_ae_header_id
40571 , p_source_5 => p_source_5
40572 , p_source_8 => p_source_8
40573 , x_transaction_coa_id => l_adr_transaction_coa_id
40574 , x_accounting_coa_id => l_adr_accounting_coa_id
40575 , x_value_type_code => l_adr_value_type_code
40576 , p_side => 'NA'
40577 );
40578
40579 xla_ae_lines_pkg.set_ccid(
40580 p_code_combination_id => l_ccid
40581 , p_value_type_code => l_adr_value_type_code
40582 , p_transaction_coa_id => l_adr_transaction_coa_id
40583 , p_accounting_coa_id => l_adr_accounting_coa_id
40584 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
40585 , p_adr_type_code => 'S'
40586 , p_component_type => l_component_type
40587 , p_component_code => l_component_code
40588 , p_component_type_code => l_component_type_code
40589 , p_component_appl_id => l_component_appl_id
40590 , p_amb_context_code => l_amb_context_code
40591 , p_side => 'NA'
40592 );
40593
40594
40595 --
40596 --
40597 END IF;
40598 --
40599 -- Bug 4922099
40600 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
40601 (NVL(l_enc_upg_option, 'N') = 'O')
40602 ) AND
40603 (l_bflow_method_code = 'PRIOR_ENTRY')
40604 )
40605 THEN
40606 IF
40607 --
40608 1 = 2
40609 --
40610 THEN
40611 xla_accounting_err_pkg.build_message
40612 (p_appli_s_name => 'XLA'
40613 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40614 ,p_token_1 => 'LINE_NUMBER'
40615 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
40616 ,p_token_2 => 'LINE_TYPE_NAME'
40617 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
40618 l_component_type
40619 ,l_component_code
40620 ,l_component_type_code
40621 ,l_component_appl_id
40622 ,l_amb_context_code
40623 ,l_entity_code
40624 ,l_event_class_code
40625 )
40626 ,p_token_3 => 'OWNER'
40627 ,p_value_3 => xla_lookups_pkg.get_meaning(
40628 p_lookup_type => 'XLA_OWNER_TYPE'
40629 ,p_lookup_code => l_component_type_code
40630 )
40631 ,p_token_4 => 'PRODUCT_NAME'
40632 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
40633 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
40634 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
40635 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
40636 ,p_ae_header_id => NULL
40637 );
40638
40639 IF (C_LEVEL_ERROR>= g_log_level) THEN
40640 trace
40641 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40642 ,p_level => C_LEVEL_ERROR
40643 ,p_module => l_log_module);
40644 END IF;
40645 END IF;
40646 END IF;
40647 --
40648 --
40649 ------------------------------------------------------------------------------------------------
40650 -- 4219869 Business Flow
40651 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
40652 -- Prior Entry. Currently, the following code is always generated.
40653 ------------------------------------------------------------------------------------------------
40654 XLA_AE_LINES_PKG.ValidateCurrentLine;
40655
40656 ------------------------------------------------------------------------------------
40657 -- 4219869 Business Flow
40658 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
40662 ----------------------------------------------------------------------------------
40659 ------------------------------------------------------------------------------------
40660 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40661
40663 -- 4219869 Business Flow
40664 -- Update journal entry status -- Need to generate this within IF <condition>
40665 ----------------------------------------------------------------------------------
40666 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40667 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
40668 ,p_balance_type_code => l_balance_type_code
40669 );
40670
40671 -------------------------------------------------------------------------------------------
40672 -- 4262811 - Generate the Accrual Reversal lines
40673 -------------------------------------------------------------------------------------------
40674 BEGIN
40675 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
40676 (g_array_event(p_event_id).array_value_num('header_index'));
40677 IF l_acc_rev_flag IS NULL THEN
40678 l_acc_rev_flag := 'N';
40679 END IF;
40680 EXCEPTION
40681 WHEN OTHERS THEN
40682 l_acc_rev_flag := 'N';
40683 END;
40684 --
40685 IF (l_acc_rev_flag = 'Y') THEN
40686
40687 -- 4645092 ------------------------------------------------------------------------------
40688 -- To allow MPA report to determine if it should generate report process
40689 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
40690 ------------------------------------------------------------------------------------------
40691
40692 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
40693 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
40694
40695 --
40696 -- Update the line information that should be overwritten
40697 --
40698 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
40699 p_header_num => 1);
40700 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
40701
40702 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
40703
40704 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
40705 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
40706 END IF;
40707
40708 --
40709 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
40710 --
40711 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
40712 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
40713 ELSE
40714 ---------------------------------------------------------------------------------------------------
40715 -- 4262811a Switch Sign
40716 ---------------------------------------------------------------------------------------------------
40717 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
40718 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40719 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40720 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40721 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40722 -- 5132302
40723 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
40724 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40725
40726 END IF;
40727
40728 -- 4955764
40729 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40730 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
40731
40732
40733 XLA_AE_LINES_PKG.ValidateCurrentLine;
40734 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40735
40736 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40737 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
40738 ,p_balance_type_code => l_balance_type_code);
40739
40740 END IF;
40741
40742 -----------------------------------------------------------------------------------------
40743 -- 4262811 Multiperiod Accounting
40744 -----------------------------------------------------------------------------------------
40745 -- No MPA option is assigned.
40746
40747
40748 END IF;
40749 --
40750
40751 --
40752 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40753 trace
40754 (p_msg => 'END of AcctLineType_91'
40755 ,p_level => C_LEVEL_PROCEDURE
40756 ,p_module => l_log_module);
40757 END IF;
40758 --
40759 EXCEPTION
40760 WHEN xla_exceptions_pkg.application_exception THEN
40761 RAISE;
40762 WHEN OTHERS THEN
40763 xla_exceptions_pkg.raise_message
40764 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_91');
40765 END AcctLineType_91;
40766 --
40767
40768 ---------------------------------------
40769 --
40770 -- PRIVATE FUNCTION
40771 -- AcctLineType_92
40772 --
40773 ---------------------------------------
40774 PROCEDURE AcctLineType_92 (
40775 p_application_id IN NUMBER
40776 ,p_event_id IN NUMBER
40777 ,p_calculate_acctd_flag IN VARCHAR2
40778 ,p_calculate_g_l_flag IN VARCHAR2
40779 ,p_actual_flag IN OUT VARCHAR2
40780 ,p_balance_type_code OUT VARCHAR2
40784 , p_source_4 IN NUMBER
40781 ,p_gain_or_loss_ref OUT VARCHAR2
40782
40783 --Cost CCID
40785 --Allow Account Override Flag
40786 , p_source_5 IN VARCHAR2
40787 --Cost Clearing CCID
40788 , p_source_7 IN NUMBER
40789 --Adjustment Cost Clearing CCID
40790 , p_source_8 IN NUMBER
40791 --Reversing Line Flag
40792 , p_source_23 IN VARCHAR2
40793 --Actual Upgrade Credit Accounting Class
40794 , p_source_24 IN VARCHAR2
40795 --Entered Raw Cost
40796 , p_source_25 IN NUMBER
40797 --Entered Currency Code
40798 , p_source_26 IN VARCHAR2
40799 --Accounted Raw Cost
40800 , p_source_27 IN NUMBER
40801 --Exchange Rate Date
40802 , p_source_28 IN DATE
40803 --Exchange Rate
40804 , p_source_29 IN NUMBER
40805 --Exchange Rate Type
40806 , p_source_30 IN VARCHAR2
40807 --Actual Upgrade Debit Accounting Class
40808 , p_source_31 IN VARCHAR2
40809 --Use Actuals Upgrade Attributes Flag
40810 , p_source_32 IN VARCHAR2
40811 --Expenditure Item ID
40812 , p_source_33 IN NUMBER
40813 --Cost Distribution Line Number
40814 , p_source_34 IN NUMBER
40815 --Line Type
40816 , p_source_35 IN VARCHAR2
40817 , p_source_35_meaning IN VARCHAR2
40818 --Reversed Line Number
40819 , p_source_36 IN NUMBER
40820 )
40821 IS
40822
40823 l_component_type VARCHAR2(80);
40824 l_component_code VARCHAR2(30);
40825 l_component_type_code VARCHAR2(1);
40826 l_component_appl_id INTEGER;
40827 l_amb_context_code VARCHAR2(30);
40828 l_entity_code VARCHAR2(30);
40829 l_event_class_code VARCHAR2(30);
40830 l_ae_header_id NUMBER;
40831 l_event_type_code VARCHAR2(30);
40832 l_line_definition_code VARCHAR2(30);
40833 l_line_definition_owner_code VARCHAR2(1);
40834 --
40835 -- adr variables
40836 l_segment VARCHAR2(30);
40837 l_ccid NUMBER;
40838 l_adr_transaction_coa_id NUMBER;
40839 l_adr_accounting_coa_id NUMBER;
40840 l_adr_flexfield_segment_code VARCHAR2(30);
40841 l_adr_flex_value_set_id NUMBER;
40842 l_adr_value_type_code VARCHAR2(30);
40843 l_adr_value_combination_id NUMBER;
40844 l_adr_value_segment_code VARCHAR2(30);
40845
40846 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
40847 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
40848 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
40849 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
40850
40851 -- 4262811 Variables ------------------------------------------------------------------------------------------
40852 l_entered_amt_idx NUMBER;
40853 l_accted_amt_idx NUMBER;
40854 l_acc_rev_flag VARCHAR2(1);
40855 l_accrual_line_num NUMBER;
40856 l_tmp_amt NUMBER;
40857 l_acc_rev_natural_side_code VARCHAR2(1);
40858
40859 l_num_entries NUMBER;
40860 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
40861 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
40862 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
40863 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
40864 l_recog_line_1 NUMBER;
40865 l_recog_line_2 NUMBER;
40866
40867 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
40868 l_bflow_applied_to_amt NUMBER; -- 5132302
40869 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
40870
40871 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
40872
40873 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
40874 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
40875
40876 ---------------------------------------------------------------------------------------------------------------
40877
40878
40879 --
40880 -- bulk performance
40881 --
40882 l_balance_type_code VARCHAR2(1);
40883 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
40884 l_log_module VARCHAR2(240);
40885
40886 --
40887 -- Upgrade strategy
40888 --
40889 l_actual_upg_option VARCHAR2(1);
40890 l_enc_upg_option VARCHAR2(1);
40891
40892 --
40893 BEGIN
40894 --
40895 IF g_log_enabled THEN
40896 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_92';
40897 END IF;
40898 --
40899 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40900
40901 trace
40902 (p_msg => 'BEGIN of AcctLineType_92'
40903 ,p_level => C_LEVEL_PROCEDURE
40904 ,p_module => l_log_module);
40905
40906 END IF;
40907 --
40908 l_component_type := 'AMB_JLT';
40909 l_component_code := 'PA_RAW_COST_CLEARING_ADJ';
40910 l_component_type_code := 'S';
40911 l_component_appl_id := 275;
40912 l_amb_context_code := 'DEFAULT';
40913 l_entity_code := 'EXPENDITURES';
40914 l_event_class_code := 'USG_COST_ADJ';
40915 l_event_type_code := 'USG_COST_ADJ_ALL';
40916 l_line_definition_owner_code := 'S';
40917 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
40918 --
40919 l_balance_type_code := 'A';
40920 l_segment := NULL;
40921 l_ccid := NULL;
40922 l_adr_transaction_coa_id := NULL;
40923 l_adr_accounting_coa_id := NULL;
40927 l_adr_value_combination_id := NULL;
40924 l_adr_flexfield_segment_code := NULL;
40925 l_adr_flex_value_set_id := NULL;
40926 l_adr_value_type_code := NULL;
40928 l_adr_value_segment_code := NULL;
40929
40930 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
40931 l_bflow_class_code := ''; -- 4219869 Business Flow
40932 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
40933 l_budgetary_control_flag := 'N';
40934
40935 l_bflow_applied_to_amt_idx := NULL; -- 5132302
40936 l_bflow_applied_to_amt := NULL; -- 5132302
40937 l_entered_amt_idx := NULL; -- 4262811
40938 l_accted_amt_idx := NULL; -- 4262811
40939 l_acc_rev_flag := NULL; -- 4262811
40940 l_accrual_line_num := NULL; -- 4262811
40941 l_tmp_amt := NULL; -- 4262811
40942 --
40943
40944 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
40945 l_balance_type_code <> 'B' THEN
40946
40947 --
40948 XLA_AE_LINES_PKG.SetNewLine;
40949
40950 p_balance_type_code := l_balance_type_code;
40951 -- set the flag so later we will know whether the gain loss line needs to be created
40952
40953 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
40954 p_actual_flag :='A';
40955 END IF;
40956
40957 --
40958 -- bulk performance
40959 --
40960 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
40961 p_header_num => 0); -- 4262811
40962 --
40963 -- set accounting line options
40964 --
40965 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
40966 p_natural_side_code => 'C'
40967 , p_gain_or_loss_flag => 'N'
40968 , p_gl_transfer_mode_code => 'S'
40969 , p_acct_entry_type_code => 'A'
40970 , p_switch_side_flag => 'Y'
40971 , p_merge_duplicate_code => 'N'
40972 );
40973 --
40974 l_acc_rev_natural_side_code := 'D'; -- 4262811
40975 --
40976 --
40977 -- set accounting line type info
40978 --
40979 xla_ae_lines_pkg.SetAcctLineType
40980 (p_component_type => l_component_type
40981 ,p_event_type_code => l_event_type_code
40982 ,p_line_definition_owner_code => l_line_definition_owner_code
40983 ,p_line_definition_code => l_line_definition_code
40984 ,p_accounting_line_code => l_component_code
40985 ,p_accounting_line_type_code => l_component_type_code
40986 ,p_accounting_line_appl_id => l_component_appl_id
40987 ,p_amb_context_code => l_amb_context_code
40988 ,p_entity_code => l_entity_code
40989 ,p_event_class_code => l_event_class_code);
40990 --
40991 -- set accounting class
40992 --
40993 xla_ae_lines_pkg.SetAcctClass(
40994 p_accounting_class_code => 'COST_CLEARING'
40995 , p_ae_header_id => l_ae_header_id
40996 );
40997
40998 --
40999 -- set rounding class
41000 --
41001 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
41002 'COST_CLEARING';
41003
41004 --
41005 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
41006 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
41007 --
41008 -- bulk performance
41009 --
41010 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
41011
41012 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
41013 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
41014
41015 -- 4955764
41016 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41017 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
41018
41019 -- 4458381 Public Sector Enh
41020
41021 --
41022 -- set accounting attributes for the line type
41023 --
41024 l_entered_amt_idx := 22;
41025 l_accted_amt_idx := 27;
41026 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41027 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
41028 l_rec_acct_attrs.array_char_value(1) := p_source_23;
41029 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
41030 l_rec_acct_attrs.array_char_value(2) := p_source_24;
41031 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
41032 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
41033 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
41034 l_rec_acct_attrs.array_num_value(4) := p_source_25;
41035 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
41036 l_rec_acct_attrs.array_char_value(5) := p_source_26;
41037 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
41038 l_rec_acct_attrs.array_num_value(6) := p_source_27;
41039 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
41040 l_rec_acct_attrs.array_date_value(7) := p_source_28;
41041 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
41042 l_rec_acct_attrs.array_num_value(8) := p_source_29;
41043 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
41044 l_rec_acct_attrs.array_char_value(9) := p_source_30;
41045 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
41046 l_rec_acct_attrs.array_char_value(10) := p_source_31;
41047 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
41051 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
41048 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
41049 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
41050 l_rec_acct_attrs.array_num_value(12) := p_source_25;
41052 l_rec_acct_attrs.array_char_value(13) := p_source_26;
41053 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
41054 l_rec_acct_attrs.array_num_value(14) := p_source_27;
41055 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
41056 l_rec_acct_attrs.array_date_value(15) := p_source_28;
41057 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
41058 l_rec_acct_attrs.array_num_value(16) := p_source_29;
41059 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
41060 l_rec_acct_attrs.array_char_value(17) := p_source_30;
41061 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
41062 l_rec_acct_attrs.array_char_value(18) := p_source_32;
41063 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
41064 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
41065 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
41066 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
41067 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
41068 l_rec_acct_attrs.array_char_value(21) := p_source_35;
41069 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
41070 l_rec_acct_attrs.array_num_value(22) := p_source_25;
41071 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
41072 l_rec_acct_attrs.array_char_value(23) := p_source_26;
41073 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
41074 l_rec_acct_attrs.array_date_value(24) := p_source_28;
41075 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
41076 l_rec_acct_attrs.array_num_value(25) := p_source_29;
41077 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
41078 l_rec_acct_attrs.array_char_value(26) := p_source_30;
41079 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
41080 l_rec_acct_attrs.array_num_value(27) := p_source_27;
41081 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
41082 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
41083 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
41084 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
41085 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
41086 l_rec_acct_attrs.array_char_value(30) := p_source_35;
41087
41088 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
41089 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
41090
41091 ---------------------------------------------------------------------------------------------------------------
41092 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
41093 ---------------------------------------------------------------------------------------------------------------
41094 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
41095
41096 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41097 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41098
41099 IF xla_accounting_cache_pkg.GetValueChar
41100 (p_source_code => 'LEDGER_CATEGORY_CODE'
41101 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
41102 AND l_bflow_method_code = 'PRIOR_ENTRY'
41103 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
41104 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
41105 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
41106 )
41107 THEN
41108 xla_ae_lines_pkg.BflowUpgEntry
41109 (p_business_method_code => l_bflow_method_code
41110 ,p_business_class_code => l_bflow_class_code
41111 ,p_balance_type => l_balance_type_code);
41112 ELSE
41113 NULL;
41114 -- No business flow processing for business flow method of NONE.
41115 END IF;
41116
41117 --
41118 -- call analytical criteria
41119 --
41120
41121 --
41122 -- call description
41123 --
41124 -- No description or it is inherited.
41125 --
41126 -- call ADRs
41127 -- Bug 4922099
41128 --
41129 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41130 (NVL(l_actual_upg_option, 'N') = 'O') OR
41131 (NVL(l_enc_upg_option, 'N') = 'O')
41132 )
41133 THEN
41134 NULL;
41135 --
41136 --
41137
41138 l_ccid := AcctDerRule_15(
41139 p_application_id => p_application_id
41140 , p_ae_header_id => l_ae_header_id
41141 , p_source_5 => p_source_5
41142 , p_source_8 => p_source_8
41143 , x_transaction_coa_id => l_adr_transaction_coa_id
41144 , x_accounting_coa_id => l_adr_accounting_coa_id
41145 , x_value_type_code => l_adr_value_type_code
41146 , p_side => 'NA'
41147 );
41148
41149 xla_ae_lines_pkg.set_ccid(
41150 p_code_combination_id => l_ccid
41151 , p_value_type_code => l_adr_value_type_code
41152 , p_transaction_coa_id => l_adr_transaction_coa_id
41153 , p_accounting_coa_id => l_adr_accounting_coa_id
41154 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
41155 , p_adr_type_code => 'S'
41156 , p_component_type => l_component_type
41157 , p_component_code => l_component_code
41161 , p_side => 'NA'
41158 , p_component_type_code => l_component_type_code
41159 , p_component_appl_id => l_component_appl_id
41160 , p_amb_context_code => l_amb_context_code
41162 );
41163
41164
41165 --
41166 --
41167 END IF;
41168 --
41169 -- Bug 4922099
41170 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
41171 (NVL(l_enc_upg_option, 'N') = 'O')
41172 ) AND
41173 (l_bflow_method_code = 'PRIOR_ENTRY')
41174 )
41175 THEN
41176 IF
41177 --
41178 1 = 2
41179 --
41180 THEN
41181 xla_accounting_err_pkg.build_message
41182 (p_appli_s_name => 'XLA'
41183 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41184 ,p_token_1 => 'LINE_NUMBER'
41185 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
41186 ,p_token_2 => 'LINE_TYPE_NAME'
41187 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
41188 l_component_type
41189 ,l_component_code
41190 ,l_component_type_code
41191 ,l_component_appl_id
41192 ,l_amb_context_code
41193 ,l_entity_code
41194 ,l_event_class_code
41195 )
41196 ,p_token_3 => 'OWNER'
41197 ,p_value_3 => xla_lookups_pkg.get_meaning(
41198 p_lookup_type => 'XLA_OWNER_TYPE'
41199 ,p_lookup_code => l_component_type_code
41200 )
41201 ,p_token_4 => 'PRODUCT_NAME'
41202 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
41203 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
41204 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
41205 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
41206 ,p_ae_header_id => NULL
41207 );
41208
41209 IF (C_LEVEL_ERROR>= g_log_level) THEN
41210 trace
41211 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41212 ,p_level => C_LEVEL_ERROR
41213 ,p_module => l_log_module);
41214 END IF;
41215 END IF;
41216 END IF;
41217 --
41218 --
41219 ------------------------------------------------------------------------------------------------
41220 -- 4219869 Business Flow
41221 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
41222 -- Prior Entry. Currently, the following code is always generated.
41223 ------------------------------------------------------------------------------------------------
41224 XLA_AE_LINES_PKG.ValidateCurrentLine;
41225
41226 ------------------------------------------------------------------------------------
41227 -- 4219869 Business Flow
41228 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
41229 ------------------------------------------------------------------------------------
41230 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41231
41232 ----------------------------------------------------------------------------------
41233 -- 4219869 Business Flow
41234 -- Update journal entry status -- Need to generate this within IF <condition>
41235 ----------------------------------------------------------------------------------
41236 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41237 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
41238 ,p_balance_type_code => l_balance_type_code
41239 );
41240
41241 -------------------------------------------------------------------------------------------
41242 -- 4262811 - Generate the Accrual Reversal lines
41243 -------------------------------------------------------------------------------------------
41244 BEGIN
41245 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
41246 (g_array_event(p_event_id).array_value_num('header_index'));
41247 IF l_acc_rev_flag IS NULL THEN
41248 l_acc_rev_flag := 'N';
41249 END IF;
41250 EXCEPTION
41251 WHEN OTHERS THEN
41252 l_acc_rev_flag := 'N';
41253 END;
41254 --
41255 IF (l_acc_rev_flag = 'Y') THEN
41256
41257 -- 4645092 ------------------------------------------------------------------------------
41258 -- To allow MPA report to determine if it should generate report process
41259 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
41260 ------------------------------------------------------------------------------------------
41261
41262 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
41263 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
41267 --
41264
41265 --
41266 -- Update the line information that should be overwritten
41268 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
41269 p_header_num => 1);
41270 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
41271
41272 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
41273
41274 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
41275 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
41276 END IF;
41277
41278 --
41279 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
41280 --
41281 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
41282 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
41283 ELSE
41284 ---------------------------------------------------------------------------------------------------
41285 -- 4262811a Switch Sign
41286 ---------------------------------------------------------------------------------------------------
41287 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
41288 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41289 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41290 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41291 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41292 -- 5132302
41293 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
41294 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41295
41296 END IF;
41297
41298 -- 4955764
41299 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41300 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
41301
41302
41303 XLA_AE_LINES_PKG.ValidateCurrentLine;
41304 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41305
41306 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41307 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
41308 ,p_balance_type_code => l_balance_type_code);
41309
41310 END IF;
41311
41312 -----------------------------------------------------------------------------------------
41313 -- 4262811 Multiperiod Accounting
41314 -----------------------------------------------------------------------------------------
41315 -- No MPA option is assigned.
41316
41317
41318 END IF;
41319 --
41320
41321 --
41322 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41323 trace
41324 (p_msg => 'END of AcctLineType_92'
41325 ,p_level => C_LEVEL_PROCEDURE
41326 ,p_module => l_log_module);
41327 END IF;
41328 --
41329 EXCEPTION
41330 WHEN xla_exceptions_pkg.application_exception THEN
41331 RAISE;
41332 WHEN OTHERS THEN
41333 xla_exceptions_pkg.raise_message
41334 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_92');
41335 END AcctLineType_92;
41336 --
41337
41338 ---------------------------------------
41339 --
41340 -- PRIVATE FUNCTION
41341 -- AcctLineType_93
41342 --
41343 ---------------------------------------
41344 PROCEDURE AcctLineType_93 (
41345 p_application_id IN NUMBER
41346 ,p_event_id IN NUMBER
41347 ,p_calculate_acctd_flag IN VARCHAR2
41348 ,p_calculate_g_l_flag IN VARCHAR2
41349 ,p_actual_flag IN OUT VARCHAR2
41350 ,p_balance_type_code OUT VARCHAR2
41351 ,p_gain_or_loss_ref OUT VARCHAR2
41352
41353 --Cost CCID
41354 , p_source_4 IN NUMBER
41355 --Allow Account Override Flag
41356 , p_source_5 IN VARCHAR2
41357 --Cost Clearing CCID
41358 , p_source_7 IN NUMBER
41359 --Adjustment Cost Clearing CCID
41360 , p_source_8 IN NUMBER
41361 --Reversing Line Flag
41362 , p_source_23 IN VARCHAR2
41363 --Actual Upgrade Credit Accounting Class
41364 , p_source_24 IN VARCHAR2
41365 --Entered Raw Cost
41366 , p_source_25 IN NUMBER
41367 --Entered Currency Code
41368 , p_source_26 IN VARCHAR2
41369 --Accounted Raw Cost
41370 , p_source_27 IN NUMBER
41371 --Exchange Rate Date
41372 , p_source_28 IN DATE
41373 --Exchange Rate
41374 , p_source_29 IN NUMBER
41375 --Exchange Rate Type
41376 , p_source_30 IN VARCHAR2
41377 --Actual Upgrade Debit Accounting Class
41378 , p_source_31 IN VARCHAR2
41379 --Use Actuals Upgrade Attributes Flag
41380 , p_source_32 IN VARCHAR2
41381 --Expenditure Item ID
41382 , p_source_33 IN NUMBER
41383 --Cost Distribution Line Number
41384 , p_source_34 IN NUMBER
41385 --Line Type
41386 , p_source_35 IN VARCHAR2
41387 , p_source_35_meaning IN VARCHAR2
41388 --Reversed Line Number
41389 , p_source_36 IN NUMBER
41390 )
41391 IS
41392
41393 l_component_type VARCHAR2(80);
41394 l_component_code VARCHAR2(30);
41395 l_component_type_code VARCHAR2(1);
41396 l_component_appl_id INTEGER;
41397 l_amb_context_code VARCHAR2(30);
41398 l_entity_code VARCHAR2(30);
41402 l_line_definition_code VARCHAR2(30);
41399 l_event_class_code VARCHAR2(30);
41400 l_ae_header_id NUMBER;
41401 l_event_type_code VARCHAR2(30);
41403 l_line_definition_owner_code VARCHAR2(1);
41404 --
41405 -- adr variables
41406 l_segment VARCHAR2(30);
41407 l_ccid NUMBER;
41408 l_adr_transaction_coa_id NUMBER;
41409 l_adr_accounting_coa_id NUMBER;
41410 l_adr_flexfield_segment_code VARCHAR2(30);
41411 l_adr_flex_value_set_id NUMBER;
41412 l_adr_value_type_code VARCHAR2(30);
41413 l_adr_value_combination_id NUMBER;
41414 l_adr_value_segment_code VARCHAR2(30);
41415
41416 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
41417 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
41418 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
41419 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
41420
41421 -- 4262811 Variables ------------------------------------------------------------------------------------------
41422 l_entered_amt_idx NUMBER;
41423 l_accted_amt_idx NUMBER;
41424 l_acc_rev_flag VARCHAR2(1);
41425 l_accrual_line_num NUMBER;
41426 l_tmp_amt NUMBER;
41427 l_acc_rev_natural_side_code VARCHAR2(1);
41428
41429 l_num_entries NUMBER;
41430 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
41431 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
41432 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
41433 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
41434 l_recog_line_1 NUMBER;
41435 l_recog_line_2 NUMBER;
41436
41437 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
41438 l_bflow_applied_to_amt NUMBER; -- 5132302
41439 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
41440
41441 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
41442
41443 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
41444 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
41445
41446 ---------------------------------------------------------------------------------------------------------------
41447
41448
41449 --
41450 -- bulk performance
41451 --
41452 l_balance_type_code VARCHAR2(1);
41453 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
41454 l_log_module VARCHAR2(240);
41455
41456 --
41457 -- Upgrade strategy
41458 --
41459 l_actual_upg_option VARCHAR2(1);
41460 l_enc_upg_option VARCHAR2(1);
41461
41462 --
41463 BEGIN
41464 --
41465 IF g_log_enabled THEN
41466 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_93';
41467 END IF;
41468 --
41469 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41470
41471 trace
41472 (p_msg => 'BEGIN of AcctLineType_93'
41473 ,p_level => C_LEVEL_PROCEDURE
41474 ,p_module => l_log_module);
41475
41476 END IF;
41477 --
41478 l_component_type := 'AMB_JLT';
41479 l_component_code := 'PA_RAW_COST_CLEARING_ADJ';
41480 l_component_type_code := 'S';
41481 l_component_appl_id := 275;
41482 l_amb_context_code := 'DEFAULT';
41483 l_entity_code := 'EXPENDITURES';
41484 l_event_class_code := 'MISC_COST_ADJ';
41485 l_event_type_code := 'MISC_COST_ADJ_ALL';
41486 l_line_definition_owner_code := 'S';
41487 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
41488 --
41489 l_balance_type_code := 'A';
41490 l_segment := NULL;
41491 l_ccid := NULL;
41492 l_adr_transaction_coa_id := NULL;
41493 l_adr_accounting_coa_id := NULL;
41494 l_adr_flexfield_segment_code := NULL;
41495 l_adr_flex_value_set_id := NULL;
41496 l_adr_value_type_code := NULL;
41497 l_adr_value_combination_id := NULL;
41498 l_adr_value_segment_code := NULL;
41499
41500 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
41501 l_bflow_class_code := ''; -- 4219869 Business Flow
41502 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
41503 l_budgetary_control_flag := 'N';
41504
41505 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41506 l_bflow_applied_to_amt := NULL; -- 5132302
41507 l_entered_amt_idx := NULL; -- 4262811
41508 l_accted_amt_idx := NULL; -- 4262811
41509 l_acc_rev_flag := NULL; -- 4262811
41510 l_accrual_line_num := NULL; -- 4262811
41511 l_tmp_amt := NULL; -- 4262811
41512 --
41513
41514 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
41515 l_balance_type_code <> 'B' THEN
41516
41517 --
41518 XLA_AE_LINES_PKG.SetNewLine;
41519
41520 p_balance_type_code := l_balance_type_code;
41521 -- set the flag so later we will know whether the gain loss line needs to be created
41522
41523 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
41524 p_actual_flag :='A';
41525 END IF;
41526
41527 --
41528 -- bulk performance
41529 --
41530 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
41531 p_header_num => 0); -- 4262811
41532 --
41533 -- set accounting line options
41534 --
41535 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
41539 , p_acct_entry_type_code => 'A'
41536 p_natural_side_code => 'C'
41537 , p_gain_or_loss_flag => 'N'
41538 , p_gl_transfer_mode_code => 'S'
41540 , p_switch_side_flag => 'Y'
41541 , p_merge_duplicate_code => 'N'
41542 );
41543 --
41544 l_acc_rev_natural_side_code := 'D'; -- 4262811
41545 --
41546 --
41547 -- set accounting line type info
41548 --
41549 xla_ae_lines_pkg.SetAcctLineType
41550 (p_component_type => l_component_type
41551 ,p_event_type_code => l_event_type_code
41552 ,p_line_definition_owner_code => l_line_definition_owner_code
41553 ,p_line_definition_code => l_line_definition_code
41554 ,p_accounting_line_code => l_component_code
41555 ,p_accounting_line_type_code => l_component_type_code
41556 ,p_accounting_line_appl_id => l_component_appl_id
41557 ,p_amb_context_code => l_amb_context_code
41558 ,p_entity_code => l_entity_code
41559 ,p_event_class_code => l_event_class_code);
41560 --
41561 -- set accounting class
41562 --
41563 xla_ae_lines_pkg.SetAcctClass(
41564 p_accounting_class_code => 'COST_CLEARING'
41565 , p_ae_header_id => l_ae_header_id
41566 );
41567
41568 --
41569 -- set rounding class
41570 --
41571 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
41572 'COST_CLEARING';
41573
41574 --
41575 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
41576 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
41577 --
41578 -- bulk performance
41579 --
41580 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
41581
41582 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
41583 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
41584
41585 -- 4955764
41586 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41587 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
41588
41589 -- 4458381 Public Sector Enh
41590
41591 --
41592 -- set accounting attributes for the line type
41593 --
41594 l_entered_amt_idx := 22;
41595 l_accted_amt_idx := 27;
41596 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41597 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
41598 l_rec_acct_attrs.array_char_value(1) := p_source_23;
41599 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
41600 l_rec_acct_attrs.array_char_value(2) := p_source_24;
41601 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
41602 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
41603 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
41604 l_rec_acct_attrs.array_num_value(4) := p_source_25;
41605 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
41606 l_rec_acct_attrs.array_char_value(5) := p_source_26;
41607 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
41608 l_rec_acct_attrs.array_num_value(6) := p_source_27;
41609 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
41610 l_rec_acct_attrs.array_date_value(7) := p_source_28;
41611 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
41612 l_rec_acct_attrs.array_num_value(8) := p_source_29;
41613 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
41614 l_rec_acct_attrs.array_char_value(9) := p_source_30;
41615 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
41616 l_rec_acct_attrs.array_char_value(10) := p_source_31;
41617 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
41618 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
41619 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
41620 l_rec_acct_attrs.array_num_value(12) := p_source_25;
41621 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
41622 l_rec_acct_attrs.array_char_value(13) := p_source_26;
41623 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
41624 l_rec_acct_attrs.array_num_value(14) := p_source_27;
41625 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
41626 l_rec_acct_attrs.array_date_value(15) := p_source_28;
41627 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
41628 l_rec_acct_attrs.array_num_value(16) := p_source_29;
41629 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
41630 l_rec_acct_attrs.array_char_value(17) := p_source_30;
41631 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
41632 l_rec_acct_attrs.array_char_value(18) := p_source_32;
41633 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
41634 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
41635 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
41636 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
41637 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
41638 l_rec_acct_attrs.array_char_value(21) := p_source_35;
41639 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
41640 l_rec_acct_attrs.array_num_value(22) := p_source_25;
41641 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
41642 l_rec_acct_attrs.array_char_value(23) := p_source_26;
41643 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
41644 l_rec_acct_attrs.array_date_value(24) := p_source_28;
41648 l_rec_acct_attrs.array_char_value(26) := p_source_30;
41645 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
41646 l_rec_acct_attrs.array_num_value(25) := p_source_29;
41647 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
41649 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
41650 l_rec_acct_attrs.array_num_value(27) := p_source_27;
41651 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
41652 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
41653 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
41654 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
41655 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
41656 l_rec_acct_attrs.array_char_value(30) := p_source_35;
41657
41658 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
41659 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
41660
41661 ---------------------------------------------------------------------------------------------------------------
41662 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
41663 ---------------------------------------------------------------------------------------------------------------
41664 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
41665
41666 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41667 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41668
41669 IF xla_accounting_cache_pkg.GetValueChar
41670 (p_source_code => 'LEDGER_CATEGORY_CODE'
41671 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
41672 AND l_bflow_method_code = 'PRIOR_ENTRY'
41673 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
41674 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
41675 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
41676 )
41677 THEN
41678 xla_ae_lines_pkg.BflowUpgEntry
41679 (p_business_method_code => l_bflow_method_code
41680 ,p_business_class_code => l_bflow_class_code
41681 ,p_balance_type => l_balance_type_code);
41682 ELSE
41683 NULL;
41684 -- No business flow processing for business flow method of NONE.
41685 END IF;
41686
41687 --
41688 -- call analytical criteria
41689 --
41690
41691 --
41692 -- call description
41693 --
41694 -- No description or it is inherited.
41695 --
41696 -- call ADRs
41697 -- Bug 4922099
41698 --
41699 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41700 (NVL(l_actual_upg_option, 'N') = 'O') OR
41701 (NVL(l_enc_upg_option, 'N') = 'O')
41702 )
41703 THEN
41704 NULL;
41705 --
41706 --
41707
41708 l_ccid := AcctDerRule_15(
41709 p_application_id => p_application_id
41710 , p_ae_header_id => l_ae_header_id
41711 , p_source_5 => p_source_5
41712 , p_source_8 => p_source_8
41713 , x_transaction_coa_id => l_adr_transaction_coa_id
41714 , x_accounting_coa_id => l_adr_accounting_coa_id
41715 , x_value_type_code => l_adr_value_type_code
41716 , p_side => 'NA'
41717 );
41718
41719 xla_ae_lines_pkg.set_ccid(
41720 p_code_combination_id => l_ccid
41721 , p_value_type_code => l_adr_value_type_code
41722 , p_transaction_coa_id => l_adr_transaction_coa_id
41723 , p_accounting_coa_id => l_adr_accounting_coa_id
41724 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
41725 , p_adr_type_code => 'S'
41726 , p_component_type => l_component_type
41727 , p_component_code => l_component_code
41728 , p_component_type_code => l_component_type_code
41729 , p_component_appl_id => l_component_appl_id
41730 , p_amb_context_code => l_amb_context_code
41731 , p_side => 'NA'
41732 );
41733
41734
41735 --
41736 --
41737 END IF;
41738 --
41739 -- Bug 4922099
41740 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
41741 (NVL(l_enc_upg_option, 'N') = 'O')
41742 ) AND
41743 (l_bflow_method_code = 'PRIOR_ENTRY')
41744 )
41745 THEN
41746 IF
41747 --
41748 1 = 2
41749 --
41750 THEN
41751 xla_accounting_err_pkg.build_message
41752 (p_appli_s_name => 'XLA'
41753 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41754 ,p_token_1 => 'LINE_NUMBER'
41755 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
41756 ,p_token_2 => 'LINE_TYPE_NAME'
41757 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
41758 l_component_type
41759 ,l_component_code
41760 ,l_component_type_code
41761 ,l_component_appl_id
41762 ,l_amb_context_code
41763 ,l_entity_code
41767 ,p_value_3 => xla_lookups_pkg.get_meaning(
41764 ,l_event_class_code
41765 )
41766 ,p_token_3 => 'OWNER'
41768 p_lookup_type => 'XLA_OWNER_TYPE'
41769 ,p_lookup_code => l_component_type_code
41770 )
41771 ,p_token_4 => 'PRODUCT_NAME'
41772 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
41773 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
41774 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
41775 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
41776 ,p_ae_header_id => NULL
41777 );
41778
41779 IF (C_LEVEL_ERROR>= g_log_level) THEN
41780 trace
41781 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41782 ,p_level => C_LEVEL_ERROR
41783 ,p_module => l_log_module);
41784 END IF;
41785 END IF;
41786 END IF;
41787 --
41788 --
41789 ------------------------------------------------------------------------------------------------
41790 -- 4219869 Business Flow
41791 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
41792 -- Prior Entry. Currently, the following code is always generated.
41793 ------------------------------------------------------------------------------------------------
41794 XLA_AE_LINES_PKG.ValidateCurrentLine;
41795
41796 ------------------------------------------------------------------------------------
41797 -- 4219869 Business Flow
41798 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
41799 ------------------------------------------------------------------------------------
41800 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41801
41802 ----------------------------------------------------------------------------------
41803 -- 4219869 Business Flow
41804 -- Update journal entry status -- Need to generate this within IF <condition>
41805 ----------------------------------------------------------------------------------
41806 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41807 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
41808 ,p_balance_type_code => l_balance_type_code
41809 );
41810
41811 -------------------------------------------------------------------------------------------
41812 -- 4262811 - Generate the Accrual Reversal lines
41813 -------------------------------------------------------------------------------------------
41814 BEGIN
41815 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
41816 (g_array_event(p_event_id).array_value_num('header_index'));
41817 IF l_acc_rev_flag IS NULL THEN
41818 l_acc_rev_flag := 'N';
41819 END IF;
41820 EXCEPTION
41821 WHEN OTHERS THEN
41822 l_acc_rev_flag := 'N';
41823 END;
41824 --
41825 IF (l_acc_rev_flag = 'Y') THEN
41826
41827 -- 4645092 ------------------------------------------------------------------------------
41828 -- To allow MPA report to determine if it should generate report process
41829 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
41830 ------------------------------------------------------------------------------------------
41831
41832 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
41833 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
41834
41835 --
41836 -- Update the line information that should be overwritten
41837 --
41838 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
41839 p_header_num => 1);
41840 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
41841
41842 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
41843
41844 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
41845 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
41846 END IF;
41847
41848 --
41849 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
41850 --
41851 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
41852 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
41853 ELSE
41854 ---------------------------------------------------------------------------------------------------
41855 -- 4262811a Switch Sign
41856 ---------------------------------------------------------------------------------------------------
41857 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
41858 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41859 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41860 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41861 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41865
41862 -- 5132302
41863 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
41864 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41866 END IF;
41867
41868 -- 4955764
41869 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41870 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
41871
41872
41873 XLA_AE_LINES_PKG.ValidateCurrentLine;
41874 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41875
41876 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41877 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
41878 ,p_balance_type_code => l_balance_type_code);
41879
41880 END IF;
41881
41882 -----------------------------------------------------------------------------------------
41883 -- 4262811 Multiperiod Accounting
41884 -----------------------------------------------------------------------------------------
41885 -- No MPA option is assigned.
41886
41887
41888 END IF;
41889 --
41890
41891 --
41892 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41893 trace
41894 (p_msg => 'END of AcctLineType_93'
41895 ,p_level => C_LEVEL_PROCEDURE
41896 ,p_module => l_log_module);
41897 END IF;
41898 --
41899 EXCEPTION
41900 WHEN xla_exceptions_pkg.application_exception THEN
41901 RAISE;
41902 WHEN OTHERS THEN
41903 xla_exceptions_pkg.raise_message
41904 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_93');
41905 END AcctLineType_93;
41906 --
41907
41908 ---------------------------------------
41909 --
41910 -- PRIVATE FUNCTION
41911 -- AcctLineType_94
41912 --
41913 ---------------------------------------
41914 PROCEDURE AcctLineType_94 (
41915 p_application_id IN NUMBER
41916 ,p_event_id IN NUMBER
41917 ,p_calculate_acctd_flag IN VARCHAR2
41918 ,p_calculate_g_l_flag IN VARCHAR2
41919 ,p_actual_flag IN OUT VARCHAR2
41920 ,p_balance_type_code OUT VARCHAR2
41921 ,p_gain_or_loss_ref OUT VARCHAR2
41922
41923 --Cost CCID
41924 , p_source_4 IN NUMBER
41925 --Allow Account Override Flag
41926 , p_source_5 IN VARCHAR2
41927 --Cost Clearing CCID
41928 , p_source_7 IN NUMBER
41929 --Adjustment Cost Clearing CCID
41930 , p_source_8 IN NUMBER
41931 --Reversing Line Flag
41932 , p_source_23 IN VARCHAR2
41933 --Actual Upgrade Credit Accounting Class
41934 , p_source_24 IN VARCHAR2
41935 --Entered Raw Cost
41936 , p_source_25 IN NUMBER
41937 --Entered Currency Code
41938 , p_source_26 IN VARCHAR2
41939 --Accounted Raw Cost
41940 , p_source_27 IN NUMBER
41941 --Exchange Rate Date
41942 , p_source_28 IN DATE
41943 --Exchange Rate
41944 , p_source_29 IN NUMBER
41945 --Exchange Rate Type
41946 , p_source_30 IN VARCHAR2
41947 --Actual Upgrade Debit Accounting Class
41948 , p_source_31 IN VARCHAR2
41949 --Use Actuals Upgrade Attributes Flag
41950 , p_source_32 IN VARCHAR2
41951 --Expenditure Item ID
41952 , p_source_33 IN NUMBER
41953 --Cost Distribution Line Number
41954 , p_source_34 IN NUMBER
41955 --Line Type
41956 , p_source_35 IN VARCHAR2
41957 , p_source_35_meaning IN VARCHAR2
41958 --Reversed Line Number
41959 , p_source_36 IN NUMBER
41960 )
41961 IS
41962
41963 l_component_type VARCHAR2(80);
41964 l_component_code VARCHAR2(30);
41965 l_component_type_code VARCHAR2(1);
41966 l_component_appl_id INTEGER;
41967 l_amb_context_code VARCHAR2(30);
41968 l_entity_code VARCHAR2(30);
41969 l_event_class_code VARCHAR2(30);
41970 l_ae_header_id NUMBER;
41971 l_event_type_code VARCHAR2(30);
41972 l_line_definition_code VARCHAR2(30);
41973 l_line_definition_owner_code VARCHAR2(1);
41974 --
41975 -- adr variables
41976 l_segment VARCHAR2(30);
41977 l_ccid NUMBER;
41978 l_adr_transaction_coa_id NUMBER;
41979 l_adr_accounting_coa_id NUMBER;
41980 l_adr_flexfield_segment_code VARCHAR2(30);
41981 l_adr_flex_value_set_id NUMBER;
41982 l_adr_value_type_code VARCHAR2(30);
41983 l_adr_value_combination_id NUMBER;
41984 l_adr_value_segment_code VARCHAR2(30);
41985
41986 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
41987 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
41988 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
41989 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
41990
41991 -- 4262811 Variables ------------------------------------------------------------------------------------------
41992 l_entered_amt_idx NUMBER;
41993 l_accted_amt_idx NUMBER;
41994 l_acc_rev_flag VARCHAR2(1);
41995 l_accrual_line_num NUMBER;
41996 l_tmp_amt NUMBER;
41997 l_acc_rev_natural_side_code VARCHAR2(1);
41998
41999 l_num_entries NUMBER;
42000 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
42001 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
42002 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
42003 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
42004 l_recog_line_1 NUMBER;
42005 l_recog_line_2 NUMBER;
42006
42010
42007 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
42008 l_bflow_applied_to_amt NUMBER; -- 5132302
42009 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
42011 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
42012
42013 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
42014 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
42015
42016 ---------------------------------------------------------------------------------------------------------------
42017
42018
42019 --
42020 -- bulk performance
42021 --
42022 l_balance_type_code VARCHAR2(1);
42023 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
42024 l_log_module VARCHAR2(240);
42025
42026 --
42027 -- Upgrade strategy
42028 --
42029 l_actual_upg_option VARCHAR2(1);
42030 l_enc_upg_option VARCHAR2(1);
42031
42032 --
42033 BEGIN
42034 --
42035 IF g_log_enabled THEN
42036 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_94';
42037 END IF;
42038 --
42039 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42040
42041 trace
42042 (p_msg => 'BEGIN of AcctLineType_94'
42043 ,p_level => C_LEVEL_PROCEDURE
42044 ,p_module => l_log_module);
42045
42046 END IF;
42047 --
42048 l_component_type := 'AMB_JLT';
42049 l_component_code := 'PA_RAW_COST_CLEARING_ADJ';
42050 l_component_type_code := 'S';
42051 l_component_appl_id := 275;
42052 l_amb_context_code := 'DEFAULT';
42053 l_entity_code := 'EXPENDITURES';
42054 l_event_class_code := 'LABOR_COST_ADJ';
42055 l_event_type_code := 'LABOR_COST_ADJ_ALL';
42056 l_line_definition_owner_code := 'S';
42057 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
42058 --
42059 l_balance_type_code := 'A';
42060 l_segment := NULL;
42061 l_ccid := NULL;
42062 l_adr_transaction_coa_id := NULL;
42063 l_adr_accounting_coa_id := NULL;
42064 l_adr_flexfield_segment_code := NULL;
42065 l_adr_flex_value_set_id := NULL;
42066 l_adr_value_type_code := NULL;
42067 l_adr_value_combination_id := NULL;
42068 l_adr_value_segment_code := NULL;
42069
42070 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
42071 l_bflow_class_code := ''; -- 4219869 Business Flow
42072 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
42073 l_budgetary_control_flag := 'N';
42074
42075 l_bflow_applied_to_amt_idx := NULL; -- 5132302
42076 l_bflow_applied_to_amt := NULL; -- 5132302
42077 l_entered_amt_idx := NULL; -- 4262811
42078 l_accted_amt_idx := NULL; -- 4262811
42079 l_acc_rev_flag := NULL; -- 4262811
42080 l_accrual_line_num := NULL; -- 4262811
42081 l_tmp_amt := NULL; -- 4262811
42082 --
42083
42084 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
42085 l_balance_type_code <> 'B' THEN
42086
42087 --
42088 XLA_AE_LINES_PKG.SetNewLine;
42089
42090 p_balance_type_code := l_balance_type_code;
42091 -- set the flag so later we will know whether the gain loss line needs to be created
42092
42093 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
42094 p_actual_flag :='A';
42095 END IF;
42096
42097 --
42098 -- bulk performance
42099 --
42100 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
42101 p_header_num => 0); -- 4262811
42102 --
42103 -- set accounting line options
42104 --
42105 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
42106 p_natural_side_code => 'C'
42107 , p_gain_or_loss_flag => 'N'
42108 , p_gl_transfer_mode_code => 'S'
42109 , p_acct_entry_type_code => 'A'
42110 , p_switch_side_flag => 'Y'
42111 , p_merge_duplicate_code => 'N'
42112 );
42113 --
42114 l_acc_rev_natural_side_code := 'D'; -- 4262811
42115 --
42116 --
42117 -- set accounting line type info
42118 --
42119 xla_ae_lines_pkg.SetAcctLineType
42120 (p_component_type => l_component_type
42121 ,p_event_type_code => l_event_type_code
42122 ,p_line_definition_owner_code => l_line_definition_owner_code
42123 ,p_line_definition_code => l_line_definition_code
42124 ,p_accounting_line_code => l_component_code
42125 ,p_accounting_line_type_code => l_component_type_code
42126 ,p_accounting_line_appl_id => l_component_appl_id
42127 ,p_amb_context_code => l_amb_context_code
42128 ,p_entity_code => l_entity_code
42129 ,p_event_class_code => l_event_class_code);
42130 --
42131 -- set accounting class
42132 --
42133 xla_ae_lines_pkg.SetAcctClass(
42134 p_accounting_class_code => 'COST_CLEARING'
42135 , p_ae_header_id => l_ae_header_id
42136 );
42137
42138 --
42139 -- set rounding class
42140 --
42141 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
42142 'COST_CLEARING';
42143
42144 --
42145 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
42149 --
42146 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
42147 --
42148 -- bulk performance
42150 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
42151
42152 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
42153 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
42154
42155 -- 4955764
42156 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42157 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
42158
42159 -- 4458381 Public Sector Enh
42160
42161 --
42162 -- set accounting attributes for the line type
42163 --
42164 l_entered_amt_idx := 22;
42165 l_accted_amt_idx := 27;
42166 l_bflow_applied_to_amt_idx := NULL; -- 5132302
42167 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
42168 l_rec_acct_attrs.array_char_value(1) := p_source_23;
42169 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
42170 l_rec_acct_attrs.array_char_value(2) := p_source_24;
42171 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
42172 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
42173 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
42174 l_rec_acct_attrs.array_num_value(4) := p_source_25;
42175 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
42176 l_rec_acct_attrs.array_char_value(5) := p_source_26;
42177 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
42178 l_rec_acct_attrs.array_num_value(6) := p_source_27;
42179 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
42180 l_rec_acct_attrs.array_date_value(7) := p_source_28;
42181 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
42182 l_rec_acct_attrs.array_num_value(8) := p_source_29;
42183 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
42184 l_rec_acct_attrs.array_char_value(9) := p_source_30;
42185 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
42186 l_rec_acct_attrs.array_char_value(10) := p_source_31;
42187 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
42188 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
42189 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
42190 l_rec_acct_attrs.array_num_value(12) := p_source_25;
42191 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
42192 l_rec_acct_attrs.array_char_value(13) := p_source_26;
42193 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
42194 l_rec_acct_attrs.array_num_value(14) := p_source_27;
42195 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
42196 l_rec_acct_attrs.array_date_value(15) := p_source_28;
42197 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
42198 l_rec_acct_attrs.array_num_value(16) := p_source_29;
42199 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
42200 l_rec_acct_attrs.array_char_value(17) := p_source_30;
42201 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
42202 l_rec_acct_attrs.array_char_value(18) := p_source_32;
42203 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
42204 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
42205 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
42206 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
42207 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
42208 l_rec_acct_attrs.array_char_value(21) := p_source_35;
42209 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
42210 l_rec_acct_attrs.array_num_value(22) := p_source_25;
42211 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
42212 l_rec_acct_attrs.array_char_value(23) := p_source_26;
42213 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
42214 l_rec_acct_attrs.array_date_value(24) := p_source_28;
42215 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
42216 l_rec_acct_attrs.array_num_value(25) := p_source_29;
42217 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
42218 l_rec_acct_attrs.array_char_value(26) := p_source_30;
42219 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
42220 l_rec_acct_attrs.array_num_value(27) := p_source_27;
42221 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
42222 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
42223 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
42224 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
42225 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
42226 l_rec_acct_attrs.array_char_value(30) := p_source_35;
42227
42228 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
42229 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
42230
42231 ---------------------------------------------------------------------------------------------------------------
42232 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
42233 ---------------------------------------------------------------------------------------------------------------
42234 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
42235
42236 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42237 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42238
42239 IF xla_accounting_cache_pkg.GetValueChar
42240 (p_source_code => 'LEDGER_CATEGORY_CODE'
42244 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
42241 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
42242 AND l_bflow_method_code = 'PRIOR_ENTRY'
42243 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
42245 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
42246 )
42247 THEN
42248 xla_ae_lines_pkg.BflowUpgEntry
42249 (p_business_method_code => l_bflow_method_code
42250 ,p_business_class_code => l_bflow_class_code
42251 ,p_balance_type => l_balance_type_code);
42252 ELSE
42253 NULL;
42254 -- No business flow processing for business flow method of NONE.
42255 END IF;
42256
42257 --
42258 -- call analytical criteria
42259 --
42260
42261 --
42262 -- call description
42263 --
42264 -- No description or it is inherited.
42265 --
42266 -- call ADRs
42267 -- Bug 4922099
42268 --
42269 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42270 (NVL(l_actual_upg_option, 'N') = 'O') OR
42271 (NVL(l_enc_upg_option, 'N') = 'O')
42272 )
42273 THEN
42274 NULL;
42275 --
42276 --
42277
42278 l_ccid := AcctDerRule_15(
42279 p_application_id => p_application_id
42280 , p_ae_header_id => l_ae_header_id
42281 , p_source_5 => p_source_5
42282 , p_source_8 => p_source_8
42283 , x_transaction_coa_id => l_adr_transaction_coa_id
42284 , x_accounting_coa_id => l_adr_accounting_coa_id
42285 , x_value_type_code => l_adr_value_type_code
42286 , p_side => 'NA'
42287 );
42288
42289 xla_ae_lines_pkg.set_ccid(
42290 p_code_combination_id => l_ccid
42291 , p_value_type_code => l_adr_value_type_code
42292 , p_transaction_coa_id => l_adr_transaction_coa_id
42293 , p_accounting_coa_id => l_adr_accounting_coa_id
42294 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
42295 , p_adr_type_code => 'S'
42296 , p_component_type => l_component_type
42297 , p_component_code => l_component_code
42298 , p_component_type_code => l_component_type_code
42299 , p_component_appl_id => l_component_appl_id
42300 , p_amb_context_code => l_amb_context_code
42301 , p_side => 'NA'
42302 );
42303
42304
42305 --
42306 --
42307 END IF;
42308 --
42309 -- Bug 4922099
42310 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
42311 (NVL(l_enc_upg_option, 'N') = 'O')
42312 ) AND
42313 (l_bflow_method_code = 'PRIOR_ENTRY')
42314 )
42315 THEN
42316 IF
42317 --
42318 1 = 2
42319 --
42320 THEN
42321 xla_accounting_err_pkg.build_message
42322 (p_appli_s_name => 'XLA'
42323 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42324 ,p_token_1 => 'LINE_NUMBER'
42325 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
42326 ,p_token_2 => 'LINE_TYPE_NAME'
42327 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
42328 l_component_type
42329 ,l_component_code
42330 ,l_component_type_code
42331 ,l_component_appl_id
42332 ,l_amb_context_code
42333 ,l_entity_code
42334 ,l_event_class_code
42335 )
42336 ,p_token_3 => 'OWNER'
42337 ,p_value_3 => xla_lookups_pkg.get_meaning(
42338 p_lookup_type => 'XLA_OWNER_TYPE'
42339 ,p_lookup_code => l_component_type_code
42340 )
42341 ,p_token_4 => 'PRODUCT_NAME'
42342 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
42343 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
42344 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
42345 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
42346 ,p_ae_header_id => NULL
42347 );
42348
42349 IF (C_LEVEL_ERROR>= g_log_level) THEN
42350 trace
42351 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42352 ,p_level => C_LEVEL_ERROR
42353 ,p_module => l_log_module);
42354 END IF;
42355 END IF;
42356 END IF;
42357 --
42358 --
42359 ------------------------------------------------------------------------------------------------
42360 -- 4219869 Business Flow
42364 XLA_AE_LINES_PKG.ValidateCurrentLine;
42361 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
42362 -- Prior Entry. Currently, the following code is always generated.
42363 ------------------------------------------------------------------------------------------------
42365
42366 ------------------------------------------------------------------------------------
42367 -- 4219869 Business Flow
42368 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
42369 ------------------------------------------------------------------------------------
42370 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42371
42372 ----------------------------------------------------------------------------------
42373 -- 4219869 Business Flow
42374 -- Update journal entry status -- Need to generate this within IF <condition>
42375 ----------------------------------------------------------------------------------
42376 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42377 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
42378 ,p_balance_type_code => l_balance_type_code
42379 );
42380
42381 -------------------------------------------------------------------------------------------
42382 -- 4262811 - Generate the Accrual Reversal lines
42383 -------------------------------------------------------------------------------------------
42384 BEGIN
42385 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
42386 (g_array_event(p_event_id).array_value_num('header_index'));
42387 IF l_acc_rev_flag IS NULL THEN
42388 l_acc_rev_flag := 'N';
42389 END IF;
42390 EXCEPTION
42391 WHEN OTHERS THEN
42392 l_acc_rev_flag := 'N';
42393 END;
42394 --
42395 IF (l_acc_rev_flag = 'Y') THEN
42396
42397 -- 4645092 ------------------------------------------------------------------------------
42398 -- To allow MPA report to determine if it should generate report process
42399 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
42400 ------------------------------------------------------------------------------------------
42401
42402 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
42403 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
42404
42405 --
42406 -- Update the line information that should be overwritten
42407 --
42408 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
42409 p_header_num => 1);
42410 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
42411
42412 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
42413
42414 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
42415 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
42416 END IF;
42417
42418 --
42419 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
42420 --
42421 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
42422 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
42423 ELSE
42424 ---------------------------------------------------------------------------------------------------
42425 -- 4262811a Switch Sign
42426 ---------------------------------------------------------------------------------------------------
42427 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
42428 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42429 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42430 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42431 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42432 -- 5132302
42433 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
42434 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42435
42436 END IF;
42437
42438 -- 4955764
42439 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42440 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
42441
42442
42443 XLA_AE_LINES_PKG.ValidateCurrentLine;
42444 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42445
42446 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42447 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
42448 ,p_balance_type_code => l_balance_type_code);
42449
42450 END IF;
42451
42452 -----------------------------------------------------------------------------------------
42453 -- 4262811 Multiperiod Accounting
42454 -----------------------------------------------------------------------------------------
42455 -- No MPA option is assigned.
42456
42457
42458 END IF;
42459 --
42460
42461 --
42462 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42463 trace
42464 (p_msg => 'END of AcctLineType_94'
42465 ,p_level => C_LEVEL_PROCEDURE
42466 ,p_module => l_log_module);
42467 END IF;
42468 --
42469 EXCEPTION
42470 WHEN xla_exceptions_pkg.application_exception THEN
42471 RAISE;
42472 WHEN OTHERS THEN
42473 xla_exceptions_pkg.raise_message
42474 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_94');
42475 END AcctLineType_94;
42479 --
42476 --
42477
42478 ---------------------------------------
42480 -- PRIVATE FUNCTION
42481 -- AcctLineType_95
42482 --
42483 ---------------------------------------
42484 PROCEDURE AcctLineType_95 (
42485 p_application_id IN NUMBER
42486 ,p_event_id IN NUMBER
42487 ,p_calculate_acctd_flag IN VARCHAR2
42488 ,p_calculate_g_l_flag IN VARCHAR2
42489 ,p_actual_flag IN OUT VARCHAR2
42490 ,p_balance_type_code OUT VARCHAR2
42491 ,p_gain_or_loss_ref OUT VARCHAR2
42492
42493 --Cost CCID
42494 , p_source_4 IN NUMBER
42495 --Allow Account Override Flag
42496 , p_source_5 IN VARCHAR2
42497 --Cost Clearing CCID
42498 , p_source_7 IN NUMBER
42499 --Adjustment Cost Clearing CCID
42500 , p_source_8 IN NUMBER
42501 --Reversing Line Flag
42502 , p_source_23 IN VARCHAR2
42503 --Actual Upgrade Credit Accounting Class
42504 , p_source_24 IN VARCHAR2
42505 --Entered Raw Cost
42506 , p_source_25 IN NUMBER
42507 --Entered Currency Code
42508 , p_source_26 IN VARCHAR2
42509 --Accounted Raw Cost
42510 , p_source_27 IN NUMBER
42511 --Exchange Rate Date
42512 , p_source_28 IN DATE
42513 --Exchange Rate
42514 , p_source_29 IN NUMBER
42515 --Exchange Rate Type
42516 , p_source_30 IN VARCHAR2
42517 --Actual Upgrade Debit Accounting Class
42518 , p_source_31 IN VARCHAR2
42519 --Use Actuals Upgrade Attributes Flag
42520 , p_source_32 IN VARCHAR2
42521 --Expenditure Item ID
42522 , p_source_33 IN NUMBER
42523 --Cost Distribution Line Number
42524 , p_source_34 IN NUMBER
42525 --Line Type
42526 , p_source_35 IN VARCHAR2
42527 , p_source_35_meaning IN VARCHAR2
42528 --Reversed Line Number
42529 , p_source_36 IN NUMBER
42530 )
42531 IS
42532
42533 l_component_type VARCHAR2(80);
42534 l_component_code VARCHAR2(30);
42535 l_component_type_code VARCHAR2(1);
42536 l_component_appl_id INTEGER;
42537 l_amb_context_code VARCHAR2(30);
42538 l_entity_code VARCHAR2(30);
42539 l_event_class_code VARCHAR2(30);
42540 l_ae_header_id NUMBER;
42541 l_event_type_code VARCHAR2(30);
42542 l_line_definition_code VARCHAR2(30);
42543 l_line_definition_owner_code VARCHAR2(1);
42544 --
42545 -- adr variables
42546 l_segment VARCHAR2(30);
42547 l_ccid NUMBER;
42548 l_adr_transaction_coa_id NUMBER;
42549 l_adr_accounting_coa_id NUMBER;
42550 l_adr_flexfield_segment_code VARCHAR2(30);
42551 l_adr_flex_value_set_id NUMBER;
42552 l_adr_value_type_code VARCHAR2(30);
42553 l_adr_value_combination_id NUMBER;
42554 l_adr_value_segment_code VARCHAR2(30);
42555
42556 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
42557 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
42558 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
42559 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
42560
42561 -- 4262811 Variables ------------------------------------------------------------------------------------------
42562 l_entered_amt_idx NUMBER;
42563 l_accted_amt_idx NUMBER;
42564 l_acc_rev_flag VARCHAR2(1);
42565 l_accrual_line_num NUMBER;
42566 l_tmp_amt NUMBER;
42567 l_acc_rev_natural_side_code VARCHAR2(1);
42568
42569 l_num_entries NUMBER;
42570 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
42571 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
42572 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
42573 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
42574 l_recog_line_1 NUMBER;
42575 l_recog_line_2 NUMBER;
42576
42577 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
42578 l_bflow_applied_to_amt NUMBER; -- 5132302
42579 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
42580
42581 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
42582
42583 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
42584 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
42585
42586 ---------------------------------------------------------------------------------------------------------------
42587
42588
42589 --
42590 -- bulk performance
42591 --
42592 l_balance_type_code VARCHAR2(1);
42593 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
42594 l_log_module VARCHAR2(240);
42595
42596 --
42597 -- Upgrade strategy
42598 --
42599 l_actual_upg_option VARCHAR2(1);
42600 l_enc_upg_option VARCHAR2(1);
42601
42602 --
42603 BEGIN
42604 --
42605 IF g_log_enabled THEN
42606 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_95';
42607 END IF;
42608 --
42609 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42610
42611 trace
42612 (p_msg => 'BEGIN of AcctLineType_95'
42613 ,p_level => C_LEVEL_PROCEDURE
42614 ,p_module => l_log_module);
42615
42616 END IF;
42617 --
42618 l_component_type := 'AMB_JLT';
42619 l_component_code := 'PA_RAW_COST_CLEARING_ADJ';
42620 l_component_type_code := 'S';
42621 l_component_appl_id := 275;
42622 l_amb_context_code := 'DEFAULT';
42626 l_line_definition_owner_code := 'S';
42623 l_entity_code := 'EXPENDITURES';
42624 l_event_class_code := 'WIP_COST_ADJ';
42625 l_event_type_code := 'WIP_COST_ADJ_ALL';
42627 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
42628 --
42629 l_balance_type_code := 'A';
42630 l_segment := NULL;
42631 l_ccid := NULL;
42632 l_adr_transaction_coa_id := NULL;
42633 l_adr_accounting_coa_id := NULL;
42634 l_adr_flexfield_segment_code := NULL;
42635 l_adr_flex_value_set_id := NULL;
42636 l_adr_value_type_code := NULL;
42637 l_adr_value_combination_id := NULL;
42638 l_adr_value_segment_code := NULL;
42639
42640 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
42641 l_bflow_class_code := ''; -- 4219869 Business Flow
42642 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
42643 l_budgetary_control_flag := 'N';
42644
42645 l_bflow_applied_to_amt_idx := NULL; -- 5132302
42646 l_bflow_applied_to_amt := NULL; -- 5132302
42647 l_entered_amt_idx := NULL; -- 4262811
42648 l_accted_amt_idx := NULL; -- 4262811
42649 l_acc_rev_flag := NULL; -- 4262811
42650 l_accrual_line_num := NULL; -- 4262811
42651 l_tmp_amt := NULL; -- 4262811
42652 --
42653
42654 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
42655 l_balance_type_code <> 'B' THEN
42656
42657 --
42658 XLA_AE_LINES_PKG.SetNewLine;
42659
42660 p_balance_type_code := l_balance_type_code;
42661 -- set the flag so later we will know whether the gain loss line needs to be created
42662
42663 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
42664 p_actual_flag :='A';
42665 END IF;
42666
42667 --
42668 -- bulk performance
42669 --
42670 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
42671 p_header_num => 0); -- 4262811
42672 --
42673 -- set accounting line options
42674 --
42675 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
42676 p_natural_side_code => 'C'
42677 , p_gain_or_loss_flag => 'N'
42678 , p_gl_transfer_mode_code => 'S'
42679 , p_acct_entry_type_code => 'A'
42680 , p_switch_side_flag => 'Y'
42681 , p_merge_duplicate_code => 'N'
42682 );
42683 --
42684 l_acc_rev_natural_side_code := 'D'; -- 4262811
42685 --
42686 --
42687 -- set accounting line type info
42688 --
42689 xla_ae_lines_pkg.SetAcctLineType
42690 (p_component_type => l_component_type
42691 ,p_event_type_code => l_event_type_code
42692 ,p_line_definition_owner_code => l_line_definition_owner_code
42693 ,p_line_definition_code => l_line_definition_code
42694 ,p_accounting_line_code => l_component_code
42695 ,p_accounting_line_type_code => l_component_type_code
42696 ,p_accounting_line_appl_id => l_component_appl_id
42697 ,p_amb_context_code => l_amb_context_code
42698 ,p_entity_code => l_entity_code
42699 ,p_event_class_code => l_event_class_code);
42700 --
42701 -- set accounting class
42702 --
42703 xla_ae_lines_pkg.SetAcctClass(
42704 p_accounting_class_code => 'COST_CLEARING'
42705 , p_ae_header_id => l_ae_header_id
42706 );
42707
42708 --
42709 -- set rounding class
42710 --
42711 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
42712 'COST_CLEARING';
42713
42714 --
42715 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
42716 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
42717 --
42718 -- bulk performance
42719 --
42720 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
42721
42722 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
42723 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
42724
42725 -- 4955764
42726 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42727 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
42728
42729 -- 4458381 Public Sector Enh
42730
42731 --
42732 -- set accounting attributes for the line type
42733 --
42734 l_entered_amt_idx := 22;
42735 l_accted_amt_idx := 27;
42736 l_bflow_applied_to_amt_idx := NULL; -- 5132302
42737 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
42738 l_rec_acct_attrs.array_char_value(1) := p_source_23;
42739 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
42740 l_rec_acct_attrs.array_char_value(2) := p_source_24;
42741 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
42742 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
42743 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
42744 l_rec_acct_attrs.array_num_value(4) := p_source_25;
42745 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
42746 l_rec_acct_attrs.array_char_value(5) := p_source_26;
42747 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
42748 l_rec_acct_attrs.array_num_value(6) := p_source_27;
42749 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
42750 l_rec_acct_attrs.array_date_value(7) := p_source_28;
42754 l_rec_acct_attrs.array_char_value(9) := p_source_30;
42751 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
42752 l_rec_acct_attrs.array_num_value(8) := p_source_29;
42753 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
42755 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
42756 l_rec_acct_attrs.array_char_value(10) := p_source_31;
42757 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
42758 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
42759 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
42760 l_rec_acct_attrs.array_num_value(12) := p_source_25;
42761 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
42762 l_rec_acct_attrs.array_char_value(13) := p_source_26;
42763 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
42764 l_rec_acct_attrs.array_num_value(14) := p_source_27;
42765 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
42766 l_rec_acct_attrs.array_date_value(15) := p_source_28;
42767 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
42768 l_rec_acct_attrs.array_num_value(16) := p_source_29;
42769 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
42770 l_rec_acct_attrs.array_char_value(17) := p_source_30;
42771 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
42772 l_rec_acct_attrs.array_char_value(18) := p_source_32;
42773 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
42774 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
42775 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
42776 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
42777 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
42778 l_rec_acct_attrs.array_char_value(21) := p_source_35;
42779 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
42780 l_rec_acct_attrs.array_num_value(22) := p_source_25;
42781 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
42782 l_rec_acct_attrs.array_char_value(23) := p_source_26;
42783 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
42784 l_rec_acct_attrs.array_date_value(24) := p_source_28;
42785 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
42786 l_rec_acct_attrs.array_num_value(25) := p_source_29;
42787 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
42788 l_rec_acct_attrs.array_char_value(26) := p_source_30;
42789 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
42790 l_rec_acct_attrs.array_num_value(27) := p_source_27;
42791 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
42792 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
42793 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
42794 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
42795 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
42796 l_rec_acct_attrs.array_char_value(30) := p_source_35;
42797
42798 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
42799 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
42800
42801 ---------------------------------------------------------------------------------------------------------------
42802 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
42803 ---------------------------------------------------------------------------------------------------------------
42804 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
42805
42806 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42807 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42808
42809 IF xla_accounting_cache_pkg.GetValueChar
42810 (p_source_code => 'LEDGER_CATEGORY_CODE'
42811 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
42812 AND l_bflow_method_code = 'PRIOR_ENTRY'
42813 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
42814 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
42815 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
42816 )
42817 THEN
42818 xla_ae_lines_pkg.BflowUpgEntry
42819 (p_business_method_code => l_bflow_method_code
42820 ,p_business_class_code => l_bflow_class_code
42821 ,p_balance_type => l_balance_type_code);
42822 ELSE
42823 NULL;
42824 -- No business flow processing for business flow method of NONE.
42825 END IF;
42826
42827 --
42828 -- call analytical criteria
42829 --
42830
42831 --
42832 -- call description
42833 --
42834 -- No description or it is inherited.
42835 --
42836 -- call ADRs
42837 -- Bug 4922099
42838 --
42839 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42840 (NVL(l_actual_upg_option, 'N') = 'O') OR
42841 (NVL(l_enc_upg_option, 'N') = 'O')
42842 )
42843 THEN
42844 NULL;
42845 --
42846 --
42847
42848 l_ccid := AcctDerRule_15(
42849 p_application_id => p_application_id
42850 , p_ae_header_id => l_ae_header_id
42851 , p_source_5 => p_source_5
42852 , p_source_8 => p_source_8
42853 , x_transaction_coa_id => l_adr_transaction_coa_id
42854 , x_accounting_coa_id => l_adr_accounting_coa_id
42855 , x_value_type_code => l_adr_value_type_code
42856 , p_side => 'NA'
42857 );
42858
42859 xla_ae_lines_pkg.set_ccid(
42863 , p_accounting_coa_id => l_adr_accounting_coa_id
42860 p_code_combination_id => l_ccid
42861 , p_value_type_code => l_adr_value_type_code
42862 , p_transaction_coa_id => l_adr_transaction_coa_id
42864 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
42865 , p_adr_type_code => 'S'
42866 , p_component_type => l_component_type
42867 , p_component_code => l_component_code
42868 , p_component_type_code => l_component_type_code
42869 , p_component_appl_id => l_component_appl_id
42870 , p_amb_context_code => l_amb_context_code
42871 , p_side => 'NA'
42872 );
42873
42874
42875 --
42876 --
42877 END IF;
42878 --
42879 -- Bug 4922099
42880 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
42881 (NVL(l_enc_upg_option, 'N') = 'O')
42882 ) AND
42883 (l_bflow_method_code = 'PRIOR_ENTRY')
42884 )
42885 THEN
42886 IF
42887 --
42888 1 = 2
42889 --
42890 THEN
42891 xla_accounting_err_pkg.build_message
42892 (p_appli_s_name => 'XLA'
42893 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42894 ,p_token_1 => 'LINE_NUMBER'
42895 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
42896 ,p_token_2 => 'LINE_TYPE_NAME'
42897 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
42898 l_component_type
42899 ,l_component_code
42900 ,l_component_type_code
42901 ,l_component_appl_id
42902 ,l_amb_context_code
42903 ,l_entity_code
42904 ,l_event_class_code
42905 )
42906 ,p_token_3 => 'OWNER'
42907 ,p_value_3 => xla_lookups_pkg.get_meaning(
42908 p_lookup_type => 'XLA_OWNER_TYPE'
42909 ,p_lookup_code => l_component_type_code
42910 )
42911 ,p_token_4 => 'PRODUCT_NAME'
42912 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
42913 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
42914 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
42915 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
42916 ,p_ae_header_id => NULL
42917 );
42918
42919 IF (C_LEVEL_ERROR>= g_log_level) THEN
42920 trace
42921 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42922 ,p_level => C_LEVEL_ERROR
42923 ,p_module => l_log_module);
42924 END IF;
42925 END IF;
42926 END IF;
42927 --
42928 --
42929 ------------------------------------------------------------------------------------------------
42930 -- 4219869 Business Flow
42931 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
42932 -- Prior Entry. Currently, the following code is always generated.
42933 ------------------------------------------------------------------------------------------------
42934 XLA_AE_LINES_PKG.ValidateCurrentLine;
42935
42936 ------------------------------------------------------------------------------------
42937 -- 4219869 Business Flow
42938 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
42939 ------------------------------------------------------------------------------------
42940 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42941
42942 ----------------------------------------------------------------------------------
42943 -- 4219869 Business Flow
42944 -- Update journal entry status -- Need to generate this within IF <condition>
42945 ----------------------------------------------------------------------------------
42946 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42947 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
42948 ,p_balance_type_code => l_balance_type_code
42949 );
42950
42951 -------------------------------------------------------------------------------------------
42952 -- 4262811 - Generate the Accrual Reversal lines
42953 -------------------------------------------------------------------------------------------
42954 BEGIN
42955 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
42956 (g_array_event(p_event_id).array_value_num('header_index'));
42957 IF l_acc_rev_flag IS NULL THEN
42958 l_acc_rev_flag := 'N';
42959 END IF;
42960 EXCEPTION
42961 WHEN OTHERS THEN
42962 l_acc_rev_flag := 'N';
42963 END;
42964 --
42965 IF (l_acc_rev_flag = 'Y') THEN
42969 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
42966
42967 -- 4645092 ------------------------------------------------------------------------------
42968 -- To allow MPA report to determine if it should generate report process
42970 ------------------------------------------------------------------------------------------
42971
42972 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
42973 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
42974
42975 --
42976 -- Update the line information that should be overwritten
42977 --
42978 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
42979 p_header_num => 1);
42980 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
42981
42982 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
42983
42984 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
42985 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
42986 END IF;
42987
42988 --
42989 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
42990 --
42991 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
42992 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
42993 ELSE
42994 ---------------------------------------------------------------------------------------------------
42995 -- 4262811a Switch Sign
42996 ---------------------------------------------------------------------------------------------------
42997 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
42998 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42999 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43000 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43001 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43002 -- 5132302
43003 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
43004 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43005
43006 END IF;
43007
43008 -- 4955764
43009 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43010 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
43011
43012
43013 XLA_AE_LINES_PKG.ValidateCurrentLine;
43014 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43015
43016 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43017 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
43018 ,p_balance_type_code => l_balance_type_code);
43019
43020 END IF;
43021
43022 -----------------------------------------------------------------------------------------
43023 -- 4262811 Multiperiod Accounting
43024 -----------------------------------------------------------------------------------------
43025 -- No MPA option is assigned.
43026
43027
43028 END IF;
43029 --
43030
43031 --
43032 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43033 trace
43034 (p_msg => 'END of AcctLineType_95'
43035 ,p_level => C_LEVEL_PROCEDURE
43036 ,p_module => l_log_module);
43037 END IF;
43038 --
43039 EXCEPTION
43040 WHEN xla_exceptions_pkg.application_exception THEN
43041 RAISE;
43042 WHEN OTHERS THEN
43043 xla_exceptions_pkg.raise_message
43044 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_95');
43045 END AcctLineType_95;
43046 --
43047
43048 ---------------------------------------
43049 --
43050 -- PRIVATE FUNCTION
43051 -- AcctLineType_96
43052 --
43053 ---------------------------------------
43054 PROCEDURE AcctLineType_96 (
43055 p_application_id IN NUMBER
43056 ,p_event_id IN NUMBER
43057 ,p_calculate_acctd_flag IN VARCHAR2
43058 ,p_calculate_g_l_flag IN VARCHAR2
43059 ,p_actual_flag IN OUT VARCHAR2
43060 ,p_balance_type_code OUT VARCHAR2
43061 ,p_gain_or_loss_ref OUT VARCHAR2
43062
43063 --Cost CCID
43064 , p_source_4 IN NUMBER
43065 --Allow Account Override Flag
43066 , p_source_5 IN VARCHAR2
43067 --Cost Clearing CCID
43068 , p_source_7 IN NUMBER
43069 --Adjustment Cost Clearing CCID
43070 , p_source_8 IN NUMBER
43071 --Exchange Rate Variance Flag
43072 , p_source_22 IN VARCHAR2
43073 --Reversing Line Flag
43074 , p_source_23 IN VARCHAR2
43075 --Actual Upgrade Credit Accounting Class
43076 , p_source_24 IN VARCHAR2
43077 --Entered Raw Cost
43078 , p_source_25 IN NUMBER
43079 --Entered Currency Code
43080 , p_source_26 IN VARCHAR2
43081 --Accounted Raw Cost
43082 , p_source_27 IN NUMBER
43083 --Exchange Rate Date
43084 , p_source_28 IN DATE
43085 --Exchange Rate
43086 , p_source_29 IN NUMBER
43087 --Exchange Rate Type
43088 , p_source_30 IN VARCHAR2
43089 --Actual Upgrade Debit Accounting Class
43090 , p_source_31 IN VARCHAR2
43091 --Use Actuals Upgrade Attributes Flag
43092 , p_source_32 IN VARCHAR2
43093 --Expenditure Item ID
43094 , p_source_33 IN NUMBER
43095 --Cost Distribution Line Number
43096 , p_source_34 IN NUMBER
43100 --Reversed Line Number
43097 --Line Type
43098 , p_source_35 IN VARCHAR2
43099 , p_source_35_meaning IN VARCHAR2
43101 , p_source_36 IN NUMBER
43102 )
43103 IS
43104
43105 l_component_type VARCHAR2(80);
43106 l_component_code VARCHAR2(30);
43107 l_component_type_code VARCHAR2(1);
43108 l_component_appl_id INTEGER;
43109 l_amb_context_code VARCHAR2(30);
43110 l_entity_code VARCHAR2(30);
43111 l_event_class_code VARCHAR2(30);
43112 l_ae_header_id NUMBER;
43113 l_event_type_code VARCHAR2(30);
43114 l_line_definition_code VARCHAR2(30);
43115 l_line_definition_owner_code VARCHAR2(1);
43116 --
43117 -- adr variables
43118 l_segment VARCHAR2(30);
43119 l_ccid NUMBER;
43120 l_adr_transaction_coa_id NUMBER;
43121 l_adr_accounting_coa_id NUMBER;
43122 l_adr_flexfield_segment_code VARCHAR2(30);
43123 l_adr_flex_value_set_id NUMBER;
43124 l_adr_value_type_code VARCHAR2(30);
43125 l_adr_value_combination_id NUMBER;
43126 l_adr_value_segment_code VARCHAR2(30);
43127
43128 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
43129 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
43130 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
43131 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
43132
43133 -- 4262811 Variables ------------------------------------------------------------------------------------------
43134 l_entered_amt_idx NUMBER;
43135 l_accted_amt_idx NUMBER;
43136 l_acc_rev_flag VARCHAR2(1);
43137 l_accrual_line_num NUMBER;
43138 l_tmp_amt NUMBER;
43139 l_acc_rev_natural_side_code VARCHAR2(1);
43140
43141 l_num_entries NUMBER;
43142 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
43143 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
43144 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
43145 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
43146 l_recog_line_1 NUMBER;
43147 l_recog_line_2 NUMBER;
43148
43149 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
43150 l_bflow_applied_to_amt NUMBER; -- 5132302
43151 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
43152
43153 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
43154
43155 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
43156 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
43157
43158 ---------------------------------------------------------------------------------------------------------------
43159
43160
43161 --
43162 -- bulk performance
43163 --
43164 l_balance_type_code VARCHAR2(1);
43165 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
43166 l_log_module VARCHAR2(240);
43167
43168 --
43169 -- Upgrade strategy
43170 --
43171 l_actual_upg_option VARCHAR2(1);
43172 l_enc_upg_option VARCHAR2(1);
43173
43174 --
43175 BEGIN
43176 --
43177 IF g_log_enabled THEN
43178 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_96';
43179 END IF;
43180 --
43181 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43182
43183 trace
43184 (p_msg => 'BEGIN of AcctLineType_96'
43185 ,p_level => C_LEVEL_PROCEDURE
43186 ,p_module => l_log_module);
43187
43188 END IF;
43189 --
43190 l_component_type := 'AMB_JLT';
43191 l_component_code := 'PA_RAW_COST_CLEARING_ADJ';
43192 l_component_type_code := 'S';
43193 l_component_appl_id := 275;
43194 l_amb_context_code := 'DEFAULT';
43195 l_entity_code := 'EXPENDITURES';
43196 l_event_class_code := 'SUPPLIER_COST_ADJ';
43197 l_event_type_code := 'SUPPLIER_COST_ADJ_ALL';
43198 l_line_definition_owner_code := 'S';
43199 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
43200 --
43201 l_balance_type_code := 'A';
43202 l_segment := NULL;
43203 l_ccid := NULL;
43204 l_adr_transaction_coa_id := NULL;
43205 l_adr_accounting_coa_id := NULL;
43206 l_adr_flexfield_segment_code := NULL;
43207 l_adr_flex_value_set_id := NULL;
43208 l_adr_value_type_code := NULL;
43209 l_adr_value_combination_id := NULL;
43210 l_adr_value_segment_code := NULL;
43211
43212 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
43213 l_bflow_class_code := ''; -- 4219869 Business Flow
43214 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
43215 l_budgetary_control_flag := 'N';
43216
43217 l_bflow_applied_to_amt_idx := NULL; -- 5132302
43218 l_bflow_applied_to_amt := NULL; -- 5132302
43219 l_entered_amt_idx := NULL; -- 4262811
43220 l_accted_amt_idx := NULL; -- 4262811
43221 l_acc_rev_flag := NULL; -- 4262811
43222 l_accrual_line_num := NULL; -- 4262811
43223 l_tmp_amt := NULL; -- 4262811
43224 --
43225
43226 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
43227 l_balance_type_code <> 'B' THEN
43228 IF NVL(p_source_22,'
43229 ') = 'N'
43230 THEN
43231
43232 --
43233 XLA_AE_LINES_PKG.SetNewLine;
43234
43235 p_balance_type_code := l_balance_type_code;
43239 p_actual_flag :='A';
43236 -- set the flag so later we will know whether the gain loss line needs to be created
43237
43238 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
43240 END IF;
43241
43242 --
43243 -- bulk performance
43244 --
43245 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
43246 p_header_num => 0); -- 4262811
43247 --
43248 -- set accounting line options
43249 --
43250 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
43251 p_natural_side_code => 'C'
43252 , p_gain_or_loss_flag => 'N'
43253 , p_gl_transfer_mode_code => 'S'
43254 , p_acct_entry_type_code => 'A'
43255 , p_switch_side_flag => 'Y'
43256 , p_merge_duplicate_code => 'N'
43257 );
43258 --
43259 l_acc_rev_natural_side_code := 'D'; -- 4262811
43260 --
43261 --
43262 -- set accounting line type info
43263 --
43264 xla_ae_lines_pkg.SetAcctLineType
43265 (p_component_type => l_component_type
43266 ,p_event_type_code => l_event_type_code
43267 ,p_line_definition_owner_code => l_line_definition_owner_code
43268 ,p_line_definition_code => l_line_definition_code
43269 ,p_accounting_line_code => l_component_code
43270 ,p_accounting_line_type_code => l_component_type_code
43271 ,p_accounting_line_appl_id => l_component_appl_id
43272 ,p_amb_context_code => l_amb_context_code
43273 ,p_entity_code => l_entity_code
43274 ,p_event_class_code => l_event_class_code);
43275 --
43276 -- set accounting class
43277 --
43278 xla_ae_lines_pkg.SetAcctClass(
43279 p_accounting_class_code => 'COST_CLEARING'
43280 , p_ae_header_id => l_ae_header_id
43281 );
43282
43283 --
43284 -- set rounding class
43285 --
43286 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
43287 'COST_CLEARING';
43288
43289 --
43290 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
43291 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
43292 --
43293 -- bulk performance
43294 --
43295 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
43296
43297 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
43298 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
43299
43300 -- 4955764
43301 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43302 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
43303
43304 -- 4458381 Public Sector Enh
43305
43306 --
43307 -- set accounting attributes for the line type
43308 --
43309 l_entered_amt_idx := 22;
43310 l_accted_amt_idx := 27;
43311 l_bflow_applied_to_amt_idx := NULL; -- 5132302
43312 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
43313 l_rec_acct_attrs.array_char_value(1) := p_source_23;
43314 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
43315 l_rec_acct_attrs.array_char_value(2) := p_source_24;
43316 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
43317 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
43318 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
43319 l_rec_acct_attrs.array_num_value(4) := p_source_25;
43320 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
43321 l_rec_acct_attrs.array_char_value(5) := p_source_26;
43322 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
43323 l_rec_acct_attrs.array_num_value(6) := p_source_27;
43324 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
43325 l_rec_acct_attrs.array_date_value(7) := p_source_28;
43326 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
43327 l_rec_acct_attrs.array_num_value(8) := p_source_29;
43328 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
43329 l_rec_acct_attrs.array_char_value(9) := p_source_30;
43330 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
43331 l_rec_acct_attrs.array_char_value(10) := p_source_31;
43332 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
43333 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
43334 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
43335 l_rec_acct_attrs.array_num_value(12) := p_source_25;
43336 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
43337 l_rec_acct_attrs.array_char_value(13) := p_source_26;
43338 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
43339 l_rec_acct_attrs.array_num_value(14) := p_source_27;
43340 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
43341 l_rec_acct_attrs.array_date_value(15) := p_source_28;
43342 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
43343 l_rec_acct_attrs.array_num_value(16) := p_source_29;
43344 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
43345 l_rec_acct_attrs.array_char_value(17) := p_source_30;
43346 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
43347 l_rec_acct_attrs.array_char_value(18) := p_source_32;
43348 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
43349 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
43350 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
43354 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
43351 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
43352 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
43353 l_rec_acct_attrs.array_char_value(21) := p_source_35;
43355 l_rec_acct_attrs.array_num_value(22) := p_source_25;
43356 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
43357 l_rec_acct_attrs.array_char_value(23) := p_source_26;
43358 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
43359 l_rec_acct_attrs.array_date_value(24) := p_source_28;
43360 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
43361 l_rec_acct_attrs.array_num_value(25) := p_source_29;
43362 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
43363 l_rec_acct_attrs.array_char_value(26) := p_source_30;
43364 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
43365 l_rec_acct_attrs.array_num_value(27) := p_source_27;
43366 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
43367 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
43368 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
43369 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
43370 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
43371 l_rec_acct_attrs.array_char_value(30) := p_source_35;
43372
43373 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
43374 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
43375
43376 ---------------------------------------------------------------------------------------------------------------
43377 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
43378 ---------------------------------------------------------------------------------------------------------------
43379 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
43380
43381 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43382 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43383
43384 IF xla_accounting_cache_pkg.GetValueChar
43385 (p_source_code => 'LEDGER_CATEGORY_CODE'
43386 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
43387 AND l_bflow_method_code = 'PRIOR_ENTRY'
43388 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
43389 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
43390 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
43391 )
43392 THEN
43393 xla_ae_lines_pkg.BflowUpgEntry
43394 (p_business_method_code => l_bflow_method_code
43395 ,p_business_class_code => l_bflow_class_code
43396 ,p_balance_type => l_balance_type_code);
43397 ELSE
43398 NULL;
43399 -- No business flow processing for business flow method of NONE.
43400 END IF;
43401
43402 --
43403 -- call analytical criteria
43404 --
43405
43406 --
43407 -- call description
43408 --
43409 -- No description or it is inherited.
43410 --
43411 -- call ADRs
43412 -- Bug 4922099
43413 --
43414 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43415 (NVL(l_actual_upg_option, 'N') = 'O') OR
43416 (NVL(l_enc_upg_option, 'N') = 'O')
43417 )
43418 THEN
43419 NULL;
43420 --
43421 --
43422
43423 l_ccid := AcctDerRule_15(
43424 p_application_id => p_application_id
43425 , p_ae_header_id => l_ae_header_id
43426 , p_source_5 => p_source_5
43427 , p_source_8 => p_source_8
43428 , x_transaction_coa_id => l_adr_transaction_coa_id
43429 , x_accounting_coa_id => l_adr_accounting_coa_id
43430 , x_value_type_code => l_adr_value_type_code
43431 , p_side => 'NA'
43432 );
43433
43434 xla_ae_lines_pkg.set_ccid(
43435 p_code_combination_id => l_ccid
43436 , p_value_type_code => l_adr_value_type_code
43437 , p_transaction_coa_id => l_adr_transaction_coa_id
43438 , p_accounting_coa_id => l_adr_accounting_coa_id
43439 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
43440 , p_adr_type_code => 'S'
43441 , p_component_type => l_component_type
43442 , p_component_code => l_component_code
43443 , p_component_type_code => l_component_type_code
43444 , p_component_appl_id => l_component_appl_id
43445 , p_amb_context_code => l_amb_context_code
43446 , p_side => 'NA'
43447 );
43448
43449
43450 --
43451 --
43452 END IF;
43453 --
43454 -- Bug 4922099
43455 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
43456 (NVL(l_enc_upg_option, 'N') = 'O')
43457 ) AND
43458 (l_bflow_method_code = 'PRIOR_ENTRY')
43459 )
43460 THEN
43461 IF
43462 --
43463 1 = 2
43464 --
43465 THEN
43466 xla_accounting_err_pkg.build_message
43467 (p_appli_s_name => 'XLA'
43468 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43469 ,p_token_1 => 'LINE_NUMBER'
43470 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
43471 ,p_token_2 => 'LINE_TYPE_NAME'
43472 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
43476 ,l_component_appl_id
43473 l_component_type
43474 ,l_component_code
43475 ,l_component_type_code
43477 ,l_amb_context_code
43478 ,l_entity_code
43479 ,l_event_class_code
43480 )
43481 ,p_token_3 => 'OWNER'
43482 ,p_value_3 => xla_lookups_pkg.get_meaning(
43483 p_lookup_type => 'XLA_OWNER_TYPE'
43484 ,p_lookup_code => l_component_type_code
43485 )
43486 ,p_token_4 => 'PRODUCT_NAME'
43487 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
43488 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
43489 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
43490 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
43491 ,p_ae_header_id => NULL
43492 );
43493
43494 IF (C_LEVEL_ERROR>= g_log_level) THEN
43495 trace
43496 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43497 ,p_level => C_LEVEL_ERROR
43498 ,p_module => l_log_module);
43499 END IF;
43500 END IF;
43501 END IF;
43502 --
43503 --
43504 ------------------------------------------------------------------------------------------------
43505 -- 4219869 Business Flow
43506 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
43507 -- Prior Entry. Currently, the following code is always generated.
43508 ------------------------------------------------------------------------------------------------
43509 XLA_AE_LINES_PKG.ValidateCurrentLine;
43510
43511 ------------------------------------------------------------------------------------
43512 -- 4219869 Business Flow
43513 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
43514 ------------------------------------------------------------------------------------
43515 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43516
43517 ----------------------------------------------------------------------------------
43518 -- 4219869 Business Flow
43519 -- Update journal entry status -- Need to generate this within IF <condition>
43520 ----------------------------------------------------------------------------------
43521 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43522 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
43523 ,p_balance_type_code => l_balance_type_code
43524 );
43525
43526 -------------------------------------------------------------------------------------------
43527 -- 4262811 - Generate the Accrual Reversal lines
43528 -------------------------------------------------------------------------------------------
43529 BEGIN
43530 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
43531 (g_array_event(p_event_id).array_value_num('header_index'));
43532 IF l_acc_rev_flag IS NULL THEN
43533 l_acc_rev_flag := 'N';
43534 END IF;
43535 EXCEPTION
43536 WHEN OTHERS THEN
43537 l_acc_rev_flag := 'N';
43538 END;
43539 --
43540 IF (l_acc_rev_flag = 'Y') THEN
43541
43542 -- 4645092 ------------------------------------------------------------------------------
43543 -- To allow MPA report to determine if it should generate report process
43544 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
43545 ------------------------------------------------------------------------------------------
43546
43547 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
43548 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
43549
43550 --
43551 -- Update the line information that should be overwritten
43552 --
43553 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
43554 p_header_num => 1);
43555 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
43556
43557 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
43558
43559 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
43560 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
43561 END IF;
43562
43563 --
43564 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
43565 --
43566 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
43567 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
43568 ELSE
43569 ---------------------------------------------------------------------------------------------------
43570 -- 4262811a Switch Sign
43574 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43571 ---------------------------------------------------------------------------------------------------
43572 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
43573 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43575 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43576 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43577 -- 5132302
43578 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
43579 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43580
43581 END IF;
43582
43583 -- 4955764
43584 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43585 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
43586
43587
43588 XLA_AE_LINES_PKG.ValidateCurrentLine;
43589 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43590
43591 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43592 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
43593 ,p_balance_type_code => l_balance_type_code);
43594
43595 END IF;
43596
43597 -----------------------------------------------------------------------------------------
43598 -- 4262811 Multiperiod Accounting
43599 -----------------------------------------------------------------------------------------
43600 -- No MPA option is assigned.
43601
43602
43603 END IF;
43604 END IF;
43605 --
43606
43607 --
43608 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43609 trace
43610 (p_msg => 'END of AcctLineType_96'
43611 ,p_level => C_LEVEL_PROCEDURE
43612 ,p_module => l_log_module);
43613 END IF;
43614 --
43615 EXCEPTION
43616 WHEN xla_exceptions_pkg.application_exception THEN
43617 RAISE;
43618 WHEN OTHERS THEN
43619 xla_exceptions_pkg.raise_message
43620 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_96');
43621 END AcctLineType_96;
43622 --
43623
43624 ---------------------------------------
43625 --
43626 -- PRIVATE FUNCTION
43627 -- AcctLineType_97
43628 --
43629 ---------------------------------------
43630 PROCEDURE AcctLineType_97 (
43631 p_application_id IN NUMBER
43632 ,p_event_id IN NUMBER
43633 ,p_calculate_acctd_flag IN VARCHAR2
43634 ,p_calculate_g_l_flag IN VARCHAR2
43635 ,p_actual_flag IN OUT VARCHAR2
43636 ,p_balance_type_code OUT VARCHAR2
43637 ,p_gain_or_loss_ref OUT VARCHAR2
43638
43639 --Cost CCID
43640 , p_source_4 IN NUMBER
43641 --Allow Account Override Flag
43642 , p_source_5 IN VARCHAR2
43643 --Cost Clearing CCID
43644 , p_source_7 IN NUMBER
43645 --Adjustment Cost Clearing CCID
43646 , p_source_8 IN NUMBER
43647 --Reversing Line Flag
43648 , p_source_23 IN VARCHAR2
43649 --Actual Upgrade Credit Accounting Class
43650 , p_source_24 IN VARCHAR2
43651 --Entered Raw Cost
43652 , p_source_25 IN NUMBER
43653 --Entered Currency Code
43654 , p_source_26 IN VARCHAR2
43655 --Accounted Raw Cost
43656 , p_source_27 IN NUMBER
43657 --Exchange Rate Date
43658 , p_source_28 IN DATE
43659 --Exchange Rate
43660 , p_source_29 IN NUMBER
43661 --Exchange Rate Type
43662 , p_source_30 IN VARCHAR2
43663 --Actual Upgrade Debit Accounting Class
43664 , p_source_31 IN VARCHAR2
43665 --Use Actuals Upgrade Attributes Flag
43666 , p_source_32 IN VARCHAR2
43667 --Expenditure Item ID
43668 , p_source_33 IN NUMBER
43669 --Cost Distribution Line Number
43670 , p_source_34 IN NUMBER
43671 --Line Type
43672 , p_source_35 IN VARCHAR2
43673 , p_source_35_meaning IN VARCHAR2
43674 --Reversed Line Number
43675 , p_source_36 IN NUMBER
43676 )
43677 IS
43678
43679 l_component_type VARCHAR2(80);
43680 l_component_code VARCHAR2(30);
43681 l_component_type_code VARCHAR2(1);
43682 l_component_appl_id INTEGER;
43683 l_amb_context_code VARCHAR2(30);
43684 l_entity_code VARCHAR2(30);
43685 l_event_class_code VARCHAR2(30);
43686 l_ae_header_id NUMBER;
43687 l_event_type_code VARCHAR2(30);
43688 l_line_definition_code VARCHAR2(30);
43689 l_line_definition_owner_code VARCHAR2(1);
43690 --
43691 -- adr variables
43692 l_segment VARCHAR2(30);
43693 l_ccid NUMBER;
43694 l_adr_transaction_coa_id NUMBER;
43695 l_adr_accounting_coa_id NUMBER;
43696 l_adr_flexfield_segment_code VARCHAR2(30);
43697 l_adr_flex_value_set_id NUMBER;
43698 l_adr_value_type_code VARCHAR2(30);
43699 l_adr_value_combination_id NUMBER;
43700 l_adr_value_segment_code VARCHAR2(30);
43701
43702 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
43703 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
43704 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
43705 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
43706
43707 -- 4262811 Variables ------------------------------------------------------------------------------------------
43708 l_entered_amt_idx NUMBER;
43709 l_accted_amt_idx NUMBER;
43713 l_acc_rev_natural_side_code VARCHAR2(1);
43710 l_acc_rev_flag VARCHAR2(1);
43711 l_accrual_line_num NUMBER;
43712 l_tmp_amt NUMBER;
43714
43715 l_num_entries NUMBER;
43716 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
43717 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
43718 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
43719 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
43720 l_recog_line_1 NUMBER;
43721 l_recog_line_2 NUMBER;
43722
43723 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
43724 l_bflow_applied_to_amt NUMBER; -- 5132302
43725 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
43726
43727 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
43728
43729 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
43730 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
43731
43732 ---------------------------------------------------------------------------------------------------------------
43733
43734
43735 --
43736 -- bulk performance
43737 --
43738 l_balance_type_code VARCHAR2(1);
43739 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
43740 l_log_module VARCHAR2(240);
43741
43742 --
43743 -- Upgrade strategy
43744 --
43745 l_actual_upg_option VARCHAR2(1);
43746 l_enc_upg_option VARCHAR2(1);
43747
43748 --
43749 BEGIN
43750 --
43751 IF g_log_enabled THEN
43752 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_97';
43753 END IF;
43754 --
43755 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43756
43757 trace
43758 (p_msg => 'BEGIN of AcctLineType_97'
43759 ,p_level => C_LEVEL_PROCEDURE
43760 ,p_module => l_log_module);
43761
43762 END IF;
43763 --
43764 l_component_type := 'AMB_JLT';
43765 l_component_code := 'PA_RAW_COST_CLEAR_ADJ_FED';
43766 l_component_type_code := 'S';
43767 l_component_appl_id := 275;
43768 l_amb_context_code := 'DEFAULT';
43769 l_entity_code := 'EXPENDITURES';
43770 l_event_class_code := 'LABOR_COST_ADJ';
43771 l_event_type_code := 'LABOR_COST_ADJ_ALL';
43772 l_line_definition_owner_code := 'S';
43773 l_line_definition_code := 'FV_PROJECTS_JLD';
43774 --
43775 l_balance_type_code := 'A';
43776 l_segment := NULL;
43777 l_ccid := NULL;
43778 l_adr_transaction_coa_id := NULL;
43779 l_adr_accounting_coa_id := NULL;
43780 l_adr_flexfield_segment_code := NULL;
43781 l_adr_flex_value_set_id := NULL;
43782 l_adr_value_type_code := NULL;
43783 l_adr_value_combination_id := NULL;
43784 l_adr_value_segment_code := NULL;
43785
43786 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
43787 l_bflow_class_code := ''; -- 4219869 Business Flow
43788 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
43789 l_budgetary_control_flag := 'N';
43790
43791 l_bflow_applied_to_amt_idx := NULL; -- 5132302
43792 l_bflow_applied_to_amt := NULL; -- 5132302
43793 l_entered_amt_idx := NULL; -- 4262811
43794 l_accted_amt_idx := NULL; -- 4262811
43795 l_acc_rev_flag := NULL; -- 4262811
43796 l_accrual_line_num := NULL; -- 4262811
43797 l_tmp_amt := NULL; -- 4262811
43798 --
43799
43800 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
43801 l_balance_type_code <> 'B' THEN
43802
43803 --
43804 XLA_AE_LINES_PKG.SetNewLine;
43805
43806 p_balance_type_code := l_balance_type_code;
43807 -- set the flag so later we will know whether the gain loss line needs to be created
43808
43809 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
43810 p_actual_flag :='A';
43811 END IF;
43812
43813 --
43814 -- bulk performance
43815 --
43816 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
43817 p_header_num => 0); -- 4262811
43818 --
43819 -- set accounting line options
43820 --
43821 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
43822 p_natural_side_code => 'C'
43823 , p_gain_or_loss_flag => 'N'
43824 , p_gl_transfer_mode_code => 'S'
43825 , p_acct_entry_type_code => 'A'
43826 , p_switch_side_flag => 'Y'
43827 , p_merge_duplicate_code => 'N'
43828 );
43829 --
43830 l_acc_rev_natural_side_code := 'D'; -- 4262811
43831 --
43832 --
43833 -- set accounting line type info
43834 --
43835 xla_ae_lines_pkg.SetAcctLineType
43836 (p_component_type => l_component_type
43837 ,p_event_type_code => l_event_type_code
43838 ,p_line_definition_owner_code => l_line_definition_owner_code
43839 ,p_line_definition_code => l_line_definition_code
43840 ,p_accounting_line_code => l_component_code
43841 ,p_accounting_line_type_code => l_component_type_code
43842 ,p_accounting_line_appl_id => l_component_appl_id
43843 ,p_amb_context_code => l_amb_context_code
43844 ,p_entity_code => l_entity_code
43845 ,p_event_class_code => l_event_class_code);
43846 --
43847 -- set accounting class
43848 --
43852 );
43849 xla_ae_lines_pkg.SetAcctClass(
43850 p_accounting_class_code => 'FEDERAL_PROJECT_COST_CLEARING'
43851 , p_ae_header_id => l_ae_header_id
43853
43854 --
43855 -- set rounding class
43856 --
43857 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
43858 'FEDERAL_PROJECT_COST_CLEARING';
43859
43860 --
43861 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
43862 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
43863 --
43864 -- bulk performance
43865 --
43866 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
43867
43868 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
43869 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
43870
43871 -- 4955764
43872 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43873 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
43874
43875 -- 4458381 Public Sector Enh
43876
43877 --
43878 -- set accounting attributes for the line type
43879 --
43880 l_entered_amt_idx := 22;
43881 l_accted_amt_idx := 27;
43882 l_bflow_applied_to_amt_idx := NULL; -- 5132302
43883 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
43884 l_rec_acct_attrs.array_char_value(1) := p_source_23;
43885 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
43886 l_rec_acct_attrs.array_char_value(2) := p_source_24;
43887 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
43888 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
43889 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
43890 l_rec_acct_attrs.array_num_value(4) := p_source_25;
43891 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
43892 l_rec_acct_attrs.array_char_value(5) := p_source_26;
43893 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
43894 l_rec_acct_attrs.array_num_value(6) := p_source_27;
43895 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
43896 l_rec_acct_attrs.array_date_value(7) := p_source_28;
43897 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
43898 l_rec_acct_attrs.array_num_value(8) := p_source_29;
43899 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
43900 l_rec_acct_attrs.array_char_value(9) := p_source_30;
43901 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
43902 l_rec_acct_attrs.array_char_value(10) := p_source_31;
43903 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
43904 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
43905 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
43906 l_rec_acct_attrs.array_num_value(12) := p_source_25;
43907 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
43908 l_rec_acct_attrs.array_char_value(13) := p_source_26;
43909 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
43910 l_rec_acct_attrs.array_num_value(14) := p_source_27;
43911 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
43912 l_rec_acct_attrs.array_date_value(15) := p_source_28;
43913 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
43914 l_rec_acct_attrs.array_num_value(16) := p_source_29;
43915 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
43916 l_rec_acct_attrs.array_char_value(17) := p_source_30;
43917 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
43918 l_rec_acct_attrs.array_char_value(18) := p_source_32;
43919 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
43920 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
43921 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
43922 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
43923 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
43924 l_rec_acct_attrs.array_char_value(21) := p_source_35;
43925 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
43926 l_rec_acct_attrs.array_num_value(22) := p_source_25;
43927 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
43928 l_rec_acct_attrs.array_char_value(23) := p_source_26;
43929 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
43930 l_rec_acct_attrs.array_date_value(24) := p_source_28;
43931 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
43932 l_rec_acct_attrs.array_num_value(25) := p_source_29;
43933 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
43934 l_rec_acct_attrs.array_char_value(26) := p_source_30;
43935 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
43936 l_rec_acct_attrs.array_num_value(27) := p_source_27;
43937 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
43938 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
43939 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
43940 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
43941 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
43942 l_rec_acct_attrs.array_char_value(30) := p_source_35;
43943
43944 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
43945 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
43946
43947 ---------------------------------------------------------------------------------------------------------------
43948 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
43952 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43949 ---------------------------------------------------------------------------------------------------------------
43950 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
43951
43953 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43954
43955 IF xla_accounting_cache_pkg.GetValueChar
43956 (p_source_code => 'LEDGER_CATEGORY_CODE'
43957 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
43958 AND l_bflow_method_code = 'PRIOR_ENTRY'
43959 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
43960 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
43961 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
43962 )
43963 THEN
43964 xla_ae_lines_pkg.BflowUpgEntry
43965 (p_business_method_code => l_bflow_method_code
43966 ,p_business_class_code => l_bflow_class_code
43967 ,p_balance_type => l_balance_type_code);
43968 ELSE
43969 NULL;
43970 -- No business flow processing for business flow method of NONE.
43971 END IF;
43972
43973 --
43974 -- call analytical criteria
43975 --
43976
43977 --
43978 -- call description
43979 --
43980 -- No description or it is inherited.
43981 --
43982 -- call ADRs
43983 -- Bug 4922099
43984 --
43985 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43986 (NVL(l_actual_upg_option, 'N') = 'O') OR
43987 (NVL(l_enc_upg_option, 'N') = 'O')
43988 )
43989 THEN
43990 NULL;
43991 --
43992 --
43993
43994 l_ccid := AcctDerRule_15(
43995 p_application_id => p_application_id
43996 , p_ae_header_id => l_ae_header_id
43997 , p_source_5 => p_source_5
43998 , p_source_8 => p_source_8
43999 , x_transaction_coa_id => l_adr_transaction_coa_id
44000 , x_accounting_coa_id => l_adr_accounting_coa_id
44001 , x_value_type_code => l_adr_value_type_code
44002 , p_side => 'NA'
44003 );
44004
44005 xla_ae_lines_pkg.set_ccid(
44006 p_code_combination_id => l_ccid
44007 , p_value_type_code => l_adr_value_type_code
44008 , p_transaction_coa_id => l_adr_transaction_coa_id
44009 , p_accounting_coa_id => l_adr_accounting_coa_id
44010 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
44011 , p_adr_type_code => 'S'
44012 , p_component_type => l_component_type
44013 , p_component_code => l_component_code
44014 , p_component_type_code => l_component_type_code
44015 , p_component_appl_id => l_component_appl_id
44016 , p_amb_context_code => l_amb_context_code
44017 , p_side => 'NA'
44018 );
44019
44020
44021 l_segment := AcctDerRule_5(
44022 p_application_id => p_application_id
44023 , p_ae_header_id => l_ae_header_id
44024 , x_transaction_coa_id => l_adr_transaction_coa_id
44025 , x_accounting_coa_id => l_adr_accounting_coa_id
44026 , x_flexfield_segment_code => l_adr_flexfield_segment_code
44027 , x_flex_value_set_id => l_adr_flex_value_set_id
44028 , x_value_type_code => l_adr_value_type_code
44029 , x_value_combination_id => l_adr_value_combination_id
44030 , x_value_segment_code => l_adr_value_segment_code
44031 , p_side => 'NA'
44032 , p_override_seg_flag => 'Y'
44033 );
44034
44035 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
44036
44037 xla_ae_lines_pkg.set_segment(
44038 p_to_segment_code => 'GL_ACCOUNT'
44039 , p_segment_value => l_segment
44040 , p_from_segment_code => l_adr_value_segment_code
44041 , p_from_combination_id => l_adr_value_combination_id
44042 , p_value_type_code => l_adr_value_type_code
44043 , p_transaction_coa_id => l_adr_transaction_coa_id
44044 , p_accounting_coa_id => l_adr_accounting_coa_id
44045 , p_flexfield_segment_code => l_adr_flexfield_segment_code
44046 , p_flex_value_set_id => l_adr_flex_value_set_id
44047 , p_adr_code => 'FV_490201_PROJECTS'
44048 , p_adr_type_code => 'S'
44049 , p_component_type => l_component_type
44050 , p_component_code => l_component_code
44051 , p_component_type_code => l_component_type_code
44052 , p_component_appl_id => l_component_appl_id
44053 , p_amb_context_code => l_amb_context_code
44054 , p_entity_code => 'EXPENDITURES'
44055 , p_event_class_code => 'LABOR_COST_ADJ'
44056 , p_side => 'NA'
44057 );
44058
44059 END IF;
44060
44061 --
44062 --
44063 END IF;
44064 --
44065 -- Bug 4922099
44066 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
44067 (NVL(l_enc_upg_option, 'N') = 'O')
44068 ) AND
44069 (l_bflow_method_code = 'PRIOR_ENTRY')
44070 )
44071 THEN
44072 IF
44073 --
44074 1 = 2
44075 --
44076 THEN
44077 xla_accounting_err_pkg.build_message
44078 (p_appli_s_name => 'XLA'
44079 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44083 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
44080 ,p_token_1 => 'LINE_NUMBER'
44081 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
44082 ,p_token_2 => 'LINE_TYPE_NAME'
44084 l_component_type
44085 ,l_component_code
44086 ,l_component_type_code
44087 ,l_component_appl_id
44088 ,l_amb_context_code
44089 ,l_entity_code
44090 ,l_event_class_code
44091 )
44092 ,p_token_3 => 'OWNER'
44093 ,p_value_3 => xla_lookups_pkg.get_meaning(
44094 p_lookup_type => 'XLA_OWNER_TYPE'
44095 ,p_lookup_code => l_component_type_code
44096 )
44097 ,p_token_4 => 'PRODUCT_NAME'
44098 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
44099 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
44100 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
44101 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
44102 ,p_ae_header_id => NULL
44103 );
44104
44105 IF (C_LEVEL_ERROR>= g_log_level) THEN
44106 trace
44107 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44108 ,p_level => C_LEVEL_ERROR
44109 ,p_module => l_log_module);
44110 END IF;
44111 END IF;
44112 END IF;
44113 --
44114 --
44115 ------------------------------------------------------------------------------------------------
44116 -- 4219869 Business Flow
44117 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
44118 -- Prior Entry. Currently, the following code is always generated.
44119 ------------------------------------------------------------------------------------------------
44120 XLA_AE_LINES_PKG.ValidateCurrentLine;
44121
44122 ------------------------------------------------------------------------------------
44123 -- 4219869 Business Flow
44124 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
44125 ------------------------------------------------------------------------------------
44126 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44127
44128 ----------------------------------------------------------------------------------
44129 -- 4219869 Business Flow
44130 -- Update journal entry status -- Need to generate this within IF <condition>
44131 ----------------------------------------------------------------------------------
44132 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44133 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
44134 ,p_balance_type_code => l_balance_type_code
44135 );
44136
44137 -------------------------------------------------------------------------------------------
44138 -- 4262811 - Generate the Accrual Reversal lines
44139 -------------------------------------------------------------------------------------------
44140 BEGIN
44141 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
44142 (g_array_event(p_event_id).array_value_num('header_index'));
44143 IF l_acc_rev_flag IS NULL THEN
44144 l_acc_rev_flag := 'N';
44145 END IF;
44146 EXCEPTION
44147 WHEN OTHERS THEN
44148 l_acc_rev_flag := 'N';
44149 END;
44150 --
44151 IF (l_acc_rev_flag = 'Y') THEN
44152
44153 -- 4645092 ------------------------------------------------------------------------------
44154 -- To allow MPA report to determine if it should generate report process
44155 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
44156 ------------------------------------------------------------------------------------------
44157
44158 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
44159 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
44160
44161 --
44162 -- Update the line information that should be overwritten
44163 --
44164 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
44165 p_header_num => 1);
44166 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
44167
44168 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
44169
44170 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
44171 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
44172 END IF;
44173
44174 --
44175 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
44176 --
44180 ---------------------------------------------------------------------------------------------------
44177 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
44178 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
44179 ELSE
44181 -- 4262811a Switch Sign
44182 ---------------------------------------------------------------------------------------------------
44183 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
44184 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44185 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44186 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44187 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44188 -- 5132302
44189 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
44190 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44191
44192 END IF;
44193
44194 -- 4955764
44195 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44196 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
44197
44198
44199 XLA_AE_LINES_PKG.ValidateCurrentLine;
44200 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44201
44202 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44203 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
44204 ,p_balance_type_code => l_balance_type_code);
44205
44206 END IF;
44207
44208 -----------------------------------------------------------------------------------------
44209 -- 4262811 Multiperiod Accounting
44210 -----------------------------------------------------------------------------------------
44211 -- No MPA option is assigned.
44212
44213
44214 END IF;
44215 --
44216
44217 --
44218 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44219 trace
44220 (p_msg => 'END of AcctLineType_97'
44221 ,p_level => C_LEVEL_PROCEDURE
44222 ,p_module => l_log_module);
44223 END IF;
44224 --
44225 EXCEPTION
44226 WHEN xla_exceptions_pkg.application_exception THEN
44227 RAISE;
44228 WHEN OTHERS THEN
44229 xla_exceptions_pkg.raise_message
44230 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_97');
44231 END AcctLineType_97;
44232 --
44233
44234 ---------------------------------------
44235 --
44236 -- PRIVATE FUNCTION
44237 -- AcctLineType_98
44238 --
44239 ---------------------------------------
44240 PROCEDURE AcctLineType_98 (
44241 p_application_id IN NUMBER
44242 ,p_event_id IN NUMBER
44243 ,p_calculate_acctd_flag IN VARCHAR2
44244 ,p_calculate_g_l_flag IN VARCHAR2
44245 ,p_actual_flag IN OUT VARCHAR2
44246 ,p_balance_type_code OUT VARCHAR2
44247 ,p_gain_or_loss_ref OUT VARCHAR2
44248
44249 --Cost CCID
44250 , p_source_4 IN NUMBER
44251 --Allow Account Override Flag
44252 , p_source_5 IN VARCHAR2
44253 --Cost Clearing CCID
44254 , p_source_7 IN NUMBER
44255 --Adjustment Cost Clearing CCID
44256 , p_source_8 IN NUMBER
44257 --Reversing Line Flag
44258 , p_source_23 IN VARCHAR2
44259 --Actual Upgrade Credit Accounting Class
44260 , p_source_24 IN VARCHAR2
44261 --Entered Raw Cost
44262 , p_source_25 IN NUMBER
44263 --Entered Currency Code
44264 , p_source_26 IN VARCHAR2
44265 --Accounted Raw Cost
44266 , p_source_27 IN NUMBER
44267 --Exchange Rate Date
44268 , p_source_28 IN DATE
44269 --Exchange Rate
44270 , p_source_29 IN NUMBER
44271 --Exchange Rate Type
44272 , p_source_30 IN VARCHAR2
44273 --Actual Upgrade Debit Accounting Class
44274 , p_source_31 IN VARCHAR2
44275 --Use Actuals Upgrade Attributes Flag
44276 , p_source_32 IN VARCHAR2
44277 --Expenditure Item ID
44278 , p_source_33 IN NUMBER
44279 --Cost Distribution Line Number
44280 , p_source_34 IN NUMBER
44281 --Line Type
44282 , p_source_35 IN VARCHAR2
44283 , p_source_35_meaning IN VARCHAR2
44284 --Reversed Line Number
44285 , p_source_36 IN NUMBER
44286 )
44287 IS
44288
44289 l_component_type VARCHAR2(80);
44290 l_component_code VARCHAR2(30);
44291 l_component_type_code VARCHAR2(1);
44292 l_component_appl_id INTEGER;
44293 l_amb_context_code VARCHAR2(30);
44294 l_entity_code VARCHAR2(30);
44295 l_event_class_code VARCHAR2(30);
44296 l_ae_header_id NUMBER;
44297 l_event_type_code VARCHAR2(30);
44298 l_line_definition_code VARCHAR2(30);
44299 l_line_definition_owner_code VARCHAR2(1);
44300 --
44301 -- adr variables
44302 l_segment VARCHAR2(30);
44303 l_ccid NUMBER;
44304 l_adr_transaction_coa_id NUMBER;
44305 l_adr_accounting_coa_id NUMBER;
44306 l_adr_flexfield_segment_code VARCHAR2(30);
44307 l_adr_flex_value_set_id NUMBER;
44308 l_adr_value_type_code VARCHAR2(30);
44309 l_adr_value_combination_id NUMBER;
44310 l_adr_value_segment_code VARCHAR2(30);
44311
44312 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
44313 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
44317 -- 4262811 Variables ------------------------------------------------------------------------------------------
44314 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
44315 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
44316
44318 l_entered_amt_idx NUMBER;
44319 l_accted_amt_idx NUMBER;
44320 l_acc_rev_flag VARCHAR2(1);
44321 l_accrual_line_num NUMBER;
44322 l_tmp_amt NUMBER;
44323 l_acc_rev_natural_side_code VARCHAR2(1);
44324
44325 l_num_entries NUMBER;
44326 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
44327 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
44328 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
44329 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
44330 l_recog_line_1 NUMBER;
44331 l_recog_line_2 NUMBER;
44332
44333 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
44334 l_bflow_applied_to_amt NUMBER; -- 5132302
44335 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
44336
44337 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
44338
44339 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
44340 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
44341
44342 ---------------------------------------------------------------------------------------------------------------
44343
44344
44345 --
44346 -- bulk performance
44347 --
44348 l_balance_type_code VARCHAR2(1);
44349 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
44350 l_log_module VARCHAR2(240);
44351
44352 --
44353 -- Upgrade strategy
44354 --
44355 l_actual_upg_option VARCHAR2(1);
44356 l_enc_upg_option VARCHAR2(1);
44357
44358 --
44359 BEGIN
44360 --
44361 IF g_log_enabled THEN
44362 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_98';
44363 END IF;
44364 --
44365 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44366
44367 trace
44368 (p_msg => 'BEGIN of AcctLineType_98'
44369 ,p_level => C_LEVEL_PROCEDURE
44370 ,p_module => l_log_module);
44371
44372 END IF;
44373 --
44374 l_component_type := 'AMB_JLT';
44375 l_component_code := 'PA_RAW_COST_CLEAR_ADJ_FED';
44376 l_component_type_code := 'S';
44377 l_component_appl_id := 275;
44378 l_amb_context_code := 'DEFAULT';
44379 l_entity_code := 'EXPENDITURES';
44380 l_event_class_code := 'INVENTORY_COST_ADJ';
44381 l_event_type_code := 'INVENTORY_COST_ADJ_ALL';
44382 l_line_definition_owner_code := 'S';
44383 l_line_definition_code := 'FV_PROJECTS_JLD';
44384 --
44385 l_balance_type_code := 'A';
44386 l_segment := NULL;
44387 l_ccid := NULL;
44388 l_adr_transaction_coa_id := NULL;
44389 l_adr_accounting_coa_id := NULL;
44390 l_adr_flexfield_segment_code := NULL;
44391 l_adr_flex_value_set_id := NULL;
44392 l_adr_value_type_code := NULL;
44393 l_adr_value_combination_id := NULL;
44394 l_adr_value_segment_code := NULL;
44395
44396 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
44397 l_bflow_class_code := ''; -- 4219869 Business Flow
44398 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
44399 l_budgetary_control_flag := 'N';
44400
44401 l_bflow_applied_to_amt_idx := NULL; -- 5132302
44402 l_bflow_applied_to_amt := NULL; -- 5132302
44403 l_entered_amt_idx := NULL; -- 4262811
44404 l_accted_amt_idx := NULL; -- 4262811
44405 l_acc_rev_flag := NULL; -- 4262811
44406 l_accrual_line_num := NULL; -- 4262811
44407 l_tmp_amt := NULL; -- 4262811
44408 --
44409
44410 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
44411 l_balance_type_code <> 'B' THEN
44412
44413 --
44414 XLA_AE_LINES_PKG.SetNewLine;
44415
44416 p_balance_type_code := l_balance_type_code;
44417 -- set the flag so later we will know whether the gain loss line needs to be created
44418
44419 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
44420 p_actual_flag :='A';
44421 END IF;
44422
44423 --
44424 -- bulk performance
44425 --
44426 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
44427 p_header_num => 0); -- 4262811
44428 --
44429 -- set accounting line options
44430 --
44431 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
44432 p_natural_side_code => 'C'
44433 , p_gain_or_loss_flag => 'N'
44434 , p_gl_transfer_mode_code => 'S'
44435 , p_acct_entry_type_code => 'A'
44436 , p_switch_side_flag => 'Y'
44437 , p_merge_duplicate_code => 'N'
44438 );
44439 --
44440 l_acc_rev_natural_side_code := 'D'; -- 4262811
44441 --
44442 --
44443 -- set accounting line type info
44444 --
44445 xla_ae_lines_pkg.SetAcctLineType
44446 (p_component_type => l_component_type
44447 ,p_event_type_code => l_event_type_code
44448 ,p_line_definition_owner_code => l_line_definition_owner_code
44449 ,p_line_definition_code => l_line_definition_code
44450 ,p_accounting_line_code => l_component_code
44454 ,p_entity_code => l_entity_code
44451 ,p_accounting_line_type_code => l_component_type_code
44452 ,p_accounting_line_appl_id => l_component_appl_id
44453 ,p_amb_context_code => l_amb_context_code
44455 ,p_event_class_code => l_event_class_code);
44456 --
44457 -- set accounting class
44458 --
44459 xla_ae_lines_pkg.SetAcctClass(
44460 p_accounting_class_code => 'FEDERAL_PROJECT_COST_CLEARING'
44461 , p_ae_header_id => l_ae_header_id
44462 );
44463
44464 --
44465 -- set rounding class
44466 --
44467 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
44468 'FEDERAL_PROJECT_COST_CLEARING';
44469
44470 --
44471 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
44472 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
44473 --
44474 -- bulk performance
44475 --
44476 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
44477
44478 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
44479 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
44480
44481 -- 4955764
44482 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44483 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
44484
44485 -- 4458381 Public Sector Enh
44486
44487 --
44488 -- set accounting attributes for the line type
44489 --
44490 l_entered_amt_idx := 22;
44491 l_accted_amt_idx := 27;
44492 l_bflow_applied_to_amt_idx := NULL; -- 5132302
44493 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
44494 l_rec_acct_attrs.array_char_value(1) := p_source_23;
44495 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
44496 l_rec_acct_attrs.array_char_value(2) := p_source_24;
44497 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
44498 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
44499 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
44500 l_rec_acct_attrs.array_num_value(4) := p_source_25;
44501 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
44502 l_rec_acct_attrs.array_char_value(5) := p_source_26;
44503 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
44504 l_rec_acct_attrs.array_num_value(6) := p_source_27;
44505 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
44506 l_rec_acct_attrs.array_date_value(7) := p_source_28;
44507 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
44508 l_rec_acct_attrs.array_num_value(8) := p_source_29;
44509 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
44510 l_rec_acct_attrs.array_char_value(9) := p_source_30;
44511 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
44512 l_rec_acct_attrs.array_char_value(10) := p_source_31;
44513 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
44514 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
44515 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
44516 l_rec_acct_attrs.array_num_value(12) := p_source_25;
44517 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
44518 l_rec_acct_attrs.array_char_value(13) := p_source_26;
44519 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
44520 l_rec_acct_attrs.array_num_value(14) := p_source_27;
44521 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
44522 l_rec_acct_attrs.array_date_value(15) := p_source_28;
44523 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
44524 l_rec_acct_attrs.array_num_value(16) := p_source_29;
44525 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
44526 l_rec_acct_attrs.array_char_value(17) := p_source_30;
44527 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
44528 l_rec_acct_attrs.array_char_value(18) := p_source_32;
44529 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
44530 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
44531 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
44532 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
44533 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
44534 l_rec_acct_attrs.array_char_value(21) := p_source_35;
44535 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
44536 l_rec_acct_attrs.array_num_value(22) := p_source_25;
44537 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
44538 l_rec_acct_attrs.array_char_value(23) := p_source_26;
44539 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
44540 l_rec_acct_attrs.array_date_value(24) := p_source_28;
44541 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
44542 l_rec_acct_attrs.array_num_value(25) := p_source_29;
44543 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
44544 l_rec_acct_attrs.array_char_value(26) := p_source_30;
44545 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
44546 l_rec_acct_attrs.array_num_value(27) := p_source_27;
44547 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
44548 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
44549 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
44550 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
44551 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
44552 l_rec_acct_attrs.array_char_value(30) := p_source_35;
44553
44557 ---------------------------------------------------------------------------------------------------------------
44554 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
44555 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
44556
44558 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
44559 ---------------------------------------------------------------------------------------------------------------
44560 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
44561
44562 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44563 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44564
44565 IF xla_accounting_cache_pkg.GetValueChar
44566 (p_source_code => 'LEDGER_CATEGORY_CODE'
44567 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
44568 AND l_bflow_method_code = 'PRIOR_ENTRY'
44569 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
44570 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
44571 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
44572 )
44573 THEN
44574 xla_ae_lines_pkg.BflowUpgEntry
44575 (p_business_method_code => l_bflow_method_code
44576 ,p_business_class_code => l_bflow_class_code
44577 ,p_balance_type => l_balance_type_code);
44578 ELSE
44579 NULL;
44580 -- No business flow processing for business flow method of NONE.
44581 END IF;
44582
44583 --
44584 -- call analytical criteria
44585 --
44586
44587 --
44588 -- call description
44589 --
44590 -- No description or it is inherited.
44591 --
44592 -- call ADRs
44593 -- Bug 4922099
44594 --
44595 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44596 (NVL(l_actual_upg_option, 'N') = 'O') OR
44597 (NVL(l_enc_upg_option, 'N') = 'O')
44598 )
44599 THEN
44600 NULL;
44601 --
44602 --
44603
44604 l_ccid := AcctDerRule_15(
44605 p_application_id => p_application_id
44606 , p_ae_header_id => l_ae_header_id
44607 , p_source_5 => p_source_5
44608 , p_source_8 => p_source_8
44609 , x_transaction_coa_id => l_adr_transaction_coa_id
44610 , x_accounting_coa_id => l_adr_accounting_coa_id
44611 , x_value_type_code => l_adr_value_type_code
44612 , p_side => 'NA'
44613 );
44614
44615 xla_ae_lines_pkg.set_ccid(
44616 p_code_combination_id => l_ccid
44617 , p_value_type_code => l_adr_value_type_code
44618 , p_transaction_coa_id => l_adr_transaction_coa_id
44619 , p_accounting_coa_id => l_adr_accounting_coa_id
44620 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
44621 , p_adr_type_code => 'S'
44622 , p_component_type => l_component_type
44623 , p_component_code => l_component_code
44624 , p_component_type_code => l_component_type_code
44625 , p_component_appl_id => l_component_appl_id
44626 , p_amb_context_code => l_amb_context_code
44627 , p_side => 'NA'
44628 );
44629
44630
44631 l_segment := AcctDerRule_5(
44632 p_application_id => p_application_id
44633 , p_ae_header_id => l_ae_header_id
44634 , x_transaction_coa_id => l_adr_transaction_coa_id
44635 , x_accounting_coa_id => l_adr_accounting_coa_id
44636 , x_flexfield_segment_code => l_adr_flexfield_segment_code
44637 , x_flex_value_set_id => l_adr_flex_value_set_id
44638 , x_value_type_code => l_adr_value_type_code
44639 , x_value_combination_id => l_adr_value_combination_id
44640 , x_value_segment_code => l_adr_value_segment_code
44641 , p_side => 'NA'
44642 , p_override_seg_flag => 'Y'
44643 );
44644
44645 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
44646
44647 xla_ae_lines_pkg.set_segment(
44648 p_to_segment_code => 'GL_ACCOUNT'
44649 , p_segment_value => l_segment
44650 , p_from_segment_code => l_adr_value_segment_code
44651 , p_from_combination_id => l_adr_value_combination_id
44652 , p_value_type_code => l_adr_value_type_code
44653 , p_transaction_coa_id => l_adr_transaction_coa_id
44654 , p_accounting_coa_id => l_adr_accounting_coa_id
44655 , p_flexfield_segment_code => l_adr_flexfield_segment_code
44656 , p_flex_value_set_id => l_adr_flex_value_set_id
44657 , p_adr_code => 'FV_490201_PROJECTS'
44658 , p_adr_type_code => 'S'
44659 , p_component_type => l_component_type
44660 , p_component_code => l_component_code
44661 , p_component_type_code => l_component_type_code
44662 , p_component_appl_id => l_component_appl_id
44663 , p_amb_context_code => l_amb_context_code
44664 , p_entity_code => 'EXPENDITURES'
44665 , p_event_class_code => 'INVENTORY_COST_ADJ'
44666 , p_side => 'NA'
44667 );
44668
44669 END IF;
44670
44671 --
44672 --
44673 END IF;
44674 --
44675 -- Bug 4922099
44676 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
44677 (NVL(l_enc_upg_option, 'N') = 'O')
44678 ) AND
44679 (l_bflow_method_code = 'PRIOR_ENTRY')
44680 )
44684 1 = 2
44681 THEN
44682 IF
44683 --
44685 --
44686 THEN
44687 xla_accounting_err_pkg.build_message
44688 (p_appli_s_name => 'XLA'
44689 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44690 ,p_token_1 => 'LINE_NUMBER'
44691 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
44692 ,p_token_2 => 'LINE_TYPE_NAME'
44693 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
44694 l_component_type
44695 ,l_component_code
44696 ,l_component_type_code
44697 ,l_component_appl_id
44698 ,l_amb_context_code
44699 ,l_entity_code
44700 ,l_event_class_code
44701 )
44702 ,p_token_3 => 'OWNER'
44703 ,p_value_3 => xla_lookups_pkg.get_meaning(
44704 p_lookup_type => 'XLA_OWNER_TYPE'
44705 ,p_lookup_code => l_component_type_code
44706 )
44707 ,p_token_4 => 'PRODUCT_NAME'
44708 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
44709 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
44710 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
44711 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
44712 ,p_ae_header_id => NULL
44713 );
44714
44715 IF (C_LEVEL_ERROR>= g_log_level) THEN
44716 trace
44717 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44718 ,p_level => C_LEVEL_ERROR
44719 ,p_module => l_log_module);
44720 END IF;
44721 END IF;
44722 END IF;
44723 --
44724 --
44725 ------------------------------------------------------------------------------------------------
44726 -- 4219869 Business Flow
44727 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
44728 -- Prior Entry. Currently, the following code is always generated.
44729 ------------------------------------------------------------------------------------------------
44730 XLA_AE_LINES_PKG.ValidateCurrentLine;
44731
44732 ------------------------------------------------------------------------------------
44733 -- 4219869 Business Flow
44734 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
44735 ------------------------------------------------------------------------------------
44736 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44737
44738 ----------------------------------------------------------------------------------
44739 -- 4219869 Business Flow
44740 -- Update journal entry status -- Need to generate this within IF <condition>
44741 ----------------------------------------------------------------------------------
44742 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44743 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
44744 ,p_balance_type_code => l_balance_type_code
44745 );
44746
44747 -------------------------------------------------------------------------------------------
44748 -- 4262811 - Generate the Accrual Reversal lines
44749 -------------------------------------------------------------------------------------------
44750 BEGIN
44751 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
44752 (g_array_event(p_event_id).array_value_num('header_index'));
44753 IF l_acc_rev_flag IS NULL THEN
44754 l_acc_rev_flag := 'N';
44755 END IF;
44756 EXCEPTION
44757 WHEN OTHERS THEN
44758 l_acc_rev_flag := 'N';
44759 END;
44760 --
44761 IF (l_acc_rev_flag = 'Y') THEN
44762
44763 -- 4645092 ------------------------------------------------------------------------------
44764 -- To allow MPA report to determine if it should generate report process
44765 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
44766 ------------------------------------------------------------------------------------------
44767
44768 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
44769 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
44770
44771 --
44772 -- Update the line information that should be overwritten
44773 --
44774 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
44775 p_header_num => 1);
44776 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
44777
44778 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
44779
44780 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
44784 --
44781 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
44782 END IF;
44783
44785 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
44786 --
44787 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
44788 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
44789 ELSE
44790 ---------------------------------------------------------------------------------------------------
44791 -- 4262811a Switch Sign
44792 ---------------------------------------------------------------------------------------------------
44793 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
44794 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44795 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44796 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44797 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44798 -- 5132302
44799 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
44800 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44801
44802 END IF;
44803
44804 -- 4955764
44805 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44806 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
44807
44808
44809 XLA_AE_LINES_PKG.ValidateCurrentLine;
44810 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44811
44812 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44813 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
44814 ,p_balance_type_code => l_balance_type_code);
44815
44816 END IF;
44817
44818 -----------------------------------------------------------------------------------------
44819 -- 4262811 Multiperiod Accounting
44820 -----------------------------------------------------------------------------------------
44821 -- No MPA option is assigned.
44822
44823
44824 END IF;
44825 --
44826
44827 --
44828 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44829 trace
44830 (p_msg => 'END of AcctLineType_98'
44831 ,p_level => C_LEVEL_PROCEDURE
44832 ,p_module => l_log_module);
44833 END IF;
44834 --
44835 EXCEPTION
44836 WHEN xla_exceptions_pkg.application_exception THEN
44837 RAISE;
44838 WHEN OTHERS THEN
44839 xla_exceptions_pkg.raise_message
44840 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_98');
44841 END AcctLineType_98;
44842 --
44843
44844 ---------------------------------------
44845 --
44846 -- PRIVATE FUNCTION
44847 -- AcctLineType_99
44848 --
44849 ---------------------------------------
44850 PROCEDURE AcctLineType_99 (
44851 p_application_id IN NUMBER
44852 ,p_event_id IN NUMBER
44853 ,p_calculate_acctd_flag IN VARCHAR2
44854 ,p_calculate_g_l_flag IN VARCHAR2
44855 ,p_actual_flag IN OUT VARCHAR2
44856 ,p_balance_type_code OUT VARCHAR2
44857 ,p_gain_or_loss_ref OUT VARCHAR2
44858
44859 --Cost CCID
44860 , p_source_4 IN NUMBER
44861 --Allow Account Override Flag
44862 , p_source_5 IN VARCHAR2
44863 --Cost Clearing CCID
44864 , p_source_7 IN NUMBER
44865 --Adjustment Cost Clearing CCID
44866 , p_source_8 IN NUMBER
44867 --Reversing Line Flag
44868 , p_source_23 IN VARCHAR2
44869 --Actual Upgrade Credit Accounting Class
44870 , p_source_24 IN VARCHAR2
44871 --Entered Raw Cost
44872 , p_source_25 IN NUMBER
44873 --Entered Currency Code
44874 , p_source_26 IN VARCHAR2
44875 --Accounted Raw Cost
44876 , p_source_27 IN NUMBER
44877 --Exchange Rate Date
44878 , p_source_28 IN DATE
44879 --Exchange Rate
44880 , p_source_29 IN NUMBER
44881 --Exchange Rate Type
44882 , p_source_30 IN VARCHAR2
44883 --Actual Upgrade Debit Accounting Class
44884 , p_source_31 IN VARCHAR2
44885 --Use Actuals Upgrade Attributes Flag
44886 , p_source_32 IN VARCHAR2
44887 --Expenditure Item ID
44888 , p_source_33 IN NUMBER
44889 --Cost Distribution Line Number
44890 , p_source_34 IN NUMBER
44891 --Line Type
44892 , p_source_35 IN VARCHAR2
44893 , p_source_35_meaning IN VARCHAR2
44894 --Reversed Line Number
44895 , p_source_36 IN NUMBER
44896 )
44897 IS
44898
44899 l_component_type VARCHAR2(80);
44900 l_component_code VARCHAR2(30);
44901 l_component_type_code VARCHAR2(1);
44902 l_component_appl_id INTEGER;
44903 l_amb_context_code VARCHAR2(30);
44904 l_entity_code VARCHAR2(30);
44905 l_event_class_code VARCHAR2(30);
44906 l_ae_header_id NUMBER;
44907 l_event_type_code VARCHAR2(30);
44908 l_line_definition_code VARCHAR2(30);
44909 l_line_definition_owner_code VARCHAR2(1);
44910 --
44911 -- adr variables
44912 l_segment VARCHAR2(30);
44913 l_ccid NUMBER;
44914 l_adr_transaction_coa_id NUMBER;
44915 l_adr_accounting_coa_id NUMBER;
44916 l_adr_flexfield_segment_code VARCHAR2(30);
44917 l_adr_flex_value_set_id NUMBER;
44921
44918 l_adr_value_type_code VARCHAR2(30);
44919 l_adr_value_combination_id NUMBER;
44920 l_adr_value_segment_code VARCHAR2(30);
44922 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
44923 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
44924 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
44925 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
44926
44927 -- 4262811 Variables ------------------------------------------------------------------------------------------
44928 l_entered_amt_idx NUMBER;
44929 l_accted_amt_idx NUMBER;
44930 l_acc_rev_flag VARCHAR2(1);
44931 l_accrual_line_num NUMBER;
44932 l_tmp_amt NUMBER;
44933 l_acc_rev_natural_side_code VARCHAR2(1);
44934
44935 l_num_entries NUMBER;
44936 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
44937 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
44938 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
44939 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
44940 l_recog_line_1 NUMBER;
44941 l_recog_line_2 NUMBER;
44942
44943 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
44944 l_bflow_applied_to_amt NUMBER; -- 5132302
44945 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
44946
44947 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
44948
44949 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
44950 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
44951
44952 ---------------------------------------------------------------------------------------------------------------
44953
44954
44955 --
44956 -- bulk performance
44957 --
44958 l_balance_type_code VARCHAR2(1);
44959 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
44960 l_log_module VARCHAR2(240);
44961
44962 --
44963 -- Upgrade strategy
44964 --
44965 l_actual_upg_option VARCHAR2(1);
44966 l_enc_upg_option VARCHAR2(1);
44967
44968 --
44969 BEGIN
44970 --
44971 IF g_log_enabled THEN
44972 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_99';
44973 END IF;
44974 --
44975 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44976
44977 trace
44978 (p_msg => 'BEGIN of AcctLineType_99'
44979 ,p_level => C_LEVEL_PROCEDURE
44980 ,p_module => l_log_module);
44981
44982 END IF;
44983 --
44984 l_component_type := 'AMB_JLT';
44985 l_component_code := 'PA_RAW_COST_CLEAR_ADJ_FED';
44986 l_component_type_code := 'S';
44987 l_component_appl_id := 275;
44988 l_amb_context_code := 'DEFAULT';
44989 l_entity_code := 'EXPENDITURES';
44990 l_event_class_code := 'MISC_COST_ADJ';
44991 l_event_type_code := 'MISC_COST_ADJ_ALL';
44992 l_line_definition_owner_code := 'S';
44993 l_line_definition_code := 'FV_PROJECTS_JLD';
44994 --
44995 l_balance_type_code := 'A';
44996 l_segment := NULL;
44997 l_ccid := NULL;
44998 l_adr_transaction_coa_id := NULL;
44999 l_adr_accounting_coa_id := NULL;
45000 l_adr_flexfield_segment_code := NULL;
45001 l_adr_flex_value_set_id := NULL;
45002 l_adr_value_type_code := NULL;
45003 l_adr_value_combination_id := NULL;
45004 l_adr_value_segment_code := NULL;
45005
45006 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
45007 l_bflow_class_code := ''; -- 4219869 Business Flow
45008 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
45009 l_budgetary_control_flag := 'N';
45010
45011 l_bflow_applied_to_amt_idx := NULL; -- 5132302
45012 l_bflow_applied_to_amt := NULL; -- 5132302
45013 l_entered_amt_idx := NULL; -- 4262811
45014 l_accted_amt_idx := NULL; -- 4262811
45015 l_acc_rev_flag := NULL; -- 4262811
45016 l_accrual_line_num := NULL; -- 4262811
45017 l_tmp_amt := NULL; -- 4262811
45018 --
45019
45020 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
45021 l_balance_type_code <> 'B' THEN
45022
45023 --
45024 XLA_AE_LINES_PKG.SetNewLine;
45025
45026 p_balance_type_code := l_balance_type_code;
45027 -- set the flag so later we will know whether the gain loss line needs to be created
45028
45029 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
45030 p_actual_flag :='A';
45031 END IF;
45032
45033 --
45034 -- bulk performance
45035 --
45036 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
45037 p_header_num => 0); -- 4262811
45038 --
45039 -- set accounting line options
45040 --
45041 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
45042 p_natural_side_code => 'C'
45043 , p_gain_or_loss_flag => 'N'
45044 , p_gl_transfer_mode_code => 'S'
45045 , p_acct_entry_type_code => 'A'
45046 , p_switch_side_flag => 'Y'
45047 , p_merge_duplicate_code => 'N'
45048 );
45049 --
45050 l_acc_rev_natural_side_code := 'D'; -- 4262811
45051 --
45052 --
45053 -- set accounting line type info
45054 --
45055 xla_ae_lines_pkg.SetAcctLineType
45059 ,p_line_definition_code => l_line_definition_code
45056 (p_component_type => l_component_type
45057 ,p_event_type_code => l_event_type_code
45058 ,p_line_definition_owner_code => l_line_definition_owner_code
45060 ,p_accounting_line_code => l_component_code
45061 ,p_accounting_line_type_code => l_component_type_code
45062 ,p_accounting_line_appl_id => l_component_appl_id
45063 ,p_amb_context_code => l_amb_context_code
45064 ,p_entity_code => l_entity_code
45065 ,p_event_class_code => l_event_class_code);
45066 --
45067 -- set accounting class
45068 --
45069 xla_ae_lines_pkg.SetAcctClass(
45070 p_accounting_class_code => 'FEDERAL_PROJECT_COST_CLEARING'
45071 , p_ae_header_id => l_ae_header_id
45072 );
45073
45074 --
45075 -- set rounding class
45076 --
45077 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
45078 'FEDERAL_PROJECT_COST_CLEARING';
45079
45080 --
45081 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
45082 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
45083 --
45084 -- bulk performance
45085 --
45086 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
45087
45088 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
45089 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
45090
45091 -- 4955764
45092 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45093 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
45094
45095 -- 4458381 Public Sector Enh
45096
45097 --
45098 -- set accounting attributes for the line type
45099 --
45100 l_entered_amt_idx := 22;
45101 l_accted_amt_idx := 27;
45102 l_bflow_applied_to_amt_idx := NULL; -- 5132302
45103 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
45104 l_rec_acct_attrs.array_char_value(1) := p_source_23;
45105 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
45106 l_rec_acct_attrs.array_char_value(2) := p_source_24;
45107 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
45108 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
45109 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
45110 l_rec_acct_attrs.array_num_value(4) := p_source_25;
45111 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
45112 l_rec_acct_attrs.array_char_value(5) := p_source_26;
45113 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
45114 l_rec_acct_attrs.array_num_value(6) := p_source_27;
45115 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
45116 l_rec_acct_attrs.array_date_value(7) := p_source_28;
45117 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
45118 l_rec_acct_attrs.array_num_value(8) := p_source_29;
45119 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
45120 l_rec_acct_attrs.array_char_value(9) := p_source_30;
45121 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
45122 l_rec_acct_attrs.array_char_value(10) := p_source_31;
45123 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
45124 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
45125 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
45126 l_rec_acct_attrs.array_num_value(12) := p_source_25;
45127 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
45128 l_rec_acct_attrs.array_char_value(13) := p_source_26;
45129 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
45130 l_rec_acct_attrs.array_num_value(14) := p_source_27;
45131 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
45132 l_rec_acct_attrs.array_date_value(15) := p_source_28;
45133 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
45134 l_rec_acct_attrs.array_num_value(16) := p_source_29;
45135 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
45136 l_rec_acct_attrs.array_char_value(17) := p_source_30;
45137 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
45138 l_rec_acct_attrs.array_char_value(18) := p_source_32;
45139 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
45140 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
45141 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
45142 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
45143 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
45144 l_rec_acct_attrs.array_char_value(21) := p_source_35;
45145 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
45146 l_rec_acct_attrs.array_num_value(22) := p_source_25;
45147 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
45148 l_rec_acct_attrs.array_char_value(23) := p_source_26;
45149 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
45150 l_rec_acct_attrs.array_date_value(24) := p_source_28;
45151 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
45152 l_rec_acct_attrs.array_num_value(25) := p_source_29;
45153 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
45154 l_rec_acct_attrs.array_char_value(26) := p_source_30;
45155 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
45156 l_rec_acct_attrs.array_num_value(27) := p_source_27;
45157 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
45158 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
45162 l_rec_acct_attrs.array_char_value(30) := p_source_35;
45159 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
45160 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
45161 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
45163
45164 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
45165 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
45166
45167 ---------------------------------------------------------------------------------------------------------------
45168 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
45169 ---------------------------------------------------------------------------------------------------------------
45170 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
45171
45172 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45173 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45174
45175 IF xla_accounting_cache_pkg.GetValueChar
45176 (p_source_code => 'LEDGER_CATEGORY_CODE'
45177 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
45178 AND l_bflow_method_code = 'PRIOR_ENTRY'
45179 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
45180 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
45181 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
45182 )
45183 THEN
45184 xla_ae_lines_pkg.BflowUpgEntry
45185 (p_business_method_code => l_bflow_method_code
45186 ,p_business_class_code => l_bflow_class_code
45187 ,p_balance_type => l_balance_type_code);
45188 ELSE
45189 NULL;
45190 -- No business flow processing for business flow method of NONE.
45191 END IF;
45192
45193 --
45194 -- call analytical criteria
45195 --
45196
45197 --
45198 -- call description
45199 --
45200 -- No description or it is inherited.
45201 --
45202 -- call ADRs
45203 -- Bug 4922099
45204 --
45205 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45206 (NVL(l_actual_upg_option, 'N') = 'O') OR
45207 (NVL(l_enc_upg_option, 'N') = 'O')
45208 )
45209 THEN
45210 NULL;
45211 --
45212 --
45213
45214 l_ccid := AcctDerRule_15(
45215 p_application_id => p_application_id
45216 , p_ae_header_id => l_ae_header_id
45217 , p_source_5 => p_source_5
45218 , p_source_8 => p_source_8
45219 , x_transaction_coa_id => l_adr_transaction_coa_id
45220 , x_accounting_coa_id => l_adr_accounting_coa_id
45221 , x_value_type_code => l_adr_value_type_code
45222 , p_side => 'NA'
45223 );
45224
45225 xla_ae_lines_pkg.set_ccid(
45226 p_code_combination_id => l_ccid
45227 , p_value_type_code => l_adr_value_type_code
45228 , p_transaction_coa_id => l_adr_transaction_coa_id
45229 , p_accounting_coa_id => l_adr_accounting_coa_id
45230 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
45231 , p_adr_type_code => 'S'
45232 , p_component_type => l_component_type
45233 , p_component_code => l_component_code
45234 , p_component_type_code => l_component_type_code
45235 , p_component_appl_id => l_component_appl_id
45236 , p_amb_context_code => l_amb_context_code
45237 , p_side => 'NA'
45238 );
45239
45240
45241 l_segment := AcctDerRule_5(
45242 p_application_id => p_application_id
45243 , p_ae_header_id => l_ae_header_id
45244 , x_transaction_coa_id => l_adr_transaction_coa_id
45245 , x_accounting_coa_id => l_adr_accounting_coa_id
45246 , x_flexfield_segment_code => l_adr_flexfield_segment_code
45247 , x_flex_value_set_id => l_adr_flex_value_set_id
45248 , x_value_type_code => l_adr_value_type_code
45249 , x_value_combination_id => l_adr_value_combination_id
45250 , x_value_segment_code => l_adr_value_segment_code
45251 , p_side => 'NA'
45252 , p_override_seg_flag => 'Y'
45253 );
45254
45255 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
45256
45257 xla_ae_lines_pkg.set_segment(
45258 p_to_segment_code => 'GL_ACCOUNT'
45259 , p_segment_value => l_segment
45260 , p_from_segment_code => l_adr_value_segment_code
45261 , p_from_combination_id => l_adr_value_combination_id
45262 , p_value_type_code => l_adr_value_type_code
45263 , p_transaction_coa_id => l_adr_transaction_coa_id
45264 , p_accounting_coa_id => l_adr_accounting_coa_id
45265 , p_flexfield_segment_code => l_adr_flexfield_segment_code
45266 , p_flex_value_set_id => l_adr_flex_value_set_id
45267 , p_adr_code => 'FV_490201_PROJECTS'
45268 , p_adr_type_code => 'S'
45269 , p_component_type => l_component_type
45270 , p_component_code => l_component_code
45271 , p_component_type_code => l_component_type_code
45272 , p_component_appl_id => l_component_appl_id
45273 , p_amb_context_code => l_amb_context_code
45274 , p_entity_code => 'EXPENDITURES'
45275 , p_event_class_code => 'MISC_COST_ADJ'
45276 , p_side => 'NA'
45277 );
45278
45279 END IF;
45280
45284 --
45281 --
45282 --
45283 END IF;
45285 -- Bug 4922099
45286 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
45287 (NVL(l_enc_upg_option, 'N') = 'O')
45288 ) AND
45289 (l_bflow_method_code = 'PRIOR_ENTRY')
45290 )
45291 THEN
45292 IF
45293 --
45294 1 = 2
45295 --
45296 THEN
45297 xla_accounting_err_pkg.build_message
45298 (p_appli_s_name => 'XLA'
45299 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45300 ,p_token_1 => 'LINE_NUMBER'
45301 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
45302 ,p_token_2 => 'LINE_TYPE_NAME'
45303 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
45304 l_component_type
45305 ,l_component_code
45306 ,l_component_type_code
45307 ,l_component_appl_id
45308 ,l_amb_context_code
45309 ,l_entity_code
45310 ,l_event_class_code
45311 )
45312 ,p_token_3 => 'OWNER'
45313 ,p_value_3 => xla_lookups_pkg.get_meaning(
45314 p_lookup_type => 'XLA_OWNER_TYPE'
45315 ,p_lookup_code => l_component_type_code
45316 )
45317 ,p_token_4 => 'PRODUCT_NAME'
45318 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
45319 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
45320 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
45321 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
45322 ,p_ae_header_id => NULL
45323 );
45324
45325 IF (C_LEVEL_ERROR>= g_log_level) THEN
45326 trace
45327 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45328 ,p_level => C_LEVEL_ERROR
45329 ,p_module => l_log_module);
45330 END IF;
45331 END IF;
45332 END IF;
45333 --
45334 --
45335 ------------------------------------------------------------------------------------------------
45336 -- 4219869 Business Flow
45337 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
45338 -- Prior Entry. Currently, the following code is always generated.
45339 ------------------------------------------------------------------------------------------------
45340 XLA_AE_LINES_PKG.ValidateCurrentLine;
45341
45342 ------------------------------------------------------------------------------------
45343 -- 4219869 Business Flow
45344 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
45345 ------------------------------------------------------------------------------------
45346 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45347
45348 ----------------------------------------------------------------------------------
45349 -- 4219869 Business Flow
45350 -- Update journal entry status -- Need to generate this within IF <condition>
45351 ----------------------------------------------------------------------------------
45352 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45353 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
45354 ,p_balance_type_code => l_balance_type_code
45355 );
45356
45357 -------------------------------------------------------------------------------------------
45358 -- 4262811 - Generate the Accrual Reversal lines
45359 -------------------------------------------------------------------------------------------
45360 BEGIN
45361 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
45362 (g_array_event(p_event_id).array_value_num('header_index'));
45363 IF l_acc_rev_flag IS NULL THEN
45364 l_acc_rev_flag := 'N';
45365 END IF;
45366 EXCEPTION
45367 WHEN OTHERS THEN
45368 l_acc_rev_flag := 'N';
45369 END;
45370 --
45371 IF (l_acc_rev_flag = 'Y') THEN
45372
45373 -- 4645092 ------------------------------------------------------------------------------
45374 -- To allow MPA report to determine if it should generate report process
45375 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
45376 ------------------------------------------------------------------------------------------
45377
45378 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
45379 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
45380
45381 --
45382 -- Update the line information that should be overwritten
45383 --
45384 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
45385 p_header_num => 1);
45389
45386 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
45387
45388 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
45390 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
45391 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
45392 END IF;
45393
45394 --
45395 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
45396 --
45397 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
45398 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
45399 ELSE
45400 ---------------------------------------------------------------------------------------------------
45401 -- 4262811a Switch Sign
45402 ---------------------------------------------------------------------------------------------------
45403 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
45404 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45405 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45406 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45407 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45408 -- 5132302
45409 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
45410 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45411
45412 END IF;
45413
45414 -- 4955764
45415 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45416 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
45417
45418
45419 XLA_AE_LINES_PKG.ValidateCurrentLine;
45420 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45421
45422 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45423 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
45424 ,p_balance_type_code => l_balance_type_code);
45425
45426 END IF;
45427
45428 -----------------------------------------------------------------------------------------
45429 -- 4262811 Multiperiod Accounting
45430 -----------------------------------------------------------------------------------------
45431 -- No MPA option is assigned.
45432
45433
45434 END IF;
45435 --
45436
45437 --
45438 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45439 trace
45440 (p_msg => 'END of AcctLineType_99'
45441 ,p_level => C_LEVEL_PROCEDURE
45442 ,p_module => l_log_module);
45443 END IF;
45444 --
45445 EXCEPTION
45446 WHEN xla_exceptions_pkg.application_exception THEN
45447 RAISE;
45448 WHEN OTHERS THEN
45449 xla_exceptions_pkg.raise_message
45450 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_99');
45451 END AcctLineType_99;
45452 --
45453
45454 ---------------------------------------
45455 --
45456 -- PRIVATE FUNCTION
45457 -- AcctLineType_100
45458 --
45459 ---------------------------------------
45460 PROCEDURE AcctLineType_100 (
45461 p_application_id IN NUMBER
45462 ,p_event_id IN NUMBER
45463 ,p_calculate_acctd_flag IN VARCHAR2
45464 ,p_calculate_g_l_flag IN VARCHAR2
45465 ,p_actual_flag IN OUT VARCHAR2
45466 ,p_balance_type_code OUT VARCHAR2
45467 ,p_gain_or_loss_ref OUT VARCHAR2
45468
45469 --Cost CCID
45470 , p_source_4 IN NUMBER
45471 --Allow Account Override Flag
45472 , p_source_5 IN VARCHAR2
45473 --Cost Clearing CCID
45474 , p_source_7 IN NUMBER
45475 --Adjustment Cost Clearing CCID
45476 , p_source_8 IN NUMBER
45477 --Reversing Line Flag
45478 , p_source_23 IN VARCHAR2
45479 --Actual Upgrade Credit Accounting Class
45480 , p_source_24 IN VARCHAR2
45481 --Entered Raw Cost
45482 , p_source_25 IN NUMBER
45483 --Entered Currency Code
45484 , p_source_26 IN VARCHAR2
45485 --Accounted Raw Cost
45486 , p_source_27 IN NUMBER
45487 --Exchange Rate Date
45488 , p_source_28 IN DATE
45489 --Exchange Rate
45490 , p_source_29 IN NUMBER
45491 --Exchange Rate Type
45492 , p_source_30 IN VARCHAR2
45493 --Actual Upgrade Debit Accounting Class
45494 , p_source_31 IN VARCHAR2
45495 --Use Actuals Upgrade Attributes Flag
45496 , p_source_32 IN VARCHAR2
45497 --Expenditure Item ID
45498 , p_source_33 IN NUMBER
45499 --Cost Distribution Line Number
45500 , p_source_34 IN NUMBER
45501 --Line Type
45502 , p_source_35 IN VARCHAR2
45503 , p_source_35_meaning IN VARCHAR2
45504 --Reversed Line Number
45505 , p_source_36 IN NUMBER
45506 )
45507 IS
45508
45509 l_component_type VARCHAR2(80);
45510 l_component_code VARCHAR2(30);
45511 l_component_type_code VARCHAR2(1);
45512 l_component_appl_id INTEGER;
45513 l_amb_context_code VARCHAR2(30);
45514 l_entity_code VARCHAR2(30);
45515 l_event_class_code VARCHAR2(30);
45516 l_ae_header_id NUMBER;
45517 l_event_type_code VARCHAR2(30);
45518 l_line_definition_code VARCHAR2(30);
45519 l_line_definition_owner_code VARCHAR2(1);
45520 --
45521 -- adr variables
45525 l_adr_accounting_coa_id NUMBER;
45522 l_segment VARCHAR2(30);
45523 l_ccid NUMBER;
45524 l_adr_transaction_coa_id NUMBER;
45526 l_adr_flexfield_segment_code VARCHAR2(30);
45527 l_adr_flex_value_set_id NUMBER;
45528 l_adr_value_type_code VARCHAR2(30);
45529 l_adr_value_combination_id NUMBER;
45530 l_adr_value_segment_code VARCHAR2(30);
45531
45532 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
45533 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
45534 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
45535 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
45536
45537 -- 4262811 Variables ------------------------------------------------------------------------------------------
45538 l_entered_amt_idx NUMBER;
45539 l_accted_amt_idx NUMBER;
45540 l_acc_rev_flag VARCHAR2(1);
45541 l_accrual_line_num NUMBER;
45542 l_tmp_amt NUMBER;
45543 l_acc_rev_natural_side_code VARCHAR2(1);
45544
45545 l_num_entries NUMBER;
45546 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
45547 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
45548 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
45549 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
45550 l_recog_line_1 NUMBER;
45551 l_recog_line_2 NUMBER;
45552
45553 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
45554 l_bflow_applied_to_amt NUMBER; -- 5132302
45555 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
45556
45557 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
45558
45559 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
45560 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
45561
45562 ---------------------------------------------------------------------------------------------------------------
45563
45564
45565 --
45566 -- bulk performance
45567 --
45568 l_balance_type_code VARCHAR2(1);
45569 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
45570 l_log_module VARCHAR2(240);
45571
45572 --
45573 -- Upgrade strategy
45574 --
45575 l_actual_upg_option VARCHAR2(1);
45576 l_enc_upg_option VARCHAR2(1);
45577
45578 --
45579 BEGIN
45580 --
45581 IF g_log_enabled THEN
45582 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_100';
45583 END IF;
45584 --
45585 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45586
45587 trace
45588 (p_msg => 'BEGIN of AcctLineType_100'
45589 ,p_level => C_LEVEL_PROCEDURE
45590 ,p_module => l_log_module);
45591
45592 END IF;
45593 --
45594 l_component_type := 'AMB_JLT';
45595 l_component_code := 'PA_RAW_COST_CLEAR_ADJ_FED';
45596 l_component_type_code := 'S';
45597 l_component_appl_id := 275;
45598 l_amb_context_code := 'DEFAULT';
45599 l_entity_code := 'EXPENDITURES';
45600 l_event_class_code := 'WIP_COST_ADJ';
45601 l_event_type_code := 'WIP_COST_ADJ_ALL';
45602 l_line_definition_owner_code := 'S';
45603 l_line_definition_code := 'FV_PROJECTS_JLD';
45604 --
45605 l_balance_type_code := 'A';
45606 l_segment := NULL;
45607 l_ccid := NULL;
45608 l_adr_transaction_coa_id := NULL;
45609 l_adr_accounting_coa_id := NULL;
45610 l_adr_flexfield_segment_code := NULL;
45611 l_adr_flex_value_set_id := NULL;
45612 l_adr_value_type_code := NULL;
45613 l_adr_value_combination_id := NULL;
45614 l_adr_value_segment_code := NULL;
45615
45616 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
45617 l_bflow_class_code := ''; -- 4219869 Business Flow
45618 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
45619 l_budgetary_control_flag := 'N';
45620
45621 l_bflow_applied_to_amt_idx := NULL; -- 5132302
45622 l_bflow_applied_to_amt := NULL; -- 5132302
45623 l_entered_amt_idx := NULL; -- 4262811
45624 l_accted_amt_idx := NULL; -- 4262811
45625 l_acc_rev_flag := NULL; -- 4262811
45626 l_accrual_line_num := NULL; -- 4262811
45627 l_tmp_amt := NULL; -- 4262811
45628 --
45629
45630 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
45631 l_balance_type_code <> 'B' THEN
45632
45633 --
45634 XLA_AE_LINES_PKG.SetNewLine;
45635
45636 p_balance_type_code := l_balance_type_code;
45637 -- set the flag so later we will know whether the gain loss line needs to be created
45638
45639 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
45640 p_actual_flag :='A';
45641 END IF;
45642
45643 --
45644 -- bulk performance
45645 --
45646 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
45647 p_header_num => 0); -- 4262811
45648 --
45649 -- set accounting line options
45650 --
45651 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
45652 p_natural_side_code => 'C'
45653 , p_gain_or_loss_flag => 'N'
45654 , p_gl_transfer_mode_code => 'S'
45655 , p_acct_entry_type_code => 'A'
45656 , p_switch_side_flag => 'Y'
45657 , p_merge_duplicate_code => 'N'
45661 --
45658 );
45659 --
45660 l_acc_rev_natural_side_code := 'D'; -- 4262811
45662 --
45663 -- set accounting line type info
45664 --
45665 xla_ae_lines_pkg.SetAcctLineType
45666 (p_component_type => l_component_type
45667 ,p_event_type_code => l_event_type_code
45668 ,p_line_definition_owner_code => l_line_definition_owner_code
45669 ,p_line_definition_code => l_line_definition_code
45670 ,p_accounting_line_code => l_component_code
45671 ,p_accounting_line_type_code => l_component_type_code
45672 ,p_accounting_line_appl_id => l_component_appl_id
45673 ,p_amb_context_code => l_amb_context_code
45674 ,p_entity_code => l_entity_code
45675 ,p_event_class_code => l_event_class_code);
45676 --
45677 -- set accounting class
45678 --
45679 xla_ae_lines_pkg.SetAcctClass(
45680 p_accounting_class_code => 'FEDERAL_PROJECT_COST_CLEARING'
45681 , p_ae_header_id => l_ae_header_id
45682 );
45683
45684 --
45685 -- set rounding class
45686 --
45687 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
45688 'FEDERAL_PROJECT_COST_CLEARING';
45689
45690 --
45691 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
45692 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
45693 --
45694 -- bulk performance
45695 --
45696 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
45697
45698 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
45699 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
45700
45701 -- 4955764
45702 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45703 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
45704
45705 -- 4458381 Public Sector Enh
45706
45707 --
45708 -- set accounting attributes for the line type
45709 --
45710 l_entered_amt_idx := 22;
45711 l_accted_amt_idx := 27;
45712 l_bflow_applied_to_amt_idx := NULL; -- 5132302
45713 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
45714 l_rec_acct_attrs.array_char_value(1) := p_source_23;
45715 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
45716 l_rec_acct_attrs.array_char_value(2) := p_source_24;
45717 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
45718 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
45719 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
45720 l_rec_acct_attrs.array_num_value(4) := p_source_25;
45721 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
45722 l_rec_acct_attrs.array_char_value(5) := p_source_26;
45723 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
45724 l_rec_acct_attrs.array_num_value(6) := p_source_27;
45725 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
45726 l_rec_acct_attrs.array_date_value(7) := p_source_28;
45727 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
45728 l_rec_acct_attrs.array_num_value(8) := p_source_29;
45729 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
45730 l_rec_acct_attrs.array_char_value(9) := p_source_30;
45731 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
45732 l_rec_acct_attrs.array_char_value(10) := p_source_31;
45733 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
45734 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
45735 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
45736 l_rec_acct_attrs.array_num_value(12) := p_source_25;
45737 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
45738 l_rec_acct_attrs.array_char_value(13) := p_source_26;
45739 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
45740 l_rec_acct_attrs.array_num_value(14) := p_source_27;
45741 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
45742 l_rec_acct_attrs.array_date_value(15) := p_source_28;
45743 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
45744 l_rec_acct_attrs.array_num_value(16) := p_source_29;
45745 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
45746 l_rec_acct_attrs.array_char_value(17) := p_source_30;
45747 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
45748 l_rec_acct_attrs.array_char_value(18) := p_source_32;
45749 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
45750 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
45751 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
45752 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
45753 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
45754 l_rec_acct_attrs.array_char_value(21) := p_source_35;
45755 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
45756 l_rec_acct_attrs.array_num_value(22) := p_source_25;
45757 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
45758 l_rec_acct_attrs.array_char_value(23) := p_source_26;
45759 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
45760 l_rec_acct_attrs.array_date_value(24) := p_source_28;
45761 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
45762 l_rec_acct_attrs.array_num_value(25) := p_source_29;
45763 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
45764 l_rec_acct_attrs.array_char_value(26) := p_source_30;
45768 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
45765 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
45766 l_rec_acct_attrs.array_num_value(27) := p_source_27;
45767 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
45769 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
45770 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
45771 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
45772 l_rec_acct_attrs.array_char_value(30) := p_source_35;
45773
45774 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
45775 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
45776
45777 ---------------------------------------------------------------------------------------------------------------
45778 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
45779 ---------------------------------------------------------------------------------------------------------------
45780 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
45781
45782 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45783 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45784
45785 IF xla_accounting_cache_pkg.GetValueChar
45786 (p_source_code => 'LEDGER_CATEGORY_CODE'
45787 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
45788 AND l_bflow_method_code = 'PRIOR_ENTRY'
45789 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
45790 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
45791 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
45792 )
45793 THEN
45794 xla_ae_lines_pkg.BflowUpgEntry
45795 (p_business_method_code => l_bflow_method_code
45796 ,p_business_class_code => l_bflow_class_code
45797 ,p_balance_type => l_balance_type_code);
45798 ELSE
45799 NULL;
45800 -- No business flow processing for business flow method of NONE.
45801 END IF;
45802
45803 --
45804 -- call analytical criteria
45805 --
45806
45807 --
45808 -- call description
45809 --
45810 -- No description or it is inherited.
45811 --
45812 -- call ADRs
45813 -- Bug 4922099
45814 --
45815 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45816 (NVL(l_actual_upg_option, 'N') = 'O') OR
45817 (NVL(l_enc_upg_option, 'N') = 'O')
45818 )
45819 THEN
45820 NULL;
45821 --
45822 --
45823
45824 l_ccid := AcctDerRule_15(
45825 p_application_id => p_application_id
45826 , p_ae_header_id => l_ae_header_id
45827 , p_source_5 => p_source_5
45828 , p_source_8 => p_source_8
45829 , x_transaction_coa_id => l_adr_transaction_coa_id
45830 , x_accounting_coa_id => l_adr_accounting_coa_id
45831 , x_value_type_code => l_adr_value_type_code
45832 , p_side => 'NA'
45833 );
45834
45835 xla_ae_lines_pkg.set_ccid(
45836 p_code_combination_id => l_ccid
45837 , p_value_type_code => l_adr_value_type_code
45838 , p_transaction_coa_id => l_adr_transaction_coa_id
45839 , p_accounting_coa_id => l_adr_accounting_coa_id
45840 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
45841 , p_adr_type_code => 'S'
45842 , p_component_type => l_component_type
45843 , p_component_code => l_component_code
45844 , p_component_type_code => l_component_type_code
45845 , p_component_appl_id => l_component_appl_id
45846 , p_amb_context_code => l_amb_context_code
45847 , p_side => 'NA'
45848 );
45849
45850
45851 l_segment := AcctDerRule_5(
45852 p_application_id => p_application_id
45853 , p_ae_header_id => l_ae_header_id
45854 , x_transaction_coa_id => l_adr_transaction_coa_id
45855 , x_accounting_coa_id => l_adr_accounting_coa_id
45856 , x_flexfield_segment_code => l_adr_flexfield_segment_code
45857 , x_flex_value_set_id => l_adr_flex_value_set_id
45858 , x_value_type_code => l_adr_value_type_code
45859 , x_value_combination_id => l_adr_value_combination_id
45860 , x_value_segment_code => l_adr_value_segment_code
45861 , p_side => 'NA'
45862 , p_override_seg_flag => 'Y'
45863 );
45864
45865 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
45866
45867 xla_ae_lines_pkg.set_segment(
45868 p_to_segment_code => 'GL_ACCOUNT'
45869 , p_segment_value => l_segment
45870 , p_from_segment_code => l_adr_value_segment_code
45871 , p_from_combination_id => l_adr_value_combination_id
45872 , p_value_type_code => l_adr_value_type_code
45873 , p_transaction_coa_id => l_adr_transaction_coa_id
45874 , p_accounting_coa_id => l_adr_accounting_coa_id
45875 , p_flexfield_segment_code => l_adr_flexfield_segment_code
45876 , p_flex_value_set_id => l_adr_flex_value_set_id
45877 , p_adr_code => 'FV_490201_PROJECTS'
45878 , p_adr_type_code => 'S'
45879 , p_component_type => l_component_type
45880 , p_component_code => l_component_code
45881 , p_component_type_code => l_component_type_code
45882 , p_component_appl_id => l_component_appl_id
45886 , p_side => 'NA'
45883 , p_amb_context_code => l_amb_context_code
45884 , p_entity_code => 'EXPENDITURES'
45885 , p_event_class_code => 'WIP_COST_ADJ'
45887 );
45888
45889 END IF;
45890
45891 --
45892 --
45893 END IF;
45894 --
45895 -- Bug 4922099
45896 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
45897 (NVL(l_enc_upg_option, 'N') = 'O')
45898 ) AND
45899 (l_bflow_method_code = 'PRIOR_ENTRY')
45900 )
45901 THEN
45902 IF
45903 --
45904 1 = 2
45905 --
45906 THEN
45907 xla_accounting_err_pkg.build_message
45908 (p_appli_s_name => 'XLA'
45909 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45910 ,p_token_1 => 'LINE_NUMBER'
45911 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
45912 ,p_token_2 => 'LINE_TYPE_NAME'
45913 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
45914 l_component_type
45915 ,l_component_code
45916 ,l_component_type_code
45917 ,l_component_appl_id
45918 ,l_amb_context_code
45919 ,l_entity_code
45920 ,l_event_class_code
45921 )
45922 ,p_token_3 => 'OWNER'
45923 ,p_value_3 => xla_lookups_pkg.get_meaning(
45924 p_lookup_type => 'XLA_OWNER_TYPE'
45925 ,p_lookup_code => l_component_type_code
45926 )
45927 ,p_token_4 => 'PRODUCT_NAME'
45928 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
45929 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
45930 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
45931 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
45932 ,p_ae_header_id => NULL
45933 );
45934
45935 IF (C_LEVEL_ERROR>= g_log_level) THEN
45936 trace
45937 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45938 ,p_level => C_LEVEL_ERROR
45939 ,p_module => l_log_module);
45940 END IF;
45941 END IF;
45942 END IF;
45943 --
45944 --
45945 ------------------------------------------------------------------------------------------------
45946 -- 4219869 Business Flow
45947 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
45948 -- Prior Entry. Currently, the following code is always generated.
45949 ------------------------------------------------------------------------------------------------
45950 XLA_AE_LINES_PKG.ValidateCurrentLine;
45951
45952 ------------------------------------------------------------------------------------
45953 -- 4219869 Business Flow
45954 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
45955 ------------------------------------------------------------------------------------
45956 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45957
45958 ----------------------------------------------------------------------------------
45959 -- 4219869 Business Flow
45960 -- Update journal entry status -- Need to generate this within IF <condition>
45961 ----------------------------------------------------------------------------------
45962 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45963 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
45964 ,p_balance_type_code => l_balance_type_code
45965 );
45966
45967 -------------------------------------------------------------------------------------------
45968 -- 4262811 - Generate the Accrual Reversal lines
45969 -------------------------------------------------------------------------------------------
45970 BEGIN
45971 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
45972 (g_array_event(p_event_id).array_value_num('header_index'));
45973 IF l_acc_rev_flag IS NULL THEN
45974 l_acc_rev_flag := 'N';
45975 END IF;
45976 EXCEPTION
45977 WHEN OTHERS THEN
45978 l_acc_rev_flag := 'N';
45979 END;
45980 --
45981 IF (l_acc_rev_flag = 'Y') THEN
45982
45983 -- 4645092 ------------------------------------------------------------------------------
45984 -- To allow MPA report to determine if it should generate report process
45985 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
45986 ------------------------------------------------------------------------------------------
45987
45988 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
45992 -- Update the line information that should be overwritten
45989 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
45990
45991 --
45993 --
45994 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
45995 p_header_num => 1);
45996 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
45997
45998 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
45999
46000 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
46001 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
46002 END IF;
46003
46004 --
46005 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
46006 --
46007 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
46008 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
46009 ELSE
46010 ---------------------------------------------------------------------------------------------------
46011 -- 4262811a Switch Sign
46012 ---------------------------------------------------------------------------------------------------
46013 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
46014 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46015 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46016 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46017 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46018 -- 5132302
46019 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
46020 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46021
46022 END IF;
46023
46024 -- 4955764
46025 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46026 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
46027
46028
46029 XLA_AE_LINES_PKG.ValidateCurrentLine;
46030 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46031
46032 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46033 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
46034 ,p_balance_type_code => l_balance_type_code);
46035
46036 END IF;
46037
46038 -----------------------------------------------------------------------------------------
46039 -- 4262811 Multiperiod Accounting
46040 -----------------------------------------------------------------------------------------
46041 -- No MPA option is assigned.
46042
46043
46044 END IF;
46045 --
46046
46047 --
46048 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46049 trace
46050 (p_msg => 'END of AcctLineType_100'
46051 ,p_level => C_LEVEL_PROCEDURE
46052 ,p_module => l_log_module);
46053 END IF;
46054 --
46055 EXCEPTION
46056 WHEN xla_exceptions_pkg.application_exception THEN
46057 RAISE;
46058 WHEN OTHERS THEN
46059 xla_exceptions_pkg.raise_message
46060 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_100');
46061 END AcctLineType_100;
46062 --
46063
46064 ---------------------------------------
46065 --
46066 -- PRIVATE FUNCTION
46067 -- AcctLineType_101
46068 --
46069 ---------------------------------------
46070 PROCEDURE AcctLineType_101 (
46071 p_application_id IN NUMBER
46072 ,p_event_id IN NUMBER
46073 ,p_calculate_acctd_flag IN VARCHAR2
46074 ,p_calculate_g_l_flag IN VARCHAR2
46075 ,p_actual_flag IN OUT VARCHAR2
46076 ,p_balance_type_code OUT VARCHAR2
46077 ,p_gain_or_loss_ref OUT VARCHAR2
46078
46079 --Cost CCID
46080 , p_source_4 IN NUMBER
46081 --Allow Account Override Flag
46082 , p_source_5 IN VARCHAR2
46083 --Cost Clearing CCID
46084 , p_source_7 IN NUMBER
46085 --Adjustment Cost Clearing CCID
46086 , p_source_8 IN NUMBER
46087 --Reversing Line Flag
46088 , p_source_23 IN VARCHAR2
46089 --Actual Upgrade Credit Accounting Class
46090 , p_source_24 IN VARCHAR2
46091 --Entered Raw Cost
46092 , p_source_25 IN NUMBER
46093 --Entered Currency Code
46094 , p_source_26 IN VARCHAR2
46095 --Accounted Raw Cost
46096 , p_source_27 IN NUMBER
46097 --Exchange Rate Date
46098 , p_source_28 IN DATE
46099 --Exchange Rate
46100 , p_source_29 IN NUMBER
46101 --Exchange Rate Type
46102 , p_source_30 IN VARCHAR2
46103 --Actual Upgrade Debit Accounting Class
46104 , p_source_31 IN VARCHAR2
46105 --Use Actuals Upgrade Attributes Flag
46106 , p_source_32 IN VARCHAR2
46107 --Expenditure Item ID
46108 , p_source_33 IN NUMBER
46109 --Cost Distribution Line Number
46110 , p_source_34 IN NUMBER
46111 --Line Type
46112 , p_source_35 IN VARCHAR2
46113 , p_source_35_meaning IN VARCHAR2
46114 --Reversed Line Number
46115 , p_source_36 IN NUMBER
46116 )
46117 IS
46118
46119 l_component_type VARCHAR2(80);
46120 l_component_code VARCHAR2(30);
46121 l_component_type_code VARCHAR2(1);
46122 l_component_appl_id INTEGER;
46123 l_amb_context_code VARCHAR2(30);
46127 l_event_type_code VARCHAR2(30);
46124 l_entity_code VARCHAR2(30);
46125 l_event_class_code VARCHAR2(30);
46126 l_ae_header_id NUMBER;
46128 l_line_definition_code VARCHAR2(30);
46129 l_line_definition_owner_code VARCHAR2(1);
46130 --
46131 -- adr variables
46132 l_segment VARCHAR2(30);
46133 l_ccid NUMBER;
46134 l_adr_transaction_coa_id NUMBER;
46135 l_adr_accounting_coa_id NUMBER;
46136 l_adr_flexfield_segment_code VARCHAR2(30);
46137 l_adr_flex_value_set_id NUMBER;
46138 l_adr_value_type_code VARCHAR2(30);
46139 l_adr_value_combination_id NUMBER;
46140 l_adr_value_segment_code VARCHAR2(30);
46141
46142 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
46143 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
46144 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
46145 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
46146
46147 -- 4262811 Variables ------------------------------------------------------------------------------------------
46148 l_entered_amt_idx NUMBER;
46149 l_accted_amt_idx NUMBER;
46150 l_acc_rev_flag VARCHAR2(1);
46151 l_accrual_line_num NUMBER;
46152 l_tmp_amt NUMBER;
46153 l_acc_rev_natural_side_code VARCHAR2(1);
46154
46155 l_num_entries NUMBER;
46156 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
46157 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
46158 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
46159 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
46160 l_recog_line_1 NUMBER;
46161 l_recog_line_2 NUMBER;
46162
46163 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
46164 l_bflow_applied_to_amt NUMBER; -- 5132302
46165 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
46166
46167 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
46168
46169 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
46170 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
46171
46172 ---------------------------------------------------------------------------------------------------------------
46173
46174
46175 --
46176 -- bulk performance
46177 --
46178 l_balance_type_code VARCHAR2(1);
46179 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
46180 l_log_module VARCHAR2(240);
46181
46182 --
46183 -- Upgrade strategy
46184 --
46185 l_actual_upg_option VARCHAR2(1);
46186 l_enc_upg_option VARCHAR2(1);
46187
46188 --
46189 BEGIN
46190 --
46191 IF g_log_enabled THEN
46192 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_101';
46193 END IF;
46194 --
46195 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46196
46197 trace
46198 (p_msg => 'BEGIN of AcctLineType_101'
46199 ,p_level => C_LEVEL_PROCEDURE
46200 ,p_module => l_log_module);
46201
46202 END IF;
46203 --
46204 l_component_type := 'AMB_JLT';
46205 l_component_code := 'PA_RAW_COST_CLEAR_ADJ_FED';
46206 l_component_type_code := 'S';
46207 l_component_appl_id := 275;
46208 l_amb_context_code := 'DEFAULT';
46209 l_entity_code := 'EXPENDITURES';
46210 l_event_class_code := 'USG_COST_ADJ';
46211 l_event_type_code := 'USG_COST_ADJ_ALL';
46212 l_line_definition_owner_code := 'S';
46213 l_line_definition_code := 'FV_PROJECTS_JLD';
46214 --
46215 l_balance_type_code := 'A';
46216 l_segment := NULL;
46217 l_ccid := NULL;
46218 l_adr_transaction_coa_id := NULL;
46219 l_adr_accounting_coa_id := NULL;
46220 l_adr_flexfield_segment_code := NULL;
46221 l_adr_flex_value_set_id := NULL;
46222 l_adr_value_type_code := NULL;
46223 l_adr_value_combination_id := NULL;
46224 l_adr_value_segment_code := NULL;
46225
46226 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
46227 l_bflow_class_code := ''; -- 4219869 Business Flow
46228 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
46229 l_budgetary_control_flag := 'N';
46230
46231 l_bflow_applied_to_amt_idx := NULL; -- 5132302
46232 l_bflow_applied_to_amt := NULL; -- 5132302
46233 l_entered_amt_idx := NULL; -- 4262811
46234 l_accted_amt_idx := NULL; -- 4262811
46235 l_acc_rev_flag := NULL; -- 4262811
46236 l_accrual_line_num := NULL; -- 4262811
46237 l_tmp_amt := NULL; -- 4262811
46238 --
46239
46240 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
46241 l_balance_type_code <> 'B' THEN
46242
46243 --
46244 XLA_AE_LINES_PKG.SetNewLine;
46245
46246 p_balance_type_code := l_balance_type_code;
46247 -- set the flag so later we will know whether the gain loss line needs to be created
46248
46249 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
46250 p_actual_flag :='A';
46251 END IF;
46252
46253 --
46254 -- bulk performance
46255 --
46256 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
46257 p_header_num => 0); -- 4262811
46258 --
46259 -- set accounting line options
46260 --
46264 , p_gl_transfer_mode_code => 'S'
46261 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
46262 p_natural_side_code => 'C'
46263 , p_gain_or_loss_flag => 'N'
46265 , p_acct_entry_type_code => 'A'
46266 , p_switch_side_flag => 'Y'
46267 , p_merge_duplicate_code => 'N'
46268 );
46269 --
46270 l_acc_rev_natural_side_code := 'D'; -- 4262811
46271 --
46272 --
46273 -- set accounting line type info
46274 --
46275 xla_ae_lines_pkg.SetAcctLineType
46276 (p_component_type => l_component_type
46277 ,p_event_type_code => l_event_type_code
46278 ,p_line_definition_owner_code => l_line_definition_owner_code
46279 ,p_line_definition_code => l_line_definition_code
46280 ,p_accounting_line_code => l_component_code
46281 ,p_accounting_line_type_code => l_component_type_code
46282 ,p_accounting_line_appl_id => l_component_appl_id
46283 ,p_amb_context_code => l_amb_context_code
46284 ,p_entity_code => l_entity_code
46285 ,p_event_class_code => l_event_class_code);
46286 --
46287 -- set accounting class
46288 --
46289 xla_ae_lines_pkg.SetAcctClass(
46290 p_accounting_class_code => 'FEDERAL_PROJECT_COST_CLEARING'
46291 , p_ae_header_id => l_ae_header_id
46292 );
46293
46294 --
46295 -- set rounding class
46296 --
46297 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
46298 'FEDERAL_PROJECT_COST_CLEARING';
46299
46300 --
46301 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
46302 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
46303 --
46304 -- bulk performance
46305 --
46306 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
46307
46308 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
46309 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
46310
46311 -- 4955764
46312 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46313 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
46314
46315 -- 4458381 Public Sector Enh
46316
46317 --
46318 -- set accounting attributes for the line type
46319 --
46320 l_entered_amt_idx := 22;
46321 l_accted_amt_idx := 27;
46322 l_bflow_applied_to_amt_idx := NULL; -- 5132302
46323 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
46324 l_rec_acct_attrs.array_char_value(1) := p_source_23;
46325 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
46326 l_rec_acct_attrs.array_char_value(2) := p_source_24;
46327 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
46328 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
46329 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
46330 l_rec_acct_attrs.array_num_value(4) := p_source_25;
46331 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
46332 l_rec_acct_attrs.array_char_value(5) := p_source_26;
46333 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
46334 l_rec_acct_attrs.array_num_value(6) := p_source_27;
46335 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
46336 l_rec_acct_attrs.array_date_value(7) := p_source_28;
46337 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
46338 l_rec_acct_attrs.array_num_value(8) := p_source_29;
46339 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
46340 l_rec_acct_attrs.array_char_value(9) := p_source_30;
46341 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
46342 l_rec_acct_attrs.array_char_value(10) := p_source_31;
46343 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
46344 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
46345 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
46346 l_rec_acct_attrs.array_num_value(12) := p_source_25;
46347 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
46348 l_rec_acct_attrs.array_char_value(13) := p_source_26;
46349 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
46350 l_rec_acct_attrs.array_num_value(14) := p_source_27;
46351 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
46352 l_rec_acct_attrs.array_date_value(15) := p_source_28;
46353 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
46354 l_rec_acct_attrs.array_num_value(16) := p_source_29;
46355 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
46356 l_rec_acct_attrs.array_char_value(17) := p_source_30;
46357 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
46358 l_rec_acct_attrs.array_char_value(18) := p_source_32;
46359 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
46360 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
46361 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
46362 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
46363 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
46364 l_rec_acct_attrs.array_char_value(21) := p_source_35;
46365 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
46366 l_rec_acct_attrs.array_num_value(22) := p_source_25;
46367 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
46368 l_rec_acct_attrs.array_char_value(23) := p_source_26;
46369 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
46373 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
46370 l_rec_acct_attrs.array_date_value(24) := p_source_28;
46371 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
46372 l_rec_acct_attrs.array_num_value(25) := p_source_29;
46374 l_rec_acct_attrs.array_char_value(26) := p_source_30;
46375 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
46376 l_rec_acct_attrs.array_num_value(27) := p_source_27;
46377 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
46378 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
46379 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
46380 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
46381 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
46382 l_rec_acct_attrs.array_char_value(30) := p_source_35;
46383
46384 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
46385 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
46386
46387 ---------------------------------------------------------------------------------------------------------------
46388 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
46389 ---------------------------------------------------------------------------------------------------------------
46390 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
46391
46392 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46393 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46394
46395 IF xla_accounting_cache_pkg.GetValueChar
46396 (p_source_code => 'LEDGER_CATEGORY_CODE'
46397 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
46398 AND l_bflow_method_code = 'PRIOR_ENTRY'
46399 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
46400 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
46401 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
46402 )
46403 THEN
46404 xla_ae_lines_pkg.BflowUpgEntry
46405 (p_business_method_code => l_bflow_method_code
46406 ,p_business_class_code => l_bflow_class_code
46407 ,p_balance_type => l_balance_type_code);
46408 ELSE
46409 NULL;
46410 -- No business flow processing for business flow method of NONE.
46411 END IF;
46412
46413 --
46414 -- call analytical criteria
46415 --
46416
46417 --
46418 -- call description
46419 --
46420 -- No description or it is inherited.
46421 --
46422 -- call ADRs
46423 -- Bug 4922099
46424 --
46425 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46426 (NVL(l_actual_upg_option, 'N') = 'O') OR
46427 (NVL(l_enc_upg_option, 'N') = 'O')
46428 )
46429 THEN
46430 NULL;
46431 --
46432 --
46433
46434 l_ccid := AcctDerRule_15(
46435 p_application_id => p_application_id
46436 , p_ae_header_id => l_ae_header_id
46437 , p_source_5 => p_source_5
46438 , p_source_8 => p_source_8
46439 , x_transaction_coa_id => l_adr_transaction_coa_id
46440 , x_accounting_coa_id => l_adr_accounting_coa_id
46441 , x_value_type_code => l_adr_value_type_code
46442 , p_side => 'NA'
46443 );
46444
46445 xla_ae_lines_pkg.set_ccid(
46446 p_code_combination_id => l_ccid
46447 , p_value_type_code => l_adr_value_type_code
46448 , p_transaction_coa_id => l_adr_transaction_coa_id
46449 , p_accounting_coa_id => l_adr_accounting_coa_id
46450 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
46451 , p_adr_type_code => 'S'
46452 , p_component_type => l_component_type
46453 , p_component_code => l_component_code
46454 , p_component_type_code => l_component_type_code
46455 , p_component_appl_id => l_component_appl_id
46456 , p_amb_context_code => l_amb_context_code
46457 , p_side => 'NA'
46458 );
46459
46460
46461 l_segment := AcctDerRule_5(
46462 p_application_id => p_application_id
46463 , p_ae_header_id => l_ae_header_id
46464 , x_transaction_coa_id => l_adr_transaction_coa_id
46465 , x_accounting_coa_id => l_adr_accounting_coa_id
46466 , x_flexfield_segment_code => l_adr_flexfield_segment_code
46467 , x_flex_value_set_id => l_adr_flex_value_set_id
46468 , x_value_type_code => l_adr_value_type_code
46469 , x_value_combination_id => l_adr_value_combination_id
46470 , x_value_segment_code => l_adr_value_segment_code
46471 , p_side => 'NA'
46472 , p_override_seg_flag => 'Y'
46473 );
46474
46475 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
46476
46477 xla_ae_lines_pkg.set_segment(
46478 p_to_segment_code => 'GL_ACCOUNT'
46479 , p_segment_value => l_segment
46480 , p_from_segment_code => l_adr_value_segment_code
46481 , p_from_combination_id => l_adr_value_combination_id
46482 , p_value_type_code => l_adr_value_type_code
46483 , p_transaction_coa_id => l_adr_transaction_coa_id
46484 , p_accounting_coa_id => l_adr_accounting_coa_id
46485 , p_flexfield_segment_code => l_adr_flexfield_segment_code
46486 , p_flex_value_set_id => l_adr_flex_value_set_id
46487 , p_adr_code => 'FV_490201_PROJECTS'
46491 , p_component_type_code => l_component_type_code
46488 , p_adr_type_code => 'S'
46489 , p_component_type => l_component_type
46490 , p_component_code => l_component_code
46492 , p_component_appl_id => l_component_appl_id
46493 , p_amb_context_code => l_amb_context_code
46494 , p_entity_code => 'EXPENDITURES'
46495 , p_event_class_code => 'USG_COST_ADJ'
46496 , p_side => 'NA'
46497 );
46498
46499 END IF;
46500
46501 --
46502 --
46503 END IF;
46504 --
46505 -- Bug 4922099
46506 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
46507 (NVL(l_enc_upg_option, 'N') = 'O')
46508 ) AND
46509 (l_bflow_method_code = 'PRIOR_ENTRY')
46510 )
46511 THEN
46512 IF
46513 --
46514 1 = 2
46515 --
46516 THEN
46517 xla_accounting_err_pkg.build_message
46518 (p_appli_s_name => 'XLA'
46519 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46520 ,p_token_1 => 'LINE_NUMBER'
46521 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
46522 ,p_token_2 => 'LINE_TYPE_NAME'
46523 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
46524 l_component_type
46525 ,l_component_code
46526 ,l_component_type_code
46527 ,l_component_appl_id
46528 ,l_amb_context_code
46529 ,l_entity_code
46530 ,l_event_class_code
46531 )
46532 ,p_token_3 => 'OWNER'
46533 ,p_value_3 => xla_lookups_pkg.get_meaning(
46534 p_lookup_type => 'XLA_OWNER_TYPE'
46535 ,p_lookup_code => l_component_type_code
46536 )
46537 ,p_token_4 => 'PRODUCT_NAME'
46538 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
46539 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
46540 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
46541 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
46542 ,p_ae_header_id => NULL
46543 );
46544
46545 IF (C_LEVEL_ERROR>= g_log_level) THEN
46546 trace
46547 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46548 ,p_level => C_LEVEL_ERROR
46549 ,p_module => l_log_module);
46550 END IF;
46551 END IF;
46552 END IF;
46553 --
46554 --
46555 ------------------------------------------------------------------------------------------------
46556 -- 4219869 Business Flow
46557 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
46558 -- Prior Entry. Currently, the following code is always generated.
46559 ------------------------------------------------------------------------------------------------
46560 XLA_AE_LINES_PKG.ValidateCurrentLine;
46561
46562 ------------------------------------------------------------------------------------
46563 -- 4219869 Business Flow
46564 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
46565 ------------------------------------------------------------------------------------
46566 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46567
46568 ----------------------------------------------------------------------------------
46569 -- 4219869 Business Flow
46570 -- Update journal entry status -- Need to generate this within IF <condition>
46571 ----------------------------------------------------------------------------------
46572 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46573 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
46574 ,p_balance_type_code => l_balance_type_code
46575 );
46576
46577 -------------------------------------------------------------------------------------------
46578 -- 4262811 - Generate the Accrual Reversal lines
46579 -------------------------------------------------------------------------------------------
46580 BEGIN
46581 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
46582 (g_array_event(p_event_id).array_value_num('header_index'));
46583 IF l_acc_rev_flag IS NULL THEN
46584 l_acc_rev_flag := 'N';
46585 END IF;
46586 EXCEPTION
46587 WHEN OTHERS THEN
46588 l_acc_rev_flag := 'N';
46589 END;
46590 --
46591 IF (l_acc_rev_flag = 'Y') THEN
46592
46593 -- 4645092 ------------------------------------------------------------------------------
46597
46594 -- To allow MPA report to determine if it should generate report process
46595 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
46596 ------------------------------------------------------------------------------------------
46598 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
46599 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
46600
46601 --
46602 -- Update the line information that should be overwritten
46603 --
46604 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
46605 p_header_num => 1);
46606 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
46607
46608 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
46609
46610 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
46611 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
46612 END IF;
46613
46614 --
46615 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
46616 --
46617 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
46618 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
46619 ELSE
46620 ---------------------------------------------------------------------------------------------------
46621 -- 4262811a Switch Sign
46622 ---------------------------------------------------------------------------------------------------
46623 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
46624 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46625 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46626 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46627 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46628 -- 5132302
46629 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
46630 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46631
46632 END IF;
46633
46634 -- 4955764
46635 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46636 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
46637
46638
46639 XLA_AE_LINES_PKG.ValidateCurrentLine;
46640 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46641
46642 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46643 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
46644 ,p_balance_type_code => l_balance_type_code);
46645
46646 END IF;
46647
46648 -----------------------------------------------------------------------------------------
46649 -- 4262811 Multiperiod Accounting
46650 -----------------------------------------------------------------------------------------
46651 -- No MPA option is assigned.
46652
46653
46654 END IF;
46655 --
46656
46657 --
46658 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46659 trace
46660 (p_msg => 'END of AcctLineType_101'
46661 ,p_level => C_LEVEL_PROCEDURE
46662 ,p_module => l_log_module);
46663 END IF;
46664 --
46665 EXCEPTION
46666 WHEN xla_exceptions_pkg.application_exception THEN
46667 RAISE;
46668 WHEN OTHERS THEN
46669 xla_exceptions_pkg.raise_message
46670 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_101');
46671 END AcctLineType_101;
46672 --
46673
46674 ---------------------------------------
46675 --
46676 -- PRIVATE FUNCTION
46677 -- AcctLineType_102
46678 --
46679 ---------------------------------------
46680 PROCEDURE AcctLineType_102 (
46681 p_application_id IN NUMBER
46682 ,p_event_id IN NUMBER
46683 ,p_calculate_acctd_flag IN VARCHAR2
46684 ,p_calculate_g_l_flag IN VARCHAR2
46685 ,p_actual_flag IN OUT VARCHAR2
46686 ,p_balance_type_code OUT VARCHAR2
46687 ,p_gain_or_loss_ref OUT VARCHAR2
46688
46689 --Cost CCID
46690 , p_source_4 IN NUMBER
46691 --Allow Account Override Flag
46692 , p_source_5 IN VARCHAR2
46693 --Cost Clearing CCID
46694 , p_source_7 IN NUMBER
46695 --Adjustment Cost Clearing CCID
46696 , p_source_8 IN NUMBER
46697 --Reversing Line Flag
46698 , p_source_23 IN VARCHAR2
46699 --Actual Upgrade Credit Accounting Class
46700 , p_source_24 IN VARCHAR2
46701 --Entered Raw Cost
46702 , p_source_25 IN NUMBER
46703 --Entered Currency Code
46704 , p_source_26 IN VARCHAR2
46705 --Accounted Raw Cost
46706 , p_source_27 IN NUMBER
46707 --Exchange Rate Date
46708 , p_source_28 IN DATE
46709 --Exchange Rate
46710 , p_source_29 IN NUMBER
46711 --Exchange Rate Type
46712 , p_source_30 IN VARCHAR2
46713 --Actual Upgrade Debit Accounting Class
46714 , p_source_31 IN VARCHAR2
46715 --Use Actuals Upgrade Attributes Flag
46716 , p_source_32 IN VARCHAR2
46717 --Expenditure Item ID
46718 , p_source_33 IN NUMBER
46719 --Cost Distribution Line Number
46720 , p_source_34 IN NUMBER
46721 --Line Type
46722 , p_source_35 IN VARCHAR2
46723 , p_source_35_meaning IN VARCHAR2
46724 --Reversed Line Number
46725 , p_source_36 IN NUMBER
46729 l_component_type VARCHAR2(80);
46726 )
46727 IS
46728
46730 l_component_code VARCHAR2(30);
46731 l_component_type_code VARCHAR2(1);
46732 l_component_appl_id INTEGER;
46733 l_amb_context_code VARCHAR2(30);
46734 l_entity_code VARCHAR2(30);
46735 l_event_class_code VARCHAR2(30);
46736 l_ae_header_id NUMBER;
46737 l_event_type_code VARCHAR2(30);
46738 l_line_definition_code VARCHAR2(30);
46739 l_line_definition_owner_code VARCHAR2(1);
46740 --
46741 -- adr variables
46742 l_segment VARCHAR2(30);
46743 l_ccid NUMBER;
46744 l_adr_transaction_coa_id NUMBER;
46745 l_adr_accounting_coa_id NUMBER;
46746 l_adr_flexfield_segment_code VARCHAR2(30);
46747 l_adr_flex_value_set_id NUMBER;
46748 l_adr_value_type_code VARCHAR2(30);
46749 l_adr_value_combination_id NUMBER;
46750 l_adr_value_segment_code VARCHAR2(30);
46751
46752 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
46753 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
46754 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
46755 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
46756
46757 -- 4262811 Variables ------------------------------------------------------------------------------------------
46758 l_entered_amt_idx NUMBER;
46759 l_accted_amt_idx NUMBER;
46760 l_acc_rev_flag VARCHAR2(1);
46761 l_accrual_line_num NUMBER;
46762 l_tmp_amt NUMBER;
46763 l_acc_rev_natural_side_code VARCHAR2(1);
46764
46765 l_num_entries NUMBER;
46766 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
46767 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
46768 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
46769 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
46770 l_recog_line_1 NUMBER;
46771 l_recog_line_2 NUMBER;
46772
46773 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
46774 l_bflow_applied_to_amt NUMBER; -- 5132302
46775 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
46776
46777 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
46778
46779 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
46780 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
46781
46782 ---------------------------------------------------------------------------------------------------------------
46783
46784
46785 --
46786 -- bulk performance
46787 --
46788 l_balance_type_code VARCHAR2(1);
46789 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
46790 l_log_module VARCHAR2(240);
46791
46792 --
46793 -- Upgrade strategy
46794 --
46795 l_actual_upg_option VARCHAR2(1);
46796 l_enc_upg_option VARCHAR2(1);
46797
46798 --
46799 BEGIN
46800 --
46801 IF g_log_enabled THEN
46802 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_102';
46803 END IF;
46804 --
46805 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46806
46807 trace
46808 (p_msg => 'BEGIN of AcctLineType_102'
46809 ,p_level => C_LEVEL_PROCEDURE
46810 ,p_module => l_log_module);
46811
46812 END IF;
46813 --
46814 l_component_type := 'AMB_JLT';
46815 l_component_code := 'PA_RAW_COST_CLEAR_FED';
46816 l_component_type_code := 'S';
46817 l_component_appl_id := 275;
46818 l_amb_context_code := 'DEFAULT';
46819 l_entity_code := 'EXPENDITURES';
46820 l_event_class_code := 'INVENTORY_COST';
46821 l_event_type_code := 'INVENTORY_COST_ALL';
46822 l_line_definition_owner_code := 'S';
46823 l_line_definition_code := 'FV_PROJECTS_JLD';
46824 --
46825 l_balance_type_code := 'A';
46826 l_segment := NULL;
46827 l_ccid := NULL;
46828 l_adr_transaction_coa_id := NULL;
46829 l_adr_accounting_coa_id := NULL;
46830 l_adr_flexfield_segment_code := NULL;
46831 l_adr_flex_value_set_id := NULL;
46832 l_adr_value_type_code := NULL;
46833 l_adr_value_combination_id := NULL;
46834 l_adr_value_segment_code := NULL;
46835
46836 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
46837 l_bflow_class_code := ''; -- 4219869 Business Flow
46838 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
46839 l_budgetary_control_flag := 'N';
46840
46841 l_bflow_applied_to_amt_idx := NULL; -- 5132302
46842 l_bflow_applied_to_amt := NULL; -- 5132302
46843 l_entered_amt_idx := NULL; -- 4262811
46844 l_accted_amt_idx := NULL; -- 4262811
46845 l_acc_rev_flag := NULL; -- 4262811
46846 l_accrual_line_num := NULL; -- 4262811
46847 l_tmp_amt := NULL; -- 4262811
46848 --
46849
46850 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
46851 l_balance_type_code <> 'B' THEN
46852
46853 --
46854 XLA_AE_LINES_PKG.SetNewLine;
46855
46856 p_balance_type_code := l_balance_type_code;
46857 -- set the flag so later we will know whether the gain loss line needs to be created
46858
46859 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
46860 p_actual_flag :='A';
46861 END IF;
46862
46863 --
46864 -- bulk performance
46868 --
46865 --
46866 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
46867 p_header_num => 0); -- 4262811
46869 -- set accounting line options
46870 --
46871 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
46872 p_natural_side_code => 'C'
46873 , p_gain_or_loss_flag => 'N'
46874 , p_gl_transfer_mode_code => 'S'
46875 , p_acct_entry_type_code => 'A'
46876 , p_switch_side_flag => 'Y'
46877 , p_merge_duplicate_code => 'N'
46878 );
46879 --
46880 l_acc_rev_natural_side_code := 'D'; -- 4262811
46881 --
46882 --
46883 -- set accounting line type info
46884 --
46885 xla_ae_lines_pkg.SetAcctLineType
46886 (p_component_type => l_component_type
46887 ,p_event_type_code => l_event_type_code
46888 ,p_line_definition_owner_code => l_line_definition_owner_code
46889 ,p_line_definition_code => l_line_definition_code
46890 ,p_accounting_line_code => l_component_code
46891 ,p_accounting_line_type_code => l_component_type_code
46892 ,p_accounting_line_appl_id => l_component_appl_id
46893 ,p_amb_context_code => l_amb_context_code
46894 ,p_entity_code => l_entity_code
46895 ,p_event_class_code => l_event_class_code);
46896 --
46897 -- set accounting class
46898 --
46899 xla_ae_lines_pkg.SetAcctClass(
46900 p_accounting_class_code => 'FEDERAL_PROJECT_COST_CLEARING'
46901 , p_ae_header_id => l_ae_header_id
46902 );
46903
46904 --
46905 -- set rounding class
46906 --
46907 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
46908 'FEDERAL_PROJECT_COST_CLEARING';
46909
46910 --
46911 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
46912 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
46913 --
46914 -- bulk performance
46915 --
46916 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
46917
46918 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
46919 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
46920
46921 -- 4955764
46922 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46923 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
46924
46925 -- 4458381 Public Sector Enh
46926
46927 --
46928 -- set accounting attributes for the line type
46929 --
46930 l_entered_amt_idx := 22;
46931 l_accted_amt_idx := 27;
46932 l_bflow_applied_to_amt_idx := NULL; -- 5132302
46933 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
46934 l_rec_acct_attrs.array_char_value(1) := p_source_23;
46935 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
46936 l_rec_acct_attrs.array_char_value(2) := p_source_24;
46937 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
46938 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
46939 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
46940 l_rec_acct_attrs.array_num_value(4) := p_source_25;
46941 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
46942 l_rec_acct_attrs.array_char_value(5) := p_source_26;
46943 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
46944 l_rec_acct_attrs.array_num_value(6) := p_source_27;
46945 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
46946 l_rec_acct_attrs.array_date_value(7) := p_source_28;
46947 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
46948 l_rec_acct_attrs.array_num_value(8) := p_source_29;
46949 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
46950 l_rec_acct_attrs.array_char_value(9) := p_source_30;
46951 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
46952 l_rec_acct_attrs.array_char_value(10) := p_source_31;
46953 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
46954 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
46955 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
46956 l_rec_acct_attrs.array_num_value(12) := p_source_25;
46957 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
46958 l_rec_acct_attrs.array_char_value(13) := p_source_26;
46959 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
46960 l_rec_acct_attrs.array_num_value(14) := p_source_27;
46961 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
46962 l_rec_acct_attrs.array_date_value(15) := p_source_28;
46963 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
46964 l_rec_acct_attrs.array_num_value(16) := p_source_29;
46965 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
46966 l_rec_acct_attrs.array_char_value(17) := p_source_30;
46967 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
46968 l_rec_acct_attrs.array_char_value(18) := p_source_32;
46969 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
46970 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
46971 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
46972 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
46973 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
46974 l_rec_acct_attrs.array_char_value(21) := p_source_35;
46975 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
46979 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
46976 l_rec_acct_attrs.array_num_value(22) := p_source_25;
46977 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
46978 l_rec_acct_attrs.array_char_value(23) := p_source_26;
46980 l_rec_acct_attrs.array_date_value(24) := p_source_28;
46981 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
46982 l_rec_acct_attrs.array_num_value(25) := p_source_29;
46983 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
46984 l_rec_acct_attrs.array_char_value(26) := p_source_30;
46985 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
46986 l_rec_acct_attrs.array_num_value(27) := p_source_27;
46987 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
46988 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
46989 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
46990 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
46991 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
46992 l_rec_acct_attrs.array_char_value(30) := p_source_35;
46993
46994 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
46995 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
46996
46997 ---------------------------------------------------------------------------------------------------------------
46998 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
46999 ---------------------------------------------------------------------------------------------------------------
47000 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
47001
47002 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47003 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47004
47005 IF xla_accounting_cache_pkg.GetValueChar
47006 (p_source_code => 'LEDGER_CATEGORY_CODE'
47007 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
47008 AND l_bflow_method_code = 'PRIOR_ENTRY'
47009 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
47010 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
47011 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
47012 )
47013 THEN
47014 xla_ae_lines_pkg.BflowUpgEntry
47015 (p_business_method_code => l_bflow_method_code
47016 ,p_business_class_code => l_bflow_class_code
47017 ,p_balance_type => l_balance_type_code);
47018 ELSE
47019 NULL;
47020 -- No business flow processing for business flow method of NONE.
47021 END IF;
47022
47023 --
47024 -- call analytical criteria
47025 --
47026
47027 --
47028 -- call description
47029 --
47030 -- No description or it is inherited.
47031 --
47032 -- call ADRs
47033 -- Bug 4922099
47034 --
47035 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47036 (NVL(l_actual_upg_option, 'N') = 'O') OR
47037 (NVL(l_enc_upg_option, 'N') = 'O')
47038 )
47039 THEN
47040 NULL;
47041 --
47042 --
47043
47044 l_ccid := AcctDerRule_14(
47045 p_application_id => p_application_id
47046 , p_ae_header_id => l_ae_header_id
47047 , p_source_5 => p_source_5
47048 , p_source_7 => p_source_7
47049 , p_source_8 => p_source_8
47050 , x_transaction_coa_id => l_adr_transaction_coa_id
47051 , x_accounting_coa_id => l_adr_accounting_coa_id
47052 , x_value_type_code => l_adr_value_type_code
47053 , p_side => 'NA'
47054 );
47055
47056 xla_ae_lines_pkg.set_ccid(
47057 p_code_combination_id => l_ccid
47058 , p_value_type_code => l_adr_value_type_code
47059 , p_transaction_coa_id => l_adr_transaction_coa_id
47060 , p_accounting_coa_id => l_adr_accounting_coa_id
47061 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
47062 , p_adr_type_code => 'S'
47063 , p_component_type => l_component_type
47064 , p_component_code => l_component_code
47065 , p_component_type_code => l_component_type_code
47066 , p_component_appl_id => l_component_appl_id
47067 , p_amb_context_code => l_amb_context_code
47068 , p_side => 'NA'
47069 );
47070
47071
47072 l_segment := AcctDerRule_5(
47073 p_application_id => p_application_id
47074 , p_ae_header_id => l_ae_header_id
47075 , x_transaction_coa_id => l_adr_transaction_coa_id
47076 , x_accounting_coa_id => l_adr_accounting_coa_id
47077 , x_flexfield_segment_code => l_adr_flexfield_segment_code
47078 , x_flex_value_set_id => l_adr_flex_value_set_id
47079 , x_value_type_code => l_adr_value_type_code
47080 , x_value_combination_id => l_adr_value_combination_id
47081 , x_value_segment_code => l_adr_value_segment_code
47082 , p_side => 'NA'
47083 , p_override_seg_flag => 'Y'
47084 );
47085
47086 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
47087
47088 xla_ae_lines_pkg.set_segment(
47089 p_to_segment_code => 'GL_ACCOUNT'
47090 , p_segment_value => l_segment
47091 , p_from_segment_code => l_adr_value_segment_code
47092 , p_from_combination_id => l_adr_value_combination_id
47093 , p_value_type_code => l_adr_value_type_code
47097 , p_flex_value_set_id => l_adr_flex_value_set_id
47094 , p_transaction_coa_id => l_adr_transaction_coa_id
47095 , p_accounting_coa_id => l_adr_accounting_coa_id
47096 , p_flexfield_segment_code => l_adr_flexfield_segment_code
47098 , p_adr_code => 'FV_490201_PROJECTS'
47099 , p_adr_type_code => 'S'
47100 , p_component_type => l_component_type
47101 , p_component_code => l_component_code
47102 , p_component_type_code => l_component_type_code
47103 , p_component_appl_id => l_component_appl_id
47104 , p_amb_context_code => l_amb_context_code
47105 , p_entity_code => 'EXPENDITURES'
47106 , p_event_class_code => 'INVENTORY_COST'
47107 , p_side => 'NA'
47108 );
47109
47110 END IF;
47111
47112 --
47113 --
47114 END IF;
47115 --
47116 -- Bug 4922099
47117 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
47118 (NVL(l_enc_upg_option, 'N') = 'O')
47119 ) AND
47120 (l_bflow_method_code = 'PRIOR_ENTRY')
47121 )
47122 THEN
47123 IF
47124 --
47125 1 = 2
47126 --
47127 THEN
47128 xla_accounting_err_pkg.build_message
47129 (p_appli_s_name => 'XLA'
47130 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47131 ,p_token_1 => 'LINE_NUMBER'
47132 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
47133 ,p_token_2 => 'LINE_TYPE_NAME'
47134 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
47135 l_component_type
47136 ,l_component_code
47137 ,l_component_type_code
47138 ,l_component_appl_id
47139 ,l_amb_context_code
47140 ,l_entity_code
47141 ,l_event_class_code
47142 )
47143 ,p_token_3 => 'OWNER'
47144 ,p_value_3 => xla_lookups_pkg.get_meaning(
47145 p_lookup_type => 'XLA_OWNER_TYPE'
47146 ,p_lookup_code => l_component_type_code
47147 )
47148 ,p_token_4 => 'PRODUCT_NAME'
47149 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
47150 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
47151 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
47152 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
47153 ,p_ae_header_id => NULL
47154 );
47155
47156 IF (C_LEVEL_ERROR>= g_log_level) THEN
47157 trace
47158 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47159 ,p_level => C_LEVEL_ERROR
47160 ,p_module => l_log_module);
47161 END IF;
47162 END IF;
47163 END IF;
47164 --
47165 --
47166 ------------------------------------------------------------------------------------------------
47167 -- 4219869 Business Flow
47168 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
47169 -- Prior Entry. Currently, the following code is always generated.
47170 ------------------------------------------------------------------------------------------------
47171 XLA_AE_LINES_PKG.ValidateCurrentLine;
47172
47173 ------------------------------------------------------------------------------------
47174 -- 4219869 Business Flow
47175 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
47176 ------------------------------------------------------------------------------------
47177 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47178
47179 ----------------------------------------------------------------------------------
47180 -- 4219869 Business Flow
47181 -- Update journal entry status -- Need to generate this within IF <condition>
47182 ----------------------------------------------------------------------------------
47183 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47184 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
47185 ,p_balance_type_code => l_balance_type_code
47186 );
47187
47188 -------------------------------------------------------------------------------------------
47189 -- 4262811 - Generate the Accrual Reversal lines
47190 -------------------------------------------------------------------------------------------
47191 BEGIN
47192 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
47193 (g_array_event(p_event_id).array_value_num('header_index'));
47194 IF l_acc_rev_flag IS NULL THEN
47195 l_acc_rev_flag := 'N';
47196 END IF;
47200 END;
47197 EXCEPTION
47198 WHEN OTHERS THEN
47199 l_acc_rev_flag := 'N';
47201 --
47202 IF (l_acc_rev_flag = 'Y') THEN
47203
47204 -- 4645092 ------------------------------------------------------------------------------
47205 -- To allow MPA report to determine if it should generate report process
47206 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
47207 ------------------------------------------------------------------------------------------
47208
47209 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
47210 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
47211
47212 --
47213 -- Update the line information that should be overwritten
47214 --
47215 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
47216 p_header_num => 1);
47217 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
47218
47219 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
47220
47221 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
47222 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
47223 END IF;
47224
47225 --
47226 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
47227 --
47228 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47229 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
47230 ELSE
47231 ---------------------------------------------------------------------------------------------------
47232 -- 4262811a Switch Sign
47233 ---------------------------------------------------------------------------------------------------
47234 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
47235 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47236 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47237 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47238 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47239 -- 5132302
47240 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47241 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47242
47243 END IF;
47244
47245 -- 4955764
47246 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47247 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47248
47249
47250 XLA_AE_LINES_PKG.ValidateCurrentLine;
47251 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47252
47253 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47254 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47255 ,p_balance_type_code => l_balance_type_code);
47256
47257 END IF;
47258
47259 -----------------------------------------------------------------------------------------
47260 -- 4262811 Multiperiod Accounting
47261 -----------------------------------------------------------------------------------------
47262 -- No MPA option is assigned.
47263
47264
47265 END IF;
47266 --
47267
47268 --
47269 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47270 trace
47271 (p_msg => 'END of AcctLineType_102'
47272 ,p_level => C_LEVEL_PROCEDURE
47273 ,p_module => l_log_module);
47274 END IF;
47275 --
47276 EXCEPTION
47277 WHEN xla_exceptions_pkg.application_exception THEN
47278 RAISE;
47279 WHEN OTHERS THEN
47280 xla_exceptions_pkg.raise_message
47281 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_102');
47282 END AcctLineType_102;
47283 --
47284
47285 ---------------------------------------
47286 --
47287 -- PRIVATE FUNCTION
47288 -- AcctLineType_103
47289 --
47290 ---------------------------------------
47291 PROCEDURE AcctLineType_103 (
47292 p_application_id IN NUMBER
47293 ,p_event_id IN NUMBER
47294 ,p_calculate_acctd_flag IN VARCHAR2
47295 ,p_calculate_g_l_flag IN VARCHAR2
47296 ,p_actual_flag IN OUT VARCHAR2
47297 ,p_balance_type_code OUT VARCHAR2
47298 ,p_gain_or_loss_ref OUT VARCHAR2
47299
47300 --Cost CCID
47301 , p_source_4 IN NUMBER
47302 --Allow Account Override Flag
47303 , p_source_5 IN VARCHAR2
47304 --Cost Clearing CCID
47305 , p_source_7 IN NUMBER
47306 --Adjustment Cost Clearing CCID
47307 , p_source_8 IN NUMBER
47308 --Reversing Line Flag
47309 , p_source_23 IN VARCHAR2
47310 --Actual Upgrade Credit Accounting Class
47311 , p_source_24 IN VARCHAR2
47312 --Entered Raw Cost
47313 , p_source_25 IN NUMBER
47314 --Entered Currency Code
47315 , p_source_26 IN VARCHAR2
47316 --Accounted Raw Cost
47317 , p_source_27 IN NUMBER
47318 --Exchange Rate Date
47319 , p_source_28 IN DATE
47320 --Exchange Rate
47321 , p_source_29 IN NUMBER
47322 --Exchange Rate Type
47323 , p_source_30 IN VARCHAR2
47324 --Actual Upgrade Debit Accounting Class
47325 , p_source_31 IN VARCHAR2
47326 --Use Actuals Upgrade Attributes Flag
47327 , p_source_32 IN VARCHAR2
47328 --Expenditure Item ID
47332 --Line Type
47329 , p_source_33 IN NUMBER
47330 --Cost Distribution Line Number
47331 , p_source_34 IN NUMBER
47333 , p_source_35 IN VARCHAR2
47334 , p_source_35_meaning IN VARCHAR2
47335 --Reversed Line Number
47336 , p_source_36 IN NUMBER
47337 )
47338 IS
47339
47340 l_component_type VARCHAR2(80);
47341 l_component_code VARCHAR2(30);
47342 l_component_type_code VARCHAR2(1);
47343 l_component_appl_id INTEGER;
47344 l_amb_context_code VARCHAR2(30);
47345 l_entity_code VARCHAR2(30);
47346 l_event_class_code VARCHAR2(30);
47347 l_ae_header_id NUMBER;
47348 l_event_type_code VARCHAR2(30);
47349 l_line_definition_code VARCHAR2(30);
47350 l_line_definition_owner_code VARCHAR2(1);
47351 --
47352 -- adr variables
47353 l_segment VARCHAR2(30);
47354 l_ccid NUMBER;
47355 l_adr_transaction_coa_id NUMBER;
47356 l_adr_accounting_coa_id NUMBER;
47357 l_adr_flexfield_segment_code VARCHAR2(30);
47358 l_adr_flex_value_set_id NUMBER;
47359 l_adr_value_type_code VARCHAR2(30);
47360 l_adr_value_combination_id NUMBER;
47361 l_adr_value_segment_code VARCHAR2(30);
47362
47363 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
47364 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
47365 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
47366 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
47367
47368 -- 4262811 Variables ------------------------------------------------------------------------------------------
47369 l_entered_amt_idx NUMBER;
47370 l_accted_amt_idx NUMBER;
47371 l_acc_rev_flag VARCHAR2(1);
47372 l_accrual_line_num NUMBER;
47373 l_tmp_amt NUMBER;
47374 l_acc_rev_natural_side_code VARCHAR2(1);
47375
47376 l_num_entries NUMBER;
47377 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
47378 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
47379 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
47380 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
47381 l_recog_line_1 NUMBER;
47382 l_recog_line_2 NUMBER;
47383
47384 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
47385 l_bflow_applied_to_amt NUMBER; -- 5132302
47386 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
47387
47388 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
47389
47390 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
47391 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
47392
47393 ---------------------------------------------------------------------------------------------------------------
47394
47395
47396 --
47397 -- bulk performance
47398 --
47399 l_balance_type_code VARCHAR2(1);
47400 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
47401 l_log_module VARCHAR2(240);
47402
47403 --
47404 -- Upgrade strategy
47405 --
47406 l_actual_upg_option VARCHAR2(1);
47407 l_enc_upg_option VARCHAR2(1);
47408
47409 --
47410 BEGIN
47411 --
47412 IF g_log_enabled THEN
47413 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_103';
47414 END IF;
47415 --
47416 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47417
47418 trace
47419 (p_msg => 'BEGIN of AcctLineType_103'
47420 ,p_level => C_LEVEL_PROCEDURE
47421 ,p_module => l_log_module);
47422
47423 END IF;
47424 --
47425 l_component_type := 'AMB_JLT';
47426 l_component_code := 'PA_RAW_COST_CLEAR_FED';
47427 l_component_type_code := 'S';
47428 l_component_appl_id := 275;
47429 l_amb_context_code := 'DEFAULT';
47430 l_entity_code := 'EXPENDITURES';
47431 l_event_class_code := 'LABOR_COST';
47432 l_event_type_code := 'LABOR_COST_ALL';
47433 l_line_definition_owner_code := 'S';
47434 l_line_definition_code := 'FV_PROJECTS_JLD';
47435 --
47436 l_balance_type_code := 'A';
47437 l_segment := NULL;
47438 l_ccid := NULL;
47439 l_adr_transaction_coa_id := NULL;
47440 l_adr_accounting_coa_id := NULL;
47441 l_adr_flexfield_segment_code := NULL;
47442 l_adr_flex_value_set_id := NULL;
47443 l_adr_value_type_code := NULL;
47444 l_adr_value_combination_id := NULL;
47445 l_adr_value_segment_code := NULL;
47446
47447 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
47448 l_bflow_class_code := ''; -- 4219869 Business Flow
47449 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
47450 l_budgetary_control_flag := 'N';
47451
47452 l_bflow_applied_to_amt_idx := NULL; -- 5132302
47453 l_bflow_applied_to_amt := NULL; -- 5132302
47454 l_entered_amt_idx := NULL; -- 4262811
47455 l_accted_amt_idx := NULL; -- 4262811
47456 l_acc_rev_flag := NULL; -- 4262811
47457 l_accrual_line_num := NULL; -- 4262811
47458 l_tmp_amt := NULL; -- 4262811
47459 --
47460
47461 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
47462 l_balance_type_code <> 'B' THEN
47463
47464 --
47465 XLA_AE_LINES_PKG.SetNewLine;
47466
47470 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
47467 p_balance_type_code := l_balance_type_code;
47468 -- set the flag so later we will know whether the gain loss line needs to be created
47469
47471 p_actual_flag :='A';
47472 END IF;
47473
47474 --
47475 -- bulk performance
47476 --
47477 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
47478 p_header_num => 0); -- 4262811
47479 --
47480 -- set accounting line options
47481 --
47482 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
47483 p_natural_side_code => 'C'
47484 , p_gain_or_loss_flag => 'N'
47485 , p_gl_transfer_mode_code => 'S'
47486 , p_acct_entry_type_code => 'A'
47487 , p_switch_side_flag => 'Y'
47488 , p_merge_duplicate_code => 'N'
47489 );
47490 --
47491 l_acc_rev_natural_side_code := 'D'; -- 4262811
47492 --
47493 --
47494 -- set accounting line type info
47495 --
47496 xla_ae_lines_pkg.SetAcctLineType
47497 (p_component_type => l_component_type
47498 ,p_event_type_code => l_event_type_code
47499 ,p_line_definition_owner_code => l_line_definition_owner_code
47500 ,p_line_definition_code => l_line_definition_code
47501 ,p_accounting_line_code => l_component_code
47502 ,p_accounting_line_type_code => l_component_type_code
47503 ,p_accounting_line_appl_id => l_component_appl_id
47504 ,p_amb_context_code => l_amb_context_code
47505 ,p_entity_code => l_entity_code
47506 ,p_event_class_code => l_event_class_code);
47507 --
47508 -- set accounting class
47509 --
47510 xla_ae_lines_pkg.SetAcctClass(
47511 p_accounting_class_code => 'FEDERAL_PROJECT_COST_CLEARING'
47512 , p_ae_header_id => l_ae_header_id
47513 );
47514
47515 --
47516 -- set rounding class
47517 --
47518 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
47519 'FEDERAL_PROJECT_COST_CLEARING';
47520
47521 --
47522 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
47523 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
47524 --
47525 -- bulk performance
47526 --
47527 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
47528
47529 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
47530 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
47531
47532 -- 4955764
47533 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47534 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
47535
47536 -- 4458381 Public Sector Enh
47537
47538 --
47539 -- set accounting attributes for the line type
47540 --
47541 l_entered_amt_idx := 22;
47542 l_accted_amt_idx := 27;
47543 l_bflow_applied_to_amt_idx := NULL; -- 5132302
47544 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
47545 l_rec_acct_attrs.array_char_value(1) := p_source_23;
47546 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
47547 l_rec_acct_attrs.array_char_value(2) := p_source_24;
47548 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
47549 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
47550 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
47551 l_rec_acct_attrs.array_num_value(4) := p_source_25;
47552 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
47553 l_rec_acct_attrs.array_char_value(5) := p_source_26;
47554 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
47555 l_rec_acct_attrs.array_num_value(6) := p_source_27;
47556 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
47557 l_rec_acct_attrs.array_date_value(7) := p_source_28;
47558 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
47559 l_rec_acct_attrs.array_num_value(8) := p_source_29;
47560 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
47561 l_rec_acct_attrs.array_char_value(9) := p_source_30;
47562 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
47563 l_rec_acct_attrs.array_char_value(10) := p_source_31;
47564 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
47565 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
47566 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
47567 l_rec_acct_attrs.array_num_value(12) := p_source_25;
47568 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
47569 l_rec_acct_attrs.array_char_value(13) := p_source_26;
47570 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
47571 l_rec_acct_attrs.array_num_value(14) := p_source_27;
47572 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
47573 l_rec_acct_attrs.array_date_value(15) := p_source_28;
47574 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
47575 l_rec_acct_attrs.array_num_value(16) := p_source_29;
47576 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
47577 l_rec_acct_attrs.array_char_value(17) := p_source_30;
47578 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
47579 l_rec_acct_attrs.array_char_value(18) := p_source_32;
47580 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
47581 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
47585 l_rec_acct_attrs.array_char_value(21) := p_source_35;
47582 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
47583 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
47584 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
47586 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
47587 l_rec_acct_attrs.array_num_value(22) := p_source_25;
47588 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
47589 l_rec_acct_attrs.array_char_value(23) := p_source_26;
47590 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
47591 l_rec_acct_attrs.array_date_value(24) := p_source_28;
47592 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
47593 l_rec_acct_attrs.array_num_value(25) := p_source_29;
47594 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
47595 l_rec_acct_attrs.array_char_value(26) := p_source_30;
47596 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
47597 l_rec_acct_attrs.array_num_value(27) := p_source_27;
47598 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
47599 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
47600 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
47601 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
47602 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
47603 l_rec_acct_attrs.array_char_value(30) := p_source_35;
47604
47605 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
47606 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
47607
47608 ---------------------------------------------------------------------------------------------------------------
47609 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
47610 ---------------------------------------------------------------------------------------------------------------
47611 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
47612
47613 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47614 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47615
47616 IF xla_accounting_cache_pkg.GetValueChar
47617 (p_source_code => 'LEDGER_CATEGORY_CODE'
47618 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
47619 AND l_bflow_method_code = 'PRIOR_ENTRY'
47620 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
47621 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
47622 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
47623 )
47624 THEN
47625 xla_ae_lines_pkg.BflowUpgEntry
47626 (p_business_method_code => l_bflow_method_code
47627 ,p_business_class_code => l_bflow_class_code
47628 ,p_balance_type => l_balance_type_code);
47629 ELSE
47630 NULL;
47631 -- No business flow processing for business flow method of NONE.
47632 END IF;
47633
47634 --
47635 -- call analytical criteria
47636 --
47637
47638 --
47639 -- call description
47640 --
47641 -- No description or it is inherited.
47642 --
47643 -- call ADRs
47644 -- Bug 4922099
47645 --
47646 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47647 (NVL(l_actual_upg_option, 'N') = 'O') OR
47648 (NVL(l_enc_upg_option, 'N') = 'O')
47649 )
47650 THEN
47651 NULL;
47652 --
47653 --
47654
47655 l_ccid := AcctDerRule_14(
47656 p_application_id => p_application_id
47657 , p_ae_header_id => l_ae_header_id
47658 , p_source_5 => p_source_5
47659 , p_source_7 => p_source_7
47660 , p_source_8 => p_source_8
47661 , x_transaction_coa_id => l_adr_transaction_coa_id
47662 , x_accounting_coa_id => l_adr_accounting_coa_id
47663 , x_value_type_code => l_adr_value_type_code
47664 , p_side => 'NA'
47665 );
47666
47667 xla_ae_lines_pkg.set_ccid(
47668 p_code_combination_id => l_ccid
47669 , p_value_type_code => l_adr_value_type_code
47670 , p_transaction_coa_id => l_adr_transaction_coa_id
47671 , p_accounting_coa_id => l_adr_accounting_coa_id
47672 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
47673 , p_adr_type_code => 'S'
47674 , p_component_type => l_component_type
47675 , p_component_code => l_component_code
47676 , p_component_type_code => l_component_type_code
47677 , p_component_appl_id => l_component_appl_id
47678 , p_amb_context_code => l_amb_context_code
47679 , p_side => 'NA'
47680 );
47681
47682
47683 l_segment := AcctDerRule_5(
47684 p_application_id => p_application_id
47685 , p_ae_header_id => l_ae_header_id
47686 , x_transaction_coa_id => l_adr_transaction_coa_id
47687 , x_accounting_coa_id => l_adr_accounting_coa_id
47688 , x_flexfield_segment_code => l_adr_flexfield_segment_code
47689 , x_flex_value_set_id => l_adr_flex_value_set_id
47690 , x_value_type_code => l_adr_value_type_code
47691 , x_value_combination_id => l_adr_value_combination_id
47692 , x_value_segment_code => l_adr_value_segment_code
47693 , p_side => 'NA'
47694 , p_override_seg_flag => 'Y'
47695 );
47696
47697 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
47698
47702 , p_from_segment_code => l_adr_value_segment_code
47699 xla_ae_lines_pkg.set_segment(
47700 p_to_segment_code => 'GL_ACCOUNT'
47701 , p_segment_value => l_segment
47703 , p_from_combination_id => l_adr_value_combination_id
47704 , p_value_type_code => l_adr_value_type_code
47705 , p_transaction_coa_id => l_adr_transaction_coa_id
47706 , p_accounting_coa_id => l_adr_accounting_coa_id
47707 , p_flexfield_segment_code => l_adr_flexfield_segment_code
47708 , p_flex_value_set_id => l_adr_flex_value_set_id
47709 , p_adr_code => 'FV_490201_PROJECTS'
47710 , p_adr_type_code => 'S'
47711 , p_component_type => l_component_type
47712 , p_component_code => l_component_code
47713 , p_component_type_code => l_component_type_code
47714 , p_component_appl_id => l_component_appl_id
47715 , p_amb_context_code => l_amb_context_code
47716 , p_entity_code => 'EXPENDITURES'
47717 , p_event_class_code => 'LABOR_COST'
47718 , p_side => 'NA'
47719 );
47720
47721 END IF;
47722
47723 --
47724 --
47725 END IF;
47726 --
47727 -- Bug 4922099
47728 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
47729 (NVL(l_enc_upg_option, 'N') = 'O')
47730 ) AND
47731 (l_bflow_method_code = 'PRIOR_ENTRY')
47732 )
47733 THEN
47734 IF
47735 --
47736 1 = 2
47737 --
47738 THEN
47739 xla_accounting_err_pkg.build_message
47740 (p_appli_s_name => 'XLA'
47741 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47742 ,p_token_1 => 'LINE_NUMBER'
47743 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
47744 ,p_token_2 => 'LINE_TYPE_NAME'
47745 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
47746 l_component_type
47747 ,l_component_code
47748 ,l_component_type_code
47749 ,l_component_appl_id
47750 ,l_amb_context_code
47751 ,l_entity_code
47752 ,l_event_class_code
47753 )
47754 ,p_token_3 => 'OWNER'
47755 ,p_value_3 => xla_lookups_pkg.get_meaning(
47756 p_lookup_type => 'XLA_OWNER_TYPE'
47757 ,p_lookup_code => l_component_type_code
47758 )
47759 ,p_token_4 => 'PRODUCT_NAME'
47760 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
47761 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
47762 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
47763 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
47764 ,p_ae_header_id => NULL
47765 );
47766
47767 IF (C_LEVEL_ERROR>= g_log_level) THEN
47768 trace
47769 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47770 ,p_level => C_LEVEL_ERROR
47771 ,p_module => l_log_module);
47772 END IF;
47773 END IF;
47774 END IF;
47775 --
47776 --
47777 ------------------------------------------------------------------------------------------------
47778 -- 4219869 Business Flow
47779 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
47780 -- Prior Entry. Currently, the following code is always generated.
47781 ------------------------------------------------------------------------------------------------
47782 XLA_AE_LINES_PKG.ValidateCurrentLine;
47783
47784 ------------------------------------------------------------------------------------
47785 -- 4219869 Business Flow
47786 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
47787 ------------------------------------------------------------------------------------
47788 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47789
47790 ----------------------------------------------------------------------------------
47791 -- 4219869 Business Flow
47792 -- Update journal entry status -- Need to generate this within IF <condition>
47793 ----------------------------------------------------------------------------------
47794 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47795 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
47796 ,p_balance_type_code => l_balance_type_code
47797 );
47798
47799 -------------------------------------------------------------------------------------------
47800 -- 4262811 - Generate the Accrual Reversal lines
47804 (g_array_event(p_event_id).array_value_num('header_index'));
47801 -------------------------------------------------------------------------------------------
47802 BEGIN
47803 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
47805 IF l_acc_rev_flag IS NULL THEN
47806 l_acc_rev_flag := 'N';
47807 END IF;
47808 EXCEPTION
47809 WHEN OTHERS THEN
47810 l_acc_rev_flag := 'N';
47811 END;
47812 --
47813 IF (l_acc_rev_flag = 'Y') THEN
47814
47815 -- 4645092 ------------------------------------------------------------------------------
47816 -- To allow MPA report to determine if it should generate report process
47817 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
47818 ------------------------------------------------------------------------------------------
47819
47820 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
47821 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
47822
47823 --
47824 -- Update the line information that should be overwritten
47825 --
47826 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
47827 p_header_num => 1);
47828 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
47829
47830 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
47831
47832 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
47833 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
47834 END IF;
47835
47836 --
47837 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
47838 --
47839 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47840 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
47841 ELSE
47842 ---------------------------------------------------------------------------------------------------
47843 -- 4262811a Switch Sign
47844 ---------------------------------------------------------------------------------------------------
47845 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
47846 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47847 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47848 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47849 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47850 -- 5132302
47851 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47852 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47853
47854 END IF;
47855
47856 -- 4955764
47857 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47858 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47859
47860
47861 XLA_AE_LINES_PKG.ValidateCurrentLine;
47862 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47863
47864 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47865 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47866 ,p_balance_type_code => l_balance_type_code);
47867
47868 END IF;
47869
47870 -----------------------------------------------------------------------------------------
47871 -- 4262811 Multiperiod Accounting
47872 -----------------------------------------------------------------------------------------
47873 -- No MPA option is assigned.
47874
47875
47876 END IF;
47877 --
47878
47879 --
47880 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47881 trace
47882 (p_msg => 'END of AcctLineType_103'
47883 ,p_level => C_LEVEL_PROCEDURE
47884 ,p_module => l_log_module);
47885 END IF;
47886 --
47887 EXCEPTION
47888 WHEN xla_exceptions_pkg.application_exception THEN
47889 RAISE;
47890 WHEN OTHERS THEN
47891 xla_exceptions_pkg.raise_message
47892 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_103');
47893 END AcctLineType_103;
47894 --
47895
47896 ---------------------------------------
47897 --
47898 -- PRIVATE FUNCTION
47899 -- AcctLineType_104
47900 --
47901 ---------------------------------------
47902 PROCEDURE AcctLineType_104 (
47903 p_application_id IN NUMBER
47904 ,p_event_id IN NUMBER
47905 ,p_calculate_acctd_flag IN VARCHAR2
47906 ,p_calculate_g_l_flag IN VARCHAR2
47907 ,p_actual_flag IN OUT VARCHAR2
47908 ,p_balance_type_code OUT VARCHAR2
47909 ,p_gain_or_loss_ref OUT VARCHAR2
47910
47911 --Cost CCID
47912 , p_source_4 IN NUMBER
47913 --Allow Account Override Flag
47914 , p_source_5 IN VARCHAR2
47915 --Cost Clearing CCID
47916 , p_source_7 IN NUMBER
47917 --Adjustment Cost Clearing CCID
47918 , p_source_8 IN NUMBER
47919 --Reversing Line Flag
47920 , p_source_23 IN VARCHAR2
47921 --Actual Upgrade Credit Accounting Class
47922 , p_source_24 IN VARCHAR2
47923 --Entered Raw Cost
47924 , p_source_25 IN NUMBER
47925 --Entered Currency Code
47926 , p_source_26 IN VARCHAR2
47927 --Accounted Raw Cost
47928 , p_source_27 IN NUMBER
47929 --Exchange Rate Date
47933 --Exchange Rate Type
47930 , p_source_28 IN DATE
47931 --Exchange Rate
47932 , p_source_29 IN NUMBER
47934 , p_source_30 IN VARCHAR2
47935 --Actual Upgrade Debit Accounting Class
47936 , p_source_31 IN VARCHAR2
47937 --Use Actuals Upgrade Attributes Flag
47938 , p_source_32 IN VARCHAR2
47939 --Expenditure Item ID
47940 , p_source_33 IN NUMBER
47941 --Cost Distribution Line Number
47942 , p_source_34 IN NUMBER
47943 --Line Type
47944 , p_source_35 IN VARCHAR2
47945 , p_source_35_meaning IN VARCHAR2
47946 --Reversed Line Number
47947 , p_source_36 IN NUMBER
47948 )
47949 IS
47950
47951 l_component_type VARCHAR2(80);
47952 l_component_code VARCHAR2(30);
47953 l_component_type_code VARCHAR2(1);
47954 l_component_appl_id INTEGER;
47955 l_amb_context_code VARCHAR2(30);
47956 l_entity_code VARCHAR2(30);
47957 l_event_class_code VARCHAR2(30);
47958 l_ae_header_id NUMBER;
47959 l_event_type_code VARCHAR2(30);
47960 l_line_definition_code VARCHAR2(30);
47961 l_line_definition_owner_code VARCHAR2(1);
47962 --
47963 -- adr variables
47964 l_segment VARCHAR2(30);
47965 l_ccid NUMBER;
47966 l_adr_transaction_coa_id NUMBER;
47967 l_adr_accounting_coa_id NUMBER;
47968 l_adr_flexfield_segment_code VARCHAR2(30);
47969 l_adr_flex_value_set_id NUMBER;
47970 l_adr_value_type_code VARCHAR2(30);
47971 l_adr_value_combination_id NUMBER;
47972 l_adr_value_segment_code VARCHAR2(30);
47973
47974 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
47975 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
47976 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
47977 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
47978
47979 -- 4262811 Variables ------------------------------------------------------------------------------------------
47980 l_entered_amt_idx NUMBER;
47981 l_accted_amt_idx NUMBER;
47982 l_acc_rev_flag VARCHAR2(1);
47983 l_accrual_line_num NUMBER;
47984 l_tmp_amt NUMBER;
47985 l_acc_rev_natural_side_code VARCHAR2(1);
47986
47987 l_num_entries NUMBER;
47988 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
47989 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
47990 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
47991 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
47992 l_recog_line_1 NUMBER;
47993 l_recog_line_2 NUMBER;
47994
47995 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
47996 l_bflow_applied_to_amt NUMBER; -- 5132302
47997 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
47998
47999 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
48000
48001 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
48002 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
48003
48004 ---------------------------------------------------------------------------------------------------------------
48005
48006
48007 --
48008 -- bulk performance
48009 --
48010 l_balance_type_code VARCHAR2(1);
48011 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
48012 l_log_module VARCHAR2(240);
48013
48014 --
48015 -- Upgrade strategy
48016 --
48017 l_actual_upg_option VARCHAR2(1);
48018 l_enc_upg_option VARCHAR2(1);
48019
48020 --
48021 BEGIN
48022 --
48023 IF g_log_enabled THEN
48024 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_104';
48025 END IF;
48026 --
48027 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48028
48029 trace
48030 (p_msg => 'BEGIN of AcctLineType_104'
48031 ,p_level => C_LEVEL_PROCEDURE
48032 ,p_module => l_log_module);
48033
48034 END IF;
48035 --
48036 l_component_type := 'AMB_JLT';
48037 l_component_code := 'PA_RAW_COST_CLEAR_FED';
48038 l_component_type_code := 'S';
48039 l_component_appl_id := 275;
48040 l_amb_context_code := 'DEFAULT';
48041 l_entity_code := 'EXPENDITURES';
48042 l_event_class_code := 'MISC_COST';
48043 l_event_type_code := 'MISC_COST_ALL';
48044 l_line_definition_owner_code := 'S';
48045 l_line_definition_code := 'FV_PROJECTS_JLD';
48046 --
48047 l_balance_type_code := 'A';
48048 l_segment := NULL;
48049 l_ccid := NULL;
48050 l_adr_transaction_coa_id := NULL;
48051 l_adr_accounting_coa_id := NULL;
48052 l_adr_flexfield_segment_code := NULL;
48053 l_adr_flex_value_set_id := NULL;
48054 l_adr_value_type_code := NULL;
48055 l_adr_value_combination_id := NULL;
48056 l_adr_value_segment_code := NULL;
48057
48058 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
48059 l_bflow_class_code := ''; -- 4219869 Business Flow
48060 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
48061 l_budgetary_control_flag := 'N';
48062
48063 l_bflow_applied_to_amt_idx := NULL; -- 5132302
48064 l_bflow_applied_to_amt := NULL; -- 5132302
48065 l_entered_amt_idx := NULL; -- 4262811
48066 l_accted_amt_idx := NULL; -- 4262811
48067 l_acc_rev_flag := NULL; -- 4262811
48071
48068 l_accrual_line_num := NULL; -- 4262811
48069 l_tmp_amt := NULL; -- 4262811
48070 --
48072 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
48073 l_balance_type_code <> 'B' THEN
48074
48075 --
48076 XLA_AE_LINES_PKG.SetNewLine;
48077
48078 p_balance_type_code := l_balance_type_code;
48079 -- set the flag so later we will know whether the gain loss line needs to be created
48080
48081 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
48082 p_actual_flag :='A';
48083 END IF;
48084
48085 --
48086 -- bulk performance
48087 --
48088 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
48089 p_header_num => 0); -- 4262811
48090 --
48091 -- set accounting line options
48092 --
48093 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
48094 p_natural_side_code => 'C'
48095 , p_gain_or_loss_flag => 'N'
48096 , p_gl_transfer_mode_code => 'S'
48097 , p_acct_entry_type_code => 'A'
48098 , p_switch_side_flag => 'Y'
48099 , p_merge_duplicate_code => 'N'
48100 );
48101 --
48102 l_acc_rev_natural_side_code := 'D'; -- 4262811
48103 --
48104 --
48105 -- set accounting line type info
48106 --
48107 xla_ae_lines_pkg.SetAcctLineType
48108 (p_component_type => l_component_type
48109 ,p_event_type_code => l_event_type_code
48110 ,p_line_definition_owner_code => l_line_definition_owner_code
48111 ,p_line_definition_code => l_line_definition_code
48112 ,p_accounting_line_code => l_component_code
48113 ,p_accounting_line_type_code => l_component_type_code
48114 ,p_accounting_line_appl_id => l_component_appl_id
48115 ,p_amb_context_code => l_amb_context_code
48116 ,p_entity_code => l_entity_code
48117 ,p_event_class_code => l_event_class_code);
48118 --
48119 -- set accounting class
48120 --
48121 xla_ae_lines_pkg.SetAcctClass(
48122 p_accounting_class_code => 'FEDERAL_PROJECT_COST_CLEARING'
48123 , p_ae_header_id => l_ae_header_id
48124 );
48125
48126 --
48127 -- set rounding class
48128 --
48129 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
48130 'FEDERAL_PROJECT_COST_CLEARING';
48131
48132 --
48133 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
48134 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
48135 --
48136 -- bulk performance
48137 --
48138 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
48139
48140 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
48141 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
48142
48143 -- 4955764
48144 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48145 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
48146
48147 -- 4458381 Public Sector Enh
48148
48149 --
48150 -- set accounting attributes for the line type
48151 --
48152 l_entered_amt_idx := 22;
48153 l_accted_amt_idx := 27;
48154 l_bflow_applied_to_amt_idx := NULL; -- 5132302
48155 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
48156 l_rec_acct_attrs.array_char_value(1) := p_source_23;
48157 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
48158 l_rec_acct_attrs.array_char_value(2) := p_source_24;
48159 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
48160 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
48161 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
48162 l_rec_acct_attrs.array_num_value(4) := p_source_25;
48163 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
48164 l_rec_acct_attrs.array_char_value(5) := p_source_26;
48165 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
48166 l_rec_acct_attrs.array_num_value(6) := p_source_27;
48167 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
48168 l_rec_acct_attrs.array_date_value(7) := p_source_28;
48169 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
48170 l_rec_acct_attrs.array_num_value(8) := p_source_29;
48171 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
48172 l_rec_acct_attrs.array_char_value(9) := p_source_30;
48173 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
48174 l_rec_acct_attrs.array_char_value(10) := p_source_31;
48175 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
48176 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
48177 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
48178 l_rec_acct_attrs.array_num_value(12) := p_source_25;
48179 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
48180 l_rec_acct_attrs.array_char_value(13) := p_source_26;
48181 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
48182 l_rec_acct_attrs.array_num_value(14) := p_source_27;
48183 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
48184 l_rec_acct_attrs.array_date_value(15) := p_source_28;
48185 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
48186 l_rec_acct_attrs.array_num_value(16) := p_source_29;
48190 l_rec_acct_attrs.array_char_value(18) := p_source_32;
48187 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
48188 l_rec_acct_attrs.array_char_value(17) := p_source_30;
48189 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
48191 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
48192 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
48193 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
48194 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
48195 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
48196 l_rec_acct_attrs.array_char_value(21) := p_source_35;
48197 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
48198 l_rec_acct_attrs.array_num_value(22) := p_source_25;
48199 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
48200 l_rec_acct_attrs.array_char_value(23) := p_source_26;
48201 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
48202 l_rec_acct_attrs.array_date_value(24) := p_source_28;
48203 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
48204 l_rec_acct_attrs.array_num_value(25) := p_source_29;
48205 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
48206 l_rec_acct_attrs.array_char_value(26) := p_source_30;
48207 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
48208 l_rec_acct_attrs.array_num_value(27) := p_source_27;
48209 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
48210 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
48211 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
48212 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
48213 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
48214 l_rec_acct_attrs.array_char_value(30) := p_source_35;
48215
48216 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
48217 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
48218
48219 ---------------------------------------------------------------------------------------------------------------
48220 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
48221 ---------------------------------------------------------------------------------------------------------------
48222 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
48223
48224 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48225 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48226
48227 IF xla_accounting_cache_pkg.GetValueChar
48228 (p_source_code => 'LEDGER_CATEGORY_CODE'
48229 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
48230 AND l_bflow_method_code = 'PRIOR_ENTRY'
48231 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
48232 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
48233 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
48234 )
48235 THEN
48236 xla_ae_lines_pkg.BflowUpgEntry
48237 (p_business_method_code => l_bflow_method_code
48238 ,p_business_class_code => l_bflow_class_code
48239 ,p_balance_type => l_balance_type_code);
48240 ELSE
48241 NULL;
48242 -- No business flow processing for business flow method of NONE.
48243 END IF;
48244
48245 --
48246 -- call analytical criteria
48247 --
48248
48249 --
48250 -- call description
48251 --
48252 -- No description or it is inherited.
48253 --
48254 -- call ADRs
48255 -- Bug 4922099
48256 --
48257 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48258 (NVL(l_actual_upg_option, 'N') = 'O') OR
48259 (NVL(l_enc_upg_option, 'N') = 'O')
48260 )
48261 THEN
48262 NULL;
48263 --
48264 --
48265
48266 l_ccid := AcctDerRule_14(
48267 p_application_id => p_application_id
48268 , p_ae_header_id => l_ae_header_id
48269 , p_source_5 => p_source_5
48270 , p_source_7 => p_source_7
48271 , p_source_8 => p_source_8
48272 , x_transaction_coa_id => l_adr_transaction_coa_id
48273 , x_accounting_coa_id => l_adr_accounting_coa_id
48274 , x_value_type_code => l_adr_value_type_code
48275 , p_side => 'NA'
48276 );
48277
48278 xla_ae_lines_pkg.set_ccid(
48279 p_code_combination_id => l_ccid
48280 , p_value_type_code => l_adr_value_type_code
48281 , p_transaction_coa_id => l_adr_transaction_coa_id
48282 , p_accounting_coa_id => l_adr_accounting_coa_id
48283 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
48284 , p_adr_type_code => 'S'
48285 , p_component_type => l_component_type
48286 , p_component_code => l_component_code
48287 , p_component_type_code => l_component_type_code
48288 , p_component_appl_id => l_component_appl_id
48289 , p_amb_context_code => l_amb_context_code
48290 , p_side => 'NA'
48291 );
48292
48293
48294 l_segment := AcctDerRule_5(
48295 p_application_id => p_application_id
48296 , p_ae_header_id => l_ae_header_id
48297 , x_transaction_coa_id => l_adr_transaction_coa_id
48298 , x_accounting_coa_id => l_adr_accounting_coa_id
48299 , x_flexfield_segment_code => l_adr_flexfield_segment_code
48300 , x_flex_value_set_id => l_adr_flex_value_set_id
48304 , p_side => 'NA'
48301 , x_value_type_code => l_adr_value_type_code
48302 , x_value_combination_id => l_adr_value_combination_id
48303 , x_value_segment_code => l_adr_value_segment_code
48305 , p_override_seg_flag => 'Y'
48306 );
48307
48308 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
48309
48310 xla_ae_lines_pkg.set_segment(
48311 p_to_segment_code => 'GL_ACCOUNT'
48312 , p_segment_value => l_segment
48313 , p_from_segment_code => l_adr_value_segment_code
48314 , p_from_combination_id => l_adr_value_combination_id
48315 , p_value_type_code => l_adr_value_type_code
48316 , p_transaction_coa_id => l_adr_transaction_coa_id
48317 , p_accounting_coa_id => l_adr_accounting_coa_id
48318 , p_flexfield_segment_code => l_adr_flexfield_segment_code
48319 , p_flex_value_set_id => l_adr_flex_value_set_id
48320 , p_adr_code => 'FV_490201_PROJECTS'
48321 , p_adr_type_code => 'S'
48322 , p_component_type => l_component_type
48323 , p_component_code => l_component_code
48324 , p_component_type_code => l_component_type_code
48325 , p_component_appl_id => l_component_appl_id
48326 , p_amb_context_code => l_amb_context_code
48327 , p_entity_code => 'EXPENDITURES'
48328 , p_event_class_code => 'MISC_COST'
48329 , p_side => 'NA'
48330 );
48331
48332 END IF;
48333
48334 --
48335 --
48336 END IF;
48337 --
48338 -- Bug 4922099
48339 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
48340 (NVL(l_enc_upg_option, 'N') = 'O')
48341 ) AND
48342 (l_bflow_method_code = 'PRIOR_ENTRY')
48343 )
48344 THEN
48345 IF
48346 --
48347 1 = 2
48348 --
48349 THEN
48350 xla_accounting_err_pkg.build_message
48351 (p_appli_s_name => 'XLA'
48352 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48353 ,p_token_1 => 'LINE_NUMBER'
48354 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
48355 ,p_token_2 => 'LINE_TYPE_NAME'
48356 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
48357 l_component_type
48358 ,l_component_code
48359 ,l_component_type_code
48360 ,l_component_appl_id
48361 ,l_amb_context_code
48362 ,l_entity_code
48363 ,l_event_class_code
48364 )
48365 ,p_token_3 => 'OWNER'
48366 ,p_value_3 => xla_lookups_pkg.get_meaning(
48367 p_lookup_type => 'XLA_OWNER_TYPE'
48368 ,p_lookup_code => l_component_type_code
48369 )
48370 ,p_token_4 => 'PRODUCT_NAME'
48371 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
48372 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
48373 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
48374 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
48375 ,p_ae_header_id => NULL
48376 );
48377
48378 IF (C_LEVEL_ERROR>= g_log_level) THEN
48379 trace
48380 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48381 ,p_level => C_LEVEL_ERROR
48382 ,p_module => l_log_module);
48383 END IF;
48384 END IF;
48385 END IF;
48386 --
48387 --
48388 ------------------------------------------------------------------------------------------------
48389 -- 4219869 Business Flow
48390 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
48391 -- Prior Entry. Currently, the following code is always generated.
48392 ------------------------------------------------------------------------------------------------
48393 XLA_AE_LINES_PKG.ValidateCurrentLine;
48394
48395 ------------------------------------------------------------------------------------
48396 -- 4219869 Business Flow
48397 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
48398 ------------------------------------------------------------------------------------
48399 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48400
48401 ----------------------------------------------------------------------------------
48402 -- 4219869 Business Flow
48403 -- Update journal entry status -- Need to generate this within IF <condition>
48404 ----------------------------------------------------------------------------------
48408 );
48405 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48406 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
48407 ,p_balance_type_code => l_balance_type_code
48409
48410 -------------------------------------------------------------------------------------------
48411 -- 4262811 - Generate the Accrual Reversal lines
48412 -------------------------------------------------------------------------------------------
48413 BEGIN
48414 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
48415 (g_array_event(p_event_id).array_value_num('header_index'));
48416 IF l_acc_rev_flag IS NULL THEN
48417 l_acc_rev_flag := 'N';
48418 END IF;
48419 EXCEPTION
48420 WHEN OTHERS THEN
48421 l_acc_rev_flag := 'N';
48422 END;
48423 --
48424 IF (l_acc_rev_flag = 'Y') THEN
48425
48426 -- 4645092 ------------------------------------------------------------------------------
48427 -- To allow MPA report to determine if it should generate report process
48428 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
48429 ------------------------------------------------------------------------------------------
48430
48431 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
48432 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
48433
48434 --
48435 -- Update the line information that should be overwritten
48436 --
48437 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
48438 p_header_num => 1);
48439 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
48440
48441 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
48442
48443 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
48444 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
48445 END IF;
48446
48447 --
48448 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
48449 --
48450 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
48451 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
48452 ELSE
48453 ---------------------------------------------------------------------------------------------------
48454 -- 4262811a Switch Sign
48455 ---------------------------------------------------------------------------------------------------
48456 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
48457 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48458 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48459 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48460 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48461 -- 5132302
48462 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
48463 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48464
48465 END IF;
48466
48467 -- 4955764
48468 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48469 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
48470
48471
48472 XLA_AE_LINES_PKG.ValidateCurrentLine;
48473 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48474
48475 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48476 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
48477 ,p_balance_type_code => l_balance_type_code);
48478
48479 END IF;
48480
48481 -----------------------------------------------------------------------------------------
48482 -- 4262811 Multiperiod Accounting
48483 -----------------------------------------------------------------------------------------
48484 -- No MPA option is assigned.
48485
48486
48487 END IF;
48488 --
48489
48490 --
48491 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48492 trace
48493 (p_msg => 'END of AcctLineType_104'
48494 ,p_level => C_LEVEL_PROCEDURE
48495 ,p_module => l_log_module);
48496 END IF;
48497 --
48498 EXCEPTION
48499 WHEN xla_exceptions_pkg.application_exception THEN
48500 RAISE;
48501 WHEN OTHERS THEN
48502 xla_exceptions_pkg.raise_message
48503 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_104');
48504 END AcctLineType_104;
48505 --
48506
48507 ---------------------------------------
48508 --
48509 -- PRIVATE FUNCTION
48510 -- AcctLineType_105
48511 --
48512 ---------------------------------------
48513 PROCEDURE AcctLineType_105 (
48514 p_application_id IN NUMBER
48515 ,p_event_id IN NUMBER
48516 ,p_calculate_acctd_flag IN VARCHAR2
48517 ,p_calculate_g_l_flag IN VARCHAR2
48518 ,p_actual_flag IN OUT VARCHAR2
48519 ,p_balance_type_code OUT VARCHAR2
48520 ,p_gain_or_loss_ref OUT VARCHAR2
48521
48522 --Cost CCID
48523 , p_source_4 IN NUMBER
48524 --Allow Account Override Flag
48525 , p_source_5 IN VARCHAR2
48526 --Cost Clearing CCID
48527 , p_source_7 IN NUMBER
48528 --Adjustment Cost Clearing CCID
48529 , p_source_8 IN NUMBER
48530 --Reversing Line Flag
48531 , p_source_23 IN VARCHAR2
48535 , p_source_25 IN NUMBER
48532 --Actual Upgrade Credit Accounting Class
48533 , p_source_24 IN VARCHAR2
48534 --Entered Raw Cost
48536 --Entered Currency Code
48537 , p_source_26 IN VARCHAR2
48538 --Accounted Raw Cost
48539 , p_source_27 IN NUMBER
48540 --Exchange Rate Date
48541 , p_source_28 IN DATE
48542 --Exchange Rate
48543 , p_source_29 IN NUMBER
48544 --Exchange Rate Type
48545 , p_source_30 IN VARCHAR2
48546 --Actual Upgrade Debit Accounting Class
48547 , p_source_31 IN VARCHAR2
48548 --Use Actuals Upgrade Attributes Flag
48549 , p_source_32 IN VARCHAR2
48550 --Expenditure Item ID
48551 , p_source_33 IN NUMBER
48552 --Cost Distribution Line Number
48553 , p_source_34 IN NUMBER
48554 --Line Type
48555 , p_source_35 IN VARCHAR2
48556 , p_source_35_meaning IN VARCHAR2
48557 --Reversed Line Number
48558 , p_source_36 IN NUMBER
48559 )
48560 IS
48561
48562 l_component_type VARCHAR2(80);
48563 l_component_code VARCHAR2(30);
48564 l_component_type_code VARCHAR2(1);
48565 l_component_appl_id INTEGER;
48566 l_amb_context_code VARCHAR2(30);
48567 l_entity_code VARCHAR2(30);
48568 l_event_class_code VARCHAR2(30);
48569 l_ae_header_id NUMBER;
48570 l_event_type_code VARCHAR2(30);
48571 l_line_definition_code VARCHAR2(30);
48572 l_line_definition_owner_code VARCHAR2(1);
48573 --
48574 -- adr variables
48575 l_segment VARCHAR2(30);
48576 l_ccid NUMBER;
48577 l_adr_transaction_coa_id NUMBER;
48578 l_adr_accounting_coa_id NUMBER;
48579 l_adr_flexfield_segment_code VARCHAR2(30);
48580 l_adr_flex_value_set_id NUMBER;
48581 l_adr_value_type_code VARCHAR2(30);
48582 l_adr_value_combination_id NUMBER;
48583 l_adr_value_segment_code VARCHAR2(30);
48584
48585 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
48586 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
48587 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
48588 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
48589
48590 -- 4262811 Variables ------------------------------------------------------------------------------------------
48591 l_entered_amt_idx NUMBER;
48592 l_accted_amt_idx NUMBER;
48593 l_acc_rev_flag VARCHAR2(1);
48594 l_accrual_line_num NUMBER;
48595 l_tmp_amt NUMBER;
48596 l_acc_rev_natural_side_code VARCHAR2(1);
48597
48598 l_num_entries NUMBER;
48599 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
48600 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
48601 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
48602 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
48603 l_recog_line_1 NUMBER;
48604 l_recog_line_2 NUMBER;
48605
48606 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
48607 l_bflow_applied_to_amt NUMBER; -- 5132302
48608 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
48609
48610 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
48611
48612 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
48613 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
48614
48615 ---------------------------------------------------------------------------------------------------------------
48616
48617
48618 --
48619 -- bulk performance
48620 --
48621 l_balance_type_code VARCHAR2(1);
48622 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
48623 l_log_module VARCHAR2(240);
48624
48625 --
48626 -- Upgrade strategy
48627 --
48628 l_actual_upg_option VARCHAR2(1);
48629 l_enc_upg_option VARCHAR2(1);
48630
48631 --
48632 BEGIN
48633 --
48634 IF g_log_enabled THEN
48635 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_105';
48636 END IF;
48637 --
48638 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48639
48640 trace
48641 (p_msg => 'BEGIN of AcctLineType_105'
48642 ,p_level => C_LEVEL_PROCEDURE
48643 ,p_module => l_log_module);
48644
48645 END IF;
48646 --
48647 l_component_type := 'AMB_JLT';
48648 l_component_code := 'PA_RAW_COST_CLEAR_FED';
48649 l_component_type_code := 'S';
48650 l_component_appl_id := 275;
48651 l_amb_context_code := 'DEFAULT';
48652 l_entity_code := 'EXPENDITURES';
48653 l_event_class_code := 'WIP_COST';
48654 l_event_type_code := 'WIP_COST_ALL';
48655 l_line_definition_owner_code := 'S';
48656 l_line_definition_code := 'FV_PROJECTS_JLD';
48657 --
48658 l_balance_type_code := 'A';
48659 l_segment := NULL;
48660 l_ccid := NULL;
48661 l_adr_transaction_coa_id := NULL;
48662 l_adr_accounting_coa_id := NULL;
48663 l_adr_flexfield_segment_code := NULL;
48664 l_adr_flex_value_set_id := NULL;
48665 l_adr_value_type_code := NULL;
48666 l_adr_value_combination_id := NULL;
48667 l_adr_value_segment_code := NULL;
48668
48669 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
48670 l_bflow_class_code := ''; -- 4219869 Business Flow
48671 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
48672 l_budgetary_control_flag := 'N';
48676 l_entered_amt_idx := NULL; -- 4262811
48673
48674 l_bflow_applied_to_amt_idx := NULL; -- 5132302
48675 l_bflow_applied_to_amt := NULL; -- 5132302
48677 l_accted_amt_idx := NULL; -- 4262811
48678 l_acc_rev_flag := NULL; -- 4262811
48679 l_accrual_line_num := NULL; -- 4262811
48680 l_tmp_amt := NULL; -- 4262811
48681 --
48682
48683 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
48684 l_balance_type_code <> 'B' THEN
48685
48686 --
48687 XLA_AE_LINES_PKG.SetNewLine;
48688
48689 p_balance_type_code := l_balance_type_code;
48690 -- set the flag so later we will know whether the gain loss line needs to be created
48691
48692 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
48693 p_actual_flag :='A';
48694 END IF;
48695
48696 --
48697 -- bulk performance
48698 --
48699 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
48700 p_header_num => 0); -- 4262811
48701 --
48702 -- set accounting line options
48703 --
48704 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
48705 p_natural_side_code => 'C'
48706 , p_gain_or_loss_flag => 'N'
48707 , p_gl_transfer_mode_code => 'S'
48708 , p_acct_entry_type_code => 'A'
48709 , p_switch_side_flag => 'Y'
48710 , p_merge_duplicate_code => 'N'
48711 );
48712 --
48713 l_acc_rev_natural_side_code := 'D'; -- 4262811
48714 --
48715 --
48716 -- set accounting line type info
48717 --
48718 xla_ae_lines_pkg.SetAcctLineType
48719 (p_component_type => l_component_type
48720 ,p_event_type_code => l_event_type_code
48721 ,p_line_definition_owner_code => l_line_definition_owner_code
48722 ,p_line_definition_code => l_line_definition_code
48723 ,p_accounting_line_code => l_component_code
48724 ,p_accounting_line_type_code => l_component_type_code
48725 ,p_accounting_line_appl_id => l_component_appl_id
48726 ,p_amb_context_code => l_amb_context_code
48727 ,p_entity_code => l_entity_code
48728 ,p_event_class_code => l_event_class_code);
48729 --
48730 -- set accounting class
48731 --
48732 xla_ae_lines_pkg.SetAcctClass(
48733 p_accounting_class_code => 'FEDERAL_PROJECT_COST_CLEARING'
48734 , p_ae_header_id => l_ae_header_id
48735 );
48736
48737 --
48738 -- set rounding class
48739 --
48740 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
48741 'FEDERAL_PROJECT_COST_CLEARING';
48742
48743 --
48744 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
48745 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
48746 --
48747 -- bulk performance
48748 --
48749 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
48750
48751 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
48752 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
48753
48754 -- 4955764
48755 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48756 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
48757
48758 -- 4458381 Public Sector Enh
48759
48760 --
48761 -- set accounting attributes for the line type
48762 --
48763 l_entered_amt_idx := 22;
48764 l_accted_amt_idx := 27;
48765 l_bflow_applied_to_amt_idx := NULL; -- 5132302
48766 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
48767 l_rec_acct_attrs.array_char_value(1) := p_source_23;
48768 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
48769 l_rec_acct_attrs.array_char_value(2) := p_source_24;
48770 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
48771 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
48772 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
48773 l_rec_acct_attrs.array_num_value(4) := p_source_25;
48774 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
48775 l_rec_acct_attrs.array_char_value(5) := p_source_26;
48776 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
48777 l_rec_acct_attrs.array_num_value(6) := p_source_27;
48778 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
48779 l_rec_acct_attrs.array_date_value(7) := p_source_28;
48780 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
48781 l_rec_acct_attrs.array_num_value(8) := p_source_29;
48782 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
48783 l_rec_acct_attrs.array_char_value(9) := p_source_30;
48784 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
48785 l_rec_acct_attrs.array_char_value(10) := p_source_31;
48786 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
48787 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
48788 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
48789 l_rec_acct_attrs.array_num_value(12) := p_source_25;
48790 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
48791 l_rec_acct_attrs.array_char_value(13) := p_source_26;
48792 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
48793 l_rec_acct_attrs.array_num_value(14) := p_source_27;
48797 l_rec_acct_attrs.array_num_value(16) := p_source_29;
48794 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
48795 l_rec_acct_attrs.array_date_value(15) := p_source_28;
48796 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
48798 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
48799 l_rec_acct_attrs.array_char_value(17) := p_source_30;
48800 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
48801 l_rec_acct_attrs.array_char_value(18) := p_source_32;
48802 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
48803 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
48804 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
48805 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
48806 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
48807 l_rec_acct_attrs.array_char_value(21) := p_source_35;
48808 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
48809 l_rec_acct_attrs.array_num_value(22) := p_source_25;
48810 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
48811 l_rec_acct_attrs.array_char_value(23) := p_source_26;
48812 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
48813 l_rec_acct_attrs.array_date_value(24) := p_source_28;
48814 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
48815 l_rec_acct_attrs.array_num_value(25) := p_source_29;
48816 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
48817 l_rec_acct_attrs.array_char_value(26) := p_source_30;
48818 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
48819 l_rec_acct_attrs.array_num_value(27) := p_source_27;
48820 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
48821 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
48822 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
48823 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
48824 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
48825 l_rec_acct_attrs.array_char_value(30) := p_source_35;
48826
48827 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
48828 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
48829
48830 ---------------------------------------------------------------------------------------------------------------
48831 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
48832 ---------------------------------------------------------------------------------------------------------------
48833 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
48834
48835 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48836 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48837
48838 IF xla_accounting_cache_pkg.GetValueChar
48839 (p_source_code => 'LEDGER_CATEGORY_CODE'
48840 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
48841 AND l_bflow_method_code = 'PRIOR_ENTRY'
48842 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
48843 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
48844 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
48845 )
48846 THEN
48847 xla_ae_lines_pkg.BflowUpgEntry
48848 (p_business_method_code => l_bflow_method_code
48849 ,p_business_class_code => l_bflow_class_code
48850 ,p_balance_type => l_balance_type_code);
48851 ELSE
48852 NULL;
48853 -- No business flow processing for business flow method of NONE.
48854 END IF;
48855
48856 --
48857 -- call analytical criteria
48858 --
48859
48860 --
48861 -- call description
48862 --
48863 -- No description or it is inherited.
48864 --
48865 -- call ADRs
48866 -- Bug 4922099
48867 --
48868 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48869 (NVL(l_actual_upg_option, 'N') = 'O') OR
48870 (NVL(l_enc_upg_option, 'N') = 'O')
48871 )
48872 THEN
48873 NULL;
48874 --
48875 --
48876
48877 l_ccid := AcctDerRule_14(
48878 p_application_id => p_application_id
48879 , p_ae_header_id => l_ae_header_id
48880 , p_source_5 => p_source_5
48881 , p_source_7 => p_source_7
48882 , p_source_8 => p_source_8
48883 , x_transaction_coa_id => l_adr_transaction_coa_id
48884 , x_accounting_coa_id => l_adr_accounting_coa_id
48885 , x_value_type_code => l_adr_value_type_code
48886 , p_side => 'NA'
48887 );
48888
48889 xla_ae_lines_pkg.set_ccid(
48890 p_code_combination_id => l_ccid
48891 , p_value_type_code => l_adr_value_type_code
48892 , p_transaction_coa_id => l_adr_transaction_coa_id
48893 , p_accounting_coa_id => l_adr_accounting_coa_id
48894 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
48895 , p_adr_type_code => 'S'
48896 , p_component_type => l_component_type
48897 , p_component_code => l_component_code
48898 , p_component_type_code => l_component_type_code
48899 , p_component_appl_id => l_component_appl_id
48900 , p_amb_context_code => l_amb_context_code
48901 , p_side => 'NA'
48902 );
48903
48904
48905 l_segment := AcctDerRule_5(
48906 p_application_id => p_application_id
48907 , p_ae_header_id => l_ae_header_id
48911 , x_flex_value_set_id => l_adr_flex_value_set_id
48908 , x_transaction_coa_id => l_adr_transaction_coa_id
48909 , x_accounting_coa_id => l_adr_accounting_coa_id
48910 , x_flexfield_segment_code => l_adr_flexfield_segment_code
48912 , x_value_type_code => l_adr_value_type_code
48913 , x_value_combination_id => l_adr_value_combination_id
48914 , x_value_segment_code => l_adr_value_segment_code
48915 , p_side => 'NA'
48916 , p_override_seg_flag => 'Y'
48917 );
48918
48919 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
48920
48921 xla_ae_lines_pkg.set_segment(
48922 p_to_segment_code => 'GL_ACCOUNT'
48923 , p_segment_value => l_segment
48924 , p_from_segment_code => l_adr_value_segment_code
48925 , p_from_combination_id => l_adr_value_combination_id
48926 , p_value_type_code => l_adr_value_type_code
48927 , p_transaction_coa_id => l_adr_transaction_coa_id
48928 , p_accounting_coa_id => l_adr_accounting_coa_id
48929 , p_flexfield_segment_code => l_adr_flexfield_segment_code
48930 , p_flex_value_set_id => l_adr_flex_value_set_id
48931 , p_adr_code => 'FV_490201_PROJECTS'
48932 , p_adr_type_code => 'S'
48933 , p_component_type => l_component_type
48934 , p_component_code => l_component_code
48935 , p_component_type_code => l_component_type_code
48936 , p_component_appl_id => l_component_appl_id
48937 , p_amb_context_code => l_amb_context_code
48938 , p_entity_code => 'EXPENDITURES'
48939 , p_event_class_code => 'WIP_COST'
48940 , p_side => 'NA'
48941 );
48942
48943 END IF;
48944
48945 --
48946 --
48947 END IF;
48948 --
48949 -- Bug 4922099
48950 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
48951 (NVL(l_enc_upg_option, 'N') = 'O')
48952 ) AND
48953 (l_bflow_method_code = 'PRIOR_ENTRY')
48954 )
48955 THEN
48956 IF
48957 --
48958 1 = 2
48959 --
48960 THEN
48961 xla_accounting_err_pkg.build_message
48962 (p_appli_s_name => 'XLA'
48963 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48964 ,p_token_1 => 'LINE_NUMBER'
48965 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
48966 ,p_token_2 => 'LINE_TYPE_NAME'
48967 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
48968 l_component_type
48969 ,l_component_code
48970 ,l_component_type_code
48971 ,l_component_appl_id
48972 ,l_amb_context_code
48973 ,l_entity_code
48974 ,l_event_class_code
48975 )
48976 ,p_token_3 => 'OWNER'
48977 ,p_value_3 => xla_lookups_pkg.get_meaning(
48978 p_lookup_type => 'XLA_OWNER_TYPE'
48979 ,p_lookup_code => l_component_type_code
48980 )
48981 ,p_token_4 => 'PRODUCT_NAME'
48982 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
48983 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
48984 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
48985 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
48986 ,p_ae_header_id => NULL
48987 );
48988
48989 IF (C_LEVEL_ERROR>= g_log_level) THEN
48990 trace
48991 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48992 ,p_level => C_LEVEL_ERROR
48993 ,p_module => l_log_module);
48994 END IF;
48995 END IF;
48996 END IF;
48997 --
48998 --
48999 ------------------------------------------------------------------------------------------------
49000 -- 4219869 Business Flow
49001 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
49002 -- Prior Entry. Currently, the following code is always generated.
49003 ------------------------------------------------------------------------------------------------
49004 XLA_AE_LINES_PKG.ValidateCurrentLine;
49005
49006 ------------------------------------------------------------------------------------
49007 -- 4219869 Business Flow
49008 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
49009 ------------------------------------------------------------------------------------
49010 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49011
49015 ----------------------------------------------------------------------------------
49012 ----------------------------------------------------------------------------------
49013 -- 4219869 Business Flow
49014 -- Update journal entry status -- Need to generate this within IF <condition>
49016 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49017 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
49018 ,p_balance_type_code => l_balance_type_code
49019 );
49020
49021 -------------------------------------------------------------------------------------------
49022 -- 4262811 - Generate the Accrual Reversal lines
49023 -------------------------------------------------------------------------------------------
49024 BEGIN
49025 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
49026 (g_array_event(p_event_id).array_value_num('header_index'));
49027 IF l_acc_rev_flag IS NULL THEN
49028 l_acc_rev_flag := 'N';
49029 END IF;
49030 EXCEPTION
49031 WHEN OTHERS THEN
49032 l_acc_rev_flag := 'N';
49033 END;
49034 --
49035 IF (l_acc_rev_flag = 'Y') THEN
49036
49037 -- 4645092 ------------------------------------------------------------------------------
49038 -- To allow MPA report to determine if it should generate report process
49039 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
49040 ------------------------------------------------------------------------------------------
49041
49042 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
49043 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
49044
49045 --
49046 -- Update the line information that should be overwritten
49047 --
49048 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
49049 p_header_num => 1);
49050 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
49051
49052 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
49053
49054 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
49055 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
49056 END IF;
49057
49058 --
49059 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
49060 --
49061 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
49062 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
49063 ELSE
49064 ---------------------------------------------------------------------------------------------------
49065 -- 4262811a Switch Sign
49066 ---------------------------------------------------------------------------------------------------
49067 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
49068 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49069 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49070 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49071 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49072 -- 5132302
49073 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
49074 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49075
49076 END IF;
49077
49078 -- 4955764
49079 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49080 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
49081
49082
49083 XLA_AE_LINES_PKG.ValidateCurrentLine;
49084 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49085
49086 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49087 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
49088 ,p_balance_type_code => l_balance_type_code);
49089
49090 END IF;
49091
49092 -----------------------------------------------------------------------------------------
49093 -- 4262811 Multiperiod Accounting
49094 -----------------------------------------------------------------------------------------
49095 -- No MPA option is assigned.
49096
49097
49098 END IF;
49099 --
49100
49101 --
49102 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49103 trace
49104 (p_msg => 'END of AcctLineType_105'
49105 ,p_level => C_LEVEL_PROCEDURE
49106 ,p_module => l_log_module);
49107 END IF;
49108 --
49109 EXCEPTION
49110 WHEN xla_exceptions_pkg.application_exception THEN
49111 RAISE;
49112 WHEN OTHERS THEN
49113 xla_exceptions_pkg.raise_message
49114 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_105');
49115 END AcctLineType_105;
49116 --
49117
49118 ---------------------------------------
49119 --
49120 -- PRIVATE FUNCTION
49121 -- AcctLineType_106
49122 --
49123 ---------------------------------------
49124 PROCEDURE AcctLineType_106 (
49125 p_application_id IN NUMBER
49126 ,p_event_id IN NUMBER
49127 ,p_calculate_acctd_flag IN VARCHAR2
49128 ,p_calculate_g_l_flag IN VARCHAR2
49129 ,p_actual_flag IN OUT VARCHAR2
49130 ,p_balance_type_code OUT VARCHAR2
49131 ,p_gain_or_loss_ref OUT VARCHAR2
49132
49133 --Cost CCID
49134 , p_source_4 IN NUMBER
49138 , p_source_7 IN NUMBER
49135 --Allow Account Override Flag
49136 , p_source_5 IN VARCHAR2
49137 --Cost Clearing CCID
49139 --Adjustment Cost Clearing CCID
49140 , p_source_8 IN NUMBER
49141 --Exchange Rate Variance Flag
49142 , p_source_22 IN VARCHAR2
49143 --Reversing Line Flag
49144 , p_source_23 IN VARCHAR2
49145 --Actual Upgrade Credit Accounting Class
49146 , p_source_24 IN VARCHAR2
49147 --Entered Raw Cost
49148 , p_source_25 IN NUMBER
49149 --Entered Currency Code
49150 , p_source_26 IN VARCHAR2
49151 --Accounted Raw Cost
49152 , p_source_27 IN NUMBER
49153 --Exchange Rate Date
49154 , p_source_28 IN DATE
49155 --Exchange Rate
49156 , p_source_29 IN NUMBER
49157 --Exchange Rate Type
49158 , p_source_30 IN VARCHAR2
49159 --Actual Upgrade Debit Accounting Class
49160 , p_source_31 IN VARCHAR2
49161 --Use Actuals Upgrade Attributes Flag
49162 , p_source_32 IN VARCHAR2
49163 --Expenditure Item ID
49164 , p_source_33 IN NUMBER
49165 --Cost Distribution Line Number
49166 , p_source_34 IN NUMBER
49167 --Line Type
49168 , p_source_35 IN VARCHAR2
49169 , p_source_35_meaning IN VARCHAR2
49170 --Reversed Line Number
49171 , p_source_36 IN NUMBER
49172 )
49173 IS
49174
49175 l_component_type VARCHAR2(80);
49176 l_component_code VARCHAR2(30);
49177 l_component_type_code VARCHAR2(1);
49178 l_component_appl_id INTEGER;
49179 l_amb_context_code VARCHAR2(30);
49180 l_entity_code VARCHAR2(30);
49181 l_event_class_code VARCHAR2(30);
49182 l_ae_header_id NUMBER;
49183 l_event_type_code VARCHAR2(30);
49184 l_line_definition_code VARCHAR2(30);
49185 l_line_definition_owner_code VARCHAR2(1);
49186 --
49187 -- adr variables
49188 l_segment VARCHAR2(30);
49189 l_ccid NUMBER;
49190 l_adr_transaction_coa_id NUMBER;
49191 l_adr_accounting_coa_id NUMBER;
49192 l_adr_flexfield_segment_code VARCHAR2(30);
49193 l_adr_flex_value_set_id NUMBER;
49194 l_adr_value_type_code VARCHAR2(30);
49195 l_adr_value_combination_id NUMBER;
49196 l_adr_value_segment_code VARCHAR2(30);
49197
49198 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
49199 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
49200 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
49201 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
49202
49203 -- 4262811 Variables ------------------------------------------------------------------------------------------
49204 l_entered_amt_idx NUMBER;
49205 l_accted_amt_idx NUMBER;
49206 l_acc_rev_flag VARCHAR2(1);
49207 l_accrual_line_num NUMBER;
49208 l_tmp_amt NUMBER;
49209 l_acc_rev_natural_side_code VARCHAR2(1);
49210
49211 l_num_entries NUMBER;
49212 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
49213 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
49214 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
49215 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
49216 l_recog_line_1 NUMBER;
49217 l_recog_line_2 NUMBER;
49218
49219 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
49220 l_bflow_applied_to_amt NUMBER; -- 5132302
49221 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
49222
49223 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
49224
49225 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
49226 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
49227
49228 ---------------------------------------------------------------------------------------------------------------
49229
49230
49231 --
49232 -- bulk performance
49233 --
49234 l_balance_type_code VARCHAR2(1);
49235 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
49236 l_log_module VARCHAR2(240);
49237
49238 --
49239 -- Upgrade strategy
49240 --
49241 l_actual_upg_option VARCHAR2(1);
49242 l_enc_upg_option VARCHAR2(1);
49243
49244 --
49245 BEGIN
49246 --
49247 IF g_log_enabled THEN
49248 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_106';
49249 END IF;
49250 --
49251 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49252
49253 trace
49254 (p_msg => 'BEGIN of AcctLineType_106'
49255 ,p_level => C_LEVEL_PROCEDURE
49256 ,p_module => l_log_module);
49257
49258 END IF;
49259 --
49260 l_component_type := 'AMB_JLT';
49261 l_component_code := 'PA_RAW_COST_CLEAR_FED';
49262 l_component_type_code := 'S';
49263 l_component_appl_id := 275;
49264 l_amb_context_code := 'DEFAULT';
49265 l_entity_code := 'EXPENDITURES';
49266 l_event_class_code := 'SUPPLIER_COST';
49267 l_event_type_code := 'SUPPLIER_COST_ALL';
49268 l_line_definition_owner_code := 'S';
49269 l_line_definition_code := 'FV_PROJECTS_JLD';
49270 --
49271 l_balance_type_code := 'A';
49272 l_segment := NULL;
49273 l_ccid := NULL;
49274 l_adr_transaction_coa_id := NULL;
49275 l_adr_accounting_coa_id := NULL;
49276 l_adr_flexfield_segment_code := NULL;
49280 l_adr_value_segment_code := NULL;
49277 l_adr_flex_value_set_id := NULL;
49278 l_adr_value_type_code := NULL;
49279 l_adr_value_combination_id := NULL;
49281
49282 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
49283 l_bflow_class_code := ''; -- 4219869 Business Flow
49284 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
49285 l_budgetary_control_flag := 'N';
49286
49287 l_bflow_applied_to_amt_idx := NULL; -- 5132302
49288 l_bflow_applied_to_amt := NULL; -- 5132302
49289 l_entered_amt_idx := NULL; -- 4262811
49290 l_accted_amt_idx := NULL; -- 4262811
49291 l_acc_rev_flag := NULL; -- 4262811
49292 l_accrual_line_num := NULL; -- 4262811
49293 l_tmp_amt := NULL; -- 4262811
49294 --
49295
49296 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
49297 l_balance_type_code <> 'B' THEN
49298 IF NVL(p_source_22,'
49299 ') = 'N'
49300 THEN
49301
49302 --
49303 XLA_AE_LINES_PKG.SetNewLine;
49304
49305 p_balance_type_code := l_balance_type_code;
49306 -- set the flag so later we will know whether the gain loss line needs to be created
49307
49308 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
49309 p_actual_flag :='A';
49310 END IF;
49311
49312 --
49313 -- bulk performance
49314 --
49315 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
49316 p_header_num => 0); -- 4262811
49317 --
49318 -- set accounting line options
49319 --
49320 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
49321 p_natural_side_code => 'C'
49322 , p_gain_or_loss_flag => 'N'
49323 , p_gl_transfer_mode_code => 'S'
49324 , p_acct_entry_type_code => 'A'
49325 , p_switch_side_flag => 'Y'
49326 , p_merge_duplicate_code => 'N'
49327 );
49328 --
49329 l_acc_rev_natural_side_code := 'D'; -- 4262811
49330 --
49331 --
49332 -- set accounting line type info
49333 --
49334 xla_ae_lines_pkg.SetAcctLineType
49335 (p_component_type => l_component_type
49336 ,p_event_type_code => l_event_type_code
49337 ,p_line_definition_owner_code => l_line_definition_owner_code
49338 ,p_line_definition_code => l_line_definition_code
49339 ,p_accounting_line_code => l_component_code
49340 ,p_accounting_line_type_code => l_component_type_code
49341 ,p_accounting_line_appl_id => l_component_appl_id
49342 ,p_amb_context_code => l_amb_context_code
49343 ,p_entity_code => l_entity_code
49344 ,p_event_class_code => l_event_class_code);
49345 --
49346 -- set accounting class
49347 --
49348 xla_ae_lines_pkg.SetAcctClass(
49349 p_accounting_class_code => 'FEDERAL_PROJECT_COST_CLEARING'
49350 , p_ae_header_id => l_ae_header_id
49351 );
49352
49353 --
49354 -- set rounding class
49355 --
49356 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
49357 'FEDERAL_PROJECT_COST_CLEARING';
49358
49359 --
49360 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
49361 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
49362 --
49363 -- bulk performance
49364 --
49365 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
49366
49367 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
49368 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
49369
49370 -- 4955764
49371 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49372 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
49373
49374 -- 4458381 Public Sector Enh
49375
49376 --
49377 -- set accounting attributes for the line type
49378 --
49379 l_entered_amt_idx := 22;
49380 l_accted_amt_idx := 27;
49381 l_bflow_applied_to_amt_idx := NULL; -- 5132302
49382 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
49383 l_rec_acct_attrs.array_char_value(1) := p_source_23;
49384 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
49385 l_rec_acct_attrs.array_char_value(2) := p_source_24;
49386 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
49387 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
49388 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
49389 l_rec_acct_attrs.array_num_value(4) := p_source_25;
49390 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
49391 l_rec_acct_attrs.array_char_value(5) := p_source_26;
49392 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
49393 l_rec_acct_attrs.array_num_value(6) := p_source_27;
49394 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
49395 l_rec_acct_attrs.array_date_value(7) := p_source_28;
49396 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
49397 l_rec_acct_attrs.array_num_value(8) := p_source_29;
49398 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
49399 l_rec_acct_attrs.array_char_value(9) := p_source_30;
49400 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
49401 l_rec_acct_attrs.array_char_value(10) := p_source_31;
49405 l_rec_acct_attrs.array_num_value(12) := p_source_25;
49402 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
49403 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
49404 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
49406 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
49407 l_rec_acct_attrs.array_char_value(13) := p_source_26;
49408 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
49409 l_rec_acct_attrs.array_num_value(14) := p_source_27;
49410 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
49411 l_rec_acct_attrs.array_date_value(15) := p_source_28;
49412 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
49413 l_rec_acct_attrs.array_num_value(16) := p_source_29;
49414 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
49415 l_rec_acct_attrs.array_char_value(17) := p_source_30;
49416 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
49417 l_rec_acct_attrs.array_char_value(18) := p_source_32;
49418 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
49419 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
49420 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
49421 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
49422 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
49423 l_rec_acct_attrs.array_char_value(21) := p_source_35;
49424 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
49425 l_rec_acct_attrs.array_num_value(22) := p_source_25;
49426 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
49427 l_rec_acct_attrs.array_char_value(23) := p_source_26;
49428 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
49429 l_rec_acct_attrs.array_date_value(24) := p_source_28;
49430 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
49431 l_rec_acct_attrs.array_num_value(25) := p_source_29;
49432 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
49433 l_rec_acct_attrs.array_char_value(26) := p_source_30;
49434 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
49435 l_rec_acct_attrs.array_num_value(27) := p_source_27;
49436 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
49437 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
49438 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
49439 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
49440 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
49441 l_rec_acct_attrs.array_char_value(30) := p_source_35;
49442
49443 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
49444 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
49445
49446 ---------------------------------------------------------------------------------------------------------------
49447 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
49448 ---------------------------------------------------------------------------------------------------------------
49449 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
49450
49451 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49452 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49453
49454 IF xla_accounting_cache_pkg.GetValueChar
49455 (p_source_code => 'LEDGER_CATEGORY_CODE'
49456 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
49457 AND l_bflow_method_code = 'PRIOR_ENTRY'
49458 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
49459 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
49460 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
49461 )
49462 THEN
49463 xla_ae_lines_pkg.BflowUpgEntry
49464 (p_business_method_code => l_bflow_method_code
49465 ,p_business_class_code => l_bflow_class_code
49466 ,p_balance_type => l_balance_type_code);
49467 ELSE
49468 NULL;
49469 -- No business flow processing for business flow method of NONE.
49470 END IF;
49471
49472 --
49473 -- call analytical criteria
49474 --
49475
49476 --
49477 -- call description
49478 --
49479 -- No description or it is inherited.
49480 --
49481 -- call ADRs
49482 -- Bug 4922099
49483 --
49484 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49485 (NVL(l_actual_upg_option, 'N') = 'O') OR
49486 (NVL(l_enc_upg_option, 'N') = 'O')
49487 )
49488 THEN
49489 NULL;
49490 --
49491 --
49492
49493 l_ccid := AcctDerRule_14(
49494 p_application_id => p_application_id
49495 , p_ae_header_id => l_ae_header_id
49496 , p_source_5 => p_source_5
49497 , p_source_7 => p_source_7
49498 , p_source_8 => p_source_8
49499 , x_transaction_coa_id => l_adr_transaction_coa_id
49500 , x_accounting_coa_id => l_adr_accounting_coa_id
49501 , x_value_type_code => l_adr_value_type_code
49502 , p_side => 'NA'
49503 );
49504
49505 xla_ae_lines_pkg.set_ccid(
49506 p_code_combination_id => l_ccid
49507 , p_value_type_code => l_adr_value_type_code
49508 , p_transaction_coa_id => l_adr_transaction_coa_id
49509 , p_accounting_coa_id => l_adr_accounting_coa_id
49510 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
49511 , p_adr_type_code => 'S'
49515 , p_component_appl_id => l_component_appl_id
49512 , p_component_type => l_component_type
49513 , p_component_code => l_component_code
49514 , p_component_type_code => l_component_type_code
49516 , p_amb_context_code => l_amb_context_code
49517 , p_side => 'NA'
49518 );
49519
49520
49521 l_segment := AcctDerRule_5(
49522 p_application_id => p_application_id
49523 , p_ae_header_id => l_ae_header_id
49524 , x_transaction_coa_id => l_adr_transaction_coa_id
49525 , x_accounting_coa_id => l_adr_accounting_coa_id
49526 , x_flexfield_segment_code => l_adr_flexfield_segment_code
49527 , x_flex_value_set_id => l_adr_flex_value_set_id
49528 , x_value_type_code => l_adr_value_type_code
49529 , x_value_combination_id => l_adr_value_combination_id
49530 , x_value_segment_code => l_adr_value_segment_code
49531 , p_side => 'NA'
49532 , p_override_seg_flag => 'Y'
49533 );
49534
49535 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
49536
49537 xla_ae_lines_pkg.set_segment(
49538 p_to_segment_code => 'GL_ACCOUNT'
49539 , p_segment_value => l_segment
49540 , p_from_segment_code => l_adr_value_segment_code
49541 , p_from_combination_id => l_adr_value_combination_id
49542 , p_value_type_code => l_adr_value_type_code
49543 , p_transaction_coa_id => l_adr_transaction_coa_id
49544 , p_accounting_coa_id => l_adr_accounting_coa_id
49545 , p_flexfield_segment_code => l_adr_flexfield_segment_code
49546 , p_flex_value_set_id => l_adr_flex_value_set_id
49547 , p_adr_code => 'FV_490201_PROJECTS'
49548 , p_adr_type_code => 'S'
49549 , p_component_type => l_component_type
49550 , p_component_code => l_component_code
49551 , p_component_type_code => l_component_type_code
49552 , p_component_appl_id => l_component_appl_id
49553 , p_amb_context_code => l_amb_context_code
49554 , p_entity_code => 'EXPENDITURES'
49555 , p_event_class_code => 'SUPPLIER_COST'
49556 , p_side => 'NA'
49557 );
49558
49559 END IF;
49560
49561 --
49562 --
49563 END IF;
49564 --
49565 -- Bug 4922099
49566 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
49567 (NVL(l_enc_upg_option, 'N') = 'O')
49568 ) AND
49569 (l_bflow_method_code = 'PRIOR_ENTRY')
49570 )
49571 THEN
49572 IF
49573 --
49574 1 = 2
49575 --
49576 THEN
49577 xla_accounting_err_pkg.build_message
49578 (p_appli_s_name => 'XLA'
49579 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49580 ,p_token_1 => 'LINE_NUMBER'
49581 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
49582 ,p_token_2 => 'LINE_TYPE_NAME'
49583 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
49584 l_component_type
49585 ,l_component_code
49586 ,l_component_type_code
49587 ,l_component_appl_id
49588 ,l_amb_context_code
49589 ,l_entity_code
49590 ,l_event_class_code
49591 )
49592 ,p_token_3 => 'OWNER'
49593 ,p_value_3 => xla_lookups_pkg.get_meaning(
49594 p_lookup_type => 'XLA_OWNER_TYPE'
49595 ,p_lookup_code => l_component_type_code
49596 )
49597 ,p_token_4 => 'PRODUCT_NAME'
49598 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
49599 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
49600 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
49601 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
49602 ,p_ae_header_id => NULL
49603 );
49604
49605 IF (C_LEVEL_ERROR>= g_log_level) THEN
49606 trace
49607 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49608 ,p_level => C_LEVEL_ERROR
49609 ,p_module => l_log_module);
49610 END IF;
49611 END IF;
49612 END IF;
49613 --
49614 --
49615 ------------------------------------------------------------------------------------------------
49616 -- 4219869 Business Flow
49617 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
49621
49618 -- Prior Entry. Currently, the following code is always generated.
49619 ------------------------------------------------------------------------------------------------
49620 XLA_AE_LINES_PKG.ValidateCurrentLine;
49622 ------------------------------------------------------------------------------------
49623 -- 4219869 Business Flow
49624 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
49625 ------------------------------------------------------------------------------------
49626 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49627
49628 ----------------------------------------------------------------------------------
49629 -- 4219869 Business Flow
49630 -- Update journal entry status -- Need to generate this within IF <condition>
49631 ----------------------------------------------------------------------------------
49632 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49633 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
49634 ,p_balance_type_code => l_balance_type_code
49635 );
49636
49637 -------------------------------------------------------------------------------------------
49638 -- 4262811 - Generate the Accrual Reversal lines
49639 -------------------------------------------------------------------------------------------
49640 BEGIN
49641 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
49642 (g_array_event(p_event_id).array_value_num('header_index'));
49643 IF l_acc_rev_flag IS NULL THEN
49644 l_acc_rev_flag := 'N';
49645 END IF;
49646 EXCEPTION
49647 WHEN OTHERS THEN
49648 l_acc_rev_flag := 'N';
49649 END;
49650 --
49651 IF (l_acc_rev_flag = 'Y') THEN
49652
49653 -- 4645092 ------------------------------------------------------------------------------
49654 -- To allow MPA report to determine if it should generate report process
49655 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
49656 ------------------------------------------------------------------------------------------
49657
49658 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
49659 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
49660
49661 --
49662 -- Update the line information that should be overwritten
49663 --
49664 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
49665 p_header_num => 1);
49666 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
49667
49668 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
49669
49670 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
49671 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
49672 END IF;
49673
49674 --
49675 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
49676 --
49677 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
49678 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
49679 ELSE
49680 ---------------------------------------------------------------------------------------------------
49681 -- 4262811a Switch Sign
49682 ---------------------------------------------------------------------------------------------------
49683 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
49684 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49685 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49686 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49687 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49688 -- 5132302
49689 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
49690 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49691
49692 END IF;
49693
49694 -- 4955764
49695 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49696 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
49697
49698
49699 XLA_AE_LINES_PKG.ValidateCurrentLine;
49700 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49701
49702 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49703 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
49704 ,p_balance_type_code => l_balance_type_code);
49705
49706 END IF;
49707
49708 -----------------------------------------------------------------------------------------
49709 -- 4262811 Multiperiod Accounting
49710 -----------------------------------------------------------------------------------------
49711 -- No MPA option is assigned.
49712
49713
49714 END IF;
49715 END IF;
49716 --
49717
49718 --
49719 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49720 trace
49721 (p_msg => 'END of AcctLineType_106'
49722 ,p_level => C_LEVEL_PROCEDURE
49723 ,p_module => l_log_module);
49724 END IF;
49725 --
49726 EXCEPTION
49727 WHEN xla_exceptions_pkg.application_exception THEN
49728 RAISE;
49729 WHEN OTHERS THEN
49730 xla_exceptions_pkg.raise_message
49731 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_106');
49732 END AcctLineType_106;
49733 --
49734
49735 ---------------------------------------
49739 --
49736 --
49737 -- PRIVATE FUNCTION
49738 -- AcctLineType_107
49740 ---------------------------------------
49741 PROCEDURE AcctLineType_107 (
49742 p_application_id IN NUMBER
49743 ,p_event_id IN NUMBER
49744 ,p_calculate_acctd_flag IN VARCHAR2
49745 ,p_calculate_g_l_flag IN VARCHAR2
49746 ,p_actual_flag IN OUT VARCHAR2
49747 ,p_balance_type_code OUT VARCHAR2
49748 ,p_gain_or_loss_ref OUT VARCHAR2
49749
49750 --Cost CCID
49751 , p_source_4 IN NUMBER
49752 --Allow Account Override Flag
49753 , p_source_5 IN VARCHAR2
49754 --Cost Clearing CCID
49755 , p_source_7 IN NUMBER
49756 --Adjustment Cost Clearing CCID
49757 , p_source_8 IN NUMBER
49758 --Reversing Line Flag
49759 , p_source_23 IN VARCHAR2
49760 --Actual Upgrade Credit Accounting Class
49761 , p_source_24 IN VARCHAR2
49762 --Entered Raw Cost
49763 , p_source_25 IN NUMBER
49764 --Entered Currency Code
49765 , p_source_26 IN VARCHAR2
49766 --Accounted Raw Cost
49767 , p_source_27 IN NUMBER
49768 --Exchange Rate Date
49769 , p_source_28 IN DATE
49770 --Exchange Rate
49771 , p_source_29 IN NUMBER
49772 --Exchange Rate Type
49773 , p_source_30 IN VARCHAR2
49774 --Actual Upgrade Debit Accounting Class
49775 , p_source_31 IN VARCHAR2
49776 --Use Actuals Upgrade Attributes Flag
49777 , p_source_32 IN VARCHAR2
49778 --Expenditure Item ID
49779 , p_source_33 IN NUMBER
49780 --Cost Distribution Line Number
49781 , p_source_34 IN NUMBER
49782 --Line Type
49783 , p_source_35 IN VARCHAR2
49784 , p_source_35_meaning IN VARCHAR2
49785 --Reversed Line Number
49786 , p_source_36 IN NUMBER
49787 )
49788 IS
49789
49790 l_component_type VARCHAR2(80);
49791 l_component_code VARCHAR2(30);
49792 l_component_type_code VARCHAR2(1);
49793 l_component_appl_id INTEGER;
49794 l_amb_context_code VARCHAR2(30);
49795 l_entity_code VARCHAR2(30);
49796 l_event_class_code VARCHAR2(30);
49797 l_ae_header_id NUMBER;
49798 l_event_type_code VARCHAR2(30);
49799 l_line_definition_code VARCHAR2(30);
49800 l_line_definition_owner_code VARCHAR2(1);
49801 --
49802 -- adr variables
49803 l_segment VARCHAR2(30);
49804 l_ccid NUMBER;
49805 l_adr_transaction_coa_id NUMBER;
49806 l_adr_accounting_coa_id NUMBER;
49807 l_adr_flexfield_segment_code VARCHAR2(30);
49808 l_adr_flex_value_set_id NUMBER;
49809 l_adr_value_type_code VARCHAR2(30);
49810 l_adr_value_combination_id NUMBER;
49811 l_adr_value_segment_code VARCHAR2(30);
49812
49813 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
49814 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
49815 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
49816 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
49817
49818 -- 4262811 Variables ------------------------------------------------------------------------------------------
49819 l_entered_amt_idx NUMBER;
49820 l_accted_amt_idx NUMBER;
49821 l_acc_rev_flag VARCHAR2(1);
49822 l_accrual_line_num NUMBER;
49823 l_tmp_amt NUMBER;
49824 l_acc_rev_natural_side_code VARCHAR2(1);
49825
49826 l_num_entries NUMBER;
49827 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
49828 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
49829 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
49830 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
49831 l_recog_line_1 NUMBER;
49832 l_recog_line_2 NUMBER;
49833
49834 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
49835 l_bflow_applied_to_amt NUMBER; -- 5132302
49836 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
49837
49838 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
49839
49840 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
49841 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
49842
49843 ---------------------------------------------------------------------------------------------------------------
49844
49845
49846 --
49847 -- bulk performance
49848 --
49849 l_balance_type_code VARCHAR2(1);
49850 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
49851 l_log_module VARCHAR2(240);
49852
49853 --
49854 -- Upgrade strategy
49855 --
49856 l_actual_upg_option VARCHAR2(1);
49857 l_enc_upg_option VARCHAR2(1);
49858
49859 --
49860 BEGIN
49861 --
49862 IF g_log_enabled THEN
49863 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_107';
49864 END IF;
49865 --
49866 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49867
49868 trace
49869 (p_msg => 'BEGIN of AcctLineType_107'
49870 ,p_level => C_LEVEL_PROCEDURE
49871 ,p_module => l_log_module);
49872
49873 END IF;
49874 --
49875 l_component_type := 'AMB_JLT';
49876 l_component_code := 'PA_RAW_COST_CLEAR_FED';
49877 l_component_type_code := 'S';
49878 l_component_appl_id := 275;
49879 l_amb_context_code := 'DEFAULT';
49880 l_entity_code := 'EXPENDITURES';
49884 l_line_definition_code := 'FV_PROJECTS_JLD';
49881 l_event_class_code := 'USG_COST';
49882 l_event_type_code := 'USG_COST_ALL';
49883 l_line_definition_owner_code := 'S';
49885 --
49886 l_balance_type_code := 'A';
49887 l_segment := NULL;
49888 l_ccid := NULL;
49889 l_adr_transaction_coa_id := NULL;
49890 l_adr_accounting_coa_id := NULL;
49891 l_adr_flexfield_segment_code := NULL;
49892 l_adr_flex_value_set_id := NULL;
49893 l_adr_value_type_code := NULL;
49894 l_adr_value_combination_id := NULL;
49895 l_adr_value_segment_code := NULL;
49896
49897 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
49898 l_bflow_class_code := ''; -- 4219869 Business Flow
49899 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
49900 l_budgetary_control_flag := 'N';
49901
49902 l_bflow_applied_to_amt_idx := NULL; -- 5132302
49903 l_bflow_applied_to_amt := NULL; -- 5132302
49904 l_entered_amt_idx := NULL; -- 4262811
49905 l_accted_amt_idx := NULL; -- 4262811
49906 l_acc_rev_flag := NULL; -- 4262811
49907 l_accrual_line_num := NULL; -- 4262811
49908 l_tmp_amt := NULL; -- 4262811
49909 --
49910
49911 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
49912 l_balance_type_code <> 'B' THEN
49913
49914 --
49915 XLA_AE_LINES_PKG.SetNewLine;
49916
49917 p_balance_type_code := l_balance_type_code;
49918 -- set the flag so later we will know whether the gain loss line needs to be created
49919
49920 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
49921 p_actual_flag :='A';
49922 END IF;
49923
49924 --
49925 -- bulk performance
49926 --
49927 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
49928 p_header_num => 0); -- 4262811
49929 --
49930 -- set accounting line options
49931 --
49932 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
49933 p_natural_side_code => 'C'
49934 , p_gain_or_loss_flag => 'N'
49935 , p_gl_transfer_mode_code => 'S'
49936 , p_acct_entry_type_code => 'A'
49937 , p_switch_side_flag => 'Y'
49938 , p_merge_duplicate_code => 'N'
49939 );
49940 --
49941 l_acc_rev_natural_side_code := 'D'; -- 4262811
49942 --
49943 --
49944 -- set accounting line type info
49945 --
49946 xla_ae_lines_pkg.SetAcctLineType
49947 (p_component_type => l_component_type
49948 ,p_event_type_code => l_event_type_code
49949 ,p_line_definition_owner_code => l_line_definition_owner_code
49950 ,p_line_definition_code => l_line_definition_code
49951 ,p_accounting_line_code => l_component_code
49952 ,p_accounting_line_type_code => l_component_type_code
49953 ,p_accounting_line_appl_id => l_component_appl_id
49954 ,p_amb_context_code => l_amb_context_code
49955 ,p_entity_code => l_entity_code
49956 ,p_event_class_code => l_event_class_code);
49957 --
49958 -- set accounting class
49959 --
49960 xla_ae_lines_pkg.SetAcctClass(
49961 p_accounting_class_code => 'FEDERAL_PROJECT_COST_CLEARING'
49962 , p_ae_header_id => l_ae_header_id
49963 );
49964
49965 --
49966 -- set rounding class
49967 --
49968 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
49969 'FEDERAL_PROJECT_COST_CLEARING';
49970
49971 --
49972 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
49973 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
49974 --
49975 -- bulk performance
49976 --
49977 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
49978
49979 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
49980 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
49981
49982 -- 4955764
49983 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49984 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
49985
49986 -- 4458381 Public Sector Enh
49987
49988 --
49989 -- set accounting attributes for the line type
49990 --
49991 l_entered_amt_idx := 22;
49992 l_accted_amt_idx := 27;
49993 l_bflow_applied_to_amt_idx := NULL; -- 5132302
49994 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
49995 l_rec_acct_attrs.array_char_value(1) := p_source_23;
49996 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
49997 l_rec_acct_attrs.array_char_value(2) := p_source_24;
49998 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
49999 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
50000 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
50001 l_rec_acct_attrs.array_num_value(4) := p_source_25;
50002 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
50003 l_rec_acct_attrs.array_char_value(5) := p_source_26;
50004 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
50005 l_rec_acct_attrs.array_num_value(6) := p_source_27;
50006 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
50007 l_rec_acct_attrs.array_date_value(7) := p_source_28;
50011 l_rec_acct_attrs.array_char_value(9) := p_source_30;
50008 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
50009 l_rec_acct_attrs.array_num_value(8) := p_source_29;
50010 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
50012 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
50013 l_rec_acct_attrs.array_char_value(10) := p_source_31;
50014 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
50015 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
50016 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
50017 l_rec_acct_attrs.array_num_value(12) := p_source_25;
50018 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
50019 l_rec_acct_attrs.array_char_value(13) := p_source_26;
50020 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
50021 l_rec_acct_attrs.array_num_value(14) := p_source_27;
50022 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
50023 l_rec_acct_attrs.array_date_value(15) := p_source_28;
50024 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
50025 l_rec_acct_attrs.array_num_value(16) := p_source_29;
50026 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
50027 l_rec_acct_attrs.array_char_value(17) := p_source_30;
50028 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
50029 l_rec_acct_attrs.array_char_value(18) := p_source_32;
50030 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
50031 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
50032 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
50033 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
50034 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
50035 l_rec_acct_attrs.array_char_value(21) := p_source_35;
50036 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
50037 l_rec_acct_attrs.array_num_value(22) := p_source_25;
50038 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
50039 l_rec_acct_attrs.array_char_value(23) := p_source_26;
50040 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
50041 l_rec_acct_attrs.array_date_value(24) := p_source_28;
50042 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
50043 l_rec_acct_attrs.array_num_value(25) := p_source_29;
50044 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
50045 l_rec_acct_attrs.array_char_value(26) := p_source_30;
50046 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
50047 l_rec_acct_attrs.array_num_value(27) := p_source_27;
50048 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
50049 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
50050 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
50051 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
50052 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
50053 l_rec_acct_attrs.array_char_value(30) := p_source_35;
50054
50055 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
50056 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
50057
50058 ---------------------------------------------------------------------------------------------------------------
50059 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
50060 ---------------------------------------------------------------------------------------------------------------
50061 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
50062
50063 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50064 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50065
50066 IF xla_accounting_cache_pkg.GetValueChar
50067 (p_source_code => 'LEDGER_CATEGORY_CODE'
50068 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
50069 AND l_bflow_method_code = 'PRIOR_ENTRY'
50070 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
50071 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
50072 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
50073 )
50074 THEN
50075 xla_ae_lines_pkg.BflowUpgEntry
50076 (p_business_method_code => l_bflow_method_code
50077 ,p_business_class_code => l_bflow_class_code
50078 ,p_balance_type => l_balance_type_code);
50079 ELSE
50080 NULL;
50081 -- No business flow processing for business flow method of NONE.
50082 END IF;
50083
50084 --
50085 -- call analytical criteria
50086 --
50087
50088 --
50089 -- call description
50090 --
50091 -- No description or it is inherited.
50092 --
50093 -- call ADRs
50094 -- Bug 4922099
50095 --
50096 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50097 (NVL(l_actual_upg_option, 'N') = 'O') OR
50098 (NVL(l_enc_upg_option, 'N') = 'O')
50099 )
50100 THEN
50101 NULL;
50102 --
50103 --
50104
50105 l_ccid := AcctDerRule_14(
50106 p_application_id => p_application_id
50107 , p_ae_header_id => l_ae_header_id
50108 , p_source_5 => p_source_5
50109 , p_source_7 => p_source_7
50110 , p_source_8 => p_source_8
50111 , x_transaction_coa_id => l_adr_transaction_coa_id
50112 , x_accounting_coa_id => l_adr_accounting_coa_id
50113 , x_value_type_code => l_adr_value_type_code
50114 , p_side => 'NA'
50115 );
50116
50117 xla_ae_lines_pkg.set_ccid(
50121 , p_accounting_coa_id => l_adr_accounting_coa_id
50118 p_code_combination_id => l_ccid
50119 , p_value_type_code => l_adr_value_type_code
50120 , p_transaction_coa_id => l_adr_transaction_coa_id
50122 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
50123 , p_adr_type_code => 'S'
50124 , p_component_type => l_component_type
50125 , p_component_code => l_component_code
50126 , p_component_type_code => l_component_type_code
50127 , p_component_appl_id => l_component_appl_id
50128 , p_amb_context_code => l_amb_context_code
50129 , p_side => 'NA'
50130 );
50131
50132
50133 l_segment := AcctDerRule_5(
50134 p_application_id => p_application_id
50135 , p_ae_header_id => l_ae_header_id
50136 , x_transaction_coa_id => l_adr_transaction_coa_id
50137 , x_accounting_coa_id => l_adr_accounting_coa_id
50138 , x_flexfield_segment_code => l_adr_flexfield_segment_code
50139 , x_flex_value_set_id => l_adr_flex_value_set_id
50140 , x_value_type_code => l_adr_value_type_code
50141 , x_value_combination_id => l_adr_value_combination_id
50142 , x_value_segment_code => l_adr_value_segment_code
50143 , p_side => 'NA'
50144 , p_override_seg_flag => 'Y'
50145 );
50146
50147 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
50148
50149 xla_ae_lines_pkg.set_segment(
50150 p_to_segment_code => 'GL_ACCOUNT'
50151 , p_segment_value => l_segment
50152 , p_from_segment_code => l_adr_value_segment_code
50153 , p_from_combination_id => l_adr_value_combination_id
50154 , p_value_type_code => l_adr_value_type_code
50155 , p_transaction_coa_id => l_adr_transaction_coa_id
50156 , p_accounting_coa_id => l_adr_accounting_coa_id
50157 , p_flexfield_segment_code => l_adr_flexfield_segment_code
50158 , p_flex_value_set_id => l_adr_flex_value_set_id
50159 , p_adr_code => 'FV_490201_PROJECTS'
50160 , p_adr_type_code => 'S'
50161 , p_component_type => l_component_type
50162 , p_component_code => l_component_code
50163 , p_component_type_code => l_component_type_code
50164 , p_component_appl_id => l_component_appl_id
50165 , p_amb_context_code => l_amb_context_code
50166 , p_entity_code => 'EXPENDITURES'
50167 , p_event_class_code => 'USG_COST'
50168 , p_side => 'NA'
50169 );
50170
50171 END IF;
50172
50173 --
50174 --
50175 END IF;
50176 --
50177 -- Bug 4922099
50178 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
50179 (NVL(l_enc_upg_option, 'N') = 'O')
50180 ) AND
50181 (l_bflow_method_code = 'PRIOR_ENTRY')
50182 )
50183 THEN
50184 IF
50185 --
50186 1 = 2
50187 --
50188 THEN
50189 xla_accounting_err_pkg.build_message
50190 (p_appli_s_name => 'XLA'
50191 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50192 ,p_token_1 => 'LINE_NUMBER'
50193 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
50194 ,p_token_2 => 'LINE_TYPE_NAME'
50195 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
50196 l_component_type
50197 ,l_component_code
50198 ,l_component_type_code
50199 ,l_component_appl_id
50200 ,l_amb_context_code
50201 ,l_entity_code
50202 ,l_event_class_code
50203 )
50204 ,p_token_3 => 'OWNER'
50205 ,p_value_3 => xla_lookups_pkg.get_meaning(
50206 p_lookup_type => 'XLA_OWNER_TYPE'
50207 ,p_lookup_code => l_component_type_code
50208 )
50209 ,p_token_4 => 'PRODUCT_NAME'
50210 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
50211 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
50212 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
50213 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
50214 ,p_ae_header_id => NULL
50215 );
50216
50217 IF (C_LEVEL_ERROR>= g_log_level) THEN
50218 trace
50219 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50220 ,p_level => C_LEVEL_ERROR
50221 ,p_module => l_log_module);
50222 END IF;
50226 --
50223 END IF;
50224 END IF;
50225 --
50227 ------------------------------------------------------------------------------------------------
50228 -- 4219869 Business Flow
50229 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
50230 -- Prior Entry. Currently, the following code is always generated.
50231 ------------------------------------------------------------------------------------------------
50232 XLA_AE_LINES_PKG.ValidateCurrentLine;
50233
50234 ------------------------------------------------------------------------------------
50235 -- 4219869 Business Flow
50236 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
50237 ------------------------------------------------------------------------------------
50238 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50239
50240 ----------------------------------------------------------------------------------
50241 -- 4219869 Business Flow
50242 -- Update journal entry status -- Need to generate this within IF <condition>
50243 ----------------------------------------------------------------------------------
50244 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50245 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
50246 ,p_balance_type_code => l_balance_type_code
50247 );
50248
50249 -------------------------------------------------------------------------------------------
50250 -- 4262811 - Generate the Accrual Reversal lines
50251 -------------------------------------------------------------------------------------------
50252 BEGIN
50253 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
50254 (g_array_event(p_event_id).array_value_num('header_index'));
50255 IF l_acc_rev_flag IS NULL THEN
50256 l_acc_rev_flag := 'N';
50257 END IF;
50258 EXCEPTION
50259 WHEN OTHERS THEN
50260 l_acc_rev_flag := 'N';
50261 END;
50262 --
50263 IF (l_acc_rev_flag = 'Y') THEN
50264
50265 -- 4645092 ------------------------------------------------------------------------------
50266 -- To allow MPA report to determine if it should generate report process
50267 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
50268 ------------------------------------------------------------------------------------------
50269
50270 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
50271 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
50272
50273 --
50274 -- Update the line information that should be overwritten
50275 --
50276 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
50277 p_header_num => 1);
50278 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
50279
50280 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
50281
50282 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
50283 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
50284 END IF;
50285
50286 --
50287 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
50288 --
50289 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
50290 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
50291 ELSE
50292 ---------------------------------------------------------------------------------------------------
50293 -- 4262811a Switch Sign
50294 ---------------------------------------------------------------------------------------------------
50295 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
50296 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50297 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50298 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50299 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50300 -- 5132302
50301 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
50302 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50303
50304 END IF;
50305
50306 -- 4955764
50307 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50308 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
50309
50310
50311 XLA_AE_LINES_PKG.ValidateCurrentLine;
50312 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50313
50314 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50315 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
50316 ,p_balance_type_code => l_balance_type_code);
50317
50318 END IF;
50319
50320 -----------------------------------------------------------------------------------------
50321 -- 4262811 Multiperiod Accounting
50322 -----------------------------------------------------------------------------------------
50323 -- No MPA option is assigned.
50324
50325
50326 END IF;
50327 --
50328
50329 --
50330 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50331 trace
50332 (p_msg => 'END of AcctLineType_107'
50333 ,p_level => C_LEVEL_PROCEDURE
50334 ,p_module => l_log_module);
50335 END IF;
50336 --
50337 EXCEPTION
50341 xla_exceptions_pkg.raise_message
50338 WHEN xla_exceptions_pkg.application_exception THEN
50339 RAISE;
50340 WHEN OTHERS THEN
50342 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_107');
50343 END AcctLineType_107;
50344 --
50345
50346 ---------------------------------------
50347 --
50348 -- PRIVATE FUNCTION
50349 -- AcctLineType_108
50350 --
50351 ---------------------------------------
50352 PROCEDURE AcctLineType_108 (
50353 p_application_id IN NUMBER
50354 ,p_event_id IN NUMBER
50355 ,p_calculate_acctd_flag IN VARCHAR2
50356 ,p_calculate_g_l_flag IN VARCHAR2
50357 ,p_actual_flag IN OUT VARCHAR2
50358 ,p_balance_type_code OUT VARCHAR2
50359 ,p_gain_or_loss_ref OUT VARCHAR2
50360
50361 --Cost CCID
50362 , p_source_4 IN NUMBER
50363 --Allow Account Override Flag
50364 , p_source_5 IN VARCHAR2
50365 --Adjustment Cost CCID
50366 , p_source_6 IN NUMBER
50367 --Cost Clearing CCID
50368 , p_source_7 IN NUMBER
50369 --Reversing Line Flag
50370 , p_source_23 IN VARCHAR2
50371 --Actual Upgrade Credit Accounting Class
50372 , p_source_24 IN VARCHAR2
50373 --Entered Raw Cost
50374 , p_source_25 IN NUMBER
50375 --Entered Currency Code
50376 , p_source_26 IN VARCHAR2
50377 --Accounted Raw Cost
50378 , p_source_27 IN NUMBER
50379 --Exchange Rate Date
50380 , p_source_28 IN DATE
50381 --Exchange Rate
50382 , p_source_29 IN NUMBER
50383 --Exchange Rate Type
50384 , p_source_30 IN VARCHAR2
50385 --Actual Upgrade Debit Accounting Class
50386 , p_source_31 IN VARCHAR2
50387 --Use Actuals Upgrade Attributes Flag
50388 , p_source_32 IN VARCHAR2
50389 --Expenditure Item ID
50390 , p_source_33 IN NUMBER
50391 --Cost Distribution Line Number
50392 , p_source_34 IN NUMBER
50393 --Line Type
50394 , p_source_35 IN VARCHAR2
50395 , p_source_35_meaning IN VARCHAR2
50396 --Reversed Line Number
50397 , p_source_36 IN NUMBER
50398 )
50399 IS
50400
50401 l_component_type VARCHAR2(80);
50402 l_component_code VARCHAR2(30);
50403 l_component_type_code VARCHAR2(1);
50404 l_component_appl_id INTEGER;
50405 l_amb_context_code VARCHAR2(30);
50406 l_entity_code VARCHAR2(30);
50407 l_event_class_code VARCHAR2(30);
50408 l_ae_header_id NUMBER;
50409 l_event_type_code VARCHAR2(30);
50410 l_line_definition_code VARCHAR2(30);
50411 l_line_definition_owner_code VARCHAR2(1);
50412 --
50413 -- adr variables
50414 l_segment VARCHAR2(30);
50415 l_ccid NUMBER;
50416 l_adr_transaction_coa_id NUMBER;
50417 l_adr_accounting_coa_id NUMBER;
50418 l_adr_flexfield_segment_code VARCHAR2(30);
50419 l_adr_flex_value_set_id NUMBER;
50420 l_adr_value_type_code VARCHAR2(30);
50421 l_adr_value_combination_id NUMBER;
50422 l_adr_value_segment_code VARCHAR2(30);
50423
50424 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
50425 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
50426 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
50427 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
50428
50429 -- 4262811 Variables ------------------------------------------------------------------------------------------
50430 l_entered_amt_idx NUMBER;
50431 l_accted_amt_idx NUMBER;
50432 l_acc_rev_flag VARCHAR2(1);
50433 l_accrual_line_num NUMBER;
50434 l_tmp_amt NUMBER;
50435 l_acc_rev_natural_side_code VARCHAR2(1);
50436
50437 l_num_entries NUMBER;
50438 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
50439 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
50440 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
50441 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
50442 l_recog_line_1 NUMBER;
50443 l_recog_line_2 NUMBER;
50444
50445 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
50446 l_bflow_applied_to_amt NUMBER; -- 5132302
50447 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
50448
50449 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
50450
50451 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
50452 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
50453
50454 ---------------------------------------------------------------------------------------------------------------
50455
50456
50457 --
50458 -- bulk performance
50459 --
50460 l_balance_type_code VARCHAR2(1);
50461 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
50462 l_log_module VARCHAR2(240);
50463
50464 --
50465 -- Upgrade strategy
50466 --
50467 l_actual_upg_option VARCHAR2(1);
50468 l_enc_upg_option VARCHAR2(1);
50469
50470 --
50471 BEGIN
50472 --
50473 IF g_log_enabled THEN
50474 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_108';
50475 END IF;
50476 --
50477 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50478
50479 trace
50480 (p_msg => 'BEGIN of AcctLineType_108'
50481 ,p_level => C_LEVEL_PROCEDURE
50482 ,p_module => l_log_module);
50483
50484 END IF;
50485 --
50489 l_component_appl_id := 275;
50486 l_component_type := 'AMB_JLT';
50487 l_component_code := 'PA_RAW_COST_FED';
50488 l_component_type_code := 'S';
50490 l_amb_context_code := 'DEFAULT';
50491 l_entity_code := 'EXPENDITURES';
50492 l_event_class_code := 'USG_COST';
50493 l_event_type_code := 'USG_COST_ALL';
50494 l_line_definition_owner_code := 'S';
50495 l_line_definition_code := 'FV_PROJECTS_JLD';
50496 --
50497 l_balance_type_code := 'A';
50498 l_segment := NULL;
50499 l_ccid := NULL;
50500 l_adr_transaction_coa_id := NULL;
50501 l_adr_accounting_coa_id := NULL;
50502 l_adr_flexfield_segment_code := NULL;
50503 l_adr_flex_value_set_id := NULL;
50504 l_adr_value_type_code := NULL;
50505 l_adr_value_combination_id := NULL;
50506 l_adr_value_segment_code := NULL;
50507
50508 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
50509 l_bflow_class_code := ''; -- 4219869 Business Flow
50510 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
50511 l_budgetary_control_flag := 'N';
50512
50513 l_bflow_applied_to_amt_idx := NULL; -- 5132302
50514 l_bflow_applied_to_amt := NULL; -- 5132302
50515 l_entered_amt_idx := NULL; -- 4262811
50516 l_accted_amt_idx := NULL; -- 4262811
50517 l_acc_rev_flag := NULL; -- 4262811
50518 l_accrual_line_num := NULL; -- 4262811
50519 l_tmp_amt := NULL; -- 4262811
50520 --
50521
50522 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
50523 l_balance_type_code <> 'B' THEN
50524
50525 --
50526 XLA_AE_LINES_PKG.SetNewLine;
50527
50528 p_balance_type_code := l_balance_type_code;
50529 -- set the flag so later we will know whether the gain loss line needs to be created
50530
50531 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
50532 p_actual_flag :='A';
50533 END IF;
50534
50535 --
50536 -- bulk performance
50537 --
50538 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
50539 p_header_num => 0); -- 4262811
50540 --
50541 -- set accounting line options
50542 --
50543 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
50544 p_natural_side_code => 'D'
50545 , p_gain_or_loss_flag => 'N'
50546 , p_gl_transfer_mode_code => 'S'
50547 , p_acct_entry_type_code => 'A'
50548 , p_switch_side_flag => 'Y'
50549 , p_merge_duplicate_code => 'N'
50550 );
50551 --
50552 l_acc_rev_natural_side_code := 'C'; -- 4262811
50553 --
50554 --
50555 -- set accounting line type info
50556 --
50557 xla_ae_lines_pkg.SetAcctLineType
50558 (p_component_type => l_component_type
50559 ,p_event_type_code => l_event_type_code
50560 ,p_line_definition_owner_code => l_line_definition_owner_code
50561 ,p_line_definition_code => l_line_definition_code
50562 ,p_accounting_line_code => l_component_code
50563 ,p_accounting_line_type_code => l_component_type_code
50564 ,p_accounting_line_appl_id => l_component_appl_id
50565 ,p_amb_context_code => l_amb_context_code
50566 ,p_entity_code => l_entity_code
50567 ,p_event_class_code => l_event_class_code);
50568 --
50569 -- set accounting class
50570 --
50571 xla_ae_lines_pkg.SetAcctClass(
50572 p_accounting_class_code => 'FEDERAL_PROJECT_COST'
50573 , p_ae_header_id => l_ae_header_id
50574 );
50575
50576 --
50577 -- set rounding class
50578 --
50579 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
50580 'FEDERAL_PROJECT_COST';
50581
50582 --
50583 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
50584 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
50585 --
50586 -- bulk performance
50587 --
50588 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
50589
50590 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
50591 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
50592
50593 -- 4955764
50594 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50595 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
50596
50597 -- 4458381 Public Sector Enh
50598
50599 --
50600 -- set accounting attributes for the line type
50601 --
50602 l_entered_amt_idx := 22;
50603 l_accted_amt_idx := 27;
50604 l_bflow_applied_to_amt_idx := NULL; -- 5132302
50605 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
50606 l_rec_acct_attrs.array_char_value(1) := p_source_23;
50607 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
50608 l_rec_acct_attrs.array_char_value(2) := p_source_24;
50609 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
50610 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
50611 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
50612 l_rec_acct_attrs.array_num_value(4) := p_source_25;
50613 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
50614 l_rec_acct_attrs.array_char_value(5) := p_source_26;
50618 l_rec_acct_attrs.array_date_value(7) := p_source_28;
50615 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
50616 l_rec_acct_attrs.array_num_value(6) := p_source_27;
50617 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
50619 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
50620 l_rec_acct_attrs.array_num_value(8) := p_source_29;
50621 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
50622 l_rec_acct_attrs.array_char_value(9) := p_source_30;
50623 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
50624 l_rec_acct_attrs.array_char_value(10) := p_source_31;
50625 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
50626 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
50627 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
50628 l_rec_acct_attrs.array_num_value(12) := p_source_25;
50629 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
50630 l_rec_acct_attrs.array_char_value(13) := p_source_26;
50631 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
50632 l_rec_acct_attrs.array_num_value(14) := p_source_27;
50633 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
50634 l_rec_acct_attrs.array_date_value(15) := p_source_28;
50635 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
50636 l_rec_acct_attrs.array_num_value(16) := p_source_29;
50637 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
50638 l_rec_acct_attrs.array_char_value(17) := p_source_30;
50639 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
50640 l_rec_acct_attrs.array_char_value(18) := p_source_32;
50641 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
50642 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
50643 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
50644 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
50645 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
50646 l_rec_acct_attrs.array_char_value(21) := p_source_35;
50647 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
50648 l_rec_acct_attrs.array_num_value(22) := p_source_25;
50649 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
50650 l_rec_acct_attrs.array_char_value(23) := p_source_26;
50651 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
50652 l_rec_acct_attrs.array_date_value(24) := p_source_28;
50653 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
50654 l_rec_acct_attrs.array_num_value(25) := p_source_29;
50655 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
50656 l_rec_acct_attrs.array_char_value(26) := p_source_30;
50657 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
50658 l_rec_acct_attrs.array_num_value(27) := p_source_27;
50659 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
50660 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
50661 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
50662 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
50663 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
50664 l_rec_acct_attrs.array_char_value(30) := p_source_35;
50665
50666 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
50667 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
50668
50669 ---------------------------------------------------------------------------------------------------------------
50670 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
50671 ---------------------------------------------------------------------------------------------------------------
50672 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
50673
50674 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50675 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50676
50677 IF xla_accounting_cache_pkg.GetValueChar
50678 (p_source_code => 'LEDGER_CATEGORY_CODE'
50679 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
50680 AND l_bflow_method_code = 'PRIOR_ENTRY'
50681 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
50682 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
50683 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
50684 )
50685 THEN
50686 xla_ae_lines_pkg.BflowUpgEntry
50687 (p_business_method_code => l_bflow_method_code
50688 ,p_business_class_code => l_bflow_class_code
50689 ,p_balance_type => l_balance_type_code);
50690 ELSE
50691 NULL;
50692 -- No business flow processing for business flow method of NONE.
50693 END IF;
50694
50695 --
50696 -- call analytical criteria
50697 --
50698
50699 --
50700 -- call description
50701 --
50702 -- No description or it is inherited.
50703 --
50704 -- call ADRs
50705 -- Bug 4922099
50706 --
50707 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50708 (NVL(l_actual_upg_option, 'N') = 'O') OR
50709 (NVL(l_enc_upg_option, 'N') = 'O')
50710 )
50711 THEN
50712 NULL;
50713 --
50714 --
50715
50716 l_ccid := AcctDerRule_12(
50717 p_application_id => p_application_id
50718 , p_ae_header_id => l_ae_header_id
50719 , p_source_4 => p_source_4
50720 , p_source_5 => p_source_5
50721 , p_source_6 => p_source_6
50722 , x_transaction_coa_id => l_adr_transaction_coa_id
50726 );
50723 , x_accounting_coa_id => l_adr_accounting_coa_id
50724 , x_value_type_code => l_adr_value_type_code
50725 , p_side => 'NA'
50727
50728 xla_ae_lines_pkg.set_ccid(
50729 p_code_combination_id => l_ccid
50730 , p_value_type_code => l_adr_value_type_code
50731 , p_transaction_coa_id => l_adr_transaction_coa_id
50732 , p_accounting_coa_id => l_adr_accounting_coa_id
50733 , p_adr_code => 'PA_COST_ACCT_RULE'
50734 , p_adr_type_code => 'S'
50735 , p_component_type => l_component_type
50736 , p_component_code => l_component_code
50737 , p_component_type_code => l_component_type_code
50738 , p_component_appl_id => l_component_appl_id
50739 , p_amb_context_code => l_amb_context_code
50740 , p_side => 'NA'
50741 );
50742
50743
50744 l_segment := AcctDerRule_4(
50745 p_application_id => p_application_id
50746 , p_ae_header_id => l_ae_header_id
50747 , x_transaction_coa_id => l_adr_transaction_coa_id
50748 , x_accounting_coa_id => l_adr_accounting_coa_id
50749 , x_flexfield_segment_code => l_adr_flexfield_segment_code
50750 , x_flex_value_set_id => l_adr_flex_value_set_id
50751 , x_value_type_code => l_adr_value_type_code
50752 , x_value_combination_id => l_adr_value_combination_id
50753 , x_value_segment_code => l_adr_value_segment_code
50754 , p_side => 'NA'
50755 , p_override_seg_flag => 'Y'
50756 );
50757
50758 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
50759
50760 xla_ae_lines_pkg.set_segment(
50761 p_to_segment_code => 'GL_ACCOUNT'
50762 , p_segment_value => l_segment
50763 , p_from_segment_code => l_adr_value_segment_code
50764 , p_from_combination_id => l_adr_value_combination_id
50765 , p_value_type_code => l_adr_value_type_code
50766 , p_transaction_coa_id => l_adr_transaction_coa_id
50767 , p_accounting_coa_id => l_adr_accounting_coa_id
50768 , p_flexfield_segment_code => l_adr_flexfield_segment_code
50769 , p_flex_value_set_id => l_adr_flex_value_set_id
50770 , p_adr_code => 'FV_461001_PROJECTS'
50771 , p_adr_type_code => 'S'
50772 , p_component_type => l_component_type
50773 , p_component_code => l_component_code
50774 , p_component_type_code => l_component_type_code
50775 , p_component_appl_id => l_component_appl_id
50776 , p_amb_context_code => l_amb_context_code
50777 , p_entity_code => 'EXPENDITURES'
50778 , p_event_class_code => 'USG_COST'
50779 , p_side => 'NA'
50780 );
50781
50782 END IF;
50783
50784 --
50785 --
50786 END IF;
50787 --
50788 -- Bug 4922099
50789 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
50790 (NVL(l_enc_upg_option, 'N') = 'O')
50791 ) AND
50792 (l_bflow_method_code = 'PRIOR_ENTRY')
50793 )
50794 THEN
50795 IF
50796 --
50797 1 = 2
50798 --
50799 THEN
50800 xla_accounting_err_pkg.build_message
50801 (p_appli_s_name => 'XLA'
50802 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50803 ,p_token_1 => 'LINE_NUMBER'
50804 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
50805 ,p_token_2 => 'LINE_TYPE_NAME'
50806 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
50807 l_component_type
50808 ,l_component_code
50809 ,l_component_type_code
50810 ,l_component_appl_id
50811 ,l_amb_context_code
50812 ,l_entity_code
50813 ,l_event_class_code
50814 )
50815 ,p_token_3 => 'OWNER'
50816 ,p_value_3 => xla_lookups_pkg.get_meaning(
50817 p_lookup_type => 'XLA_OWNER_TYPE'
50818 ,p_lookup_code => l_component_type_code
50819 )
50820 ,p_token_4 => 'PRODUCT_NAME'
50821 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
50822 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
50823 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
50824 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
50825 ,p_ae_header_id => NULL
50826 );
50827
50828 IF (C_LEVEL_ERROR>= g_log_level) THEN
50832 ,p_module => l_log_module);
50829 trace
50830 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50831 ,p_level => C_LEVEL_ERROR
50833 END IF;
50834 END IF;
50835 END IF;
50836 --
50837 --
50838 ------------------------------------------------------------------------------------------------
50839 -- 4219869 Business Flow
50840 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
50841 -- Prior Entry. Currently, the following code is always generated.
50842 ------------------------------------------------------------------------------------------------
50843 XLA_AE_LINES_PKG.ValidateCurrentLine;
50844
50845 ------------------------------------------------------------------------------------
50846 -- 4219869 Business Flow
50847 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
50848 ------------------------------------------------------------------------------------
50849 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50850
50851 ----------------------------------------------------------------------------------
50852 -- 4219869 Business Flow
50853 -- Update journal entry status -- Need to generate this within IF <condition>
50854 ----------------------------------------------------------------------------------
50855 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50856 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
50857 ,p_balance_type_code => l_balance_type_code
50858 );
50859
50860 -------------------------------------------------------------------------------------------
50861 -- 4262811 - Generate the Accrual Reversal lines
50862 -------------------------------------------------------------------------------------------
50863 BEGIN
50864 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
50865 (g_array_event(p_event_id).array_value_num('header_index'));
50866 IF l_acc_rev_flag IS NULL THEN
50867 l_acc_rev_flag := 'N';
50868 END IF;
50869 EXCEPTION
50870 WHEN OTHERS THEN
50871 l_acc_rev_flag := 'N';
50872 END;
50873 --
50874 IF (l_acc_rev_flag = 'Y') THEN
50875
50876 -- 4645092 ------------------------------------------------------------------------------
50877 -- To allow MPA report to determine if it should generate report process
50878 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
50879 ------------------------------------------------------------------------------------------
50880
50881 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
50882 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
50883
50884 --
50885 -- Update the line information that should be overwritten
50886 --
50887 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
50888 p_header_num => 1);
50889 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
50890
50891 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
50892
50893 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
50894 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
50895 END IF;
50896
50897 --
50898 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
50899 --
50900 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
50901 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
50902 ELSE
50903 ---------------------------------------------------------------------------------------------------
50904 -- 4262811a Switch Sign
50905 ---------------------------------------------------------------------------------------------------
50906 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
50907 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50908 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50909 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50910 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50911 -- 5132302
50912 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
50913 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50914
50915 END IF;
50916
50917 -- 4955764
50918 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50919 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
50920
50921
50922 XLA_AE_LINES_PKG.ValidateCurrentLine;
50923 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50924
50925 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50926 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
50927 ,p_balance_type_code => l_balance_type_code);
50928
50929 END IF;
50930
50931 -----------------------------------------------------------------------------------------
50932 -- 4262811 Multiperiod Accounting
50933 -----------------------------------------------------------------------------------------
50934 -- No MPA option is assigned.
50935
50936
50937 END IF;
50938 --
50939
50940 --
50941 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50945 ,p_module => l_log_module);
50942 trace
50943 (p_msg => 'END of AcctLineType_108'
50944 ,p_level => C_LEVEL_PROCEDURE
50946 END IF;
50947 --
50948 EXCEPTION
50949 WHEN xla_exceptions_pkg.application_exception THEN
50950 RAISE;
50951 WHEN OTHERS THEN
50952 xla_exceptions_pkg.raise_message
50953 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_108');
50954 END AcctLineType_108;
50955 --
50956
50957 ---------------------------------------
50958 --
50959 -- PRIVATE FUNCTION
50960 -- AcctLineType_109
50961 --
50962 ---------------------------------------
50963 PROCEDURE AcctLineType_109 (
50964 p_application_id IN NUMBER
50965 ,p_event_id IN NUMBER
50966 ,p_calculate_acctd_flag IN VARCHAR2
50967 ,p_calculate_g_l_flag IN VARCHAR2
50968 ,p_actual_flag IN OUT VARCHAR2
50969 ,p_balance_type_code OUT VARCHAR2
50970 ,p_gain_or_loss_ref OUT VARCHAR2
50971
50972 --Cost CCID
50973 , p_source_4 IN NUMBER
50974 --Allow Account Override Flag
50975 , p_source_5 IN VARCHAR2
50976 --Adjustment Cost CCID
50977 , p_source_6 IN NUMBER
50978 --Cost Clearing CCID
50979 , p_source_7 IN NUMBER
50980 --Reversing Line Flag
50981 , p_source_23 IN VARCHAR2
50982 --Actual Upgrade Credit Accounting Class
50983 , p_source_24 IN VARCHAR2
50984 --Entered Raw Cost
50985 , p_source_25 IN NUMBER
50986 --Entered Currency Code
50987 , p_source_26 IN VARCHAR2
50988 --Accounted Raw Cost
50989 , p_source_27 IN NUMBER
50990 --Exchange Rate Date
50991 , p_source_28 IN DATE
50992 --Exchange Rate
50993 , p_source_29 IN NUMBER
50994 --Exchange Rate Type
50995 , p_source_30 IN VARCHAR2
50996 --Actual Upgrade Debit Accounting Class
50997 , p_source_31 IN VARCHAR2
50998 --Use Actuals Upgrade Attributes Flag
50999 , p_source_32 IN VARCHAR2
51000 --Expenditure Item ID
51001 , p_source_33 IN NUMBER
51002 --Cost Distribution Line Number
51003 , p_source_34 IN NUMBER
51004 --Line Type
51005 , p_source_35 IN VARCHAR2
51006 , p_source_35_meaning IN VARCHAR2
51007 --Reversed Line Number
51008 , p_source_36 IN NUMBER
51009 )
51010 IS
51011
51012 l_component_type VARCHAR2(80);
51013 l_component_code VARCHAR2(30);
51014 l_component_type_code VARCHAR2(1);
51015 l_component_appl_id INTEGER;
51016 l_amb_context_code VARCHAR2(30);
51017 l_entity_code VARCHAR2(30);
51018 l_event_class_code VARCHAR2(30);
51019 l_ae_header_id NUMBER;
51020 l_event_type_code VARCHAR2(30);
51021 l_line_definition_code VARCHAR2(30);
51022 l_line_definition_owner_code VARCHAR2(1);
51023 --
51024 -- adr variables
51025 l_segment VARCHAR2(30);
51026 l_ccid NUMBER;
51027 l_adr_transaction_coa_id NUMBER;
51028 l_adr_accounting_coa_id NUMBER;
51029 l_adr_flexfield_segment_code VARCHAR2(30);
51030 l_adr_flex_value_set_id NUMBER;
51031 l_adr_value_type_code VARCHAR2(30);
51032 l_adr_value_combination_id NUMBER;
51033 l_adr_value_segment_code VARCHAR2(30);
51034
51035 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
51036 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
51037 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
51038 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
51039
51040 -- 4262811 Variables ------------------------------------------------------------------------------------------
51041 l_entered_amt_idx NUMBER;
51042 l_accted_amt_idx NUMBER;
51043 l_acc_rev_flag VARCHAR2(1);
51044 l_accrual_line_num NUMBER;
51045 l_tmp_amt NUMBER;
51046 l_acc_rev_natural_side_code VARCHAR2(1);
51047
51048 l_num_entries NUMBER;
51049 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
51050 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
51051 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
51052 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
51053 l_recog_line_1 NUMBER;
51054 l_recog_line_2 NUMBER;
51055
51056 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
51057 l_bflow_applied_to_amt NUMBER; -- 5132302
51058 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
51059
51060 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
51061
51062 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
51063 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
51064
51065 ---------------------------------------------------------------------------------------------------------------
51066
51067
51068 --
51069 -- bulk performance
51070 --
51071 l_balance_type_code VARCHAR2(1);
51072 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
51073 l_log_module VARCHAR2(240);
51074
51075 --
51076 -- Upgrade strategy
51077 --
51078 l_actual_upg_option VARCHAR2(1);
51079 l_enc_upg_option VARCHAR2(1);
51080
51081 --
51082 BEGIN
51083 --
51084 IF g_log_enabled THEN
51085 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_109';
51086 END IF;
51087 --
51088 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51089
51093 ,p_module => l_log_module);
51090 trace
51091 (p_msg => 'BEGIN of AcctLineType_109'
51092 ,p_level => C_LEVEL_PROCEDURE
51094
51095 END IF;
51096 --
51097 l_component_type := 'AMB_JLT';
51098 l_component_code := 'PA_RAW_COST_FED';
51099 l_component_type_code := 'S';
51100 l_component_appl_id := 275;
51101 l_amb_context_code := 'DEFAULT';
51102 l_entity_code := 'EXPENDITURES';
51103 l_event_class_code := 'INVENTORY_COST';
51104 l_event_type_code := 'INVENTORY_COST_ALL';
51105 l_line_definition_owner_code := 'S';
51106 l_line_definition_code := 'FV_PROJECTS_JLD';
51107 --
51108 l_balance_type_code := 'A';
51109 l_segment := NULL;
51110 l_ccid := NULL;
51111 l_adr_transaction_coa_id := NULL;
51112 l_adr_accounting_coa_id := NULL;
51113 l_adr_flexfield_segment_code := NULL;
51114 l_adr_flex_value_set_id := NULL;
51115 l_adr_value_type_code := NULL;
51116 l_adr_value_combination_id := NULL;
51117 l_adr_value_segment_code := NULL;
51118
51119 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
51120 l_bflow_class_code := ''; -- 4219869 Business Flow
51121 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
51122 l_budgetary_control_flag := 'N';
51123
51124 l_bflow_applied_to_amt_idx := NULL; -- 5132302
51125 l_bflow_applied_to_amt := NULL; -- 5132302
51126 l_entered_amt_idx := NULL; -- 4262811
51127 l_accted_amt_idx := NULL; -- 4262811
51128 l_acc_rev_flag := NULL; -- 4262811
51129 l_accrual_line_num := NULL; -- 4262811
51130 l_tmp_amt := NULL; -- 4262811
51131 --
51132
51133 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
51134 l_balance_type_code <> 'B' THEN
51135
51136 --
51137 XLA_AE_LINES_PKG.SetNewLine;
51138
51139 p_balance_type_code := l_balance_type_code;
51140 -- set the flag so later we will know whether the gain loss line needs to be created
51141
51142 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
51143 p_actual_flag :='A';
51144 END IF;
51145
51146 --
51147 -- bulk performance
51148 --
51149 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
51150 p_header_num => 0); -- 4262811
51151 --
51152 -- set accounting line options
51153 --
51154 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
51155 p_natural_side_code => 'D'
51156 , p_gain_or_loss_flag => 'N'
51157 , p_gl_transfer_mode_code => 'S'
51158 , p_acct_entry_type_code => 'A'
51159 , p_switch_side_flag => 'Y'
51160 , p_merge_duplicate_code => 'N'
51161 );
51162 --
51163 l_acc_rev_natural_side_code := 'C'; -- 4262811
51164 --
51165 --
51166 -- set accounting line type info
51167 --
51168 xla_ae_lines_pkg.SetAcctLineType
51169 (p_component_type => l_component_type
51170 ,p_event_type_code => l_event_type_code
51171 ,p_line_definition_owner_code => l_line_definition_owner_code
51172 ,p_line_definition_code => l_line_definition_code
51173 ,p_accounting_line_code => l_component_code
51174 ,p_accounting_line_type_code => l_component_type_code
51175 ,p_accounting_line_appl_id => l_component_appl_id
51176 ,p_amb_context_code => l_amb_context_code
51177 ,p_entity_code => l_entity_code
51178 ,p_event_class_code => l_event_class_code);
51179 --
51180 -- set accounting class
51181 --
51182 xla_ae_lines_pkg.SetAcctClass(
51183 p_accounting_class_code => 'FEDERAL_PROJECT_COST'
51184 , p_ae_header_id => l_ae_header_id
51185 );
51186
51187 --
51188 -- set rounding class
51189 --
51190 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
51191 'FEDERAL_PROJECT_COST';
51192
51193 --
51194 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
51195 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
51196 --
51197 -- bulk performance
51198 --
51199 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
51200
51201 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
51202 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
51203
51204 -- 4955764
51205 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51206 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
51207
51208 -- 4458381 Public Sector Enh
51209
51210 --
51211 -- set accounting attributes for the line type
51212 --
51213 l_entered_amt_idx := 22;
51214 l_accted_amt_idx := 27;
51215 l_bflow_applied_to_amt_idx := NULL; -- 5132302
51216 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
51217 l_rec_acct_attrs.array_char_value(1) := p_source_23;
51218 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
51219 l_rec_acct_attrs.array_char_value(2) := p_source_24;
51220 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
51221 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
51225 l_rec_acct_attrs.array_char_value(5) := p_source_26;
51222 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
51223 l_rec_acct_attrs.array_num_value(4) := p_source_25;
51224 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
51226 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
51227 l_rec_acct_attrs.array_num_value(6) := p_source_27;
51228 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
51229 l_rec_acct_attrs.array_date_value(7) := p_source_28;
51230 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
51231 l_rec_acct_attrs.array_num_value(8) := p_source_29;
51232 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
51233 l_rec_acct_attrs.array_char_value(9) := p_source_30;
51234 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
51235 l_rec_acct_attrs.array_char_value(10) := p_source_31;
51236 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
51237 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
51238 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
51239 l_rec_acct_attrs.array_num_value(12) := p_source_25;
51240 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
51241 l_rec_acct_attrs.array_char_value(13) := p_source_26;
51242 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
51243 l_rec_acct_attrs.array_num_value(14) := p_source_27;
51244 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
51245 l_rec_acct_attrs.array_date_value(15) := p_source_28;
51246 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
51247 l_rec_acct_attrs.array_num_value(16) := p_source_29;
51248 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
51249 l_rec_acct_attrs.array_char_value(17) := p_source_30;
51250 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
51251 l_rec_acct_attrs.array_char_value(18) := p_source_32;
51252 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
51253 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
51254 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
51255 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
51256 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
51257 l_rec_acct_attrs.array_char_value(21) := p_source_35;
51258 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
51259 l_rec_acct_attrs.array_num_value(22) := p_source_25;
51260 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
51261 l_rec_acct_attrs.array_char_value(23) := p_source_26;
51262 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
51263 l_rec_acct_attrs.array_date_value(24) := p_source_28;
51264 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
51265 l_rec_acct_attrs.array_num_value(25) := p_source_29;
51266 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
51267 l_rec_acct_attrs.array_char_value(26) := p_source_30;
51268 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
51269 l_rec_acct_attrs.array_num_value(27) := p_source_27;
51270 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
51271 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
51272 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
51273 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
51274 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
51275 l_rec_acct_attrs.array_char_value(30) := p_source_35;
51276
51277 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
51278 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
51279
51280 ---------------------------------------------------------------------------------------------------------------
51281 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
51282 ---------------------------------------------------------------------------------------------------------------
51283 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
51284
51285 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51286 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51287
51288 IF xla_accounting_cache_pkg.GetValueChar
51289 (p_source_code => 'LEDGER_CATEGORY_CODE'
51290 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
51291 AND l_bflow_method_code = 'PRIOR_ENTRY'
51292 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
51293 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
51294 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
51295 )
51296 THEN
51297 xla_ae_lines_pkg.BflowUpgEntry
51298 (p_business_method_code => l_bflow_method_code
51299 ,p_business_class_code => l_bflow_class_code
51300 ,p_balance_type => l_balance_type_code);
51301 ELSE
51302 NULL;
51303 -- No business flow processing for business flow method of NONE.
51304 END IF;
51305
51306 --
51307 -- call analytical criteria
51308 --
51309
51310 --
51311 -- call description
51312 --
51313 -- No description or it is inherited.
51314 --
51315 -- call ADRs
51316 -- Bug 4922099
51317 --
51318 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51319 (NVL(l_actual_upg_option, 'N') = 'O') OR
51320 (NVL(l_enc_upg_option, 'N') = 'O')
51321 )
51322 THEN
51323 NULL;
51324 --
51325 --
51326
51327 l_ccid := AcctDerRule_12(
51331 , p_source_5 => p_source_5
51328 p_application_id => p_application_id
51329 , p_ae_header_id => l_ae_header_id
51330 , p_source_4 => p_source_4
51332 , p_source_6 => p_source_6
51333 , x_transaction_coa_id => l_adr_transaction_coa_id
51334 , x_accounting_coa_id => l_adr_accounting_coa_id
51335 , x_value_type_code => l_adr_value_type_code
51336 , p_side => 'NA'
51337 );
51338
51339 xla_ae_lines_pkg.set_ccid(
51340 p_code_combination_id => l_ccid
51341 , p_value_type_code => l_adr_value_type_code
51342 , p_transaction_coa_id => l_adr_transaction_coa_id
51343 , p_accounting_coa_id => l_adr_accounting_coa_id
51344 , p_adr_code => 'PA_COST_ACCT_RULE'
51345 , p_adr_type_code => 'S'
51346 , p_component_type => l_component_type
51347 , p_component_code => l_component_code
51348 , p_component_type_code => l_component_type_code
51349 , p_component_appl_id => l_component_appl_id
51350 , p_amb_context_code => l_amb_context_code
51351 , p_side => 'NA'
51352 );
51353
51354
51355 l_segment := AcctDerRule_4(
51356 p_application_id => p_application_id
51357 , p_ae_header_id => l_ae_header_id
51358 , x_transaction_coa_id => l_adr_transaction_coa_id
51359 , x_accounting_coa_id => l_adr_accounting_coa_id
51360 , x_flexfield_segment_code => l_adr_flexfield_segment_code
51361 , x_flex_value_set_id => l_adr_flex_value_set_id
51362 , x_value_type_code => l_adr_value_type_code
51363 , x_value_combination_id => l_adr_value_combination_id
51364 , x_value_segment_code => l_adr_value_segment_code
51365 , p_side => 'NA'
51366 , p_override_seg_flag => 'Y'
51367 );
51368
51369 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
51370
51371 xla_ae_lines_pkg.set_segment(
51372 p_to_segment_code => 'GL_ACCOUNT'
51373 , p_segment_value => l_segment
51374 , p_from_segment_code => l_adr_value_segment_code
51375 , p_from_combination_id => l_adr_value_combination_id
51376 , p_value_type_code => l_adr_value_type_code
51377 , p_transaction_coa_id => l_adr_transaction_coa_id
51378 , p_accounting_coa_id => l_adr_accounting_coa_id
51379 , p_flexfield_segment_code => l_adr_flexfield_segment_code
51380 , p_flex_value_set_id => l_adr_flex_value_set_id
51381 , p_adr_code => 'FV_461001_PROJECTS'
51382 , p_adr_type_code => 'S'
51383 , p_component_type => l_component_type
51384 , p_component_code => l_component_code
51385 , p_component_type_code => l_component_type_code
51386 , p_component_appl_id => l_component_appl_id
51387 , p_amb_context_code => l_amb_context_code
51388 , p_entity_code => 'EXPENDITURES'
51389 , p_event_class_code => 'INVENTORY_COST'
51390 , p_side => 'NA'
51391 );
51392
51393 END IF;
51394
51395 --
51396 --
51397 END IF;
51398 --
51399 -- Bug 4922099
51400 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
51401 (NVL(l_enc_upg_option, 'N') = 'O')
51402 ) AND
51403 (l_bflow_method_code = 'PRIOR_ENTRY')
51404 )
51405 THEN
51406 IF
51407 --
51408 1 = 2
51409 --
51410 THEN
51411 xla_accounting_err_pkg.build_message
51412 (p_appli_s_name => 'XLA'
51413 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51414 ,p_token_1 => 'LINE_NUMBER'
51415 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
51416 ,p_token_2 => 'LINE_TYPE_NAME'
51417 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
51418 l_component_type
51419 ,l_component_code
51420 ,l_component_type_code
51421 ,l_component_appl_id
51422 ,l_amb_context_code
51423 ,l_entity_code
51424 ,l_event_class_code
51425 )
51426 ,p_token_3 => 'OWNER'
51427 ,p_value_3 => xla_lookups_pkg.get_meaning(
51428 p_lookup_type => 'XLA_OWNER_TYPE'
51429 ,p_lookup_code => l_component_type_code
51430 )
51431 ,p_token_4 => 'PRODUCT_NAME'
51432 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
51433 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
51434 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
51438
51435 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
51436 ,p_ae_header_id => NULL
51437 );
51439 IF (C_LEVEL_ERROR>= g_log_level) THEN
51440 trace
51441 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51442 ,p_level => C_LEVEL_ERROR
51443 ,p_module => l_log_module);
51444 END IF;
51445 END IF;
51446 END IF;
51447 --
51448 --
51449 ------------------------------------------------------------------------------------------------
51450 -- 4219869 Business Flow
51451 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
51452 -- Prior Entry. Currently, the following code is always generated.
51453 ------------------------------------------------------------------------------------------------
51454 XLA_AE_LINES_PKG.ValidateCurrentLine;
51455
51456 ------------------------------------------------------------------------------------
51457 -- 4219869 Business Flow
51458 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
51459 ------------------------------------------------------------------------------------
51460 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51461
51462 ----------------------------------------------------------------------------------
51463 -- 4219869 Business Flow
51464 -- Update journal entry status -- Need to generate this within IF <condition>
51465 ----------------------------------------------------------------------------------
51466 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51467 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
51468 ,p_balance_type_code => l_balance_type_code
51469 );
51470
51471 -------------------------------------------------------------------------------------------
51472 -- 4262811 - Generate the Accrual Reversal lines
51473 -------------------------------------------------------------------------------------------
51474 BEGIN
51475 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
51476 (g_array_event(p_event_id).array_value_num('header_index'));
51477 IF l_acc_rev_flag IS NULL THEN
51478 l_acc_rev_flag := 'N';
51479 END IF;
51480 EXCEPTION
51481 WHEN OTHERS THEN
51482 l_acc_rev_flag := 'N';
51483 END;
51484 --
51485 IF (l_acc_rev_flag = 'Y') THEN
51486
51487 -- 4645092 ------------------------------------------------------------------------------
51488 -- To allow MPA report to determine if it should generate report process
51489 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
51490 ------------------------------------------------------------------------------------------
51491
51492 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
51493 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
51494
51495 --
51496 -- Update the line information that should be overwritten
51497 --
51498 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
51499 p_header_num => 1);
51500 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
51501
51502 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
51503
51504 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
51505 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
51506 END IF;
51507
51508 --
51509 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
51510 --
51511 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
51512 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
51513 ELSE
51514 ---------------------------------------------------------------------------------------------------
51515 -- 4262811a Switch Sign
51516 ---------------------------------------------------------------------------------------------------
51517 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
51518 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51519 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51520 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51521 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51522 -- 5132302
51523 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
51524 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51525
51526 END IF;
51527
51528 -- 4955764
51529 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51530 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
51531
51532
51533 XLA_AE_LINES_PKG.ValidateCurrentLine;
51534 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51535
51536 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51537 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
51538 ,p_balance_type_code => l_balance_type_code);
51539
51540 END IF;
51541
51542 -----------------------------------------------------------------------------------------
51546
51543 -- 4262811 Multiperiod Accounting
51544 -----------------------------------------------------------------------------------------
51545 -- No MPA option is assigned.
51547
51548 END IF;
51549 --
51550
51551 --
51552 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51553 trace
51554 (p_msg => 'END of AcctLineType_109'
51555 ,p_level => C_LEVEL_PROCEDURE
51556 ,p_module => l_log_module);
51557 END IF;
51558 --
51559 EXCEPTION
51560 WHEN xla_exceptions_pkg.application_exception THEN
51561 RAISE;
51562 WHEN OTHERS THEN
51563 xla_exceptions_pkg.raise_message
51564 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_109');
51565 END AcctLineType_109;
51566 --
51567
51568 ---------------------------------------
51569 --
51570 -- PRIVATE FUNCTION
51571 -- AcctLineType_110
51572 --
51573 ---------------------------------------
51574 PROCEDURE AcctLineType_110 (
51575 p_application_id IN NUMBER
51576 ,p_event_id IN NUMBER
51577 ,p_calculate_acctd_flag IN VARCHAR2
51578 ,p_calculate_g_l_flag IN VARCHAR2
51579 ,p_actual_flag IN OUT VARCHAR2
51580 ,p_balance_type_code OUT VARCHAR2
51581 ,p_gain_or_loss_ref OUT VARCHAR2
51582
51583 --PO Distribution ID
51584 , p_source_2 IN NUMBER
51585 --Cost CCID
51586 , p_source_4 IN NUMBER
51587 --Allow Account Override Flag
51588 , p_source_5 IN VARCHAR2
51589 --Adjustment Cost CCID
51590 , p_source_6 IN NUMBER
51591 --Cost Clearing CCID
51592 , p_source_7 IN NUMBER
51593 --Exchange Rate Variance Flag
51594 , p_source_22 IN VARCHAR2
51595 --Reversing Line Flag
51596 , p_source_23 IN VARCHAR2
51597 --Actual Upgrade Credit Accounting Class
51598 , p_source_24 IN VARCHAR2
51599 --Entered Raw Cost
51600 , p_source_25 IN NUMBER
51601 --Entered Currency Code
51602 , p_source_26 IN VARCHAR2
51603 --Accounted Raw Cost
51604 , p_source_27 IN NUMBER
51605 --Exchange Rate Date
51606 , p_source_28 IN DATE
51607 --Exchange Rate
51608 , p_source_29 IN NUMBER
51609 --Exchange Rate Type
51610 , p_source_30 IN VARCHAR2
51611 --Actual Upgrade Debit Accounting Class
51612 , p_source_31 IN VARCHAR2
51613 --Use Actuals Upgrade Attributes Flag
51614 , p_source_32 IN VARCHAR2
51615 --Expenditure Item ID
51616 , p_source_33 IN NUMBER
51617 --Cost Distribution Line Number
51618 , p_source_34 IN NUMBER
51619 --Line Type
51620 , p_source_35 IN VARCHAR2
51621 , p_source_35_meaning IN VARCHAR2
51622 --Reversed Line Number
51623 , p_source_36 IN NUMBER
51624 )
51625 IS
51626
51627 l_component_type VARCHAR2(80);
51628 l_component_code VARCHAR2(30);
51629 l_component_type_code VARCHAR2(1);
51630 l_component_appl_id INTEGER;
51631 l_amb_context_code VARCHAR2(30);
51632 l_entity_code VARCHAR2(30);
51633 l_event_class_code VARCHAR2(30);
51634 l_ae_header_id NUMBER;
51635 l_event_type_code VARCHAR2(30);
51636 l_line_definition_code VARCHAR2(30);
51637 l_line_definition_owner_code VARCHAR2(1);
51638 --
51639 -- adr variables
51640 l_segment VARCHAR2(30);
51641 l_ccid NUMBER;
51642 l_adr_transaction_coa_id NUMBER;
51643 l_adr_accounting_coa_id NUMBER;
51644 l_adr_flexfield_segment_code VARCHAR2(30);
51645 l_adr_flex_value_set_id NUMBER;
51646 l_adr_value_type_code VARCHAR2(30);
51647 l_adr_value_combination_id NUMBER;
51648 l_adr_value_segment_code VARCHAR2(30);
51649
51650 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
51651 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
51652 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
51653 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
51654
51655 -- 4262811 Variables ------------------------------------------------------------------------------------------
51656 l_entered_amt_idx NUMBER;
51657 l_accted_amt_idx NUMBER;
51658 l_acc_rev_flag VARCHAR2(1);
51659 l_accrual_line_num NUMBER;
51660 l_tmp_amt NUMBER;
51661 l_acc_rev_natural_side_code VARCHAR2(1);
51662
51663 l_num_entries NUMBER;
51664 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
51665 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
51666 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
51667 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
51668 l_recog_line_1 NUMBER;
51669 l_recog_line_2 NUMBER;
51670
51671 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
51672 l_bflow_applied_to_amt NUMBER; -- 5132302
51673 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
51674
51675 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
51676
51677 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
51678 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
51679
51680 ---------------------------------------------------------------------------------------------------------------
51681
51682
51683 --
51684 -- bulk performance
51685 --
51686 l_balance_type_code VARCHAR2(1);
51687 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
51691 -- Upgrade strategy
51688 l_log_module VARCHAR2(240);
51689
51690 --
51692 --
51693 l_actual_upg_option VARCHAR2(1);
51694 l_enc_upg_option VARCHAR2(1);
51695
51696 --
51697 BEGIN
51698 --
51699 IF g_log_enabled THEN
51700 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_110';
51701 END IF;
51702 --
51703 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51704
51705 trace
51706 (p_msg => 'BEGIN of AcctLineType_110'
51707 ,p_level => C_LEVEL_PROCEDURE
51708 ,p_module => l_log_module);
51709
51710 END IF;
51711 --
51712 l_component_type := 'AMB_JLT';
51713 l_component_code := 'PA_RAW_COST_FED';
51714 l_component_type_code := 'S';
51715 l_component_appl_id := 275;
51716 l_amb_context_code := 'DEFAULT';
51717 l_entity_code := 'EXPENDITURES';
51718 l_event_class_code := 'SUPPLIER_COST';
51719 l_event_type_code := 'SUPPLIER_COST_ALL';
51720 l_line_definition_owner_code := 'S';
51721 l_line_definition_code := 'FV_PROJECTS_JLD';
51722 --
51723 l_balance_type_code := 'A';
51724 l_segment := NULL;
51725 l_ccid := NULL;
51726 l_adr_transaction_coa_id := NULL;
51727 l_adr_accounting_coa_id := NULL;
51728 l_adr_flexfield_segment_code := NULL;
51729 l_adr_flex_value_set_id := NULL;
51730 l_adr_value_type_code := NULL;
51731 l_adr_value_combination_id := NULL;
51732 l_adr_value_segment_code := NULL;
51733
51734 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
51735 l_bflow_class_code := ''; -- 4219869 Business Flow
51736 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
51737 l_budgetary_control_flag := 'N';
51738
51739 l_bflow_applied_to_amt_idx := NULL; -- 5132302
51740 l_bflow_applied_to_amt := NULL; -- 5132302
51741 l_entered_amt_idx := NULL; -- 4262811
51742 l_accted_amt_idx := NULL; -- 4262811
51743 l_acc_rev_flag := NULL; -- 4262811
51744 l_accrual_line_num := NULL; -- 4262811
51745 l_tmp_amt := NULL; -- 4262811
51746 --
51747
51748 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
51749 l_balance_type_code <> 'B' THEN
51750 IF NVL(p_source_22,'
51751 ') = 'N'
51752 THEN
51753
51754 --
51755 XLA_AE_LINES_PKG.SetNewLine;
51756
51757 p_balance_type_code := l_balance_type_code;
51758 -- set the flag so later we will know whether the gain loss line needs to be created
51759
51760 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
51761 p_actual_flag :='A';
51762 END IF;
51763
51764 --
51765 -- bulk performance
51766 --
51767 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
51768 p_header_num => 0); -- 4262811
51769 --
51770 -- set accounting line options
51771 --
51772 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
51773 p_natural_side_code => 'D'
51774 , p_gain_or_loss_flag => 'N'
51775 , p_gl_transfer_mode_code => 'S'
51776 , p_acct_entry_type_code => 'A'
51777 , p_switch_side_flag => 'Y'
51778 , p_merge_duplicate_code => 'N'
51779 );
51780 --
51781 l_acc_rev_natural_side_code := 'C'; -- 4262811
51782 --
51783 --
51784 -- set accounting line type info
51785 --
51786 xla_ae_lines_pkg.SetAcctLineType
51787 (p_component_type => l_component_type
51788 ,p_event_type_code => l_event_type_code
51789 ,p_line_definition_owner_code => l_line_definition_owner_code
51790 ,p_line_definition_code => l_line_definition_code
51791 ,p_accounting_line_code => l_component_code
51792 ,p_accounting_line_type_code => l_component_type_code
51793 ,p_accounting_line_appl_id => l_component_appl_id
51794 ,p_amb_context_code => l_amb_context_code
51795 ,p_entity_code => l_entity_code
51796 ,p_event_class_code => l_event_class_code);
51797 --
51798 -- set accounting class
51799 --
51800 xla_ae_lines_pkg.SetAcctClass(
51801 p_accounting_class_code => 'FEDERAL_PROJECT_COST'
51802 , p_ae_header_id => l_ae_header_id
51803 );
51804
51805 --
51806 -- set rounding class
51807 --
51808 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
51809 'FEDERAL_PROJECT_COST';
51810
51811 --
51812 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
51813 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
51814 --
51815 -- bulk performance
51816 --
51817 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
51818
51819 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
51820 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
51821
51822 -- 4955764
51823 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51824 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
51825
51826 -- 4458381 Public Sector Enh
51827
51828 --
51829 -- set accounting attributes for the line type
51830 --
51831 l_entered_amt_idx := 22;
51835 l_rec_acct_attrs.array_char_value(1) := p_source_23;
51832 l_accted_amt_idx := 27;
51833 l_bflow_applied_to_amt_idx := NULL; -- 5132302
51834 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
51836 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
51837 l_rec_acct_attrs.array_char_value(2) := p_source_24;
51838 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
51839 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
51840 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
51841 l_rec_acct_attrs.array_num_value(4) := p_source_25;
51842 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
51843 l_rec_acct_attrs.array_char_value(5) := p_source_26;
51844 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
51845 l_rec_acct_attrs.array_num_value(6) := p_source_27;
51846 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
51847 l_rec_acct_attrs.array_date_value(7) := p_source_28;
51848 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
51849 l_rec_acct_attrs.array_num_value(8) := p_source_29;
51850 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
51851 l_rec_acct_attrs.array_char_value(9) := p_source_30;
51852 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
51853 l_rec_acct_attrs.array_char_value(10) := p_source_31;
51854 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
51855 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
51856 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
51857 l_rec_acct_attrs.array_num_value(12) := p_source_25;
51858 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
51859 l_rec_acct_attrs.array_char_value(13) := p_source_26;
51860 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
51861 l_rec_acct_attrs.array_num_value(14) := p_source_27;
51862 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
51863 l_rec_acct_attrs.array_date_value(15) := p_source_28;
51864 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
51865 l_rec_acct_attrs.array_num_value(16) := p_source_29;
51866 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
51867 l_rec_acct_attrs.array_char_value(17) := p_source_30;
51868 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
51869 l_rec_acct_attrs.array_char_value(18) := p_source_32;
51870 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
51871 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
51872 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
51873 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
51874 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
51875 l_rec_acct_attrs.array_char_value(21) := p_source_35;
51876 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
51877 l_rec_acct_attrs.array_num_value(22) := p_source_25;
51878 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
51879 l_rec_acct_attrs.array_char_value(23) := p_source_26;
51880 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
51881 l_rec_acct_attrs.array_date_value(24) := p_source_28;
51882 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
51883 l_rec_acct_attrs.array_num_value(25) := p_source_29;
51884 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
51885 l_rec_acct_attrs.array_char_value(26) := p_source_30;
51886 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
51887 l_rec_acct_attrs.array_num_value(27) := p_source_27;
51888 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
51889 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
51890 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
51891 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
51892 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
51893 l_rec_acct_attrs.array_char_value(30) := p_source_35;
51894
51895 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
51896 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
51897
51898 ---------------------------------------------------------------------------------------------------------------
51899 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
51900 ---------------------------------------------------------------------------------------------------------------
51901 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
51902
51903 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51904 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51905
51906 IF xla_accounting_cache_pkg.GetValueChar
51907 (p_source_code => 'LEDGER_CATEGORY_CODE'
51908 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
51909 AND l_bflow_method_code = 'PRIOR_ENTRY'
51910 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
51911 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
51912 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
51913 )
51914 THEN
51915 xla_ae_lines_pkg.BflowUpgEntry
51916 (p_business_method_code => l_bflow_method_code
51917 ,p_business_class_code => l_bflow_class_code
51918 ,p_balance_type => l_balance_type_code);
51919 ELSE
51920 NULL;
51921 -- No business flow processing for business flow method of NONE.
51922 END IF;
51923
51924 --
51925 -- call analytical criteria
51926 --
51927
51928 --
51932 --
51929 -- call description
51930 --
51931 -- No description or it is inherited.
51933 -- call ADRs
51934 -- Bug 4922099
51935 --
51936 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51937 (NVL(l_actual_upg_option, 'N') = 'O') OR
51938 (NVL(l_enc_upg_option, 'N') = 'O')
51939 )
51940 THEN
51941 NULL;
51942 --
51943 --
51944
51945 l_ccid := AcctDerRule_12(
51946 p_application_id => p_application_id
51947 , p_ae_header_id => l_ae_header_id
51948 , p_source_4 => p_source_4
51949 , p_source_5 => p_source_5
51950 , p_source_6 => p_source_6
51951 , x_transaction_coa_id => l_adr_transaction_coa_id
51952 , x_accounting_coa_id => l_adr_accounting_coa_id
51953 , x_value_type_code => l_adr_value_type_code
51954 , p_side => 'NA'
51955 );
51956
51957 xla_ae_lines_pkg.set_ccid(
51958 p_code_combination_id => l_ccid
51959 , p_value_type_code => l_adr_value_type_code
51960 , p_transaction_coa_id => l_adr_transaction_coa_id
51961 , p_accounting_coa_id => l_adr_accounting_coa_id
51962 , p_adr_code => 'PA_COST_ACCT_RULE'
51963 , p_adr_type_code => 'S'
51964 , p_component_type => l_component_type
51965 , p_component_code => l_component_code
51966 , p_component_type_code => l_component_type_code
51967 , p_component_appl_id => l_component_appl_id
51968 , p_amb_context_code => l_amb_context_code
51969 , p_side => 'NA'
51970 );
51971
51972
51973 l_segment := AcctDerRule_6(
51974 p_application_id => p_application_id
51975 , p_ae_header_id => l_ae_header_id
51976 , p_source_2 => p_source_2
51977 , x_transaction_coa_id => l_adr_transaction_coa_id
51978 , x_accounting_coa_id => l_adr_accounting_coa_id
51979 , x_flexfield_segment_code => l_adr_flexfield_segment_code
51980 , x_flex_value_set_id => l_adr_flex_value_set_id
51981 , x_value_type_code => l_adr_value_type_code
51982 , x_value_combination_id => l_adr_value_combination_id
51983 , x_value_segment_code => l_adr_value_segment_code
51984 , p_side => 'NA'
51985 , p_override_seg_flag => 'Y'
51986 );
51987
51988 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
51989
51990 xla_ae_lines_pkg.set_segment(
51991 p_to_segment_code => 'GL_ACCOUNT'
51992 , p_segment_value => l_segment
51993 , p_from_segment_code => l_adr_value_segment_code
51994 , p_from_combination_id => l_adr_value_combination_id
51995 , p_value_type_code => l_adr_value_type_code
51996 , p_transaction_coa_id => l_adr_transaction_coa_id
51997 , p_accounting_coa_id => l_adr_accounting_coa_id
51998 , p_flexfield_segment_code => l_adr_flexfield_segment_code
51999 , p_flex_value_set_id => l_adr_flex_value_set_id
52000 , p_adr_code => 'FV_4XXX_PROJECTS'
52001 , p_adr_type_code => 'S'
52002 , p_component_type => l_component_type
52003 , p_component_code => l_component_code
52004 , p_component_type_code => l_component_type_code
52005 , p_component_appl_id => l_component_appl_id
52006 , p_amb_context_code => l_amb_context_code
52007 , p_entity_code => 'EXPENDITURES'
52008 , p_event_class_code => 'SUPPLIER_COST'
52009 , p_side => 'NA'
52010 );
52011
52012 END IF;
52013
52014 --
52015 --
52016 END IF;
52017 --
52018 -- Bug 4922099
52019 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
52020 (NVL(l_enc_upg_option, 'N') = 'O')
52021 ) AND
52022 (l_bflow_method_code = 'PRIOR_ENTRY')
52023 )
52024 THEN
52025 IF
52026 --
52027 1 = 2
52028 --
52029 THEN
52030 xla_accounting_err_pkg.build_message
52031 (p_appli_s_name => 'XLA'
52032 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52033 ,p_token_1 => 'LINE_NUMBER'
52034 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
52035 ,p_token_2 => 'LINE_TYPE_NAME'
52036 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
52037 l_component_type
52038 ,l_component_code
52039 ,l_component_type_code
52040 ,l_component_appl_id
52041 ,l_amb_context_code
52042 ,l_entity_code
52043 ,l_event_class_code
52044 )
52045 ,p_token_3 => 'OWNER'
52046 ,p_value_3 => xla_lookups_pkg.get_meaning(
52047 p_lookup_type => 'XLA_OWNER_TYPE'
52051 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
52048 ,p_lookup_code => l_component_type_code
52049 )
52050 ,p_token_4 => 'PRODUCT_NAME'
52052 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
52053 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
52054 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
52055 ,p_ae_header_id => NULL
52056 );
52057
52058 IF (C_LEVEL_ERROR>= g_log_level) THEN
52059 trace
52060 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52061 ,p_level => C_LEVEL_ERROR
52062 ,p_module => l_log_module);
52063 END IF;
52064 END IF;
52065 END IF;
52066 --
52067 --
52068 ------------------------------------------------------------------------------------------------
52069 -- 4219869 Business Flow
52070 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
52071 -- Prior Entry. Currently, the following code is always generated.
52072 ------------------------------------------------------------------------------------------------
52073 XLA_AE_LINES_PKG.ValidateCurrentLine;
52074
52075 ------------------------------------------------------------------------------------
52076 -- 4219869 Business Flow
52077 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
52078 ------------------------------------------------------------------------------------
52079 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52080
52081 ----------------------------------------------------------------------------------
52082 -- 4219869 Business Flow
52083 -- Update journal entry status -- Need to generate this within IF <condition>
52084 ----------------------------------------------------------------------------------
52085 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52086 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
52087 ,p_balance_type_code => l_balance_type_code
52088 );
52089
52090 -------------------------------------------------------------------------------------------
52091 -- 4262811 - Generate the Accrual Reversal lines
52092 -------------------------------------------------------------------------------------------
52093 BEGIN
52094 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
52095 (g_array_event(p_event_id).array_value_num('header_index'));
52096 IF l_acc_rev_flag IS NULL THEN
52097 l_acc_rev_flag := 'N';
52098 END IF;
52099 EXCEPTION
52100 WHEN OTHERS THEN
52101 l_acc_rev_flag := 'N';
52102 END;
52103 --
52104 IF (l_acc_rev_flag = 'Y') THEN
52105
52106 -- 4645092 ------------------------------------------------------------------------------
52107 -- To allow MPA report to determine if it should generate report process
52108 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
52109 ------------------------------------------------------------------------------------------
52110
52111 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
52112 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
52113
52114 --
52115 -- Update the line information that should be overwritten
52116 --
52117 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
52118 p_header_num => 1);
52119 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
52120
52121 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
52122
52123 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
52124 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
52125 END IF;
52126
52127 --
52128 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
52129 --
52130 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
52131 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
52132 ELSE
52133 ---------------------------------------------------------------------------------------------------
52134 -- 4262811a Switch Sign
52135 ---------------------------------------------------------------------------------------------------
52136 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
52137 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52138 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52139 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52140 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52141 -- 5132302
52142 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
52143 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52144
52145 END IF;
52146
52147 -- 4955764
52148 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52152 XLA_AE_LINES_PKG.ValidateCurrentLine;
52149 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
52150
52151
52153 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52154
52155 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52156 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
52157 ,p_balance_type_code => l_balance_type_code);
52158
52159 END IF;
52160
52161 -----------------------------------------------------------------------------------------
52162 -- 4262811 Multiperiod Accounting
52163 -----------------------------------------------------------------------------------------
52164 -- No MPA option is assigned.
52165
52166
52167 END IF;
52168 END IF;
52169 --
52170
52171 --
52172 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52173 trace
52174 (p_msg => 'END of AcctLineType_110'
52175 ,p_level => C_LEVEL_PROCEDURE
52176 ,p_module => l_log_module);
52177 END IF;
52178 --
52179 EXCEPTION
52180 WHEN xla_exceptions_pkg.application_exception THEN
52181 RAISE;
52182 WHEN OTHERS THEN
52183 xla_exceptions_pkg.raise_message
52184 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_110');
52185 END AcctLineType_110;
52186 --
52187
52188 ---------------------------------------
52189 --
52190 -- PRIVATE FUNCTION
52191 -- AcctLineType_111
52192 --
52193 ---------------------------------------
52194 PROCEDURE AcctLineType_111 (
52195 p_application_id IN NUMBER
52196 ,p_event_id IN NUMBER
52197 ,p_calculate_acctd_flag IN VARCHAR2
52198 ,p_calculate_g_l_flag IN VARCHAR2
52199 ,p_actual_flag IN OUT VARCHAR2
52200 ,p_balance_type_code OUT VARCHAR2
52201 ,p_gain_or_loss_ref OUT VARCHAR2
52202
52203 --Cost CCID
52204 , p_source_4 IN NUMBER
52205 --Allow Account Override Flag
52206 , p_source_5 IN VARCHAR2
52207 --Adjustment Cost CCID
52208 , p_source_6 IN NUMBER
52209 --Cost Clearing CCID
52210 , p_source_7 IN NUMBER
52211 --Reversing Line Flag
52212 , p_source_23 IN VARCHAR2
52213 --Actual Upgrade Credit Accounting Class
52214 , p_source_24 IN VARCHAR2
52215 --Entered Raw Cost
52216 , p_source_25 IN NUMBER
52217 --Entered Currency Code
52218 , p_source_26 IN VARCHAR2
52219 --Accounted Raw Cost
52220 , p_source_27 IN NUMBER
52221 --Exchange Rate Date
52222 , p_source_28 IN DATE
52223 --Exchange Rate
52224 , p_source_29 IN NUMBER
52225 --Exchange Rate Type
52226 , p_source_30 IN VARCHAR2
52227 --Actual Upgrade Debit Accounting Class
52228 , p_source_31 IN VARCHAR2
52229 --Use Actuals Upgrade Attributes Flag
52230 , p_source_32 IN VARCHAR2
52231 --Expenditure Item ID
52232 , p_source_33 IN NUMBER
52233 --Cost Distribution Line Number
52234 , p_source_34 IN NUMBER
52235 --Line Type
52236 , p_source_35 IN VARCHAR2
52237 , p_source_35_meaning IN VARCHAR2
52238 --Reversed Line Number
52239 , p_source_36 IN NUMBER
52240 )
52241 IS
52242
52243 l_component_type VARCHAR2(80);
52244 l_component_code VARCHAR2(30);
52245 l_component_type_code VARCHAR2(1);
52246 l_component_appl_id INTEGER;
52247 l_amb_context_code VARCHAR2(30);
52248 l_entity_code VARCHAR2(30);
52249 l_event_class_code VARCHAR2(30);
52250 l_ae_header_id NUMBER;
52251 l_event_type_code VARCHAR2(30);
52252 l_line_definition_code VARCHAR2(30);
52253 l_line_definition_owner_code VARCHAR2(1);
52254 --
52255 -- adr variables
52256 l_segment VARCHAR2(30);
52257 l_ccid NUMBER;
52258 l_adr_transaction_coa_id NUMBER;
52259 l_adr_accounting_coa_id NUMBER;
52260 l_adr_flexfield_segment_code VARCHAR2(30);
52261 l_adr_flex_value_set_id NUMBER;
52262 l_adr_value_type_code VARCHAR2(30);
52263 l_adr_value_combination_id NUMBER;
52264 l_adr_value_segment_code VARCHAR2(30);
52265
52266 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
52267 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
52268 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
52269 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
52270
52271 -- 4262811 Variables ------------------------------------------------------------------------------------------
52272 l_entered_amt_idx NUMBER;
52273 l_accted_amt_idx NUMBER;
52274 l_acc_rev_flag VARCHAR2(1);
52275 l_accrual_line_num NUMBER;
52276 l_tmp_amt NUMBER;
52277 l_acc_rev_natural_side_code VARCHAR2(1);
52278
52279 l_num_entries NUMBER;
52280 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
52281 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
52282 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
52283 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
52284 l_recog_line_1 NUMBER;
52285 l_recog_line_2 NUMBER;
52286
52287 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
52288 l_bflow_applied_to_amt NUMBER; -- 5132302
52289 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
52290
52291 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
52292
52296 ---------------------------------------------------------------------------------------------------------------
52293 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
52294 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
52295
52297
52298
52299 --
52300 -- bulk performance
52301 --
52302 l_balance_type_code VARCHAR2(1);
52303 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
52304 l_log_module VARCHAR2(240);
52305
52306 --
52307 -- Upgrade strategy
52308 --
52309 l_actual_upg_option VARCHAR2(1);
52310 l_enc_upg_option VARCHAR2(1);
52311
52312 --
52313 BEGIN
52314 --
52315 IF g_log_enabled THEN
52316 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_111';
52317 END IF;
52318 --
52319 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52320
52321 trace
52322 (p_msg => 'BEGIN of AcctLineType_111'
52323 ,p_level => C_LEVEL_PROCEDURE
52324 ,p_module => l_log_module);
52325
52326 END IF;
52327 --
52328 l_component_type := 'AMB_JLT';
52329 l_component_code := 'PA_RAW_COST_FED';
52330 l_component_type_code := 'S';
52331 l_component_appl_id := 275;
52332 l_amb_context_code := 'DEFAULT';
52333 l_entity_code := 'EXPENDITURES';
52334 l_event_class_code := 'WIP_COST';
52335 l_event_type_code := 'WIP_COST_ALL';
52336 l_line_definition_owner_code := 'S';
52337 l_line_definition_code := 'FV_PROJECTS_JLD';
52338 --
52339 l_balance_type_code := 'A';
52340 l_segment := NULL;
52341 l_ccid := NULL;
52342 l_adr_transaction_coa_id := NULL;
52343 l_adr_accounting_coa_id := NULL;
52344 l_adr_flexfield_segment_code := NULL;
52345 l_adr_flex_value_set_id := NULL;
52346 l_adr_value_type_code := NULL;
52347 l_adr_value_combination_id := NULL;
52348 l_adr_value_segment_code := NULL;
52349
52350 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
52351 l_bflow_class_code := ''; -- 4219869 Business Flow
52352 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
52353 l_budgetary_control_flag := 'N';
52354
52355 l_bflow_applied_to_amt_idx := NULL; -- 5132302
52356 l_bflow_applied_to_amt := NULL; -- 5132302
52357 l_entered_amt_idx := NULL; -- 4262811
52358 l_accted_amt_idx := NULL; -- 4262811
52359 l_acc_rev_flag := NULL; -- 4262811
52360 l_accrual_line_num := NULL; -- 4262811
52361 l_tmp_amt := NULL; -- 4262811
52362 --
52363
52364 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
52365 l_balance_type_code <> 'B' THEN
52366
52367 --
52368 XLA_AE_LINES_PKG.SetNewLine;
52369
52370 p_balance_type_code := l_balance_type_code;
52371 -- set the flag so later we will know whether the gain loss line needs to be created
52372
52373 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
52374 p_actual_flag :='A';
52375 END IF;
52376
52377 --
52378 -- bulk performance
52379 --
52380 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
52381 p_header_num => 0); -- 4262811
52382 --
52383 -- set accounting line options
52384 --
52385 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
52386 p_natural_side_code => 'D'
52387 , p_gain_or_loss_flag => 'N'
52388 , p_gl_transfer_mode_code => 'S'
52389 , p_acct_entry_type_code => 'A'
52390 , p_switch_side_flag => 'Y'
52391 , p_merge_duplicate_code => 'N'
52392 );
52393 --
52394 l_acc_rev_natural_side_code := 'C'; -- 4262811
52395 --
52396 --
52397 -- set accounting line type info
52398 --
52399 xla_ae_lines_pkg.SetAcctLineType
52400 (p_component_type => l_component_type
52401 ,p_event_type_code => l_event_type_code
52402 ,p_line_definition_owner_code => l_line_definition_owner_code
52403 ,p_line_definition_code => l_line_definition_code
52404 ,p_accounting_line_code => l_component_code
52405 ,p_accounting_line_type_code => l_component_type_code
52406 ,p_accounting_line_appl_id => l_component_appl_id
52407 ,p_amb_context_code => l_amb_context_code
52408 ,p_entity_code => l_entity_code
52409 ,p_event_class_code => l_event_class_code);
52410 --
52411 -- set accounting class
52412 --
52413 xla_ae_lines_pkg.SetAcctClass(
52414 p_accounting_class_code => 'FEDERAL_PROJECT_COST'
52415 , p_ae_header_id => l_ae_header_id
52416 );
52417
52418 --
52419 -- set rounding class
52420 --
52421 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
52422 'FEDERAL_PROJECT_COST';
52423
52424 --
52425 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
52426 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
52427 --
52428 -- bulk performance
52429 --
52430 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
52431
52432 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
52433 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
52434
52435 -- 4955764
52439 -- 4458381 Public Sector Enh
52436 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52437 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
52438
52440
52441 --
52442 -- set accounting attributes for the line type
52443 --
52444 l_entered_amt_idx := 22;
52445 l_accted_amt_idx := 27;
52446 l_bflow_applied_to_amt_idx := NULL; -- 5132302
52447 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
52448 l_rec_acct_attrs.array_char_value(1) := p_source_23;
52449 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
52450 l_rec_acct_attrs.array_char_value(2) := p_source_24;
52451 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
52452 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
52453 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
52454 l_rec_acct_attrs.array_num_value(4) := p_source_25;
52455 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
52456 l_rec_acct_attrs.array_char_value(5) := p_source_26;
52457 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
52458 l_rec_acct_attrs.array_num_value(6) := p_source_27;
52459 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
52460 l_rec_acct_attrs.array_date_value(7) := p_source_28;
52461 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
52462 l_rec_acct_attrs.array_num_value(8) := p_source_29;
52463 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
52464 l_rec_acct_attrs.array_char_value(9) := p_source_30;
52465 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
52466 l_rec_acct_attrs.array_char_value(10) := p_source_31;
52467 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
52468 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
52469 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
52470 l_rec_acct_attrs.array_num_value(12) := p_source_25;
52471 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
52472 l_rec_acct_attrs.array_char_value(13) := p_source_26;
52473 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
52474 l_rec_acct_attrs.array_num_value(14) := p_source_27;
52475 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
52476 l_rec_acct_attrs.array_date_value(15) := p_source_28;
52477 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
52478 l_rec_acct_attrs.array_num_value(16) := p_source_29;
52479 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
52480 l_rec_acct_attrs.array_char_value(17) := p_source_30;
52481 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
52482 l_rec_acct_attrs.array_char_value(18) := p_source_32;
52483 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
52484 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
52485 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
52486 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
52487 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
52488 l_rec_acct_attrs.array_char_value(21) := p_source_35;
52489 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
52490 l_rec_acct_attrs.array_num_value(22) := p_source_25;
52491 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
52492 l_rec_acct_attrs.array_char_value(23) := p_source_26;
52493 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
52494 l_rec_acct_attrs.array_date_value(24) := p_source_28;
52495 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
52496 l_rec_acct_attrs.array_num_value(25) := p_source_29;
52497 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
52498 l_rec_acct_attrs.array_char_value(26) := p_source_30;
52499 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
52500 l_rec_acct_attrs.array_num_value(27) := p_source_27;
52501 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
52502 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
52503 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
52504 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
52505 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
52506 l_rec_acct_attrs.array_char_value(30) := p_source_35;
52507
52508 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
52509 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
52510
52511 ---------------------------------------------------------------------------------------------------------------
52512 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
52513 ---------------------------------------------------------------------------------------------------------------
52514 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
52515
52516 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52517 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52518
52519 IF xla_accounting_cache_pkg.GetValueChar
52520 (p_source_code => 'LEDGER_CATEGORY_CODE'
52521 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
52522 AND l_bflow_method_code = 'PRIOR_ENTRY'
52523 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
52524 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
52525 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
52526 )
52527 THEN
52528 xla_ae_lines_pkg.BflowUpgEntry
52529 (p_business_method_code => l_bflow_method_code
52533 NULL;
52530 ,p_business_class_code => l_bflow_class_code
52531 ,p_balance_type => l_balance_type_code);
52532 ELSE
52534 -- No business flow processing for business flow method of NONE.
52535 END IF;
52536
52537 --
52538 -- call analytical criteria
52539 --
52540
52541 --
52542 -- call description
52543 --
52544 -- No description or it is inherited.
52545 --
52546 -- call ADRs
52547 -- Bug 4922099
52548 --
52549 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52550 (NVL(l_actual_upg_option, 'N') = 'O') OR
52551 (NVL(l_enc_upg_option, 'N') = 'O')
52552 )
52553 THEN
52554 NULL;
52555 --
52556 --
52557
52558 l_ccid := AcctDerRule_12(
52559 p_application_id => p_application_id
52560 , p_ae_header_id => l_ae_header_id
52561 , p_source_4 => p_source_4
52562 , p_source_5 => p_source_5
52563 , p_source_6 => p_source_6
52564 , x_transaction_coa_id => l_adr_transaction_coa_id
52565 , x_accounting_coa_id => l_adr_accounting_coa_id
52566 , x_value_type_code => l_adr_value_type_code
52567 , p_side => 'NA'
52568 );
52569
52570 xla_ae_lines_pkg.set_ccid(
52571 p_code_combination_id => l_ccid
52572 , p_value_type_code => l_adr_value_type_code
52573 , p_transaction_coa_id => l_adr_transaction_coa_id
52574 , p_accounting_coa_id => l_adr_accounting_coa_id
52575 , p_adr_code => 'PA_COST_ACCT_RULE'
52576 , p_adr_type_code => 'S'
52577 , p_component_type => l_component_type
52578 , p_component_code => l_component_code
52579 , p_component_type_code => l_component_type_code
52580 , p_component_appl_id => l_component_appl_id
52581 , p_amb_context_code => l_amb_context_code
52582 , p_side => 'NA'
52583 );
52584
52585
52586 l_segment := AcctDerRule_4(
52587 p_application_id => p_application_id
52588 , p_ae_header_id => l_ae_header_id
52589 , x_transaction_coa_id => l_adr_transaction_coa_id
52590 , x_accounting_coa_id => l_adr_accounting_coa_id
52591 , x_flexfield_segment_code => l_adr_flexfield_segment_code
52592 , x_flex_value_set_id => l_adr_flex_value_set_id
52593 , x_value_type_code => l_adr_value_type_code
52594 , x_value_combination_id => l_adr_value_combination_id
52595 , x_value_segment_code => l_adr_value_segment_code
52596 , p_side => 'NA'
52597 , p_override_seg_flag => 'Y'
52598 );
52599
52600 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
52601
52602 xla_ae_lines_pkg.set_segment(
52603 p_to_segment_code => 'GL_ACCOUNT'
52604 , p_segment_value => l_segment
52605 , p_from_segment_code => l_adr_value_segment_code
52606 , p_from_combination_id => l_adr_value_combination_id
52607 , p_value_type_code => l_adr_value_type_code
52608 , p_transaction_coa_id => l_adr_transaction_coa_id
52609 , p_accounting_coa_id => l_adr_accounting_coa_id
52610 , p_flexfield_segment_code => l_adr_flexfield_segment_code
52611 , p_flex_value_set_id => l_adr_flex_value_set_id
52612 , p_adr_code => 'FV_461001_PROJECTS'
52613 , p_adr_type_code => 'S'
52614 , p_component_type => l_component_type
52615 , p_component_code => l_component_code
52616 , p_component_type_code => l_component_type_code
52617 , p_component_appl_id => l_component_appl_id
52618 , p_amb_context_code => l_amb_context_code
52619 , p_entity_code => 'EXPENDITURES'
52620 , p_event_class_code => 'WIP_COST'
52621 , p_side => 'NA'
52622 );
52623
52624 END IF;
52625
52626 --
52627 --
52628 END IF;
52629 --
52630 -- Bug 4922099
52631 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
52632 (NVL(l_enc_upg_option, 'N') = 'O')
52633 ) AND
52634 (l_bflow_method_code = 'PRIOR_ENTRY')
52635 )
52636 THEN
52637 IF
52638 --
52639 1 = 2
52640 --
52641 THEN
52642 xla_accounting_err_pkg.build_message
52643 (p_appli_s_name => 'XLA'
52644 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52645 ,p_token_1 => 'LINE_NUMBER'
52646 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
52647 ,p_token_2 => 'LINE_TYPE_NAME'
52648 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
52649 l_component_type
52650 ,l_component_code
52651 ,l_component_type_code
52652 ,l_component_appl_id
52653 ,l_amb_context_code
52654 ,l_entity_code
52655 ,l_event_class_code
52656 )
52660 ,p_lookup_code => l_component_type_code
52657 ,p_token_3 => 'OWNER'
52658 ,p_value_3 => xla_lookups_pkg.get_meaning(
52659 p_lookup_type => 'XLA_OWNER_TYPE'
52661 )
52662 ,p_token_4 => 'PRODUCT_NAME'
52663 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
52664 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
52665 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
52666 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
52667 ,p_ae_header_id => NULL
52668 );
52669
52670 IF (C_LEVEL_ERROR>= g_log_level) THEN
52671 trace
52672 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52673 ,p_level => C_LEVEL_ERROR
52674 ,p_module => l_log_module);
52675 END IF;
52676 END IF;
52677 END IF;
52678 --
52679 --
52680 ------------------------------------------------------------------------------------------------
52681 -- 4219869 Business Flow
52682 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
52683 -- Prior Entry. Currently, the following code is always generated.
52684 ------------------------------------------------------------------------------------------------
52685 XLA_AE_LINES_PKG.ValidateCurrentLine;
52686
52687 ------------------------------------------------------------------------------------
52688 -- 4219869 Business Flow
52689 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
52690 ------------------------------------------------------------------------------------
52691 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52692
52693 ----------------------------------------------------------------------------------
52694 -- 4219869 Business Flow
52695 -- Update journal entry status -- Need to generate this within IF <condition>
52696 ----------------------------------------------------------------------------------
52697 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52698 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
52699 ,p_balance_type_code => l_balance_type_code
52700 );
52701
52702 -------------------------------------------------------------------------------------------
52703 -- 4262811 - Generate the Accrual Reversal lines
52704 -------------------------------------------------------------------------------------------
52705 BEGIN
52706 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
52707 (g_array_event(p_event_id).array_value_num('header_index'));
52708 IF l_acc_rev_flag IS NULL THEN
52709 l_acc_rev_flag := 'N';
52710 END IF;
52711 EXCEPTION
52712 WHEN OTHERS THEN
52713 l_acc_rev_flag := 'N';
52714 END;
52715 --
52716 IF (l_acc_rev_flag = 'Y') THEN
52717
52718 -- 4645092 ------------------------------------------------------------------------------
52719 -- To allow MPA report to determine if it should generate report process
52720 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
52721 ------------------------------------------------------------------------------------------
52722
52723 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
52724 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
52725
52726 --
52727 -- Update the line information that should be overwritten
52728 --
52729 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
52730 p_header_num => 1);
52731 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
52732
52733 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
52734
52735 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
52736 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
52737 END IF;
52738
52739 --
52740 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
52741 --
52742 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
52743 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
52744 ELSE
52745 ---------------------------------------------------------------------------------------------------
52746 -- 4262811a Switch Sign
52747 ---------------------------------------------------------------------------------------------------
52748 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
52749 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52750 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52751 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52752 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52753 -- 5132302
52754 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
52758
52755 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52756
52757 END IF;
52759 -- 4955764
52760 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52761 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
52762
52763
52764 XLA_AE_LINES_PKG.ValidateCurrentLine;
52765 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52766
52767 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52768 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
52769 ,p_balance_type_code => l_balance_type_code);
52770
52771 END IF;
52772
52773 -----------------------------------------------------------------------------------------
52774 -- 4262811 Multiperiod Accounting
52775 -----------------------------------------------------------------------------------------
52776 -- No MPA option is assigned.
52777
52778
52779 END IF;
52780 --
52781
52782 --
52783 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52784 trace
52785 (p_msg => 'END of AcctLineType_111'
52786 ,p_level => C_LEVEL_PROCEDURE
52787 ,p_module => l_log_module);
52788 END IF;
52789 --
52790 EXCEPTION
52791 WHEN xla_exceptions_pkg.application_exception THEN
52792 RAISE;
52793 WHEN OTHERS THEN
52794 xla_exceptions_pkg.raise_message
52795 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_111');
52796 END AcctLineType_111;
52797 --
52798
52799 ---------------------------------------
52800 --
52801 -- PRIVATE FUNCTION
52802 -- AcctLineType_112
52803 --
52804 ---------------------------------------
52805 PROCEDURE AcctLineType_112 (
52806 p_application_id IN NUMBER
52807 ,p_event_id IN NUMBER
52808 ,p_calculate_acctd_flag IN VARCHAR2
52809 ,p_calculate_g_l_flag IN VARCHAR2
52810 ,p_actual_flag IN OUT VARCHAR2
52811 ,p_balance_type_code OUT VARCHAR2
52812 ,p_gain_or_loss_ref OUT VARCHAR2
52813
52814 --Cost CCID
52815 , p_source_4 IN NUMBER
52816 --Allow Account Override Flag
52817 , p_source_5 IN VARCHAR2
52818 --Adjustment Cost CCID
52819 , p_source_6 IN NUMBER
52820 --Cost Clearing CCID
52821 , p_source_7 IN NUMBER
52822 --Reversing Line Flag
52823 , p_source_23 IN VARCHAR2
52824 --Actual Upgrade Credit Accounting Class
52825 , p_source_24 IN VARCHAR2
52826 --Entered Raw Cost
52827 , p_source_25 IN NUMBER
52828 --Entered Currency Code
52829 , p_source_26 IN VARCHAR2
52830 --Accounted Raw Cost
52831 , p_source_27 IN NUMBER
52832 --Exchange Rate Date
52833 , p_source_28 IN DATE
52834 --Exchange Rate
52835 , p_source_29 IN NUMBER
52836 --Exchange Rate Type
52837 , p_source_30 IN VARCHAR2
52838 --Actual Upgrade Debit Accounting Class
52839 , p_source_31 IN VARCHAR2
52840 --Use Actuals Upgrade Attributes Flag
52841 , p_source_32 IN VARCHAR2
52842 --Expenditure Item ID
52843 , p_source_33 IN NUMBER
52844 --Cost Distribution Line Number
52845 , p_source_34 IN NUMBER
52846 --Line Type
52847 , p_source_35 IN VARCHAR2
52848 , p_source_35_meaning IN VARCHAR2
52849 --Reversed Line Number
52850 , p_source_36 IN NUMBER
52851 )
52852 IS
52853
52854 l_component_type VARCHAR2(80);
52855 l_component_code VARCHAR2(30);
52856 l_component_type_code VARCHAR2(1);
52857 l_component_appl_id INTEGER;
52858 l_amb_context_code VARCHAR2(30);
52859 l_entity_code VARCHAR2(30);
52860 l_event_class_code VARCHAR2(30);
52861 l_ae_header_id NUMBER;
52862 l_event_type_code VARCHAR2(30);
52863 l_line_definition_code VARCHAR2(30);
52864 l_line_definition_owner_code VARCHAR2(1);
52865 --
52866 -- adr variables
52867 l_segment VARCHAR2(30);
52868 l_ccid NUMBER;
52869 l_adr_transaction_coa_id NUMBER;
52870 l_adr_accounting_coa_id NUMBER;
52871 l_adr_flexfield_segment_code VARCHAR2(30);
52872 l_adr_flex_value_set_id NUMBER;
52873 l_adr_value_type_code VARCHAR2(30);
52874 l_adr_value_combination_id NUMBER;
52875 l_adr_value_segment_code VARCHAR2(30);
52876
52877 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
52878 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
52879 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
52880 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
52881
52882 -- 4262811 Variables ------------------------------------------------------------------------------------------
52883 l_entered_amt_idx NUMBER;
52884 l_accted_amt_idx NUMBER;
52885 l_acc_rev_flag VARCHAR2(1);
52886 l_accrual_line_num NUMBER;
52887 l_tmp_amt NUMBER;
52888 l_acc_rev_natural_side_code VARCHAR2(1);
52889
52890 l_num_entries NUMBER;
52891 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
52892 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
52893 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
52894 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
52895 l_recog_line_1 NUMBER;
52896 l_recog_line_2 NUMBER;
52897
52898 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
52902 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
52899 l_bflow_applied_to_amt NUMBER; -- 5132302
52900 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
52901
52903
52904 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
52905 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
52906
52907 ---------------------------------------------------------------------------------------------------------------
52908
52909
52910 --
52911 -- bulk performance
52912 --
52913 l_balance_type_code VARCHAR2(1);
52914 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
52915 l_log_module VARCHAR2(240);
52916
52917 --
52918 -- Upgrade strategy
52919 --
52920 l_actual_upg_option VARCHAR2(1);
52921 l_enc_upg_option VARCHAR2(1);
52922
52923 --
52924 BEGIN
52925 --
52926 IF g_log_enabled THEN
52927 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_112';
52928 END IF;
52929 --
52930 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52931
52932 trace
52933 (p_msg => 'BEGIN of AcctLineType_112'
52934 ,p_level => C_LEVEL_PROCEDURE
52935 ,p_module => l_log_module);
52936
52937 END IF;
52938 --
52939 l_component_type := 'AMB_JLT';
52940 l_component_code := 'PA_RAW_COST_FED';
52941 l_component_type_code := 'S';
52942 l_component_appl_id := 275;
52943 l_amb_context_code := 'DEFAULT';
52944 l_entity_code := 'EXPENDITURES';
52945 l_event_class_code := 'LABOR_COST';
52946 l_event_type_code := 'LABOR_COST_ALL';
52947 l_line_definition_owner_code := 'S';
52948 l_line_definition_code := 'FV_PROJECTS_JLD';
52949 --
52950 l_balance_type_code := 'A';
52951 l_segment := NULL;
52952 l_ccid := NULL;
52953 l_adr_transaction_coa_id := NULL;
52954 l_adr_accounting_coa_id := NULL;
52955 l_adr_flexfield_segment_code := NULL;
52956 l_adr_flex_value_set_id := NULL;
52957 l_adr_value_type_code := NULL;
52958 l_adr_value_combination_id := NULL;
52959 l_adr_value_segment_code := NULL;
52960
52961 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
52962 l_bflow_class_code := ''; -- 4219869 Business Flow
52963 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
52964 l_budgetary_control_flag := 'N';
52965
52966 l_bflow_applied_to_amt_idx := NULL; -- 5132302
52967 l_bflow_applied_to_amt := NULL; -- 5132302
52968 l_entered_amt_idx := NULL; -- 4262811
52969 l_accted_amt_idx := NULL; -- 4262811
52970 l_acc_rev_flag := NULL; -- 4262811
52971 l_accrual_line_num := NULL; -- 4262811
52972 l_tmp_amt := NULL; -- 4262811
52973 --
52974
52975 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
52976 l_balance_type_code <> 'B' THEN
52977
52978 --
52979 XLA_AE_LINES_PKG.SetNewLine;
52980
52981 p_balance_type_code := l_balance_type_code;
52982 -- set the flag so later we will know whether the gain loss line needs to be created
52983
52984 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
52985 p_actual_flag :='A';
52986 END IF;
52987
52988 --
52989 -- bulk performance
52990 --
52991 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
52992 p_header_num => 0); -- 4262811
52993 --
52994 -- set accounting line options
52995 --
52996 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
52997 p_natural_side_code => 'D'
52998 , p_gain_or_loss_flag => 'N'
52999 , p_gl_transfer_mode_code => 'S'
53000 , p_acct_entry_type_code => 'A'
53001 , p_switch_side_flag => 'Y'
53002 , p_merge_duplicate_code => 'N'
53003 );
53004 --
53005 l_acc_rev_natural_side_code := 'C'; -- 4262811
53006 --
53007 --
53008 -- set accounting line type info
53009 --
53010 xla_ae_lines_pkg.SetAcctLineType
53011 (p_component_type => l_component_type
53012 ,p_event_type_code => l_event_type_code
53013 ,p_line_definition_owner_code => l_line_definition_owner_code
53014 ,p_line_definition_code => l_line_definition_code
53015 ,p_accounting_line_code => l_component_code
53016 ,p_accounting_line_type_code => l_component_type_code
53017 ,p_accounting_line_appl_id => l_component_appl_id
53018 ,p_amb_context_code => l_amb_context_code
53019 ,p_entity_code => l_entity_code
53020 ,p_event_class_code => l_event_class_code);
53021 --
53022 -- set accounting class
53023 --
53024 xla_ae_lines_pkg.SetAcctClass(
53025 p_accounting_class_code => 'FEDERAL_PROJECT_COST'
53026 , p_ae_header_id => l_ae_header_id
53027 );
53028
53029 --
53030 -- set rounding class
53031 --
53032 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
53033 'FEDERAL_PROJECT_COST';
53034
53035 --
53036 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
53037 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
53038 --
53039 -- bulk performance
53040 --
53044 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
53041 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
53042
53043 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
53045
53046 -- 4955764
53047 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53048 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
53049
53050 -- 4458381 Public Sector Enh
53051
53052 --
53053 -- set accounting attributes for the line type
53054 --
53055 l_entered_amt_idx := 22;
53056 l_accted_amt_idx := 27;
53057 l_bflow_applied_to_amt_idx := NULL; -- 5132302
53058 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
53059 l_rec_acct_attrs.array_char_value(1) := p_source_23;
53060 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
53061 l_rec_acct_attrs.array_char_value(2) := p_source_24;
53062 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
53063 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
53064 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
53065 l_rec_acct_attrs.array_num_value(4) := p_source_25;
53066 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
53067 l_rec_acct_attrs.array_char_value(5) := p_source_26;
53068 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
53069 l_rec_acct_attrs.array_num_value(6) := p_source_27;
53070 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
53071 l_rec_acct_attrs.array_date_value(7) := p_source_28;
53072 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
53073 l_rec_acct_attrs.array_num_value(8) := p_source_29;
53074 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
53075 l_rec_acct_attrs.array_char_value(9) := p_source_30;
53076 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
53077 l_rec_acct_attrs.array_char_value(10) := p_source_31;
53078 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
53079 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
53080 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
53081 l_rec_acct_attrs.array_num_value(12) := p_source_25;
53082 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
53083 l_rec_acct_attrs.array_char_value(13) := p_source_26;
53084 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
53085 l_rec_acct_attrs.array_num_value(14) := p_source_27;
53086 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
53087 l_rec_acct_attrs.array_date_value(15) := p_source_28;
53088 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
53089 l_rec_acct_attrs.array_num_value(16) := p_source_29;
53090 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
53091 l_rec_acct_attrs.array_char_value(17) := p_source_30;
53092 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
53093 l_rec_acct_attrs.array_char_value(18) := p_source_32;
53094 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
53095 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
53096 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
53097 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
53098 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
53099 l_rec_acct_attrs.array_char_value(21) := p_source_35;
53100 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
53101 l_rec_acct_attrs.array_num_value(22) := p_source_25;
53102 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
53103 l_rec_acct_attrs.array_char_value(23) := p_source_26;
53104 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
53105 l_rec_acct_attrs.array_date_value(24) := p_source_28;
53106 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
53107 l_rec_acct_attrs.array_num_value(25) := p_source_29;
53108 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
53109 l_rec_acct_attrs.array_char_value(26) := p_source_30;
53110 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
53111 l_rec_acct_attrs.array_num_value(27) := p_source_27;
53112 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
53113 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
53114 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
53115 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
53116 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
53117 l_rec_acct_attrs.array_char_value(30) := p_source_35;
53118
53119 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
53120 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
53121
53122 ---------------------------------------------------------------------------------------------------------------
53123 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
53124 ---------------------------------------------------------------------------------------------------------------
53125 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
53126
53127 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53128 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53129
53130 IF xla_accounting_cache_pkg.GetValueChar
53131 (p_source_code => 'LEDGER_CATEGORY_CODE'
53132 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
53133 AND l_bflow_method_code = 'PRIOR_ENTRY'
53137 )
53134 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
53135 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
53136 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
53138 THEN
53139 xla_ae_lines_pkg.BflowUpgEntry
53140 (p_business_method_code => l_bflow_method_code
53141 ,p_business_class_code => l_bflow_class_code
53142 ,p_balance_type => l_balance_type_code);
53143 ELSE
53144 NULL;
53145 -- No business flow processing for business flow method of NONE.
53146 END IF;
53147
53148 --
53149 -- call analytical criteria
53150 --
53151
53152 --
53153 -- call description
53154 --
53155 -- No description or it is inherited.
53156 --
53157 -- call ADRs
53158 -- Bug 4922099
53159 --
53160 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53161 (NVL(l_actual_upg_option, 'N') = 'O') OR
53162 (NVL(l_enc_upg_option, 'N') = 'O')
53163 )
53164 THEN
53165 NULL;
53166 --
53167 --
53168
53169 l_ccid := AcctDerRule_12(
53170 p_application_id => p_application_id
53171 , p_ae_header_id => l_ae_header_id
53172 , p_source_4 => p_source_4
53173 , p_source_5 => p_source_5
53174 , p_source_6 => p_source_6
53175 , x_transaction_coa_id => l_adr_transaction_coa_id
53176 , x_accounting_coa_id => l_adr_accounting_coa_id
53177 , x_value_type_code => l_adr_value_type_code
53178 , p_side => 'NA'
53179 );
53180
53181 xla_ae_lines_pkg.set_ccid(
53182 p_code_combination_id => l_ccid
53183 , p_value_type_code => l_adr_value_type_code
53184 , p_transaction_coa_id => l_adr_transaction_coa_id
53185 , p_accounting_coa_id => l_adr_accounting_coa_id
53186 , p_adr_code => 'PA_COST_ACCT_RULE'
53187 , p_adr_type_code => 'S'
53188 , p_component_type => l_component_type
53189 , p_component_code => l_component_code
53190 , p_component_type_code => l_component_type_code
53191 , p_component_appl_id => l_component_appl_id
53192 , p_amb_context_code => l_amb_context_code
53193 , p_side => 'NA'
53194 );
53195
53196
53197 l_segment := AcctDerRule_4(
53198 p_application_id => p_application_id
53199 , p_ae_header_id => l_ae_header_id
53200 , x_transaction_coa_id => l_adr_transaction_coa_id
53201 , x_accounting_coa_id => l_adr_accounting_coa_id
53202 , x_flexfield_segment_code => l_adr_flexfield_segment_code
53203 , x_flex_value_set_id => l_adr_flex_value_set_id
53204 , x_value_type_code => l_adr_value_type_code
53205 , x_value_combination_id => l_adr_value_combination_id
53206 , x_value_segment_code => l_adr_value_segment_code
53207 , p_side => 'NA'
53208 , p_override_seg_flag => 'Y'
53209 );
53210
53211 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
53212
53213 xla_ae_lines_pkg.set_segment(
53214 p_to_segment_code => 'GL_ACCOUNT'
53215 , p_segment_value => l_segment
53216 , p_from_segment_code => l_adr_value_segment_code
53217 , p_from_combination_id => l_adr_value_combination_id
53218 , p_value_type_code => l_adr_value_type_code
53219 , p_transaction_coa_id => l_adr_transaction_coa_id
53220 , p_accounting_coa_id => l_adr_accounting_coa_id
53221 , p_flexfield_segment_code => l_adr_flexfield_segment_code
53222 , p_flex_value_set_id => l_adr_flex_value_set_id
53223 , p_adr_code => 'FV_461001_PROJECTS'
53224 , p_adr_type_code => 'S'
53225 , p_component_type => l_component_type
53226 , p_component_code => l_component_code
53227 , p_component_type_code => l_component_type_code
53228 , p_component_appl_id => l_component_appl_id
53229 , p_amb_context_code => l_amb_context_code
53230 , p_entity_code => 'EXPENDITURES'
53231 , p_event_class_code => 'LABOR_COST'
53232 , p_side => 'NA'
53233 );
53234
53235 END IF;
53236
53237 --
53238 --
53239 END IF;
53240 --
53241 -- Bug 4922099
53242 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
53243 (NVL(l_enc_upg_option, 'N') = 'O')
53244 ) AND
53245 (l_bflow_method_code = 'PRIOR_ENTRY')
53246 )
53247 THEN
53248 IF
53249 --
53250 1 = 2
53251 --
53252 THEN
53253 xla_accounting_err_pkg.build_message
53254 (p_appli_s_name => 'XLA'
53255 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53256 ,p_token_1 => 'LINE_NUMBER'
53257 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
53258 ,p_token_2 => 'LINE_TYPE_NAME'
53259 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
53260 l_component_type
53261 ,l_component_code
53262 ,l_component_type_code
53263 ,l_component_appl_id
53267 )
53264 ,l_amb_context_code
53265 ,l_entity_code
53266 ,l_event_class_code
53268 ,p_token_3 => 'OWNER'
53269 ,p_value_3 => xla_lookups_pkg.get_meaning(
53270 p_lookup_type => 'XLA_OWNER_TYPE'
53271 ,p_lookup_code => l_component_type_code
53272 )
53273 ,p_token_4 => 'PRODUCT_NAME'
53274 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
53275 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
53276 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
53277 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
53278 ,p_ae_header_id => NULL
53279 );
53280
53281 IF (C_LEVEL_ERROR>= g_log_level) THEN
53282 trace
53283 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53284 ,p_level => C_LEVEL_ERROR
53285 ,p_module => l_log_module);
53286 END IF;
53287 END IF;
53288 END IF;
53289 --
53290 --
53291 ------------------------------------------------------------------------------------------------
53292 -- 4219869 Business Flow
53293 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
53294 -- Prior Entry. Currently, the following code is always generated.
53295 ------------------------------------------------------------------------------------------------
53296 XLA_AE_LINES_PKG.ValidateCurrentLine;
53297
53298 ------------------------------------------------------------------------------------
53299 -- 4219869 Business Flow
53300 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
53301 ------------------------------------------------------------------------------------
53302 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53303
53304 ----------------------------------------------------------------------------------
53305 -- 4219869 Business Flow
53306 -- Update journal entry status -- Need to generate this within IF <condition>
53307 ----------------------------------------------------------------------------------
53308 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53309 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
53310 ,p_balance_type_code => l_balance_type_code
53311 );
53312
53313 -------------------------------------------------------------------------------------------
53314 -- 4262811 - Generate the Accrual Reversal lines
53315 -------------------------------------------------------------------------------------------
53316 BEGIN
53317 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
53318 (g_array_event(p_event_id).array_value_num('header_index'));
53319 IF l_acc_rev_flag IS NULL THEN
53320 l_acc_rev_flag := 'N';
53321 END IF;
53322 EXCEPTION
53323 WHEN OTHERS THEN
53324 l_acc_rev_flag := 'N';
53325 END;
53326 --
53327 IF (l_acc_rev_flag = 'Y') THEN
53328
53329 -- 4645092 ------------------------------------------------------------------------------
53330 -- To allow MPA report to determine if it should generate report process
53331 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
53332 ------------------------------------------------------------------------------------------
53333
53334 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
53335 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
53336
53337 --
53338 -- Update the line information that should be overwritten
53339 --
53340 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
53341 p_header_num => 1);
53342 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
53343
53344 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
53345
53346 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
53347 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
53348 END IF;
53349
53350 --
53351 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
53352 --
53353 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
53354 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
53355 ELSE
53356 ---------------------------------------------------------------------------------------------------
53357 -- 4262811a Switch Sign
53358 ---------------------------------------------------------------------------------------------------
53359 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
53360 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53361 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53365 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
53362 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53363 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53364 -- 5132302
53366 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53367
53368 END IF;
53369
53370 -- 4955764
53371 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53372 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
53373
53374
53375 XLA_AE_LINES_PKG.ValidateCurrentLine;
53376 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53377
53378 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53379 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
53380 ,p_balance_type_code => l_balance_type_code);
53381
53382 END IF;
53383
53384 -----------------------------------------------------------------------------------------
53385 -- 4262811 Multiperiod Accounting
53386 -----------------------------------------------------------------------------------------
53387 -- No MPA option is assigned.
53388
53389
53390 END IF;
53391 --
53392
53393 --
53394 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53395 trace
53396 (p_msg => 'END of AcctLineType_112'
53397 ,p_level => C_LEVEL_PROCEDURE
53398 ,p_module => l_log_module);
53399 END IF;
53400 --
53401 EXCEPTION
53402 WHEN xla_exceptions_pkg.application_exception THEN
53403 RAISE;
53404 WHEN OTHERS THEN
53405 xla_exceptions_pkg.raise_message
53406 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_112');
53407 END AcctLineType_112;
53408 --
53409
53410 ---------------------------------------
53411 --
53412 -- PRIVATE FUNCTION
53413 -- AcctLineType_113
53414 --
53415 ---------------------------------------
53416 PROCEDURE AcctLineType_113 (
53417 p_application_id IN NUMBER
53418 ,p_event_id IN NUMBER
53419 ,p_calculate_acctd_flag IN VARCHAR2
53420 ,p_calculate_g_l_flag IN VARCHAR2
53421 ,p_actual_flag IN OUT VARCHAR2
53422 ,p_balance_type_code OUT VARCHAR2
53423 ,p_gain_or_loss_ref OUT VARCHAR2
53424
53425 --Cost CCID
53426 , p_source_4 IN NUMBER
53427 --Allow Account Override Flag
53428 , p_source_5 IN VARCHAR2
53429 --Adjustment Cost CCID
53430 , p_source_6 IN NUMBER
53431 --Cost Clearing CCID
53432 , p_source_7 IN NUMBER
53433 --Reversing Line Flag
53434 , p_source_23 IN VARCHAR2
53435 --Actual Upgrade Credit Accounting Class
53436 , p_source_24 IN VARCHAR2
53437 --Entered Raw Cost
53438 , p_source_25 IN NUMBER
53439 --Entered Currency Code
53440 , p_source_26 IN VARCHAR2
53441 --Accounted Raw Cost
53442 , p_source_27 IN NUMBER
53443 --Exchange Rate Date
53444 , p_source_28 IN DATE
53445 --Exchange Rate
53446 , p_source_29 IN NUMBER
53447 --Exchange Rate Type
53448 , p_source_30 IN VARCHAR2
53449 --Actual Upgrade Debit Accounting Class
53450 , p_source_31 IN VARCHAR2
53451 --Use Actuals Upgrade Attributes Flag
53452 , p_source_32 IN VARCHAR2
53453 --Expenditure Item ID
53454 , p_source_33 IN NUMBER
53455 --Cost Distribution Line Number
53456 , p_source_34 IN NUMBER
53457 --Line Type
53458 , p_source_35 IN VARCHAR2
53459 , p_source_35_meaning IN VARCHAR2
53460 --Reversed Line Number
53461 , p_source_36 IN NUMBER
53462 )
53463 IS
53464
53465 l_component_type VARCHAR2(80);
53466 l_component_code VARCHAR2(30);
53467 l_component_type_code VARCHAR2(1);
53468 l_component_appl_id INTEGER;
53469 l_amb_context_code VARCHAR2(30);
53470 l_entity_code VARCHAR2(30);
53471 l_event_class_code VARCHAR2(30);
53472 l_ae_header_id NUMBER;
53473 l_event_type_code VARCHAR2(30);
53474 l_line_definition_code VARCHAR2(30);
53475 l_line_definition_owner_code VARCHAR2(1);
53476 --
53477 -- adr variables
53478 l_segment VARCHAR2(30);
53479 l_ccid NUMBER;
53480 l_adr_transaction_coa_id NUMBER;
53481 l_adr_accounting_coa_id NUMBER;
53482 l_adr_flexfield_segment_code VARCHAR2(30);
53483 l_adr_flex_value_set_id NUMBER;
53484 l_adr_value_type_code VARCHAR2(30);
53485 l_adr_value_combination_id NUMBER;
53486 l_adr_value_segment_code VARCHAR2(30);
53487
53488 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
53489 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
53490 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
53491 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
53492
53493 -- 4262811 Variables ------------------------------------------------------------------------------------------
53494 l_entered_amt_idx NUMBER;
53495 l_accted_amt_idx NUMBER;
53496 l_acc_rev_flag VARCHAR2(1);
53497 l_accrual_line_num NUMBER;
53498 l_tmp_amt NUMBER;
53499 l_acc_rev_natural_side_code VARCHAR2(1);
53500
53501 l_num_entries NUMBER;
53502 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
53503 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
53507 l_recog_line_2 NUMBER;
53504 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
53505 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
53506 l_recog_line_1 NUMBER;
53508
53509 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
53510 l_bflow_applied_to_amt NUMBER; -- 5132302
53511 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
53512
53513 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
53514
53515 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
53516 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
53517
53518 ---------------------------------------------------------------------------------------------------------------
53519
53520
53521 --
53522 -- bulk performance
53523 --
53524 l_balance_type_code VARCHAR2(1);
53525 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
53526 l_log_module VARCHAR2(240);
53527
53528 --
53529 -- Upgrade strategy
53530 --
53531 l_actual_upg_option VARCHAR2(1);
53532 l_enc_upg_option VARCHAR2(1);
53533
53534 --
53535 BEGIN
53536 --
53537 IF g_log_enabled THEN
53538 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_113';
53539 END IF;
53540 --
53541 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53542
53543 trace
53544 (p_msg => 'BEGIN of AcctLineType_113'
53545 ,p_level => C_LEVEL_PROCEDURE
53546 ,p_module => l_log_module);
53547
53548 END IF;
53549 --
53550 l_component_type := 'AMB_JLT';
53551 l_component_code := 'PA_RAW_COST_FED';
53552 l_component_type_code := 'S';
53553 l_component_appl_id := 275;
53554 l_amb_context_code := 'DEFAULT';
53555 l_entity_code := 'EXPENDITURES';
53556 l_event_class_code := 'MISC_COST';
53557 l_event_type_code := 'MISC_COST_ALL';
53558 l_line_definition_owner_code := 'S';
53559 l_line_definition_code := 'FV_PROJECTS_JLD';
53560 --
53561 l_balance_type_code := 'A';
53562 l_segment := NULL;
53563 l_ccid := NULL;
53564 l_adr_transaction_coa_id := NULL;
53565 l_adr_accounting_coa_id := NULL;
53566 l_adr_flexfield_segment_code := NULL;
53567 l_adr_flex_value_set_id := NULL;
53568 l_adr_value_type_code := NULL;
53569 l_adr_value_combination_id := NULL;
53570 l_adr_value_segment_code := NULL;
53571
53572 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
53573 l_bflow_class_code := ''; -- 4219869 Business Flow
53574 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
53575 l_budgetary_control_flag := 'N';
53576
53577 l_bflow_applied_to_amt_idx := NULL; -- 5132302
53578 l_bflow_applied_to_amt := NULL; -- 5132302
53579 l_entered_amt_idx := NULL; -- 4262811
53580 l_accted_amt_idx := NULL; -- 4262811
53581 l_acc_rev_flag := NULL; -- 4262811
53582 l_accrual_line_num := NULL; -- 4262811
53583 l_tmp_amt := NULL; -- 4262811
53584 --
53585
53586 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
53587 l_balance_type_code <> 'B' THEN
53588
53589 --
53590 XLA_AE_LINES_PKG.SetNewLine;
53591
53592 p_balance_type_code := l_balance_type_code;
53593 -- set the flag so later we will know whether the gain loss line needs to be created
53594
53595 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
53596 p_actual_flag :='A';
53597 END IF;
53598
53599 --
53600 -- bulk performance
53601 --
53602 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
53603 p_header_num => 0); -- 4262811
53604 --
53605 -- set accounting line options
53606 --
53607 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
53608 p_natural_side_code => 'D'
53609 , p_gain_or_loss_flag => 'N'
53610 , p_gl_transfer_mode_code => 'S'
53611 , p_acct_entry_type_code => 'A'
53612 , p_switch_side_flag => 'Y'
53613 , p_merge_duplicate_code => 'N'
53614 );
53615 --
53616 l_acc_rev_natural_side_code := 'C'; -- 4262811
53617 --
53618 --
53619 -- set accounting line type info
53620 --
53621 xla_ae_lines_pkg.SetAcctLineType
53622 (p_component_type => l_component_type
53623 ,p_event_type_code => l_event_type_code
53624 ,p_line_definition_owner_code => l_line_definition_owner_code
53625 ,p_line_definition_code => l_line_definition_code
53626 ,p_accounting_line_code => l_component_code
53627 ,p_accounting_line_type_code => l_component_type_code
53628 ,p_accounting_line_appl_id => l_component_appl_id
53629 ,p_amb_context_code => l_amb_context_code
53630 ,p_entity_code => l_entity_code
53631 ,p_event_class_code => l_event_class_code);
53632 --
53633 -- set accounting class
53634 --
53635 xla_ae_lines_pkg.SetAcctClass(
53636 p_accounting_class_code => 'FEDERAL_PROJECT_COST'
53637 , p_ae_header_id => l_ae_header_id
53638 );
53639
53640 --
53641 -- set rounding class
53642 --
53643 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
53644 'FEDERAL_PROJECT_COST';
53648 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
53645
53646 --
53647 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
53649 --
53650 -- bulk performance
53651 --
53652 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
53653
53654 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
53655 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
53656
53657 -- 4955764
53658 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53659 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
53660
53661 -- 4458381 Public Sector Enh
53662
53663 --
53664 -- set accounting attributes for the line type
53665 --
53666 l_entered_amt_idx := 22;
53667 l_accted_amt_idx := 27;
53668 l_bflow_applied_to_amt_idx := NULL; -- 5132302
53669 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
53670 l_rec_acct_attrs.array_char_value(1) := p_source_23;
53671 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
53672 l_rec_acct_attrs.array_char_value(2) := p_source_24;
53673 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
53674 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
53675 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
53676 l_rec_acct_attrs.array_num_value(4) := p_source_25;
53677 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
53678 l_rec_acct_attrs.array_char_value(5) := p_source_26;
53679 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
53680 l_rec_acct_attrs.array_num_value(6) := p_source_27;
53681 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
53682 l_rec_acct_attrs.array_date_value(7) := p_source_28;
53683 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
53684 l_rec_acct_attrs.array_num_value(8) := p_source_29;
53685 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
53686 l_rec_acct_attrs.array_char_value(9) := p_source_30;
53687 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
53688 l_rec_acct_attrs.array_char_value(10) := p_source_31;
53689 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
53690 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
53691 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
53692 l_rec_acct_attrs.array_num_value(12) := p_source_25;
53693 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
53694 l_rec_acct_attrs.array_char_value(13) := p_source_26;
53695 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
53696 l_rec_acct_attrs.array_num_value(14) := p_source_27;
53697 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
53698 l_rec_acct_attrs.array_date_value(15) := p_source_28;
53699 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
53700 l_rec_acct_attrs.array_num_value(16) := p_source_29;
53701 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
53702 l_rec_acct_attrs.array_char_value(17) := p_source_30;
53703 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
53704 l_rec_acct_attrs.array_char_value(18) := p_source_32;
53705 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
53706 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
53707 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
53708 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
53709 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
53710 l_rec_acct_attrs.array_char_value(21) := p_source_35;
53711 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
53712 l_rec_acct_attrs.array_num_value(22) := p_source_25;
53713 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
53714 l_rec_acct_attrs.array_char_value(23) := p_source_26;
53715 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
53716 l_rec_acct_attrs.array_date_value(24) := p_source_28;
53717 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
53718 l_rec_acct_attrs.array_num_value(25) := p_source_29;
53719 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
53720 l_rec_acct_attrs.array_char_value(26) := p_source_30;
53721 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
53722 l_rec_acct_attrs.array_num_value(27) := p_source_27;
53723 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
53724 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
53725 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
53726 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
53727 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
53728 l_rec_acct_attrs.array_char_value(30) := p_source_35;
53729
53730 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
53731 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
53732
53733 ---------------------------------------------------------------------------------------------------------------
53734 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
53735 ---------------------------------------------------------------------------------------------------------------
53736 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
53737
53738 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53739 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53740
53744 AND l_bflow_method_code = 'PRIOR_ENTRY'
53741 IF xla_accounting_cache_pkg.GetValueChar
53742 (p_source_code => 'LEDGER_CATEGORY_CODE'
53743 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
53745 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
53746 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
53747 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
53748 )
53749 THEN
53750 xla_ae_lines_pkg.BflowUpgEntry
53751 (p_business_method_code => l_bflow_method_code
53752 ,p_business_class_code => l_bflow_class_code
53753 ,p_balance_type => l_balance_type_code);
53754 ELSE
53755 NULL;
53756 -- No business flow processing for business flow method of NONE.
53757 END IF;
53758
53759 --
53760 -- call analytical criteria
53761 --
53762
53763 --
53764 -- call description
53765 --
53766 -- No description or it is inherited.
53767 --
53768 -- call ADRs
53769 -- Bug 4922099
53770 --
53771 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53772 (NVL(l_actual_upg_option, 'N') = 'O') OR
53773 (NVL(l_enc_upg_option, 'N') = 'O')
53774 )
53775 THEN
53776 NULL;
53777 --
53778 --
53779
53780 l_ccid := AcctDerRule_12(
53781 p_application_id => p_application_id
53782 , p_ae_header_id => l_ae_header_id
53783 , p_source_4 => p_source_4
53784 , p_source_5 => p_source_5
53785 , p_source_6 => p_source_6
53786 , x_transaction_coa_id => l_adr_transaction_coa_id
53787 , x_accounting_coa_id => l_adr_accounting_coa_id
53788 , x_value_type_code => l_adr_value_type_code
53789 , p_side => 'NA'
53790 );
53791
53792 xla_ae_lines_pkg.set_ccid(
53793 p_code_combination_id => l_ccid
53794 , p_value_type_code => l_adr_value_type_code
53795 , p_transaction_coa_id => l_adr_transaction_coa_id
53796 , p_accounting_coa_id => l_adr_accounting_coa_id
53797 , p_adr_code => 'PA_COST_ACCT_RULE'
53798 , p_adr_type_code => 'S'
53799 , p_component_type => l_component_type
53800 , p_component_code => l_component_code
53801 , p_component_type_code => l_component_type_code
53802 , p_component_appl_id => l_component_appl_id
53803 , p_amb_context_code => l_amb_context_code
53804 , p_side => 'NA'
53805 );
53806
53807
53808 l_segment := AcctDerRule_4(
53809 p_application_id => p_application_id
53810 , p_ae_header_id => l_ae_header_id
53811 , x_transaction_coa_id => l_adr_transaction_coa_id
53812 , x_accounting_coa_id => l_adr_accounting_coa_id
53813 , x_flexfield_segment_code => l_adr_flexfield_segment_code
53814 , x_flex_value_set_id => l_adr_flex_value_set_id
53815 , x_value_type_code => l_adr_value_type_code
53816 , x_value_combination_id => l_adr_value_combination_id
53817 , x_value_segment_code => l_adr_value_segment_code
53818 , p_side => 'NA'
53819 , p_override_seg_flag => 'Y'
53820 );
53821
53822 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
53823
53824 xla_ae_lines_pkg.set_segment(
53825 p_to_segment_code => 'GL_ACCOUNT'
53826 , p_segment_value => l_segment
53827 , p_from_segment_code => l_adr_value_segment_code
53828 , p_from_combination_id => l_adr_value_combination_id
53829 , p_value_type_code => l_adr_value_type_code
53830 , p_transaction_coa_id => l_adr_transaction_coa_id
53831 , p_accounting_coa_id => l_adr_accounting_coa_id
53832 , p_flexfield_segment_code => l_adr_flexfield_segment_code
53833 , p_flex_value_set_id => l_adr_flex_value_set_id
53834 , p_adr_code => 'FV_461001_PROJECTS'
53835 , p_adr_type_code => 'S'
53836 , p_component_type => l_component_type
53837 , p_component_code => l_component_code
53838 , p_component_type_code => l_component_type_code
53839 , p_component_appl_id => l_component_appl_id
53840 , p_amb_context_code => l_amb_context_code
53841 , p_entity_code => 'EXPENDITURES'
53842 , p_event_class_code => 'MISC_COST'
53843 , p_side => 'NA'
53844 );
53845
53846 END IF;
53847
53848 --
53849 --
53850 END IF;
53851 --
53852 -- Bug 4922099
53853 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
53854 (NVL(l_enc_upg_option, 'N') = 'O')
53855 ) AND
53856 (l_bflow_method_code = 'PRIOR_ENTRY')
53857 )
53858 THEN
53859 IF
53860 --
53861 1 = 2
53862 --
53863 THEN
53864 xla_accounting_err_pkg.build_message
53865 (p_appli_s_name => 'XLA'
53866 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53867 ,p_token_1 => 'LINE_NUMBER'
53868 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
53869 ,p_token_2 => 'LINE_TYPE_NAME'
53870 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
53871 l_component_type
53875 ,l_amb_context_code
53872 ,l_component_code
53873 ,l_component_type_code
53874 ,l_component_appl_id
53876 ,l_entity_code
53877 ,l_event_class_code
53878 )
53879 ,p_token_3 => 'OWNER'
53880 ,p_value_3 => xla_lookups_pkg.get_meaning(
53881 p_lookup_type => 'XLA_OWNER_TYPE'
53882 ,p_lookup_code => l_component_type_code
53883 )
53884 ,p_token_4 => 'PRODUCT_NAME'
53885 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
53886 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
53887 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
53888 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
53889 ,p_ae_header_id => NULL
53890 );
53891
53892 IF (C_LEVEL_ERROR>= g_log_level) THEN
53893 trace
53894 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53895 ,p_level => C_LEVEL_ERROR
53896 ,p_module => l_log_module);
53897 END IF;
53898 END IF;
53899 END IF;
53900 --
53901 --
53902 ------------------------------------------------------------------------------------------------
53903 -- 4219869 Business Flow
53904 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
53905 -- Prior Entry. Currently, the following code is always generated.
53906 ------------------------------------------------------------------------------------------------
53907 XLA_AE_LINES_PKG.ValidateCurrentLine;
53908
53909 ------------------------------------------------------------------------------------
53910 -- 4219869 Business Flow
53911 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
53912 ------------------------------------------------------------------------------------
53913 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53914
53915 ----------------------------------------------------------------------------------
53916 -- 4219869 Business Flow
53917 -- Update journal entry status -- Need to generate this within IF <condition>
53918 ----------------------------------------------------------------------------------
53919 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53920 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
53921 ,p_balance_type_code => l_balance_type_code
53922 );
53923
53924 -------------------------------------------------------------------------------------------
53925 -- 4262811 - Generate the Accrual Reversal lines
53926 -------------------------------------------------------------------------------------------
53927 BEGIN
53928 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
53929 (g_array_event(p_event_id).array_value_num('header_index'));
53930 IF l_acc_rev_flag IS NULL THEN
53931 l_acc_rev_flag := 'N';
53932 END IF;
53933 EXCEPTION
53934 WHEN OTHERS THEN
53935 l_acc_rev_flag := 'N';
53936 END;
53937 --
53938 IF (l_acc_rev_flag = 'Y') THEN
53939
53940 -- 4645092 ------------------------------------------------------------------------------
53941 -- To allow MPA report to determine if it should generate report process
53942 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
53943 ------------------------------------------------------------------------------------------
53944
53945 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
53946 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
53947
53948 --
53949 -- Update the line information that should be overwritten
53950 --
53951 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
53952 p_header_num => 1);
53953 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
53954
53955 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
53956
53957 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
53958 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
53959 END IF;
53960
53961 --
53962 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
53963 --
53964 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
53965 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
53966 ELSE
53967 ---------------------------------------------------------------------------------------------------
53968 -- 4262811a Switch Sign
53969 ---------------------------------------------------------------------------------------------------
53973 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53970 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
53971 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53972 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53974 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53975 -- 5132302
53976 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
53977 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53978
53979 END IF;
53980
53981 -- 4955764
53982 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53983 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
53984
53985
53986 XLA_AE_LINES_PKG.ValidateCurrentLine;
53987 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53988
53989 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53990 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
53991 ,p_balance_type_code => l_balance_type_code);
53992
53993 END IF;
53994
53995 -----------------------------------------------------------------------------------------
53996 -- 4262811 Multiperiod Accounting
53997 -----------------------------------------------------------------------------------------
53998 -- No MPA option is assigned.
53999
54000
54001 END IF;
54002 --
54003
54004 --
54005 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54006 trace
54007 (p_msg => 'END of AcctLineType_113'
54008 ,p_level => C_LEVEL_PROCEDURE
54009 ,p_module => l_log_module);
54010 END IF;
54011 --
54012 EXCEPTION
54013 WHEN xla_exceptions_pkg.application_exception THEN
54014 RAISE;
54015 WHEN OTHERS THEN
54016 xla_exceptions_pkg.raise_message
54017 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_113');
54018 END AcctLineType_113;
54019 --
54020
54021 ---------------------------------------
54022 --
54023 -- PRIVATE FUNCTION
54024 -- AcctLineType_114
54025 --
54026 ---------------------------------------
54027 PROCEDURE AcctLineType_114 (
54028 p_application_id IN NUMBER
54029 ,p_event_id IN NUMBER
54030 ,p_calculate_acctd_flag IN VARCHAR2
54031 ,p_calculate_g_l_flag IN VARCHAR2
54032 ,p_actual_flag IN OUT VARCHAR2
54033 ,p_balance_type_code OUT VARCHAR2
54034 ,p_gain_or_loss_ref OUT VARCHAR2
54035
54036 --Realized Gains CCID
54037 , p_source_17 IN NUMBER
54038 --Entered Currency Code
54039 , p_source_26 IN VARCHAR2
54040 --Exchange Rate Date
54041 , p_source_28 IN DATE
54042 --Exchange Rate
54043 , p_source_29 IN NUMBER
54044 --Exchange Rate Type
54045 , p_source_30 IN VARCHAR2
54046 --Entered Amount
54047 , p_source_42 IN NUMBER
54048 --Accounted Amount
54049 , p_source_43 IN NUMBER
54050 --Revenue Distribution Type
54051 , p_source_46 IN VARCHAR2
54052 --Crediting Revenue Flag
54053 , p_source_48 IN VARCHAR2
54054 --Revenue First Distribution ID
54055 , p_source_49 IN NUMBER
54056 --Revenue Second Distribution ID
54057 , p_source_50 IN NUMBER
54058 --Event ID
54059 , p_source_51 IN NUMBER
54060 )
54061 IS
54062
54063 l_component_type VARCHAR2(80);
54064 l_component_code VARCHAR2(30);
54065 l_component_type_code VARCHAR2(1);
54066 l_component_appl_id INTEGER;
54067 l_amb_context_code VARCHAR2(30);
54068 l_entity_code VARCHAR2(30);
54069 l_event_class_code VARCHAR2(30);
54070 l_ae_header_id NUMBER;
54071 l_event_type_code VARCHAR2(30);
54072 l_line_definition_code VARCHAR2(30);
54073 l_line_definition_owner_code VARCHAR2(1);
54074 --
54075 -- adr variables
54076 l_segment VARCHAR2(30);
54077 l_ccid NUMBER;
54078 l_adr_transaction_coa_id NUMBER;
54079 l_adr_accounting_coa_id NUMBER;
54080 l_adr_flexfield_segment_code VARCHAR2(30);
54081 l_adr_flex_value_set_id NUMBER;
54082 l_adr_value_type_code VARCHAR2(30);
54083 l_adr_value_combination_id NUMBER;
54084 l_adr_value_segment_code VARCHAR2(30);
54085
54086 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
54087 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
54088 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
54089 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
54090
54091 -- 4262811 Variables ------------------------------------------------------------------------------------------
54092 l_entered_amt_idx NUMBER;
54093 l_accted_amt_idx NUMBER;
54094 l_acc_rev_flag VARCHAR2(1);
54095 l_accrual_line_num NUMBER;
54096 l_tmp_amt NUMBER;
54097 l_acc_rev_natural_side_code VARCHAR2(1);
54098
54099 l_num_entries NUMBER;
54100 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
54101 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
54102 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
54103 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
54104 l_recog_line_1 NUMBER;
54105 l_recog_line_2 NUMBER;
54106
54110
54107 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
54108 l_bflow_applied_to_amt NUMBER; -- 5132302
54109 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
54111 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
54112
54113 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
54114 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
54115
54116 ---------------------------------------------------------------------------------------------------------------
54117
54118
54119 --
54120 -- bulk performance
54121 --
54122 l_balance_type_code VARCHAR2(1);
54123 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
54124 l_log_module VARCHAR2(240);
54125
54126 --
54127 -- Upgrade strategy
54128 --
54129 l_actual_upg_option VARCHAR2(1);
54130 l_enc_upg_option VARCHAR2(1);
54131
54132 --
54133 BEGIN
54134 --
54135 IF g_log_enabled THEN
54136 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_114';
54137 END IF;
54138 --
54139 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54140
54141 trace
54142 (p_msg => 'BEGIN of AcctLineType_114'
54143 ,p_level => C_LEVEL_PROCEDURE
54144 ,p_module => l_log_module);
54145
54146 END IF;
54147 --
54148 l_component_type := 'AMB_JLT';
54149 l_component_code := 'PA_REALIZED_GAINS';
54150 l_component_type_code := 'S';
54151 l_component_appl_id := 275;
54152 l_amb_context_code := 'DEFAULT';
54153 l_entity_code := 'REVENUE';
54154 l_event_class_code := 'REVENUE';
54155 l_event_type_code := 'REVENUE_ALL';
54156 l_line_definition_owner_code := 'S';
54157 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
54158 --
54159 l_balance_type_code := 'A';
54160 l_segment := NULL;
54161 l_ccid := NULL;
54162 l_adr_transaction_coa_id := NULL;
54163 l_adr_accounting_coa_id := NULL;
54164 l_adr_flexfield_segment_code := NULL;
54165 l_adr_flex_value_set_id := NULL;
54166 l_adr_value_type_code := NULL;
54167 l_adr_value_combination_id := NULL;
54168 l_adr_value_segment_code := NULL;
54169
54170 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
54171 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
54172 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
54173 l_budgetary_control_flag := 'N';
54174
54175 l_bflow_applied_to_amt_idx := NULL; -- 5132302
54176 l_bflow_applied_to_amt := NULL; -- 5132302
54177 l_entered_amt_idx := NULL; -- 4262811
54178 l_accted_amt_idx := NULL; -- 4262811
54179 l_acc_rev_flag := NULL; -- 4262811
54180 l_accrual_line_num := NULL; -- 4262811
54181 l_tmp_amt := NULL; -- 4262811
54182 --
54183
54184 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
54185 l_balance_type_code <> 'B' THEN
54186 IF NVL(p_source_46,'
54187 ') = 'Revenue - Realized Gains' AND
54188 NVL(p_source_48,'
54189 ') = 'N'
54190 THEN
54191
54192 --
54193 XLA_AE_LINES_PKG.SetNewLine;
54194
54195 p_balance_type_code := l_balance_type_code;
54196 -- set the flag so later we will know whether the gain loss line needs to be created
54197
54198 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
54199 p_actual_flag :='A';
54200 END IF;
54201
54202 --
54203 -- bulk performance
54204 --
54205 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
54206 p_header_num => 0); -- 4262811
54207 --
54208 -- set accounting line options
54209 --
54210 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
54211 p_natural_side_code => 'D'
54212 , p_gain_or_loss_flag => 'N'
54213 , p_gl_transfer_mode_code => 'S'
54214 , p_acct_entry_type_code => 'A'
54215 , p_switch_side_flag => 'Y'
54216 , p_merge_duplicate_code => 'N'
54217 );
54218 --
54219 l_acc_rev_natural_side_code := 'C'; -- 4262811
54220 --
54221 --
54222 -- set accounting line type info
54223 --
54224 xla_ae_lines_pkg.SetAcctLineType
54225 (p_component_type => l_component_type
54226 ,p_event_type_code => l_event_type_code
54227 ,p_line_definition_owner_code => l_line_definition_owner_code
54228 ,p_line_definition_code => l_line_definition_code
54229 ,p_accounting_line_code => l_component_code
54230 ,p_accounting_line_type_code => l_component_type_code
54231 ,p_accounting_line_appl_id => l_component_appl_id
54232 ,p_amb_context_code => l_amb_context_code
54233 ,p_entity_code => l_entity_code
54234 ,p_event_class_code => l_event_class_code);
54235 --
54236 -- set accounting class
54237 --
54238 xla_ae_lines_pkg.SetAcctClass(
54239 p_accounting_class_code => 'REALIZED_GAINS'
54240 , p_ae_header_id => l_ae_header_id
54241 );
54242
54243 --
54244 -- set rounding class
54245 --
54246 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
54247 'REALIZED_GAINS';
54248
54249 --
54253 -- bulk performance
54250 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
54251 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
54252 --
54254 --
54255 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
54256
54257 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
54258 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
54259
54260 -- 4955764
54261 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54262 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
54263
54264 -- 4458381 Public Sector Enh
54265
54266 --
54267 -- set accounting attributes for the line type
54268 --
54269 l_entered_amt_idx := 4;
54270 l_accted_amt_idx := 10;
54271 l_bflow_applied_to_amt_idx := NULL; -- 5132302
54272 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
54273 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_49);
54274 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
54275 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_50);
54276 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
54277 l_rec_acct_attrs.array_char_value(3) := p_source_46;
54278 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
54279 l_rec_acct_attrs.array_num_value(4) := p_source_42;
54280 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
54281 l_rec_acct_attrs.array_char_value(5) := p_source_26;
54282 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
54283 l_rec_acct_attrs.array_date_value(6) := p_source_28;
54284 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
54285 l_rec_acct_attrs.array_num_value(7) := p_source_29;
54286 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
54287 l_rec_acct_attrs.array_char_value(8) := p_source_30;
54288 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
54289 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_51);
54290 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
54291 l_rec_acct_attrs.array_num_value(10) := p_source_43;
54292
54293 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
54294 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
54295
54296 ---------------------------------------------------------------------------------------------------------------
54297 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
54298 ---------------------------------------------------------------------------------------------------------------
54299 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
54300
54301 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54302 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54303
54304 IF xla_accounting_cache_pkg.GetValueChar
54305 (p_source_code => 'LEDGER_CATEGORY_CODE'
54306 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
54307 AND l_bflow_method_code = 'PRIOR_ENTRY'
54308 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
54309 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
54310 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
54311 )
54312 THEN
54313 xla_ae_lines_pkg.BflowUpgEntry
54314 (p_business_method_code => l_bflow_method_code
54315 ,p_business_class_code => l_bflow_class_code
54316 ,p_balance_type => l_balance_type_code);
54317 ELSE
54318 NULL;
54319 -- No business flow processing for business flow method of NONE.
54320 END IF;
54321
54322 --
54323 -- call analytical criteria
54324 --
54325
54326 --
54327 -- call description
54328 --
54329 -- No description or it is inherited.
54330 --
54331 -- call ADRs
54332 -- Bug 4922099
54333 --
54334 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54335 (NVL(l_actual_upg_option, 'N') = 'O') OR
54336 (NVL(l_enc_upg_option, 'N') = 'O')
54337 )
54338 THEN
54339 NULL;
54340 --
54341 --
54342
54343 l_ccid := AcctDerRule_24(
54344 p_application_id => p_application_id
54345 , p_ae_header_id => l_ae_header_id
54346 , p_source_17 => p_source_17
54347 , x_transaction_coa_id => l_adr_transaction_coa_id
54348 , x_accounting_coa_id => l_adr_accounting_coa_id
54349 , x_value_type_code => l_adr_value_type_code
54350 , p_side => 'NA'
54351 );
54352
54353 xla_ae_lines_pkg.set_ccid(
54354 p_code_combination_id => l_ccid
54355 , p_value_type_code => l_adr_value_type_code
54356 , p_transaction_coa_id => l_adr_transaction_coa_id
54357 , p_accounting_coa_id => l_adr_accounting_coa_id
54358 , p_adr_code => 'REALIZED_GAINS_RULE'
54359 , p_adr_type_code => 'S'
54360 , p_component_type => l_component_type
54361 , p_component_code => l_component_code
54362 , p_component_type_code => l_component_type_code
54363 , p_component_appl_id => l_component_appl_id
54364 , p_amb_context_code => l_amb_context_code
54365 , p_side => 'NA'
54366 );
54367
54368
54369 --
54370 --
54371 END IF;
54375 (NVL(l_enc_upg_option, 'N') = 'O')
54372 --
54373 -- Bug 4922099
54374 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
54376 ) AND
54377 (l_bflow_method_code = 'PRIOR_ENTRY')
54378 )
54379 THEN
54380 IF
54381 --
54382 1 = 2
54383 --
54384 THEN
54385 xla_accounting_err_pkg.build_message
54386 (p_appli_s_name => 'XLA'
54387 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54388 ,p_token_1 => 'LINE_NUMBER'
54389 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
54390 ,p_token_2 => 'LINE_TYPE_NAME'
54391 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
54392 l_component_type
54393 ,l_component_code
54394 ,l_component_type_code
54395 ,l_component_appl_id
54396 ,l_amb_context_code
54397 ,l_entity_code
54398 ,l_event_class_code
54399 )
54400 ,p_token_3 => 'OWNER'
54401 ,p_value_3 => xla_lookups_pkg.get_meaning(
54402 p_lookup_type => 'XLA_OWNER_TYPE'
54403 ,p_lookup_code => l_component_type_code
54404 )
54405 ,p_token_4 => 'PRODUCT_NAME'
54406 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
54407 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
54408 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
54409 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
54410 ,p_ae_header_id => NULL
54411 );
54412
54413 IF (C_LEVEL_ERROR>= g_log_level) THEN
54414 trace
54415 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54416 ,p_level => C_LEVEL_ERROR
54417 ,p_module => l_log_module);
54418 END IF;
54419 END IF;
54420 END IF;
54421 --
54422 --
54423 ------------------------------------------------------------------------------------------------
54424 -- 4219869 Business Flow
54425 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
54426 -- Prior Entry. Currently, the following code is always generated.
54427 ------------------------------------------------------------------------------------------------
54428 XLA_AE_LINES_PKG.ValidateCurrentLine;
54429
54430 ------------------------------------------------------------------------------------
54431 -- 4219869 Business Flow
54432 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
54433 ------------------------------------------------------------------------------------
54434 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54435
54436 ----------------------------------------------------------------------------------
54437 -- 4219869 Business Flow
54438 -- Update journal entry status -- Need to generate this within IF <condition>
54439 ----------------------------------------------------------------------------------
54440 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54441 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
54442 ,p_balance_type_code => l_balance_type_code
54443 );
54444
54445 -------------------------------------------------------------------------------------------
54446 -- 4262811 - Generate the Accrual Reversal lines
54447 -------------------------------------------------------------------------------------------
54448 BEGIN
54449 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
54450 (g_array_event(p_event_id).array_value_num('header_index'));
54451 IF l_acc_rev_flag IS NULL THEN
54452 l_acc_rev_flag := 'N';
54453 END IF;
54454 EXCEPTION
54455 WHEN OTHERS THEN
54456 l_acc_rev_flag := 'N';
54457 END;
54458 --
54459 IF (l_acc_rev_flag = 'Y') THEN
54460
54461 -- 4645092 ------------------------------------------------------------------------------
54462 -- To allow MPA report to determine if it should generate report process
54463 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
54464 ------------------------------------------------------------------------------------------
54465
54466 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
54467 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
54468
54469 --
54470 -- Update the line information that should be overwritten
54471 --
54472 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
54473 p_header_num => 1);
54477
54474 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
54475
54476 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
54478 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
54479 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
54480 END IF;
54481
54482 --
54483 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
54484 --
54485 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
54486 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
54487 ELSE
54488 ---------------------------------------------------------------------------------------------------
54489 -- 4262811a Switch Sign
54490 ---------------------------------------------------------------------------------------------------
54491 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
54492 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54493 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54494 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54495 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54496 -- 5132302
54497 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
54498 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54499
54500 END IF;
54501
54502 -- 4955764
54503 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54504 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
54505
54506
54507 XLA_AE_LINES_PKG.ValidateCurrentLine;
54508 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54509
54510 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54511 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
54512 ,p_balance_type_code => l_balance_type_code);
54513
54514 END IF;
54515
54516 -----------------------------------------------------------------------------------------
54517 -- 4262811 Multiperiod Accounting
54518 -----------------------------------------------------------------------------------------
54519 -- No MPA option is assigned.
54520
54521
54522 END IF;
54523 END IF;
54524 --
54525
54526 --
54527 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54528 trace
54529 (p_msg => 'END of AcctLineType_114'
54530 ,p_level => C_LEVEL_PROCEDURE
54531 ,p_module => l_log_module);
54532 END IF;
54533 --
54534 EXCEPTION
54535 WHEN xla_exceptions_pkg.application_exception THEN
54536 RAISE;
54537 WHEN OTHERS THEN
54538 xla_exceptions_pkg.raise_message
54539 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_114');
54540 END AcctLineType_114;
54541 --
54542
54543 ---------------------------------------
54544 --
54545 -- PRIVATE FUNCTION
54546 -- AcctLineType_115
54547 --
54548 ---------------------------------------
54549 PROCEDURE AcctLineType_115 (
54550 p_application_id IN NUMBER
54551 ,p_event_id IN NUMBER
54552 ,p_calculate_acctd_flag IN VARCHAR2
54553 ,p_calculate_g_l_flag IN VARCHAR2
54554 ,p_actual_flag IN OUT VARCHAR2
54555 ,p_balance_type_code OUT VARCHAR2
54556 ,p_gain_or_loss_ref OUT VARCHAR2
54557
54558 --Actual Upgrade Credit Accounting Class
54559 , p_source_24 IN VARCHAR2
54560 --Entered Currency Code
54561 , p_source_26 IN VARCHAR2
54562 --Exchange Rate Date
54563 , p_source_28 IN DATE
54564 --Exchange Rate
54565 , p_source_29 IN NUMBER
54566 --Exchange Rate Type
54567 , p_source_30 IN VARCHAR2
54568 --Actual Upgrade Debit Accounting Class
54569 , p_source_31 IN VARCHAR2
54570 --Use Actuals Upgrade Attributes Flag
54571 , p_source_32 IN VARCHAR2
54572 --Entered Amount
54573 , p_source_42 IN NUMBER
54574 --Accounted Amount
54575 , p_source_43 IN NUMBER
54576 --Revenue Distribution Type
54577 , p_source_46 IN VARCHAR2
54578 --Crediting Revenue Flag
54579 , p_source_48 IN VARCHAR2
54580 --Revenue First Distribution ID
54581 , p_source_49 IN NUMBER
54582 --Revenue Second Distribution ID
54583 , p_source_50 IN NUMBER
54584 --Event ID
54585 , p_source_51 IN NUMBER
54586 --Actual Upgrade Credit CCID
54587 , p_source_64 IN NUMBER
54588 --Actual Upgrade Debit CCID
54589 , p_source_65 IN NUMBER
54590 --Application ID
54591 , p_source_66 IN NUMBER
54592 --Revenue Entity Code
54593 , p_source_67 IN VARCHAR2
54594 --Crediting Revenue First Distribution ID
54595 , p_source_68 IN NUMBER
54596 --Project ID
54597 , p_source_69 IN NUMBER
54598 --Crediting Revenue Second Distribution ID
54599 , p_source_70 IN NUMBER
54600 --Draft Revenue Number Credited
54601 , p_source_71 IN NUMBER
54602 )
54603 IS
54604
54605 l_component_type VARCHAR2(80);
54606 l_component_code VARCHAR2(30);
54607 l_component_type_code VARCHAR2(1);
54608 l_component_appl_id INTEGER;
54609 l_amb_context_code VARCHAR2(30);
54613 l_event_type_code VARCHAR2(30);
54610 l_entity_code VARCHAR2(30);
54611 l_event_class_code VARCHAR2(30);
54612 l_ae_header_id NUMBER;
54614 l_line_definition_code VARCHAR2(30);
54615 l_line_definition_owner_code VARCHAR2(1);
54616 --
54617 -- adr variables
54618 l_segment VARCHAR2(30);
54619 l_ccid NUMBER;
54620 l_adr_transaction_coa_id NUMBER;
54621 l_adr_accounting_coa_id NUMBER;
54622 l_adr_flexfield_segment_code VARCHAR2(30);
54623 l_adr_flex_value_set_id NUMBER;
54624 l_adr_value_type_code VARCHAR2(30);
54625 l_adr_value_combination_id NUMBER;
54626 l_adr_value_segment_code VARCHAR2(30);
54627
54628 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
54629 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
54630 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
54631 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
54632
54633 -- 4262811 Variables ------------------------------------------------------------------------------------------
54634 l_entered_amt_idx NUMBER;
54635 l_accted_amt_idx NUMBER;
54636 l_acc_rev_flag VARCHAR2(1);
54637 l_accrual_line_num NUMBER;
54638 l_tmp_amt NUMBER;
54639 l_acc_rev_natural_side_code VARCHAR2(1);
54640
54641 l_num_entries NUMBER;
54642 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
54643 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
54644 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
54645 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
54646 l_recog_line_1 NUMBER;
54647 l_recog_line_2 NUMBER;
54648
54649 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
54650 l_bflow_applied_to_amt NUMBER; -- 5132302
54651 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
54652
54653 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
54654
54655 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
54656 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
54657
54658 ---------------------------------------------------------------------------------------------------------------
54659
54660
54661 --
54662 -- bulk performance
54663 --
54664 l_balance_type_code VARCHAR2(1);
54665 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
54666 l_log_module VARCHAR2(240);
54667
54668 --
54669 -- Upgrade strategy
54670 --
54671 l_actual_upg_option VARCHAR2(1);
54672 l_enc_upg_option VARCHAR2(1);
54673
54674 --
54675 BEGIN
54676 --
54677 IF g_log_enabled THEN
54678 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_115';
54679 END IF;
54680 --
54681 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54682
54683 trace
54684 (p_msg => 'BEGIN of AcctLineType_115'
54685 ,p_level => C_LEVEL_PROCEDURE
54686 ,p_module => l_log_module);
54687
54688 END IF;
54689 --
54690 l_component_type := 'AMB_JLT';
54691 l_component_code := 'PA_REALIZED_GAINS_ADJ';
54692 l_component_type_code := 'S';
54693 l_component_appl_id := 275;
54694 l_amb_context_code := 'DEFAULT';
54695 l_entity_code := 'REVENUE';
54696 l_event_class_code := 'REVENUE_ADJ';
54697 l_event_type_code := 'REVENUE_ADJ_ALL';
54698 l_line_definition_owner_code := 'S';
54699 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
54700 --
54701 l_balance_type_code := 'A';
54702 l_segment := NULL;
54703 l_ccid := NULL;
54704 l_adr_transaction_coa_id := NULL;
54705 l_adr_accounting_coa_id := NULL;
54706 l_adr_flexfield_segment_code := NULL;
54707 l_adr_flex_value_set_id := NULL;
54708 l_adr_value_type_code := NULL;
54709 l_adr_value_combination_id := NULL;
54710 l_adr_value_segment_code := NULL;
54711
54712 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
54713 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
54714 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
54715 l_budgetary_control_flag := 'N';
54716
54717 l_bflow_applied_to_amt_idx := NULL; -- 5132302
54718 l_bflow_applied_to_amt := NULL; -- 5132302
54719 l_entered_amt_idx := NULL; -- 4262811
54720 l_accted_amt_idx := NULL; -- 4262811
54721 l_acc_rev_flag := NULL; -- 4262811
54722 l_accrual_line_num := NULL; -- 4262811
54723 l_tmp_amt := NULL; -- 4262811
54724 --
54725
54726 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
54727 l_balance_type_code <> 'B' THEN
54728 IF NVL(p_source_46,'
54729 ') = 'Revenue - Realized Gains' AND
54730 NVL(p_source_48,'
54731 ') = 'Y'
54732 THEN
54733
54734 --
54735 XLA_AE_LINES_PKG.SetNewLine;
54736
54737 p_balance_type_code := l_balance_type_code;
54738 -- set the flag so later we will know whether the gain loss line needs to be created
54739
54740 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
54741 p_actual_flag :='A';
54742 END IF;
54743
54744 --
54745 -- bulk performance
54746 --
54747 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
54751 --
54748 p_header_num => 0); -- 4262811
54749 --
54750 -- set accounting line options
54752 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
54753 p_natural_side_code => 'D'
54754 , p_gain_or_loss_flag => 'N'
54755 , p_gl_transfer_mode_code => 'S'
54756 , p_acct_entry_type_code => 'A'
54757 , p_switch_side_flag => 'Y'
54758 , p_merge_duplicate_code => 'N'
54759 );
54760 --
54761 l_acc_rev_natural_side_code := 'C'; -- 4262811
54762 --
54763 --
54764 -- set accounting line type info
54765 --
54766 xla_ae_lines_pkg.SetAcctLineType
54767 (p_component_type => l_component_type
54768 ,p_event_type_code => l_event_type_code
54769 ,p_line_definition_owner_code => l_line_definition_owner_code
54770 ,p_line_definition_code => l_line_definition_code
54771 ,p_accounting_line_code => l_component_code
54772 ,p_accounting_line_type_code => l_component_type_code
54773 ,p_accounting_line_appl_id => l_component_appl_id
54774 ,p_amb_context_code => l_amb_context_code
54775 ,p_entity_code => l_entity_code
54776 ,p_event_class_code => l_event_class_code);
54777 --
54778 -- set accounting class
54779 --
54780 xla_ae_lines_pkg.SetAcctClass(
54781 p_accounting_class_code => 'REALIZED_GAINS'
54782 , p_ae_header_id => l_ae_header_id
54783 );
54784
54785 --
54786 -- set rounding class
54787 --
54788 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
54789 'REALIZED_GAINS';
54790
54791 --
54792 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
54793 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
54794 --
54795 -- bulk performance
54796 --
54797 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
54798
54799 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
54800 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
54801
54802 -- 4955764
54803 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54804 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
54805
54806 -- 4458381 Public Sector Enh
54807
54808 --
54809 -- set accounting attributes for the line type
54810 --
54811 l_entered_amt_idx := 28;
54812 l_accted_amt_idx := 31;
54813 l_bflow_applied_to_amt_idx := NULL; -- 5132302
54814 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACTUAL_UPG_CR_ACCT_CLASS';
54815 l_rec_acct_attrs.array_char_value(1) := p_source_24;
54816 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_CCID';
54817 l_rec_acct_attrs.array_num_value(2) := TO_NUMBER(p_source_64);
54818 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ENTERED_AMT';
54819 l_rec_acct_attrs.array_num_value(3) := p_source_42;
54820 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_CURR';
54821 l_rec_acct_attrs.array_char_value(4) := p_source_26;
54822 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_LEDGER_AMT';
54823 l_rec_acct_attrs.array_num_value(5) := p_source_43;
54824 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_XDATE';
54825 l_rec_acct_attrs.array_date_value(6) := p_source_28;
54826 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XRATE';
54827 l_rec_acct_attrs.array_num_value(7) := p_source_29;
54828 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE_TYPE';
54829 l_rec_acct_attrs.array_char_value(8) := p_source_30;
54830 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_DR_ACCT_CLASS';
54831 l_rec_acct_attrs.array_char_value(9) := p_source_31;
54832 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_CCID';
54833 l_rec_acct_attrs.array_num_value(10) := TO_NUMBER(p_source_65);
54834 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ENTERED_AMT';
54835 l_rec_acct_attrs.array_num_value(11) := p_source_42;
54836 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_CURR';
54837 l_rec_acct_attrs.array_char_value(12) := p_source_26;
54838 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_LEDGER_AMT';
54839 l_rec_acct_attrs.array_num_value(13) := p_source_43;
54840 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_XDATE';
54841 l_rec_acct_attrs.array_date_value(14) := p_source_28;
54842 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XRATE';
54843 l_rec_acct_attrs.array_num_value(15) := p_source_29;
54844 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE_TYPE';
54845 l_rec_acct_attrs.array_char_value(16) := p_source_30;
54846 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_OPTION';
54847 l_rec_acct_attrs.array_char_value(17) := p_source_32;
54848 l_rec_acct_attrs.array_acct_attr_code(18) := 'APPLIED_TO_APPLICATION_ID';
54849 l_rec_acct_attrs.array_num_value(18) := p_source_66;
54850 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_DISTRIBUTION_TYPE';
54851 l_rec_acct_attrs.array_char_value(19) := p_source_46;
54852 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_ENTITY_CODE';
54853 l_rec_acct_attrs.array_char_value(20) := p_source_67;
54854 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_FIRST_DIST_ID';
54855 l_rec_acct_attrs.array_num_value(21) := to_char(p_source_68);
54856 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
54857 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_69);
54861 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_71);
54858 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_SECOND_DIST_ID';
54859 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_70);
54860 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
54862 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
54863 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_49);
54864 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
54865 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_50);
54866 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
54867 l_rec_acct_attrs.array_char_value(27) := p_source_46;
54868 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
54869 l_rec_acct_attrs.array_num_value(28) := p_source_42;
54870 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
54871 l_rec_acct_attrs.array_char_value(29) := p_source_26;
54872 l_rec_acct_attrs.array_acct_attr_code(30) := 'GAIN_LOSS_REFERENCE';
54873 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_51);
54874 l_rec_acct_attrs.array_acct_attr_code(31) := 'LEDGER_AMOUNT';
54875 l_rec_acct_attrs.array_num_value(31) := p_source_43;
54876
54877 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
54878 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
54879
54880 ---------------------------------------------------------------------------------------------------------------
54881 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
54882 ---------------------------------------------------------------------------------------------------------------
54883 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
54884
54885 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54886 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54887
54888 IF xla_accounting_cache_pkg.GetValueChar
54889 (p_source_code => 'LEDGER_CATEGORY_CODE'
54890 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
54891 AND l_bflow_method_code = 'PRIOR_ENTRY'
54892 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
54893 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
54894 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
54895 )
54896 THEN
54897 xla_ae_lines_pkg.BflowUpgEntry
54898 (p_business_method_code => l_bflow_method_code
54899 ,p_business_class_code => l_bflow_class_code
54900 ,p_balance_type => l_balance_type_code);
54901 ELSE
54902 NULL;
54903 XLA_AE_LINES_PKG.business_flow_validation(
54904 p_business_method_code => l_bflow_method_code
54905 ,p_business_class_code => l_bflow_class_code
54906 ,p_inherit_description_flag => l_inherit_desc_flag);
54907 END IF;
54908
54909 --
54910 -- call analytical criteria
54911 --
54912 -- Inherited Analytical Criteria for business flow method of Prior Entry.
54913 --
54914 -- call description
54915 --
54916 -- No description or it is inherited.
54917 --
54918 -- call ADRs
54919 -- Bug 4922099
54920 --
54921 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54922 (NVL(l_actual_upg_option, 'N') = 'O') OR
54923 (NVL(l_enc_upg_option, 'N') = 'O')
54924 )
54925 THEN
54926 NULL;
54927 --
54928 --
54929
54930 --
54931 --
54932 END IF;
54933 --
54934 -- Bug 4922099
54935 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
54936 (NVL(l_enc_upg_option, 'N') = 'O')
54937 ) AND
54938 (l_bflow_method_code = 'PRIOR_ENTRY')
54939 )
54940 THEN
54941 IF
54942 --
54943 1 = 1
54944 --
54945 THEN
54946 xla_accounting_err_pkg.build_message
54947 (p_appli_s_name => 'XLA'
54948 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54949 ,p_token_1 => 'LINE_NUMBER'
54950 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
54951 ,p_token_2 => 'LINE_TYPE_NAME'
54952 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
54953 l_component_type
54954 ,l_component_code
54955 ,l_component_type_code
54956 ,l_component_appl_id
54957 ,l_amb_context_code
54958 ,l_entity_code
54959 ,l_event_class_code
54960 )
54961 ,p_token_3 => 'OWNER'
54962 ,p_value_3 => xla_lookups_pkg.get_meaning(
54963 p_lookup_type => 'XLA_OWNER_TYPE'
54964 ,p_lookup_code => l_component_type_code
54965 )
54969 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
54966 ,p_token_4 => 'PRODUCT_NAME'
54967 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
54968 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
54970 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
54971 ,p_ae_header_id => NULL
54972 );
54973
54974 IF (C_LEVEL_ERROR>= g_log_level) THEN
54975 trace
54976 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54977 ,p_level => C_LEVEL_ERROR
54978 ,p_module => l_log_module);
54979 END IF;
54980 END IF;
54981 END IF;
54982 --
54983 --
54984 ------------------------------------------------------------------------------------------------
54985 -- 4219869 Business Flow
54986 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
54987 -- Prior Entry. Currently, the following code is always generated.
54988 ------------------------------------------------------------------------------------------------
54989 -- No ValidateCurrentLine for business flow method of Prior Entry
54990
54991 ------------------------------------------------------------------------------------
54992 -- 4219869 Business Flow
54993 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
54994 ------------------------------------------------------------------------------------
54995 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54996
54997 ----------------------------------------------------------------------------------
54998 -- 4219869 Business Flow
54999 -- Update journal entry status -- Need to generate this within IF <condition>
55000 ----------------------------------------------------------------------------------
55001 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55002 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
55003 ,p_balance_type_code => l_balance_type_code
55004 );
55005
55006 -------------------------------------------------------------------------------------------
55007 -- 4262811 - Generate the Accrual Reversal lines
55008 -------------------------------------------------------------------------------------------
55009 BEGIN
55010 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
55011 (g_array_event(p_event_id).array_value_num('header_index'));
55012 IF l_acc_rev_flag IS NULL THEN
55013 l_acc_rev_flag := 'N';
55014 END IF;
55015 EXCEPTION
55016 WHEN OTHERS THEN
55017 l_acc_rev_flag := 'N';
55018 END;
55019 --
55020 IF (l_acc_rev_flag = 'Y') THEN
55021
55022 -- 4645092 ------------------------------------------------------------------------------
55023 -- To allow MPA report to determine if it should generate report process
55024 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
55025 ------------------------------------------------------------------------------------------
55026
55027 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
55028 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
55029
55030 --
55031 -- Update the line information that should be overwritten
55032 --
55033 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
55034 p_header_num => 1);
55035 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
55036
55037 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
55038
55039 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
55040 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
55041 END IF;
55042
55043 --
55044 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
55045 --
55046 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
55047 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
55048 ELSE
55049 ---------------------------------------------------------------------------------------------------
55050 -- 4262811a Switch Sign
55051 ---------------------------------------------------------------------------------------------------
55052 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
55053 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55054 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55055 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55056 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55057 -- 5132302
55058 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
55059 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55060
55061 END IF;
55062
55063 -- 4955764
55064 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55065 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
55066
55067
55068 XLA_AE_LINES_PKG.ValidateCurrentLine;
55072 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
55069 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55070
55071 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55073 ,p_balance_type_code => l_balance_type_code);
55074
55075 END IF;
55076
55077 -----------------------------------------------------------------------------------------
55078 -- 4262811 Multiperiod Accounting
55079 -----------------------------------------------------------------------------------------
55080 -- No MPA option is assigned.
55081
55082
55083 END IF;
55084 END IF;
55085 --
55086
55087 --
55088 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55089 trace
55090 (p_msg => 'END of AcctLineType_115'
55091 ,p_level => C_LEVEL_PROCEDURE
55092 ,p_module => l_log_module);
55093 END IF;
55094 --
55095 EXCEPTION
55096 WHEN xla_exceptions_pkg.application_exception THEN
55097 RAISE;
55098 WHEN OTHERS THEN
55099 xla_exceptions_pkg.raise_message
55100 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_115');
55101 END AcctLineType_115;
55102 --
55103
55104 ---------------------------------------
55105 --
55106 -- PRIVATE FUNCTION
55107 -- AcctLineType_116
55108 --
55109 ---------------------------------------
55110 PROCEDURE AcctLineType_116 (
55111 p_application_id IN NUMBER
55112 ,p_event_id IN NUMBER
55113 ,p_calculate_acctd_flag IN VARCHAR2
55114 ,p_calculate_g_l_flag IN VARCHAR2
55115 ,p_actual_flag IN OUT VARCHAR2
55116 ,p_balance_type_code OUT VARCHAR2
55117 ,p_gain_or_loss_ref OUT VARCHAR2
55118
55119 --Realized Losses CCID
55120 , p_source_18 IN NUMBER
55121 --Entered Currency Code
55122 , p_source_26 IN VARCHAR2
55123 --Exchange Rate Date
55124 , p_source_28 IN DATE
55125 --Exchange Rate
55126 , p_source_29 IN NUMBER
55127 --Exchange Rate Type
55128 , p_source_30 IN VARCHAR2
55129 --Entered Amount
55130 , p_source_42 IN NUMBER
55131 --Accounted Amount
55132 , p_source_43 IN NUMBER
55133 --Revenue Distribution Type
55134 , p_source_46 IN VARCHAR2
55135 --Crediting Revenue Flag
55136 , p_source_48 IN VARCHAR2
55137 --Revenue First Distribution ID
55138 , p_source_49 IN NUMBER
55139 --Revenue Second Distribution ID
55140 , p_source_50 IN NUMBER
55141 --Event ID
55142 , p_source_51 IN NUMBER
55143 )
55144 IS
55145
55146 l_component_type VARCHAR2(80);
55147 l_component_code VARCHAR2(30);
55148 l_component_type_code VARCHAR2(1);
55149 l_component_appl_id INTEGER;
55150 l_amb_context_code VARCHAR2(30);
55151 l_entity_code VARCHAR2(30);
55152 l_event_class_code VARCHAR2(30);
55153 l_ae_header_id NUMBER;
55154 l_event_type_code VARCHAR2(30);
55155 l_line_definition_code VARCHAR2(30);
55156 l_line_definition_owner_code VARCHAR2(1);
55157 --
55158 -- adr variables
55159 l_segment VARCHAR2(30);
55160 l_ccid NUMBER;
55161 l_adr_transaction_coa_id NUMBER;
55162 l_adr_accounting_coa_id NUMBER;
55163 l_adr_flexfield_segment_code VARCHAR2(30);
55164 l_adr_flex_value_set_id NUMBER;
55165 l_adr_value_type_code VARCHAR2(30);
55166 l_adr_value_combination_id NUMBER;
55167 l_adr_value_segment_code VARCHAR2(30);
55168
55169 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
55170 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
55171 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
55172 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
55173
55174 -- 4262811 Variables ------------------------------------------------------------------------------------------
55175 l_entered_amt_idx NUMBER;
55176 l_accted_amt_idx NUMBER;
55177 l_acc_rev_flag VARCHAR2(1);
55178 l_accrual_line_num NUMBER;
55179 l_tmp_amt NUMBER;
55180 l_acc_rev_natural_side_code VARCHAR2(1);
55181
55182 l_num_entries NUMBER;
55183 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
55184 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
55185 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
55186 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
55187 l_recog_line_1 NUMBER;
55188 l_recog_line_2 NUMBER;
55189
55190 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
55191 l_bflow_applied_to_amt NUMBER; -- 5132302
55192 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
55193
55194 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
55195
55196 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
55197 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
55198
55199 ---------------------------------------------------------------------------------------------------------------
55200
55201
55202 --
55203 -- bulk performance
55204 --
55205 l_balance_type_code VARCHAR2(1);
55206 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
55207 l_log_module VARCHAR2(240);
55208
55209 --
55210 -- Upgrade strategy
55211 --
55212 l_actual_upg_option VARCHAR2(1);
55213 l_enc_upg_option VARCHAR2(1);
55214
55215 --
55219 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_116';
55216 BEGIN
55217 --
55218 IF g_log_enabled THEN
55220 END IF;
55221 --
55222 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55223
55224 trace
55225 (p_msg => 'BEGIN of AcctLineType_116'
55226 ,p_level => C_LEVEL_PROCEDURE
55227 ,p_module => l_log_module);
55228
55229 END IF;
55230 --
55231 l_component_type := 'AMB_JLT';
55232 l_component_code := 'PA_REALIZED_LOSSES';
55233 l_component_type_code := 'S';
55234 l_component_appl_id := 275;
55235 l_amb_context_code := 'DEFAULT';
55236 l_entity_code := 'REVENUE';
55237 l_event_class_code := 'REVENUE';
55238 l_event_type_code := 'REVENUE_ALL';
55239 l_line_definition_owner_code := 'S';
55240 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
55241 --
55242 l_balance_type_code := 'A';
55243 l_segment := NULL;
55244 l_ccid := NULL;
55245 l_adr_transaction_coa_id := NULL;
55246 l_adr_accounting_coa_id := NULL;
55247 l_adr_flexfield_segment_code := NULL;
55248 l_adr_flex_value_set_id := NULL;
55249 l_adr_value_type_code := NULL;
55250 l_adr_value_combination_id := NULL;
55251 l_adr_value_segment_code := NULL;
55252
55253 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
55254 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
55255 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
55256 l_budgetary_control_flag := 'N';
55257
55258 l_bflow_applied_to_amt_idx := NULL; -- 5132302
55259 l_bflow_applied_to_amt := NULL; -- 5132302
55260 l_entered_amt_idx := NULL; -- 4262811
55261 l_accted_amt_idx := NULL; -- 4262811
55262 l_acc_rev_flag := NULL; -- 4262811
55263 l_accrual_line_num := NULL; -- 4262811
55264 l_tmp_amt := NULL; -- 4262811
55265 --
55266
55267 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
55268 l_balance_type_code <> 'B' THEN
55269 IF NVL(p_source_46,'
55270 ') = 'Revenue - Realized Losses' AND
55271 NVL(p_source_48,'
55272 ') = 'N'
55273 THEN
55274
55275 --
55276 XLA_AE_LINES_PKG.SetNewLine;
55277
55278 p_balance_type_code := l_balance_type_code;
55279 -- set the flag so later we will know whether the gain loss line needs to be created
55280
55281 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
55282 p_actual_flag :='A';
55283 END IF;
55284
55285 --
55286 -- bulk performance
55287 --
55288 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
55289 p_header_num => 0); -- 4262811
55290 --
55291 -- set accounting line options
55292 --
55293 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
55294 p_natural_side_code => 'C'
55295 , p_gain_or_loss_flag => 'N'
55296 , p_gl_transfer_mode_code => 'S'
55297 , p_acct_entry_type_code => 'A'
55298 , p_switch_side_flag => 'Y'
55299 , p_merge_duplicate_code => 'N'
55300 );
55301 --
55302 l_acc_rev_natural_side_code := 'D'; -- 4262811
55303 --
55304 --
55305 -- set accounting line type info
55306 --
55307 xla_ae_lines_pkg.SetAcctLineType
55308 (p_component_type => l_component_type
55309 ,p_event_type_code => l_event_type_code
55310 ,p_line_definition_owner_code => l_line_definition_owner_code
55311 ,p_line_definition_code => l_line_definition_code
55312 ,p_accounting_line_code => l_component_code
55313 ,p_accounting_line_type_code => l_component_type_code
55314 ,p_accounting_line_appl_id => l_component_appl_id
55315 ,p_amb_context_code => l_amb_context_code
55316 ,p_entity_code => l_entity_code
55317 ,p_event_class_code => l_event_class_code);
55318 --
55319 -- set accounting class
55320 --
55321 xla_ae_lines_pkg.SetAcctClass(
55322 p_accounting_class_code => 'REALIZED_LOSS'
55323 , p_ae_header_id => l_ae_header_id
55324 );
55325
55326 --
55327 -- set rounding class
55328 --
55329 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
55330 'REALIZED_LOSS';
55331
55332 --
55333 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
55334 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
55335 --
55336 -- bulk performance
55337 --
55338 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
55339
55340 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
55341 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
55342
55343 -- 4955764
55344 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55345 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
55346
55347 -- 4458381 Public Sector Enh
55348
55349 --
55350 -- set accounting attributes for the line type
55351 --
55352 l_entered_amt_idx := 4;
55353 l_accted_amt_idx := 10;
55354 l_bflow_applied_to_amt_idx := NULL; -- 5132302
55355 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
55359 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
55356 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_49);
55357 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
55358 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_50);
55360 l_rec_acct_attrs.array_char_value(3) := p_source_46;
55361 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
55362 l_rec_acct_attrs.array_num_value(4) := p_source_42;
55363 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
55364 l_rec_acct_attrs.array_char_value(5) := p_source_26;
55365 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
55366 l_rec_acct_attrs.array_date_value(6) := p_source_28;
55367 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
55368 l_rec_acct_attrs.array_num_value(7) := p_source_29;
55369 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
55370 l_rec_acct_attrs.array_char_value(8) := p_source_30;
55371 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
55372 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_51);
55373 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
55374 l_rec_acct_attrs.array_num_value(10) := p_source_43;
55375
55376 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
55377 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
55378
55379 ---------------------------------------------------------------------------------------------------------------
55380 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
55381 ---------------------------------------------------------------------------------------------------------------
55382 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
55383
55384 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55385 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55386
55387 IF xla_accounting_cache_pkg.GetValueChar
55388 (p_source_code => 'LEDGER_CATEGORY_CODE'
55389 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
55390 AND l_bflow_method_code = 'PRIOR_ENTRY'
55391 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
55392 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
55393 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
55394 )
55395 THEN
55396 xla_ae_lines_pkg.BflowUpgEntry
55397 (p_business_method_code => l_bflow_method_code
55398 ,p_business_class_code => l_bflow_class_code
55399 ,p_balance_type => l_balance_type_code);
55400 ELSE
55401 NULL;
55402 -- No business flow processing for business flow method of NONE.
55403 END IF;
55404
55405 --
55406 -- call analytical criteria
55407 --
55408
55409 --
55410 -- call description
55411 --
55412 -- No description or it is inherited.
55413 --
55414 -- call ADRs
55415 -- Bug 4922099
55416 --
55417 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55418 (NVL(l_actual_upg_option, 'N') = 'O') OR
55419 (NVL(l_enc_upg_option, 'N') = 'O')
55420 )
55421 THEN
55422 NULL;
55423 --
55424 --
55425
55426 l_ccid := AcctDerRule_25(
55427 p_application_id => p_application_id
55428 , p_ae_header_id => l_ae_header_id
55429 , p_source_18 => p_source_18
55430 , x_transaction_coa_id => l_adr_transaction_coa_id
55431 , x_accounting_coa_id => l_adr_accounting_coa_id
55432 , x_value_type_code => l_adr_value_type_code
55433 , p_side => 'NA'
55434 );
55435
55436 xla_ae_lines_pkg.set_ccid(
55437 p_code_combination_id => l_ccid
55438 , p_value_type_code => l_adr_value_type_code
55439 , p_transaction_coa_id => l_adr_transaction_coa_id
55440 , p_accounting_coa_id => l_adr_accounting_coa_id
55441 , p_adr_code => 'REALIZED_LOSSES_RULE'
55442 , p_adr_type_code => 'S'
55443 , p_component_type => l_component_type
55444 , p_component_code => l_component_code
55445 , p_component_type_code => l_component_type_code
55446 , p_component_appl_id => l_component_appl_id
55447 , p_amb_context_code => l_amb_context_code
55448 , p_side => 'NA'
55449 );
55450
55451
55452 --
55453 --
55454 END IF;
55455 --
55456 -- Bug 4922099
55457 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
55458 (NVL(l_enc_upg_option, 'N') = 'O')
55459 ) AND
55460 (l_bflow_method_code = 'PRIOR_ENTRY')
55461 )
55462 THEN
55463 IF
55464 --
55465 1 = 2
55466 --
55467 THEN
55468 xla_accounting_err_pkg.build_message
55469 (p_appli_s_name => 'XLA'
55470 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55471 ,p_token_1 => 'LINE_NUMBER'
55472 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
55473 ,p_token_2 => 'LINE_TYPE_NAME'
55474 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
55475 l_component_type
55476 ,l_component_code
55480 ,l_entity_code
55477 ,l_component_type_code
55478 ,l_component_appl_id
55479 ,l_amb_context_code
55481 ,l_event_class_code
55482 )
55483 ,p_token_3 => 'OWNER'
55484 ,p_value_3 => xla_lookups_pkg.get_meaning(
55485 p_lookup_type => 'XLA_OWNER_TYPE'
55486 ,p_lookup_code => l_component_type_code
55487 )
55488 ,p_token_4 => 'PRODUCT_NAME'
55489 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
55490 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
55491 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
55492 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
55493 ,p_ae_header_id => NULL
55494 );
55495
55496 IF (C_LEVEL_ERROR>= g_log_level) THEN
55497 trace
55498 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55499 ,p_level => C_LEVEL_ERROR
55500 ,p_module => l_log_module);
55501 END IF;
55502 END IF;
55503 END IF;
55504 --
55505 --
55506 ------------------------------------------------------------------------------------------------
55507 -- 4219869 Business Flow
55508 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
55509 -- Prior Entry. Currently, the following code is always generated.
55510 ------------------------------------------------------------------------------------------------
55511 XLA_AE_LINES_PKG.ValidateCurrentLine;
55512
55513 ------------------------------------------------------------------------------------
55514 -- 4219869 Business Flow
55515 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
55516 ------------------------------------------------------------------------------------
55517 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55518
55519 ----------------------------------------------------------------------------------
55520 -- 4219869 Business Flow
55521 -- Update journal entry status -- Need to generate this within IF <condition>
55522 ----------------------------------------------------------------------------------
55523 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55524 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
55525 ,p_balance_type_code => l_balance_type_code
55526 );
55527
55528 -------------------------------------------------------------------------------------------
55529 -- 4262811 - Generate the Accrual Reversal lines
55530 -------------------------------------------------------------------------------------------
55531 BEGIN
55532 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
55533 (g_array_event(p_event_id).array_value_num('header_index'));
55534 IF l_acc_rev_flag IS NULL THEN
55535 l_acc_rev_flag := 'N';
55536 END IF;
55537 EXCEPTION
55538 WHEN OTHERS THEN
55539 l_acc_rev_flag := 'N';
55540 END;
55541 --
55542 IF (l_acc_rev_flag = 'Y') THEN
55543
55544 -- 4645092 ------------------------------------------------------------------------------
55545 -- To allow MPA report to determine if it should generate report process
55546 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
55547 ------------------------------------------------------------------------------------------
55548
55549 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
55550 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
55551
55552 --
55553 -- Update the line information that should be overwritten
55554 --
55555 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
55556 p_header_num => 1);
55557 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
55558
55559 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
55560
55561 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
55562 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
55563 END IF;
55564
55565 --
55566 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
55567 --
55568 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
55569 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
55570 ELSE
55571 ---------------------------------------------------------------------------------------------------
55572 -- 4262811a Switch Sign
55573 ---------------------------------------------------------------------------------------------------
55574 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
55578 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55575 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55576 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55577 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55579 -- 5132302
55580 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
55581 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55582
55583 END IF;
55584
55585 -- 4955764
55586 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55587 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
55588
55589
55590 XLA_AE_LINES_PKG.ValidateCurrentLine;
55591 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55592
55593 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55594 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
55595 ,p_balance_type_code => l_balance_type_code);
55596
55597 END IF;
55598
55599 -----------------------------------------------------------------------------------------
55600 -- 4262811 Multiperiod Accounting
55601 -----------------------------------------------------------------------------------------
55602 -- No MPA option is assigned.
55603
55604
55605 END IF;
55606 END IF;
55607 --
55608
55609 --
55610 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55611 trace
55612 (p_msg => 'END of AcctLineType_116'
55613 ,p_level => C_LEVEL_PROCEDURE
55614 ,p_module => l_log_module);
55615 END IF;
55616 --
55617 EXCEPTION
55618 WHEN xla_exceptions_pkg.application_exception THEN
55619 RAISE;
55620 WHEN OTHERS THEN
55621 xla_exceptions_pkg.raise_message
55622 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_116');
55623 END AcctLineType_116;
55624 --
55625
55626 ---------------------------------------
55627 --
55628 -- PRIVATE FUNCTION
55629 -- AcctLineType_117
55630 --
55631 ---------------------------------------
55632 PROCEDURE AcctLineType_117 (
55633 p_application_id IN NUMBER
55634 ,p_event_id IN NUMBER
55635 ,p_calculate_acctd_flag IN VARCHAR2
55636 ,p_calculate_g_l_flag IN VARCHAR2
55637 ,p_actual_flag IN OUT VARCHAR2
55638 ,p_balance_type_code OUT VARCHAR2
55639 ,p_gain_or_loss_ref OUT VARCHAR2
55640
55641 --Actual Upgrade Credit Accounting Class
55642 , p_source_24 IN VARCHAR2
55643 --Entered Currency Code
55644 , p_source_26 IN VARCHAR2
55645 --Exchange Rate Date
55646 , p_source_28 IN DATE
55647 --Exchange Rate
55648 , p_source_29 IN NUMBER
55649 --Exchange Rate Type
55650 , p_source_30 IN VARCHAR2
55651 --Actual Upgrade Debit Accounting Class
55652 , p_source_31 IN VARCHAR2
55653 --Use Actuals Upgrade Attributes Flag
55654 , p_source_32 IN VARCHAR2
55655 --Entered Amount
55656 , p_source_42 IN NUMBER
55657 --Accounted Amount
55658 , p_source_43 IN NUMBER
55659 --Revenue Distribution Type
55660 , p_source_46 IN VARCHAR2
55661 --Crediting Revenue Flag
55662 , p_source_48 IN VARCHAR2
55663 --Revenue First Distribution ID
55664 , p_source_49 IN NUMBER
55665 --Revenue Second Distribution ID
55666 , p_source_50 IN NUMBER
55667 --Event ID
55668 , p_source_51 IN NUMBER
55669 --Actual Upgrade Credit CCID
55670 , p_source_64 IN NUMBER
55671 --Actual Upgrade Debit CCID
55672 , p_source_65 IN NUMBER
55673 --Application ID
55674 , p_source_66 IN NUMBER
55675 --Revenue Entity Code
55676 , p_source_67 IN VARCHAR2
55677 --Crediting Revenue First Distribution ID
55678 , p_source_68 IN NUMBER
55679 --Project ID
55680 , p_source_69 IN NUMBER
55681 --Crediting Revenue Second Distribution ID
55682 , p_source_70 IN NUMBER
55683 --Draft Revenue Number Credited
55684 , p_source_71 IN NUMBER
55685 )
55686 IS
55687
55688 l_component_type VARCHAR2(80);
55689 l_component_code VARCHAR2(30);
55690 l_component_type_code VARCHAR2(1);
55691 l_component_appl_id INTEGER;
55692 l_amb_context_code VARCHAR2(30);
55693 l_entity_code VARCHAR2(30);
55694 l_event_class_code VARCHAR2(30);
55695 l_ae_header_id NUMBER;
55696 l_event_type_code VARCHAR2(30);
55697 l_line_definition_code VARCHAR2(30);
55698 l_line_definition_owner_code VARCHAR2(1);
55699 --
55700 -- adr variables
55701 l_segment VARCHAR2(30);
55702 l_ccid NUMBER;
55703 l_adr_transaction_coa_id NUMBER;
55704 l_adr_accounting_coa_id NUMBER;
55705 l_adr_flexfield_segment_code VARCHAR2(30);
55706 l_adr_flex_value_set_id NUMBER;
55707 l_adr_value_type_code VARCHAR2(30);
55708 l_adr_value_combination_id NUMBER;
55709 l_adr_value_segment_code VARCHAR2(30);
55710
55711 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
55712 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
55713 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
55714 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
55715
55716 -- 4262811 Variables ------------------------------------------------------------------------------------------
55720 l_accrual_line_num NUMBER;
55717 l_entered_amt_idx NUMBER;
55718 l_accted_amt_idx NUMBER;
55719 l_acc_rev_flag VARCHAR2(1);
55721 l_tmp_amt NUMBER;
55722 l_acc_rev_natural_side_code VARCHAR2(1);
55723
55724 l_num_entries NUMBER;
55725 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
55726 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
55727 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
55728 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
55729 l_recog_line_1 NUMBER;
55730 l_recog_line_2 NUMBER;
55731
55732 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
55733 l_bflow_applied_to_amt NUMBER; -- 5132302
55734 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
55735
55736 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
55737
55738 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
55739 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
55740
55741 ---------------------------------------------------------------------------------------------------------------
55742
55743
55744 --
55745 -- bulk performance
55746 --
55747 l_balance_type_code VARCHAR2(1);
55748 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
55749 l_log_module VARCHAR2(240);
55750
55751 --
55752 -- Upgrade strategy
55753 --
55754 l_actual_upg_option VARCHAR2(1);
55755 l_enc_upg_option VARCHAR2(1);
55756
55757 --
55758 BEGIN
55759 --
55760 IF g_log_enabled THEN
55761 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_117';
55762 END IF;
55763 --
55764 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55765
55766 trace
55767 (p_msg => 'BEGIN of AcctLineType_117'
55768 ,p_level => C_LEVEL_PROCEDURE
55769 ,p_module => l_log_module);
55770
55771 END IF;
55772 --
55773 l_component_type := 'AMB_JLT';
55774 l_component_code := 'PA_REALIZED_LOSSES_ADJ';
55775 l_component_type_code := 'S';
55776 l_component_appl_id := 275;
55777 l_amb_context_code := 'DEFAULT';
55778 l_entity_code := 'REVENUE';
55779 l_event_class_code := 'REVENUE_ADJ';
55780 l_event_type_code := 'REVENUE_ADJ_ALL';
55781 l_line_definition_owner_code := 'S';
55782 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
55783 --
55784 l_balance_type_code := 'A';
55785 l_segment := NULL;
55786 l_ccid := NULL;
55787 l_adr_transaction_coa_id := NULL;
55788 l_adr_accounting_coa_id := NULL;
55789 l_adr_flexfield_segment_code := NULL;
55790 l_adr_flex_value_set_id := NULL;
55791 l_adr_value_type_code := NULL;
55792 l_adr_value_combination_id := NULL;
55793 l_adr_value_segment_code := NULL;
55794
55795 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
55796 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
55797 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
55798 l_budgetary_control_flag := 'N';
55799
55800 l_bflow_applied_to_amt_idx := NULL; -- 5132302
55801 l_bflow_applied_to_amt := NULL; -- 5132302
55802 l_entered_amt_idx := NULL; -- 4262811
55803 l_accted_amt_idx := NULL; -- 4262811
55804 l_acc_rev_flag := NULL; -- 4262811
55805 l_accrual_line_num := NULL; -- 4262811
55806 l_tmp_amt := NULL; -- 4262811
55807 --
55808
55809 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
55810 l_balance_type_code <> 'B' THEN
55811 IF NVL(p_source_46,'
55812 ') = 'Revenue - Realized Losses' AND
55813 NVL(p_source_48,'
55814 ') = 'Y'
55815 THEN
55816
55817 --
55818 XLA_AE_LINES_PKG.SetNewLine;
55819
55820 p_balance_type_code := l_balance_type_code;
55821 -- set the flag so later we will know whether the gain loss line needs to be created
55822
55823 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
55824 p_actual_flag :='A';
55825 END IF;
55826
55827 --
55828 -- bulk performance
55829 --
55830 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
55831 p_header_num => 0); -- 4262811
55832 --
55833 -- set accounting line options
55834 --
55835 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
55836 p_natural_side_code => 'C'
55837 , p_gain_or_loss_flag => 'N'
55838 , p_gl_transfer_mode_code => 'S'
55839 , p_acct_entry_type_code => 'A'
55840 , p_switch_side_flag => 'Y'
55841 , p_merge_duplicate_code => 'N'
55842 );
55843 --
55844 l_acc_rev_natural_side_code := 'D'; -- 4262811
55845 --
55846 --
55847 -- set accounting line type info
55848 --
55849 xla_ae_lines_pkg.SetAcctLineType
55850 (p_component_type => l_component_type
55851 ,p_event_type_code => l_event_type_code
55852 ,p_line_definition_owner_code => l_line_definition_owner_code
55853 ,p_line_definition_code => l_line_definition_code
55854 ,p_accounting_line_code => l_component_code
55855 ,p_accounting_line_type_code => l_component_type_code
55856 ,p_accounting_line_appl_id => l_component_appl_id
55860 --
55857 ,p_amb_context_code => l_amb_context_code
55858 ,p_entity_code => l_entity_code
55859 ,p_event_class_code => l_event_class_code);
55861 -- set accounting class
55862 --
55863 xla_ae_lines_pkg.SetAcctClass(
55864 p_accounting_class_code => 'REALIZED_LOSS'
55865 , p_ae_header_id => l_ae_header_id
55866 );
55867
55868 --
55869 -- set rounding class
55870 --
55871 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
55872 'REALIZED_LOSS';
55873
55874 --
55875 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
55876 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
55877 --
55878 -- bulk performance
55879 --
55880 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
55881
55882 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
55883 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
55884
55885 -- 4955764
55886 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55887 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
55888
55889 -- 4458381 Public Sector Enh
55890
55891 --
55892 -- set accounting attributes for the line type
55893 --
55894 l_entered_amt_idx := 28;
55895 l_accted_amt_idx := 31;
55896 l_bflow_applied_to_amt_idx := NULL; -- 5132302
55897 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACTUAL_UPG_CR_ACCT_CLASS';
55898 l_rec_acct_attrs.array_char_value(1) := p_source_24;
55899 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_CCID';
55900 l_rec_acct_attrs.array_num_value(2) := TO_NUMBER(p_source_64);
55901 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ENTERED_AMT';
55902 l_rec_acct_attrs.array_num_value(3) := p_source_42;
55903 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_CURR';
55904 l_rec_acct_attrs.array_char_value(4) := p_source_26;
55905 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_LEDGER_AMT';
55906 l_rec_acct_attrs.array_num_value(5) := p_source_43;
55907 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_XDATE';
55908 l_rec_acct_attrs.array_date_value(6) := p_source_28;
55909 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XRATE';
55910 l_rec_acct_attrs.array_num_value(7) := p_source_29;
55911 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE_TYPE';
55912 l_rec_acct_attrs.array_char_value(8) := p_source_30;
55913 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_DR_ACCT_CLASS';
55914 l_rec_acct_attrs.array_char_value(9) := p_source_31;
55915 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_CCID';
55916 l_rec_acct_attrs.array_num_value(10) := TO_NUMBER(p_source_65);
55917 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ENTERED_AMT';
55918 l_rec_acct_attrs.array_num_value(11) := p_source_42;
55919 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_CURR';
55920 l_rec_acct_attrs.array_char_value(12) := p_source_26;
55921 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_LEDGER_AMT';
55922 l_rec_acct_attrs.array_num_value(13) := p_source_43;
55923 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_XDATE';
55924 l_rec_acct_attrs.array_date_value(14) := p_source_28;
55925 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XRATE';
55926 l_rec_acct_attrs.array_num_value(15) := p_source_29;
55927 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE_TYPE';
55928 l_rec_acct_attrs.array_char_value(16) := p_source_30;
55929 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_OPTION';
55930 l_rec_acct_attrs.array_char_value(17) := p_source_32;
55931 l_rec_acct_attrs.array_acct_attr_code(18) := 'APPLIED_TO_APPLICATION_ID';
55932 l_rec_acct_attrs.array_num_value(18) := p_source_66;
55933 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_DISTRIBUTION_TYPE';
55934 l_rec_acct_attrs.array_char_value(19) := p_source_46;
55935 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_ENTITY_CODE';
55936 l_rec_acct_attrs.array_char_value(20) := p_source_67;
55937 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_FIRST_DIST_ID';
55938 l_rec_acct_attrs.array_num_value(21) := to_char(p_source_68);
55939 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
55940 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_69);
55941 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_SECOND_DIST_ID';
55942 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_70);
55943 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
55944 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_71);
55945 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
55946 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_49);
55947 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
55948 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_50);
55949 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
55950 l_rec_acct_attrs.array_char_value(27) := p_source_46;
55951 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
55952 l_rec_acct_attrs.array_num_value(28) := p_source_42;
55953 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
55954 l_rec_acct_attrs.array_char_value(29) := p_source_26;
55955 l_rec_acct_attrs.array_acct_attr_code(30) := 'GAIN_LOSS_REFERENCE';
55956 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_51);
55957 l_rec_acct_attrs.array_acct_attr_code(31) := 'LEDGER_AMOUNT';
55958 l_rec_acct_attrs.array_num_value(31) := p_source_43;
55959
55963 ---------------------------------------------------------------------------------------------------------------
55960 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
55961 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
55962
55964 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
55965 ---------------------------------------------------------------------------------------------------------------
55966 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
55967
55968 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55969 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55970
55971 IF xla_accounting_cache_pkg.GetValueChar
55972 (p_source_code => 'LEDGER_CATEGORY_CODE'
55973 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
55974 AND l_bflow_method_code = 'PRIOR_ENTRY'
55975 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
55976 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
55977 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
55978 )
55979 THEN
55980 xla_ae_lines_pkg.BflowUpgEntry
55981 (p_business_method_code => l_bflow_method_code
55982 ,p_business_class_code => l_bflow_class_code
55983 ,p_balance_type => l_balance_type_code);
55984 ELSE
55985 NULL;
55986 XLA_AE_LINES_PKG.business_flow_validation(
55987 p_business_method_code => l_bflow_method_code
55988 ,p_business_class_code => l_bflow_class_code
55989 ,p_inherit_description_flag => l_inherit_desc_flag);
55990 END IF;
55991
55992 --
55993 -- call analytical criteria
55994 --
55995 -- Inherited Analytical Criteria for business flow method of Prior Entry.
55996 --
55997 -- call description
55998 --
55999 -- No description or it is inherited.
56000 --
56001 -- call ADRs
56002 -- Bug 4922099
56003 --
56004 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56005 (NVL(l_actual_upg_option, 'N') = 'O') OR
56006 (NVL(l_enc_upg_option, 'N') = 'O')
56007 )
56008 THEN
56009 NULL;
56010 --
56011 --
56012
56013 --
56014 --
56015 END IF;
56016 --
56017 -- Bug 4922099
56018 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
56019 (NVL(l_enc_upg_option, 'N') = 'O')
56020 ) AND
56021 (l_bflow_method_code = 'PRIOR_ENTRY')
56022 )
56023 THEN
56024 IF
56025 --
56026 1 = 1
56027 --
56028 THEN
56029 xla_accounting_err_pkg.build_message
56030 (p_appli_s_name => 'XLA'
56031 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56032 ,p_token_1 => 'LINE_NUMBER'
56033 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
56034 ,p_token_2 => 'LINE_TYPE_NAME'
56035 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
56036 l_component_type
56037 ,l_component_code
56038 ,l_component_type_code
56039 ,l_component_appl_id
56040 ,l_amb_context_code
56041 ,l_entity_code
56042 ,l_event_class_code
56043 )
56044 ,p_token_3 => 'OWNER'
56045 ,p_value_3 => xla_lookups_pkg.get_meaning(
56046 p_lookup_type => 'XLA_OWNER_TYPE'
56047 ,p_lookup_code => l_component_type_code
56048 )
56049 ,p_token_4 => 'PRODUCT_NAME'
56050 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
56051 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
56052 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
56053 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
56054 ,p_ae_header_id => NULL
56055 );
56056
56057 IF (C_LEVEL_ERROR>= g_log_level) THEN
56058 trace
56059 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56060 ,p_level => C_LEVEL_ERROR
56061 ,p_module => l_log_module);
56062 END IF;
56063 END IF;
56064 END IF;
56065 --
56066 --
56067 ------------------------------------------------------------------------------------------------
56068 -- 4219869 Business Flow
56069 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
56073
56070 -- Prior Entry. Currently, the following code is always generated.
56071 ------------------------------------------------------------------------------------------------
56072 -- No ValidateCurrentLine for business flow method of Prior Entry
56074 ------------------------------------------------------------------------------------
56075 -- 4219869 Business Flow
56076 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
56077 ------------------------------------------------------------------------------------
56078 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56079
56080 ----------------------------------------------------------------------------------
56081 -- 4219869 Business Flow
56082 -- Update journal entry status -- Need to generate this within IF <condition>
56083 ----------------------------------------------------------------------------------
56084 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56085 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
56086 ,p_balance_type_code => l_balance_type_code
56087 );
56088
56089 -------------------------------------------------------------------------------------------
56090 -- 4262811 - Generate the Accrual Reversal lines
56091 -------------------------------------------------------------------------------------------
56092 BEGIN
56093 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
56094 (g_array_event(p_event_id).array_value_num('header_index'));
56095 IF l_acc_rev_flag IS NULL THEN
56096 l_acc_rev_flag := 'N';
56097 END IF;
56098 EXCEPTION
56099 WHEN OTHERS THEN
56100 l_acc_rev_flag := 'N';
56101 END;
56102 --
56103 IF (l_acc_rev_flag = 'Y') THEN
56104
56105 -- 4645092 ------------------------------------------------------------------------------
56106 -- To allow MPA report to determine if it should generate report process
56107 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
56108 ------------------------------------------------------------------------------------------
56109
56110 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
56111 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
56112
56113 --
56114 -- Update the line information that should be overwritten
56115 --
56116 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
56117 p_header_num => 1);
56118 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
56119
56120 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
56121
56122 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
56123 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
56124 END IF;
56125
56126 --
56127 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
56128 --
56129 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
56130 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
56131 ELSE
56132 ---------------------------------------------------------------------------------------------------
56133 -- 4262811a Switch Sign
56134 ---------------------------------------------------------------------------------------------------
56135 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
56136 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56137 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56138 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56139 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56140 -- 5132302
56141 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
56142 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56143
56144 END IF;
56145
56146 -- 4955764
56147 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56148 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
56149
56150
56151 XLA_AE_LINES_PKG.ValidateCurrentLine;
56152 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56153
56154 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56155 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
56156 ,p_balance_type_code => l_balance_type_code);
56157
56158 END IF;
56159
56160 -----------------------------------------------------------------------------------------
56161 -- 4262811 Multiperiod Accounting
56162 -----------------------------------------------------------------------------------------
56163 -- No MPA option is assigned.
56164
56165
56166 END IF;
56167 END IF;
56168 --
56169
56170 --
56171 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56172 trace
56173 (p_msg => 'END of AcctLineType_117'
56174 ,p_level => C_LEVEL_PROCEDURE
56175 ,p_module => l_log_module);
56176 END IF;
56177 --
56178 EXCEPTION
56179 WHEN xla_exceptions_pkg.application_exception THEN
56180 RAISE;
56181 WHEN OTHERS THEN
56182 xla_exceptions_pkg.raise_message
56183 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_117');
56184 END AcctLineType_117;
56185 --
56186
56190 -- AcctLineType_118
56187 ---------------------------------------
56188 --
56189 -- PRIVATE FUNCTION
56191 --
56192 ---------------------------------------
56193 PROCEDURE AcctLineType_118 (
56194 p_application_id IN NUMBER
56195 ,p_event_id IN NUMBER
56196 ,p_calculate_acctd_flag IN VARCHAR2
56197 ,p_calculate_g_l_flag IN VARCHAR2
56198 ,p_actual_flag IN OUT VARCHAR2
56199 ,p_balance_type_code OUT VARCHAR2
56200 ,p_gain_or_loss_ref OUT VARCHAR2
56201
56202 --Allow Account Override Flag
56203 , p_source_5 IN VARCHAR2
56204 --Provider Cost/ Revenue CCID
56205 , p_source_9 IN NUMBER
56206 --Adjustment Receiver Cost/ Revenue CCID
56207 , p_source_11 IN NUMBER
56208 --Receiver Cost/ Revenue CCID
56209 , p_source_16 IN NUMBER
56210 --Reversing Line Flag
56211 , p_source_23 IN VARCHAR2
56212 --Actual Upgrade Credit Accounting Class
56213 , p_source_24 IN VARCHAR2
56214 --Entered Currency Code
56215 , p_source_26 IN VARCHAR2
56216 --Exchange Rate Date
56217 , p_source_28 IN DATE
56218 --Exchange Rate
56219 , p_source_29 IN NUMBER
56220 --Exchange Rate Type
56221 , p_source_30 IN VARCHAR2
56222 --Actual Upgrade Debit Accounting Class
56223 , p_source_31 IN VARCHAR2
56224 --Use Actuals Upgrade Attributes Flag
56225 , p_source_32 IN VARCHAR2
56226 --Expenditure Item ID
56227 , p_source_33 IN NUMBER
56228 --Cost Distribution Line Number
56229 , p_source_34 IN NUMBER
56230 --Line Type
56231 , p_source_35 IN VARCHAR2
56232 , p_source_35_meaning IN VARCHAR2
56233 --Reversed Line Number
56234 , p_source_36 IN NUMBER
56235 --Entered Amount
56236 , p_source_42 IN NUMBER
56237 --Accounted Amount
56238 , p_source_43 IN NUMBER
56239 --Transfer Amount Type
56240 , p_source_73 IN VARCHAR2
56241 , p_source_73_meaning IN VARCHAR2
56242 )
56243 IS
56244
56245 l_component_type VARCHAR2(80);
56246 l_component_code VARCHAR2(30);
56247 l_component_type_code VARCHAR2(1);
56248 l_component_appl_id INTEGER;
56249 l_amb_context_code VARCHAR2(30);
56250 l_entity_code VARCHAR2(30);
56251 l_event_class_code VARCHAR2(30);
56252 l_ae_header_id NUMBER;
56253 l_event_type_code VARCHAR2(30);
56254 l_line_definition_code VARCHAR2(30);
56255 l_line_definition_owner_code VARCHAR2(1);
56256 --
56257 -- adr variables
56258 l_segment VARCHAR2(30);
56259 l_ccid NUMBER;
56260 l_adr_transaction_coa_id NUMBER;
56261 l_adr_accounting_coa_id NUMBER;
56262 l_adr_flexfield_segment_code VARCHAR2(30);
56263 l_adr_flex_value_set_id NUMBER;
56264 l_adr_value_type_code VARCHAR2(30);
56265 l_adr_value_combination_id NUMBER;
56266 l_adr_value_segment_code VARCHAR2(30);
56267
56268 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
56269 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
56270 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
56271 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
56272
56273 -- 4262811 Variables ------------------------------------------------------------------------------------------
56274 l_entered_amt_idx NUMBER;
56275 l_accted_amt_idx NUMBER;
56276 l_acc_rev_flag VARCHAR2(1);
56277 l_accrual_line_num NUMBER;
56278 l_tmp_amt NUMBER;
56279 l_acc_rev_natural_side_code VARCHAR2(1);
56280
56281 l_num_entries NUMBER;
56282 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
56283 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
56284 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
56285 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
56286 l_recog_line_1 NUMBER;
56287 l_recog_line_2 NUMBER;
56288
56289 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
56290 l_bflow_applied_to_amt NUMBER; -- 5132302
56291 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
56292
56293 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
56294
56295 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
56296 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
56297
56298 ---------------------------------------------------------------------------------------------------------------
56299
56300
56301 --
56302 -- bulk performance
56303 --
56304 l_balance_type_code VARCHAR2(1);
56305 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
56306 l_log_module VARCHAR2(240);
56307
56308 --
56309 -- Upgrade strategy
56310 --
56311 l_actual_upg_option VARCHAR2(1);
56312 l_enc_upg_option VARCHAR2(1);
56313
56314 --
56315 BEGIN
56316 --
56317 IF g_log_enabled THEN
56318 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_118';
56319 END IF;
56320 --
56321 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56322
56323 trace
56324 (p_msg => 'BEGIN of AcctLineType_118'
56325 ,p_level => C_LEVEL_PROCEDURE
56326 ,p_module => l_log_module);
56327
56328 END IF;
56329 --
56330 l_component_type := 'AMB_JLT';
56331 l_component_code := 'PA_RECEIVER_COST';
56335 l_entity_code := 'EXPENDITURES';
56332 l_component_type_code := 'S';
56333 l_component_appl_id := 275;
56334 l_amb_context_code := 'DEFAULT';
56336 l_event_class_code := 'BORROWED_AND_LENT';
56337 l_event_type_code := 'BORROWED_AND_LENT_ALL';
56338 l_line_definition_owner_code := 'S';
56339 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
56340 --
56341 l_balance_type_code := 'A';
56342 l_segment := NULL;
56343 l_ccid := NULL;
56344 l_adr_transaction_coa_id := NULL;
56345 l_adr_accounting_coa_id := NULL;
56346 l_adr_flexfield_segment_code := NULL;
56347 l_adr_flex_value_set_id := NULL;
56348 l_adr_value_type_code := NULL;
56349 l_adr_value_combination_id := NULL;
56350 l_adr_value_segment_code := NULL;
56351
56352 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
56353 l_bflow_class_code := ''; -- 4219869 Business Flow
56354 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
56355 l_budgetary_control_flag := 'N';
56356
56357 l_bflow_applied_to_amt_idx := NULL; -- 5132302
56358 l_bflow_applied_to_amt := NULL; -- 5132302
56359 l_entered_amt_idx := NULL; -- 4262811
56360 l_accted_amt_idx := NULL; -- 4262811
56361 l_acc_rev_flag := NULL; -- 4262811
56362 l_accrual_line_num := NULL; -- 4262811
56363 l_tmp_amt := NULL; -- 4262811
56364 --
56365
56366 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
56367 l_balance_type_code <> 'B' THEN
56368 IF NVL(p_source_73,'
56369 ') = 'COST_TRANSFER' OR
56370 NVL(p_source_73,'
56371 ') = 'COST_REVENUE' OR
56372 p_source_73 IS NULL
56373 THEN
56374
56375 --
56376 XLA_AE_LINES_PKG.SetNewLine;
56377
56378 p_balance_type_code := l_balance_type_code;
56379 -- set the flag so later we will know whether the gain loss line needs to be created
56380
56381 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
56382 p_actual_flag :='A';
56383 END IF;
56384
56385 --
56386 -- bulk performance
56387 --
56388 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
56389 p_header_num => 0); -- 4262811
56390 --
56391 -- set accounting line options
56392 --
56393 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
56394 p_natural_side_code => 'D'
56395 , p_gain_or_loss_flag => 'N'
56396 , p_gl_transfer_mode_code => 'S'
56397 , p_acct_entry_type_code => 'A'
56398 , p_switch_side_flag => 'Y'
56399 , p_merge_duplicate_code => 'N'
56400 );
56401 --
56402 l_acc_rev_natural_side_code := 'C'; -- 4262811
56403 --
56404 --
56405 -- set accounting line type info
56406 --
56407 xla_ae_lines_pkg.SetAcctLineType
56408 (p_component_type => l_component_type
56409 ,p_event_type_code => l_event_type_code
56410 ,p_line_definition_owner_code => l_line_definition_owner_code
56411 ,p_line_definition_code => l_line_definition_code
56412 ,p_accounting_line_code => l_component_code
56413 ,p_accounting_line_type_code => l_component_type_code
56414 ,p_accounting_line_appl_id => l_component_appl_id
56415 ,p_amb_context_code => l_amb_context_code
56416 ,p_entity_code => l_entity_code
56417 ,p_event_class_code => l_event_class_code);
56418 --
56419 -- set accounting class
56420 --
56421 xla_ae_lines_pkg.SetAcctClass(
56422 p_accounting_class_code => 'RECEIVER_COST'
56423 , p_ae_header_id => l_ae_header_id
56424 );
56425
56426 --
56427 -- set rounding class
56428 --
56429 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
56430 'RECEIVER_COST';
56431
56432 --
56433 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
56434 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
56435 --
56436 -- bulk performance
56437 --
56438 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
56439
56440 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
56441 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
56442
56443 -- 4955764
56444 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56445 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
56446
56447 -- 4458381 Public Sector Enh
56448
56449 --
56450 -- set accounting attributes for the line type
56451 --
56452 l_entered_amt_idx := 22;
56453 l_accted_amt_idx := 27;
56454 l_bflow_applied_to_amt_idx := NULL; -- 5132302
56455 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
56456 l_rec_acct_attrs.array_char_value(1) := p_source_23;
56457 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
56458 l_rec_acct_attrs.array_char_value(2) := p_source_24;
56459 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
56460 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_9);
56461 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
56462 l_rec_acct_attrs.array_num_value(4) := p_source_42;
56463 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
56467 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
56464 l_rec_acct_attrs.array_char_value(5) := p_source_26;
56465 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
56466 l_rec_acct_attrs.array_num_value(6) := p_source_43;
56468 l_rec_acct_attrs.array_date_value(7) := p_source_28;
56469 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
56470 l_rec_acct_attrs.array_num_value(8) := p_source_29;
56471 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
56472 l_rec_acct_attrs.array_char_value(9) := p_source_30;
56473 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
56474 l_rec_acct_attrs.array_char_value(10) := p_source_31;
56475 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
56476 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_16);
56477 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
56478 l_rec_acct_attrs.array_num_value(12) := p_source_42;
56479 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
56480 l_rec_acct_attrs.array_char_value(13) := p_source_26;
56481 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
56482 l_rec_acct_attrs.array_num_value(14) := p_source_43;
56483 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
56484 l_rec_acct_attrs.array_date_value(15) := p_source_28;
56485 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
56486 l_rec_acct_attrs.array_num_value(16) := p_source_29;
56487 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
56488 l_rec_acct_attrs.array_char_value(17) := p_source_30;
56489 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
56490 l_rec_acct_attrs.array_char_value(18) := p_source_32;
56491 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
56492 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
56493 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
56494 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
56495 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
56496 l_rec_acct_attrs.array_char_value(21) := p_source_35;
56497 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
56498 l_rec_acct_attrs.array_num_value(22) := p_source_42;
56499 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
56500 l_rec_acct_attrs.array_char_value(23) := p_source_26;
56501 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
56502 l_rec_acct_attrs.array_date_value(24) := p_source_28;
56503 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
56504 l_rec_acct_attrs.array_num_value(25) := p_source_29;
56505 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
56506 l_rec_acct_attrs.array_char_value(26) := p_source_30;
56507 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
56508 l_rec_acct_attrs.array_num_value(27) := p_source_43;
56509 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
56510 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
56511 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
56512 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
56513 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
56514 l_rec_acct_attrs.array_char_value(30) := p_source_35;
56515
56516 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
56517 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
56518
56519 ---------------------------------------------------------------------------------------------------------------
56520 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
56521 ---------------------------------------------------------------------------------------------------------------
56522 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
56523
56524 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
56525 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
56526
56527 IF xla_accounting_cache_pkg.GetValueChar
56528 (p_source_code => 'LEDGER_CATEGORY_CODE'
56529 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
56530 AND l_bflow_method_code = 'PRIOR_ENTRY'
56531 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
56532 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
56533 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
56534 )
56535 THEN
56536 xla_ae_lines_pkg.BflowUpgEntry
56537 (p_business_method_code => l_bflow_method_code
56538 ,p_business_class_code => l_bflow_class_code
56539 ,p_balance_type => l_balance_type_code);
56540 ELSE
56541 NULL;
56542 -- No business flow processing for business flow method of NONE.
56543 END IF;
56544
56545 --
56546 -- call analytical criteria
56547 --
56548
56549 --
56550 -- call description
56551 --
56552 -- No description or it is inherited.
56553 --
56554 -- call ADRs
56555 -- Bug 4922099
56556 --
56557 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56558 (NVL(l_actual_upg_option, 'N') = 'O') OR
56559 (NVL(l_enc_upg_option, 'N') = 'O')
56560 )
56561 THEN
56562 NULL;
56563 --
56564 --
56565
56566 l_ccid := AcctDerRule_23(
56567 p_application_id => p_application_id
56568 , p_ae_header_id => l_ae_header_id
56569 , p_source_5 => p_source_5
56570 , p_source_11 => p_source_11
56571 , p_source_16 => p_source_16
56575 , p_side => 'NA'
56572 , x_transaction_coa_id => l_adr_transaction_coa_id
56573 , x_accounting_coa_id => l_adr_accounting_coa_id
56574 , x_value_type_code => l_adr_value_type_code
56576 );
56577
56578 xla_ae_lines_pkg.set_ccid(
56579 p_code_combination_id => l_ccid
56580 , p_value_type_code => l_adr_value_type_code
56581 , p_transaction_coa_id => l_adr_transaction_coa_id
56582 , p_accounting_coa_id => l_adr_accounting_coa_id
56583 , p_adr_code => 'PA_RECVR_COST_REV_ACCT_RULE'
56584 , p_adr_type_code => 'S'
56585 , p_component_type => l_component_type
56586 , p_component_code => l_component_code
56587 , p_component_type_code => l_component_type_code
56588 , p_component_appl_id => l_component_appl_id
56589 , p_amb_context_code => l_amb_context_code
56590 , p_side => 'NA'
56591 );
56592
56593
56594 --
56595 --
56596 END IF;
56597 --
56598 -- Bug 4922099
56599 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
56600 (NVL(l_enc_upg_option, 'N') = 'O')
56601 ) AND
56602 (l_bflow_method_code = 'PRIOR_ENTRY')
56603 )
56604 THEN
56605 IF
56606 --
56607 1 = 2
56608 --
56609 THEN
56610 xla_accounting_err_pkg.build_message
56611 (p_appli_s_name => 'XLA'
56612 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56613 ,p_token_1 => 'LINE_NUMBER'
56614 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
56615 ,p_token_2 => 'LINE_TYPE_NAME'
56616 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
56617 l_component_type
56618 ,l_component_code
56619 ,l_component_type_code
56620 ,l_component_appl_id
56621 ,l_amb_context_code
56622 ,l_entity_code
56623 ,l_event_class_code
56624 )
56625 ,p_token_3 => 'OWNER'
56626 ,p_value_3 => xla_lookups_pkg.get_meaning(
56627 p_lookup_type => 'XLA_OWNER_TYPE'
56628 ,p_lookup_code => l_component_type_code
56629 )
56630 ,p_token_4 => 'PRODUCT_NAME'
56631 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
56632 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
56633 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
56634 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
56635 ,p_ae_header_id => NULL
56636 );
56637
56638 IF (C_LEVEL_ERROR>= g_log_level) THEN
56639 trace
56640 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56641 ,p_level => C_LEVEL_ERROR
56642 ,p_module => l_log_module);
56643 END IF;
56644 END IF;
56645 END IF;
56646 --
56647 --
56648 ------------------------------------------------------------------------------------------------
56649 -- 4219869 Business Flow
56650 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
56651 -- Prior Entry. Currently, the following code is always generated.
56652 ------------------------------------------------------------------------------------------------
56653 XLA_AE_LINES_PKG.ValidateCurrentLine;
56654
56655 ------------------------------------------------------------------------------------
56656 -- 4219869 Business Flow
56657 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
56658 ------------------------------------------------------------------------------------
56659 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56660
56661 ----------------------------------------------------------------------------------
56662 -- 4219869 Business Flow
56663 -- Update journal entry status -- Need to generate this within IF <condition>
56664 ----------------------------------------------------------------------------------
56665 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56666 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
56667 ,p_balance_type_code => l_balance_type_code
56668 );
56669
56670 -------------------------------------------------------------------------------------------
56671 -- 4262811 - Generate the Accrual Reversal lines
56672 -------------------------------------------------------------------------------------------
56673 BEGIN
56674 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
56678 END IF;
56675 (g_array_event(p_event_id).array_value_num('header_index'));
56676 IF l_acc_rev_flag IS NULL THEN
56677 l_acc_rev_flag := 'N';
56679 EXCEPTION
56680 WHEN OTHERS THEN
56681 l_acc_rev_flag := 'N';
56682 END;
56683 --
56684 IF (l_acc_rev_flag = 'Y') THEN
56685
56686 -- 4645092 ------------------------------------------------------------------------------
56687 -- To allow MPA report to determine if it should generate report process
56688 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
56689 ------------------------------------------------------------------------------------------
56690
56691 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
56692 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
56693
56694 --
56695 -- Update the line information that should be overwritten
56696 --
56697 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
56698 p_header_num => 1);
56699 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
56700
56701 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
56702
56703 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
56704 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
56705 END IF;
56706
56707 --
56708 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
56709 --
56710 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
56711 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
56712 ELSE
56713 ---------------------------------------------------------------------------------------------------
56714 -- 4262811a Switch Sign
56715 ---------------------------------------------------------------------------------------------------
56716 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
56717 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56718 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56719 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56720 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56721 -- 5132302
56722 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
56723 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56724
56725 END IF;
56726
56727 -- 4955764
56728 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56729 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
56730
56731
56732 XLA_AE_LINES_PKG.ValidateCurrentLine;
56733 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56734
56735 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56736 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
56737 ,p_balance_type_code => l_balance_type_code);
56738
56739 END IF;
56740
56741 -----------------------------------------------------------------------------------------
56742 -- 4262811 Multiperiod Accounting
56743 -----------------------------------------------------------------------------------------
56744 -- No MPA option is assigned.
56745
56746
56747 END IF;
56748 END IF;
56749 --
56750
56751 --
56752 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56753 trace
56754 (p_msg => 'END of AcctLineType_118'
56755 ,p_level => C_LEVEL_PROCEDURE
56756 ,p_module => l_log_module);
56757 END IF;
56758 --
56759 EXCEPTION
56760 WHEN xla_exceptions_pkg.application_exception THEN
56761 RAISE;
56762 WHEN OTHERS THEN
56763 xla_exceptions_pkg.raise_message
56764 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_118');
56765 END AcctLineType_118;
56766 --
56767
56768 ---------------------------------------
56769 --
56770 -- PRIVATE FUNCTION
56771 -- AcctLineType_119
56772 --
56773 ---------------------------------------
56774 PROCEDURE AcctLineType_119 (
56775 p_application_id IN NUMBER
56776 ,p_event_id IN NUMBER
56777 ,p_calculate_acctd_flag IN VARCHAR2
56778 ,p_calculate_g_l_flag IN VARCHAR2
56779 ,p_actual_flag IN OUT VARCHAR2
56780 ,p_balance_type_code OUT VARCHAR2
56781 ,p_gain_or_loss_ref OUT VARCHAR2
56782
56783 --Allow Account Override Flag
56784 , p_source_5 IN VARCHAR2
56785 --Provider Cost/ Revenue CCID
56786 , p_source_9 IN NUMBER
56787 --Adjustment Receiver Cost/ Revenue CCID
56788 , p_source_11 IN NUMBER
56789 --Receiver Cost/ Revenue CCID
56790 , p_source_16 IN NUMBER
56791 --Reversing Line Flag
56792 , p_source_23 IN VARCHAR2
56793 --Actual Upgrade Credit Accounting Class
56794 , p_source_24 IN VARCHAR2
56795 --Entered Currency Code
56796 , p_source_26 IN VARCHAR2
56797 --Exchange Rate Date
56798 , p_source_28 IN DATE
56799 --Exchange Rate
56800 , p_source_29 IN NUMBER
56801 --Exchange Rate Type
56802 , p_source_30 IN VARCHAR2
56803 --Actual Upgrade Debit Accounting Class
56804 , p_source_31 IN VARCHAR2
56805 --Use Actuals Upgrade Attributes Flag
56809 --Cost Distribution Line Number
56806 , p_source_32 IN VARCHAR2
56807 --Expenditure Item ID
56808 , p_source_33 IN NUMBER
56810 , p_source_34 IN NUMBER
56811 --Line Type
56812 , p_source_35 IN VARCHAR2
56813 , p_source_35_meaning IN VARCHAR2
56814 --Reversed Line Number
56815 , p_source_36 IN NUMBER
56816 --Entered Amount
56817 , p_source_42 IN NUMBER
56818 --Accounted Amount
56819 , p_source_43 IN NUMBER
56820 --Transfer Amount Type
56821 , p_source_73 IN VARCHAR2
56822 , p_source_73_meaning IN VARCHAR2
56823 )
56824 IS
56825
56826 l_component_type VARCHAR2(80);
56827 l_component_code VARCHAR2(30);
56828 l_component_type_code VARCHAR2(1);
56829 l_component_appl_id INTEGER;
56830 l_amb_context_code VARCHAR2(30);
56831 l_entity_code VARCHAR2(30);
56832 l_event_class_code VARCHAR2(30);
56833 l_ae_header_id NUMBER;
56834 l_event_type_code VARCHAR2(30);
56835 l_line_definition_code VARCHAR2(30);
56836 l_line_definition_owner_code VARCHAR2(1);
56837 --
56838 -- adr variables
56839 l_segment VARCHAR2(30);
56840 l_ccid NUMBER;
56841 l_adr_transaction_coa_id NUMBER;
56842 l_adr_accounting_coa_id NUMBER;
56843 l_adr_flexfield_segment_code VARCHAR2(30);
56844 l_adr_flex_value_set_id NUMBER;
56845 l_adr_value_type_code VARCHAR2(30);
56846 l_adr_value_combination_id NUMBER;
56847 l_adr_value_segment_code VARCHAR2(30);
56848
56849 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
56850 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
56851 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
56852 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
56853
56854 -- 4262811 Variables ------------------------------------------------------------------------------------------
56855 l_entered_amt_idx NUMBER;
56856 l_accted_amt_idx NUMBER;
56857 l_acc_rev_flag VARCHAR2(1);
56858 l_accrual_line_num NUMBER;
56859 l_tmp_amt NUMBER;
56860 l_acc_rev_natural_side_code VARCHAR2(1);
56861
56862 l_num_entries NUMBER;
56863 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
56864 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
56865 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
56866 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
56867 l_recog_line_1 NUMBER;
56868 l_recog_line_2 NUMBER;
56869
56870 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
56871 l_bflow_applied_to_amt NUMBER; -- 5132302
56872 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
56873
56874 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
56875
56876 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
56877 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
56878
56879 ---------------------------------------------------------------------------------------------------------------
56880
56881
56882 --
56883 -- bulk performance
56884 --
56885 l_balance_type_code VARCHAR2(1);
56886 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
56887 l_log_module VARCHAR2(240);
56888
56889 --
56890 -- Upgrade strategy
56891 --
56892 l_actual_upg_option VARCHAR2(1);
56893 l_enc_upg_option VARCHAR2(1);
56894
56895 --
56896 BEGIN
56897 --
56898 IF g_log_enabled THEN
56899 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_119';
56900 END IF;
56901 --
56902 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56903
56904 trace
56905 (p_msg => 'BEGIN of AcctLineType_119'
56906 ,p_level => C_LEVEL_PROCEDURE
56907 ,p_module => l_log_module);
56908
56909 END IF;
56910 --
56911 l_component_type := 'AMB_JLT';
56912 l_component_code := 'PA_RECEIVER_COST_ADJ';
56913 l_component_type_code := 'S';
56914 l_component_appl_id := 275;
56915 l_amb_context_code := 'DEFAULT';
56916 l_entity_code := 'EXPENDITURES';
56917 l_event_class_code := 'BORROWED_AND_LENT_ADJ';
56918 l_event_type_code := 'BORROWED_AND_LENT_ADJ_ALL';
56919 l_line_definition_owner_code := 'S';
56920 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
56921 --
56922 l_balance_type_code := 'A';
56923 l_segment := NULL;
56924 l_ccid := NULL;
56925 l_adr_transaction_coa_id := NULL;
56926 l_adr_accounting_coa_id := NULL;
56927 l_adr_flexfield_segment_code := NULL;
56928 l_adr_flex_value_set_id := NULL;
56929 l_adr_value_type_code := NULL;
56930 l_adr_value_combination_id := NULL;
56931 l_adr_value_segment_code := NULL;
56932
56933 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
56934 l_bflow_class_code := ''; -- 4219869 Business Flow
56935 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
56936 l_budgetary_control_flag := 'N';
56937
56938 l_bflow_applied_to_amt_idx := NULL; -- 5132302
56939 l_bflow_applied_to_amt := NULL; -- 5132302
56940 l_entered_amt_idx := NULL; -- 4262811
56941 l_accted_amt_idx := NULL; -- 4262811
56942 l_acc_rev_flag := NULL; -- 4262811
56943 l_accrual_line_num := NULL; -- 4262811
56947 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
56944 l_tmp_amt := NULL; -- 4262811
56945 --
56946
56948 l_balance_type_code <> 'B' THEN
56949 IF NVL(p_source_73,'
56950 ') = 'COST_TRANSFER' OR
56951 NVL(p_source_73,'
56952 ') = 'COST_REVENUE' OR
56953 p_source_73 IS NULL
56954 THEN
56955
56956 --
56957 XLA_AE_LINES_PKG.SetNewLine;
56958
56959 p_balance_type_code := l_balance_type_code;
56960 -- set the flag so later we will know whether the gain loss line needs to be created
56961
56962 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
56963 p_actual_flag :='A';
56964 END IF;
56965
56966 --
56967 -- bulk performance
56968 --
56969 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
56970 p_header_num => 0); -- 4262811
56971 --
56972 -- set accounting line options
56973 --
56974 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
56975 p_natural_side_code => 'D'
56976 , p_gain_or_loss_flag => 'N'
56977 , p_gl_transfer_mode_code => 'S'
56978 , p_acct_entry_type_code => 'A'
56979 , p_switch_side_flag => 'Y'
56980 , p_merge_duplicate_code => 'N'
56981 );
56982 --
56983 l_acc_rev_natural_side_code := 'C'; -- 4262811
56984 --
56985 --
56986 -- set accounting line type info
56987 --
56988 xla_ae_lines_pkg.SetAcctLineType
56989 (p_component_type => l_component_type
56990 ,p_event_type_code => l_event_type_code
56991 ,p_line_definition_owner_code => l_line_definition_owner_code
56992 ,p_line_definition_code => l_line_definition_code
56993 ,p_accounting_line_code => l_component_code
56994 ,p_accounting_line_type_code => l_component_type_code
56995 ,p_accounting_line_appl_id => l_component_appl_id
56996 ,p_amb_context_code => l_amb_context_code
56997 ,p_entity_code => l_entity_code
56998 ,p_event_class_code => l_event_class_code);
56999 --
57000 -- set accounting class
57001 --
57002 xla_ae_lines_pkg.SetAcctClass(
57003 p_accounting_class_code => 'RECEIVER_COST'
57004 , p_ae_header_id => l_ae_header_id
57005 );
57006
57007 --
57008 -- set rounding class
57009 --
57010 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
57011 'RECEIVER_COST';
57012
57013 --
57014 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
57015 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
57016 --
57017 -- bulk performance
57018 --
57019 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
57020
57021 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
57022 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
57023
57024 -- 4955764
57025 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57026 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
57027
57028 -- 4458381 Public Sector Enh
57029
57030 --
57031 -- set accounting attributes for the line type
57032 --
57033 l_entered_amt_idx := 22;
57034 l_accted_amt_idx := 27;
57035 l_bflow_applied_to_amt_idx := NULL; -- 5132302
57036 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
57037 l_rec_acct_attrs.array_char_value(1) := p_source_23;
57038 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
57039 l_rec_acct_attrs.array_char_value(2) := p_source_24;
57040 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
57041 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_9);
57042 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
57043 l_rec_acct_attrs.array_num_value(4) := p_source_42;
57044 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
57045 l_rec_acct_attrs.array_char_value(5) := p_source_26;
57046 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
57047 l_rec_acct_attrs.array_num_value(6) := p_source_43;
57048 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
57049 l_rec_acct_attrs.array_date_value(7) := p_source_28;
57050 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
57051 l_rec_acct_attrs.array_num_value(8) := p_source_29;
57052 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
57053 l_rec_acct_attrs.array_char_value(9) := p_source_30;
57054 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
57055 l_rec_acct_attrs.array_char_value(10) := p_source_31;
57056 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
57057 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_16);
57058 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
57059 l_rec_acct_attrs.array_num_value(12) := p_source_42;
57060 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
57061 l_rec_acct_attrs.array_char_value(13) := p_source_26;
57062 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
57063 l_rec_acct_attrs.array_num_value(14) := p_source_43;
57064 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
57065 l_rec_acct_attrs.array_date_value(15) := p_source_28;
57066 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
57070 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
57067 l_rec_acct_attrs.array_num_value(16) := p_source_29;
57068 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
57069 l_rec_acct_attrs.array_char_value(17) := p_source_30;
57071 l_rec_acct_attrs.array_char_value(18) := p_source_32;
57072 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
57073 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
57074 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
57075 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
57076 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
57077 l_rec_acct_attrs.array_char_value(21) := p_source_35;
57078 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
57079 l_rec_acct_attrs.array_num_value(22) := p_source_42;
57080 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
57081 l_rec_acct_attrs.array_char_value(23) := p_source_26;
57082 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
57083 l_rec_acct_attrs.array_date_value(24) := p_source_28;
57084 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
57085 l_rec_acct_attrs.array_num_value(25) := p_source_29;
57086 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
57087 l_rec_acct_attrs.array_char_value(26) := p_source_30;
57088 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
57089 l_rec_acct_attrs.array_num_value(27) := p_source_43;
57090 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
57091 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
57092 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
57093 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
57094 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
57095 l_rec_acct_attrs.array_char_value(30) := p_source_35;
57096
57097 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
57098 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
57099
57100 ---------------------------------------------------------------------------------------------------------------
57101 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
57102 ---------------------------------------------------------------------------------------------------------------
57103 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
57104
57105 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57106 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57107
57108 IF xla_accounting_cache_pkg.GetValueChar
57109 (p_source_code => 'LEDGER_CATEGORY_CODE'
57110 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
57111 AND l_bflow_method_code = 'PRIOR_ENTRY'
57112 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
57113 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
57114 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
57115 )
57116 THEN
57117 xla_ae_lines_pkg.BflowUpgEntry
57118 (p_business_method_code => l_bflow_method_code
57119 ,p_business_class_code => l_bflow_class_code
57120 ,p_balance_type => l_balance_type_code);
57121 ELSE
57122 NULL;
57123 -- No business flow processing for business flow method of NONE.
57124 END IF;
57125
57126 --
57127 -- call analytical criteria
57128 --
57129
57130 --
57131 -- call description
57132 --
57133 -- No description or it is inherited.
57134 --
57135 -- call ADRs
57136 -- Bug 4922099
57137 --
57138 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57139 (NVL(l_actual_upg_option, 'N') = 'O') OR
57140 (NVL(l_enc_upg_option, 'N') = 'O')
57141 )
57142 THEN
57143 NULL;
57144 --
57145 --
57146
57147 l_ccid := AcctDerRule_18(
57148 p_application_id => p_application_id
57149 , p_ae_header_id => l_ae_header_id
57150 , p_source_5 => p_source_5
57151 , p_source_11 => p_source_11
57152 , x_transaction_coa_id => l_adr_transaction_coa_id
57153 , x_accounting_coa_id => l_adr_accounting_coa_id
57154 , x_value_type_code => l_adr_value_type_code
57155 , p_side => 'NA'
57156 );
57157
57158 xla_ae_lines_pkg.set_ccid(
57159 p_code_combination_id => l_ccid
57160 , p_value_type_code => l_adr_value_type_code
57161 , p_transaction_coa_id => l_adr_transaction_coa_id
57162 , p_accounting_coa_id => l_adr_accounting_coa_id
57163 , p_adr_code => 'PA_RCVR_COST_REV_ADJ_ACCT_RULE'
57164 , p_adr_type_code => 'S'
57165 , p_component_type => l_component_type
57166 , p_component_code => l_component_code
57167 , p_component_type_code => l_component_type_code
57168 , p_component_appl_id => l_component_appl_id
57169 , p_amb_context_code => l_amb_context_code
57170 , p_side => 'NA'
57171 );
57172
57173
57174 --
57175 --
57176 END IF;
57177 --
57178 -- Bug 4922099
57179 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
57180 (NVL(l_enc_upg_option, 'N') = 'O')
57181 ) AND
57182 (l_bflow_method_code = 'PRIOR_ENTRY')
57183 )
57184 THEN
57185 IF
57186 --
57187 1 = 2
57188 --
57189 THEN
57193 ,p_token_1 => 'LINE_NUMBER'
57190 xla_accounting_err_pkg.build_message
57191 (p_appli_s_name => 'XLA'
57192 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57194 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
57195 ,p_token_2 => 'LINE_TYPE_NAME'
57196 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
57197 l_component_type
57198 ,l_component_code
57199 ,l_component_type_code
57200 ,l_component_appl_id
57201 ,l_amb_context_code
57202 ,l_entity_code
57203 ,l_event_class_code
57204 )
57205 ,p_token_3 => 'OWNER'
57206 ,p_value_3 => xla_lookups_pkg.get_meaning(
57207 p_lookup_type => 'XLA_OWNER_TYPE'
57208 ,p_lookup_code => l_component_type_code
57209 )
57210 ,p_token_4 => 'PRODUCT_NAME'
57211 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
57212 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
57213 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
57214 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
57215 ,p_ae_header_id => NULL
57216 );
57217
57218 IF (C_LEVEL_ERROR>= g_log_level) THEN
57219 trace
57220 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57221 ,p_level => C_LEVEL_ERROR
57222 ,p_module => l_log_module);
57223 END IF;
57224 END IF;
57225 END IF;
57226 --
57227 --
57228 ------------------------------------------------------------------------------------------------
57229 -- 4219869 Business Flow
57230 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
57231 -- Prior Entry. Currently, the following code is always generated.
57232 ------------------------------------------------------------------------------------------------
57233 XLA_AE_LINES_PKG.ValidateCurrentLine;
57234
57235 ------------------------------------------------------------------------------------
57236 -- 4219869 Business Flow
57237 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
57238 ------------------------------------------------------------------------------------
57239 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57240
57241 ----------------------------------------------------------------------------------
57242 -- 4219869 Business Flow
57243 -- Update journal entry status -- Need to generate this within IF <condition>
57244 ----------------------------------------------------------------------------------
57245 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57246 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
57247 ,p_balance_type_code => l_balance_type_code
57248 );
57249
57250 -------------------------------------------------------------------------------------------
57251 -- 4262811 - Generate the Accrual Reversal lines
57252 -------------------------------------------------------------------------------------------
57253 BEGIN
57254 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
57255 (g_array_event(p_event_id).array_value_num('header_index'));
57256 IF l_acc_rev_flag IS NULL THEN
57257 l_acc_rev_flag := 'N';
57258 END IF;
57259 EXCEPTION
57260 WHEN OTHERS THEN
57261 l_acc_rev_flag := 'N';
57262 END;
57263 --
57264 IF (l_acc_rev_flag = 'Y') THEN
57265
57266 -- 4645092 ------------------------------------------------------------------------------
57267 -- To allow MPA report to determine if it should generate report process
57268 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
57269 ------------------------------------------------------------------------------------------
57270
57271 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
57272 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
57273
57274 --
57275 -- Update the line information that should be overwritten
57276 --
57277 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
57278 p_header_num => 1);
57279 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
57280
57281 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
57282
57283 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
57284 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
57285 END IF;
57286
57290 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
57287 --
57288 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
57289 --
57291 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
57292 ELSE
57293 ---------------------------------------------------------------------------------------------------
57294 -- 4262811a Switch Sign
57295 ---------------------------------------------------------------------------------------------------
57296 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
57297 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57298 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57299 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57300 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57301 -- 5132302
57302 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
57303 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57304
57305 END IF;
57306
57307 -- 4955764
57308 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57309 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
57310
57311
57312 XLA_AE_LINES_PKG.ValidateCurrentLine;
57313 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57314
57315 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57316 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
57317 ,p_balance_type_code => l_balance_type_code);
57318
57319 END IF;
57320
57321 -----------------------------------------------------------------------------------------
57322 -- 4262811 Multiperiod Accounting
57323 -----------------------------------------------------------------------------------------
57324 -- No MPA option is assigned.
57325
57326
57327 END IF;
57328 END IF;
57329 --
57330
57331 --
57332 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57333 trace
57334 (p_msg => 'END of AcctLineType_119'
57335 ,p_level => C_LEVEL_PROCEDURE
57336 ,p_module => l_log_module);
57337 END IF;
57338 --
57339 EXCEPTION
57340 WHEN xla_exceptions_pkg.application_exception THEN
57341 RAISE;
57342 WHEN OTHERS THEN
57343 xla_exceptions_pkg.raise_message
57344 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_119');
57345 END AcctLineType_119;
57346 --
57347
57348 ---------------------------------------
57349 --
57350 -- PRIVATE FUNCTION
57351 -- AcctLineType_120
57352 --
57353 ---------------------------------------
57354 PROCEDURE AcctLineType_120 (
57355 p_application_id IN NUMBER
57356 ,p_event_id IN NUMBER
57357 ,p_calculate_acctd_flag IN VARCHAR2
57358 ,p_calculate_g_l_flag IN VARCHAR2
57359 ,p_actual_flag IN OUT VARCHAR2
57360 ,p_balance_type_code OUT VARCHAR2
57361 ,p_gain_or_loss_ref OUT VARCHAR2
57362
57363 --Allow Account Override Flag
57364 , p_source_5 IN VARCHAR2
57365 --Provider Cost/ Revenue CCID
57366 , p_source_9 IN NUMBER
57367 --Adjustment Receiver Cost/ Revenue CCID
57368 , p_source_11 IN NUMBER
57369 --Receiver Cost/ Revenue CCID
57370 , p_source_16 IN NUMBER
57371 --Reversing Line Flag
57372 , p_source_23 IN VARCHAR2
57373 --Actual Upgrade Credit Accounting Class
57374 , p_source_24 IN VARCHAR2
57375 --Entered Currency Code
57376 , p_source_26 IN VARCHAR2
57377 --Exchange Rate Date
57378 , p_source_28 IN DATE
57379 --Exchange Rate
57380 , p_source_29 IN NUMBER
57381 --Exchange Rate Type
57382 , p_source_30 IN VARCHAR2
57383 --Actual Upgrade Debit Accounting Class
57384 , p_source_31 IN VARCHAR2
57385 --Use Actuals Upgrade Attributes Flag
57386 , p_source_32 IN VARCHAR2
57387 --Expenditure Item ID
57388 , p_source_33 IN NUMBER
57389 --Cost Distribution Line Number
57390 , p_source_34 IN NUMBER
57391 --Line Type
57392 , p_source_35 IN VARCHAR2
57393 , p_source_35_meaning IN VARCHAR2
57394 --Reversed Line Number
57395 , p_source_36 IN NUMBER
57396 --Entered Amount
57397 , p_source_42 IN NUMBER
57398 --Accounted Amount
57399 , p_source_43 IN NUMBER
57400 --Transfer Amount Type
57401 , p_source_73 IN VARCHAR2
57402 , p_source_73_meaning IN VARCHAR2
57403 )
57404 IS
57405
57406 l_component_type VARCHAR2(80);
57407 l_component_code VARCHAR2(30);
57408 l_component_type_code VARCHAR2(1);
57409 l_component_appl_id INTEGER;
57410 l_amb_context_code VARCHAR2(30);
57411 l_entity_code VARCHAR2(30);
57412 l_event_class_code VARCHAR2(30);
57413 l_ae_header_id NUMBER;
57414 l_event_type_code VARCHAR2(30);
57415 l_line_definition_code VARCHAR2(30);
57416 l_line_definition_owner_code VARCHAR2(1);
57417 --
57418 -- adr variables
57419 l_segment VARCHAR2(30);
57420 l_ccid NUMBER;
57421 l_adr_transaction_coa_id NUMBER;
57422 l_adr_accounting_coa_id NUMBER;
57423 l_adr_flexfield_segment_code VARCHAR2(30);
57424 l_adr_flex_value_set_id NUMBER;
57428
57425 l_adr_value_type_code VARCHAR2(30);
57426 l_adr_value_combination_id NUMBER;
57427 l_adr_value_segment_code VARCHAR2(30);
57429 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
57430 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
57431 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
57432 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
57433
57434 -- 4262811 Variables ------------------------------------------------------------------------------------------
57435 l_entered_amt_idx NUMBER;
57436 l_accted_amt_idx NUMBER;
57437 l_acc_rev_flag VARCHAR2(1);
57438 l_accrual_line_num NUMBER;
57439 l_tmp_amt NUMBER;
57440 l_acc_rev_natural_side_code VARCHAR2(1);
57441
57442 l_num_entries NUMBER;
57443 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
57444 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
57445 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
57446 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
57447 l_recog_line_1 NUMBER;
57448 l_recog_line_2 NUMBER;
57449
57450 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
57451 l_bflow_applied_to_amt NUMBER; -- 5132302
57452 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
57453
57454 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
57455
57456 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
57457 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
57458
57459 ---------------------------------------------------------------------------------------------------------------
57460
57461
57462 --
57463 -- bulk performance
57464 --
57465 l_balance_type_code VARCHAR2(1);
57466 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
57467 l_log_module VARCHAR2(240);
57468
57469 --
57470 -- Upgrade strategy
57471 --
57472 l_actual_upg_option VARCHAR2(1);
57473 l_enc_upg_option VARCHAR2(1);
57474
57475 --
57476 BEGIN
57477 --
57478 IF g_log_enabled THEN
57479 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_120';
57480 END IF;
57481 --
57482 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57483
57484 trace
57485 (p_msg => 'BEGIN of AcctLineType_120'
57486 ,p_level => C_LEVEL_PROCEDURE
57487 ,p_module => l_log_module);
57488
57489 END IF;
57490 --
57491 l_component_type := 'AMB_JLT';
57492 l_component_code := 'PA_RECEIVER_REVENUE';
57493 l_component_type_code := 'S';
57494 l_component_appl_id := 275;
57495 l_amb_context_code := 'DEFAULT';
57496 l_entity_code := 'EXPENDITURES';
57497 l_event_class_code := 'BORROWED_AND_LENT';
57498 l_event_type_code := 'BORROWED_AND_LENT_ALL';
57499 l_line_definition_owner_code := 'S';
57500 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
57501 --
57502 l_balance_type_code := 'A';
57503 l_segment := NULL;
57504 l_ccid := NULL;
57505 l_adr_transaction_coa_id := NULL;
57506 l_adr_accounting_coa_id := NULL;
57507 l_adr_flexfield_segment_code := NULL;
57508 l_adr_flex_value_set_id := NULL;
57509 l_adr_value_type_code := NULL;
57510 l_adr_value_combination_id := NULL;
57511 l_adr_value_segment_code := NULL;
57512
57513 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
57514 l_bflow_class_code := ''; -- 4219869 Business Flow
57515 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
57516 l_budgetary_control_flag := 'N';
57517
57518 l_bflow_applied_to_amt_idx := NULL; -- 5132302
57519 l_bflow_applied_to_amt := NULL; -- 5132302
57520 l_entered_amt_idx := NULL; -- 4262811
57521 l_accted_amt_idx := NULL; -- 4262811
57522 l_acc_rev_flag := NULL; -- 4262811
57523 l_accrual_line_num := NULL; -- 4262811
57524 l_tmp_amt := NULL; -- 4262811
57525 --
57526
57527 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
57528 l_balance_type_code <> 'B' THEN
57529 IF NVL(p_source_73,'
57530 ') = 'REVENUE_TRANSFER'
57531 THEN
57532
57533 --
57534 XLA_AE_LINES_PKG.SetNewLine;
57535
57536 p_balance_type_code := l_balance_type_code;
57537 -- set the flag so later we will know whether the gain loss line needs to be created
57538
57539 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
57540 p_actual_flag :='A';
57541 END IF;
57542
57543 --
57544 -- bulk performance
57545 --
57546 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
57547 p_header_num => 0); -- 4262811
57548 --
57549 -- set accounting line options
57550 --
57551 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
57552 p_natural_side_code => 'D'
57553 , p_gain_or_loss_flag => 'N'
57554 , p_gl_transfer_mode_code => 'S'
57555 , p_acct_entry_type_code => 'A'
57556 , p_switch_side_flag => 'Y'
57557 , p_merge_duplicate_code => 'N'
57558 );
57559 --
57560 l_acc_rev_natural_side_code := 'C'; -- 4262811
57561 --
57562 --
57563 -- set accounting line type info
57564 --
57568 ,p_line_definition_owner_code => l_line_definition_owner_code
57565 xla_ae_lines_pkg.SetAcctLineType
57566 (p_component_type => l_component_type
57567 ,p_event_type_code => l_event_type_code
57569 ,p_line_definition_code => l_line_definition_code
57570 ,p_accounting_line_code => l_component_code
57571 ,p_accounting_line_type_code => l_component_type_code
57572 ,p_accounting_line_appl_id => l_component_appl_id
57573 ,p_amb_context_code => l_amb_context_code
57574 ,p_entity_code => l_entity_code
57575 ,p_event_class_code => l_event_class_code);
57576 --
57577 -- set accounting class
57578 --
57579 xla_ae_lines_pkg.SetAcctClass(
57580 p_accounting_class_code => 'RECEIVER_REVENUE'
57581 , p_ae_header_id => l_ae_header_id
57582 );
57583
57584 --
57585 -- set rounding class
57586 --
57587 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
57588 'RECEIVER_REVENUE';
57589
57590 --
57591 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
57592 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
57593 --
57594 -- bulk performance
57595 --
57596 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
57597
57598 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
57599 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
57600
57601 -- 4955764
57602 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57603 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
57604
57605 -- 4458381 Public Sector Enh
57606
57607 --
57608 -- set accounting attributes for the line type
57609 --
57610 l_entered_amt_idx := 22;
57611 l_accted_amt_idx := 27;
57612 l_bflow_applied_to_amt_idx := NULL; -- 5132302
57613 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
57614 l_rec_acct_attrs.array_char_value(1) := p_source_23;
57615 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
57616 l_rec_acct_attrs.array_char_value(2) := p_source_24;
57617 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
57618 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_9);
57619 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
57620 l_rec_acct_attrs.array_num_value(4) := p_source_42;
57621 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
57622 l_rec_acct_attrs.array_char_value(5) := p_source_26;
57623 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
57624 l_rec_acct_attrs.array_num_value(6) := p_source_43;
57625 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
57626 l_rec_acct_attrs.array_date_value(7) := p_source_28;
57627 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
57628 l_rec_acct_attrs.array_num_value(8) := p_source_29;
57629 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
57630 l_rec_acct_attrs.array_char_value(9) := p_source_30;
57631 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
57632 l_rec_acct_attrs.array_char_value(10) := p_source_31;
57633 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
57634 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_16);
57635 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
57636 l_rec_acct_attrs.array_num_value(12) := p_source_42;
57637 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
57638 l_rec_acct_attrs.array_char_value(13) := p_source_26;
57639 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
57640 l_rec_acct_attrs.array_num_value(14) := p_source_43;
57641 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
57642 l_rec_acct_attrs.array_date_value(15) := p_source_28;
57643 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
57644 l_rec_acct_attrs.array_num_value(16) := p_source_29;
57645 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
57646 l_rec_acct_attrs.array_char_value(17) := p_source_30;
57647 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
57648 l_rec_acct_attrs.array_char_value(18) := p_source_32;
57649 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
57650 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
57651 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
57652 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
57653 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
57654 l_rec_acct_attrs.array_char_value(21) := p_source_35;
57655 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
57656 l_rec_acct_attrs.array_num_value(22) := p_source_42;
57657 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
57658 l_rec_acct_attrs.array_char_value(23) := p_source_26;
57659 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
57660 l_rec_acct_attrs.array_date_value(24) := p_source_28;
57661 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
57662 l_rec_acct_attrs.array_num_value(25) := p_source_29;
57663 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
57664 l_rec_acct_attrs.array_char_value(26) := p_source_30;
57665 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
57666 l_rec_acct_attrs.array_num_value(27) := p_source_43;
57667 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
57668 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
57672 l_rec_acct_attrs.array_char_value(30) := p_source_35;
57669 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
57670 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
57671 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
57673
57674 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
57675 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
57676
57677 ---------------------------------------------------------------------------------------------------------------
57678 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
57679 ---------------------------------------------------------------------------------------------------------------
57680 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
57681
57682 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57683 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57684
57685 IF xla_accounting_cache_pkg.GetValueChar
57686 (p_source_code => 'LEDGER_CATEGORY_CODE'
57687 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
57688 AND l_bflow_method_code = 'PRIOR_ENTRY'
57689 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
57690 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
57691 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
57692 )
57693 THEN
57694 xla_ae_lines_pkg.BflowUpgEntry
57695 (p_business_method_code => l_bflow_method_code
57696 ,p_business_class_code => l_bflow_class_code
57697 ,p_balance_type => l_balance_type_code);
57698 ELSE
57699 NULL;
57700 -- No business flow processing for business flow method of NONE.
57701 END IF;
57702
57703 --
57704 -- call analytical criteria
57705 --
57706
57707 --
57708 -- call description
57709 --
57710 -- No description or it is inherited.
57711 --
57712 -- call ADRs
57713 -- Bug 4922099
57714 --
57715 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57716 (NVL(l_actual_upg_option, 'N') = 'O') OR
57717 (NVL(l_enc_upg_option, 'N') = 'O')
57718 )
57719 THEN
57720 NULL;
57721 --
57722 --
57723
57724 l_ccid := AcctDerRule_23(
57725 p_application_id => p_application_id
57726 , p_ae_header_id => l_ae_header_id
57727 , p_source_5 => p_source_5
57728 , p_source_11 => p_source_11
57729 , p_source_16 => p_source_16
57730 , x_transaction_coa_id => l_adr_transaction_coa_id
57731 , x_accounting_coa_id => l_adr_accounting_coa_id
57732 , x_value_type_code => l_adr_value_type_code
57733 , p_side => 'NA'
57734 );
57735
57736 xla_ae_lines_pkg.set_ccid(
57737 p_code_combination_id => l_ccid
57738 , p_value_type_code => l_adr_value_type_code
57739 , p_transaction_coa_id => l_adr_transaction_coa_id
57740 , p_accounting_coa_id => l_adr_accounting_coa_id
57741 , p_adr_code => 'PA_RECVR_COST_REV_ACCT_RULE'
57742 , p_adr_type_code => 'S'
57743 , p_component_type => l_component_type
57744 , p_component_code => l_component_code
57745 , p_component_type_code => l_component_type_code
57746 , p_component_appl_id => l_component_appl_id
57747 , p_amb_context_code => l_amb_context_code
57748 , p_side => 'NA'
57749 );
57750
57751
57752 --
57753 --
57754 END IF;
57755 --
57756 -- Bug 4922099
57757 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
57758 (NVL(l_enc_upg_option, 'N') = 'O')
57759 ) AND
57760 (l_bflow_method_code = 'PRIOR_ENTRY')
57761 )
57762 THEN
57763 IF
57764 --
57765 1 = 2
57766 --
57767 THEN
57768 xla_accounting_err_pkg.build_message
57769 (p_appli_s_name => 'XLA'
57770 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57771 ,p_token_1 => 'LINE_NUMBER'
57772 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
57773 ,p_token_2 => 'LINE_TYPE_NAME'
57774 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
57775 l_component_type
57776 ,l_component_code
57777 ,l_component_type_code
57778 ,l_component_appl_id
57779 ,l_amb_context_code
57780 ,l_entity_code
57781 ,l_event_class_code
57782 )
57783 ,p_token_3 => 'OWNER'
57784 ,p_value_3 => xla_lookups_pkg.get_meaning(
57785 p_lookup_type => 'XLA_OWNER_TYPE'
57789 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
57786 ,p_lookup_code => l_component_type_code
57787 )
57788 ,p_token_4 => 'PRODUCT_NAME'
57790 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
57791 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
57792 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
57793 ,p_ae_header_id => NULL
57794 );
57795
57796 IF (C_LEVEL_ERROR>= g_log_level) THEN
57797 trace
57798 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57799 ,p_level => C_LEVEL_ERROR
57800 ,p_module => l_log_module);
57801 END IF;
57802 END IF;
57803 END IF;
57804 --
57805 --
57806 ------------------------------------------------------------------------------------------------
57807 -- 4219869 Business Flow
57808 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
57809 -- Prior Entry. Currently, the following code is always generated.
57810 ------------------------------------------------------------------------------------------------
57811 XLA_AE_LINES_PKG.ValidateCurrentLine;
57812
57813 ------------------------------------------------------------------------------------
57814 -- 4219869 Business Flow
57815 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
57816 ------------------------------------------------------------------------------------
57817 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57818
57819 ----------------------------------------------------------------------------------
57820 -- 4219869 Business Flow
57821 -- Update journal entry status -- Need to generate this within IF <condition>
57822 ----------------------------------------------------------------------------------
57823 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57824 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
57825 ,p_balance_type_code => l_balance_type_code
57826 );
57827
57828 -------------------------------------------------------------------------------------------
57829 -- 4262811 - Generate the Accrual Reversal lines
57830 -------------------------------------------------------------------------------------------
57831 BEGIN
57832 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
57833 (g_array_event(p_event_id).array_value_num('header_index'));
57834 IF l_acc_rev_flag IS NULL THEN
57835 l_acc_rev_flag := 'N';
57836 END IF;
57837 EXCEPTION
57838 WHEN OTHERS THEN
57839 l_acc_rev_flag := 'N';
57840 END;
57841 --
57842 IF (l_acc_rev_flag = 'Y') THEN
57843
57844 -- 4645092 ------------------------------------------------------------------------------
57845 -- To allow MPA report to determine if it should generate report process
57846 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
57847 ------------------------------------------------------------------------------------------
57848
57849 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
57850 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
57851
57852 --
57853 -- Update the line information that should be overwritten
57854 --
57855 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
57856 p_header_num => 1);
57857 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
57858
57859 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
57860
57861 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
57862 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
57863 END IF;
57864
57865 --
57866 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
57867 --
57868 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
57869 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
57870 ELSE
57871 ---------------------------------------------------------------------------------------------------
57872 -- 4262811a Switch Sign
57873 ---------------------------------------------------------------------------------------------------
57874 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
57875 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57876 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57877 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57878 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57879 -- 5132302
57880 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
57881 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57882
57883 END IF;
57884
57885 -- 4955764
57886 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57890 XLA_AE_LINES_PKG.ValidateCurrentLine;
57887 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
57888
57889
57891 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57892
57893 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57894 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
57895 ,p_balance_type_code => l_balance_type_code);
57896
57897 END IF;
57898
57899 -----------------------------------------------------------------------------------------
57900 -- 4262811 Multiperiod Accounting
57901 -----------------------------------------------------------------------------------------
57902 -- No MPA option is assigned.
57903
57904
57905 END IF;
57906 END IF;
57907 --
57908
57909 --
57910 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57911 trace
57912 (p_msg => 'END of AcctLineType_120'
57913 ,p_level => C_LEVEL_PROCEDURE
57914 ,p_module => l_log_module);
57915 END IF;
57916 --
57917 EXCEPTION
57918 WHEN xla_exceptions_pkg.application_exception THEN
57919 RAISE;
57920 WHEN OTHERS THEN
57921 xla_exceptions_pkg.raise_message
57922 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_120');
57923 END AcctLineType_120;
57924 --
57925
57926 ---------------------------------------
57927 --
57928 -- PRIVATE FUNCTION
57929 -- AcctLineType_121
57930 --
57931 ---------------------------------------
57932 PROCEDURE AcctLineType_121 (
57933 p_application_id IN NUMBER
57934 ,p_event_id IN NUMBER
57935 ,p_calculate_acctd_flag IN VARCHAR2
57936 ,p_calculate_g_l_flag IN VARCHAR2
57937 ,p_actual_flag IN OUT VARCHAR2
57938 ,p_balance_type_code OUT VARCHAR2
57939 ,p_gain_or_loss_ref OUT VARCHAR2
57940
57941 --Allow Account Override Flag
57942 , p_source_5 IN VARCHAR2
57943 --Provider Cost/ Revenue CCID
57944 , p_source_9 IN NUMBER
57945 --Adjustment Receiver Cost/ Revenue CCID
57946 , p_source_11 IN NUMBER
57947 --Receiver Cost/ Revenue CCID
57948 , p_source_16 IN NUMBER
57949 --Reversing Line Flag
57950 , p_source_23 IN VARCHAR2
57951 --Actual Upgrade Credit Accounting Class
57952 , p_source_24 IN VARCHAR2
57953 --Entered Currency Code
57954 , p_source_26 IN VARCHAR2
57955 --Exchange Rate Date
57956 , p_source_28 IN DATE
57957 --Exchange Rate
57958 , p_source_29 IN NUMBER
57959 --Exchange Rate Type
57960 , p_source_30 IN VARCHAR2
57961 --Actual Upgrade Debit Accounting Class
57962 , p_source_31 IN VARCHAR2
57963 --Use Actuals Upgrade Attributes Flag
57964 , p_source_32 IN VARCHAR2
57965 --Expenditure Item ID
57966 , p_source_33 IN NUMBER
57967 --Cost Distribution Line Number
57968 , p_source_34 IN NUMBER
57969 --Line Type
57970 , p_source_35 IN VARCHAR2
57971 , p_source_35_meaning IN VARCHAR2
57972 --Reversed Line Number
57973 , p_source_36 IN NUMBER
57974 --Entered Amount
57975 , p_source_42 IN NUMBER
57976 --Accounted Amount
57977 , p_source_43 IN NUMBER
57978 --Transfer Amount Type
57979 , p_source_73 IN VARCHAR2
57980 , p_source_73_meaning IN VARCHAR2
57981 )
57982 IS
57983
57984 l_component_type VARCHAR2(80);
57985 l_component_code VARCHAR2(30);
57986 l_component_type_code VARCHAR2(1);
57987 l_component_appl_id INTEGER;
57988 l_amb_context_code VARCHAR2(30);
57989 l_entity_code VARCHAR2(30);
57990 l_event_class_code VARCHAR2(30);
57991 l_ae_header_id NUMBER;
57992 l_event_type_code VARCHAR2(30);
57993 l_line_definition_code VARCHAR2(30);
57994 l_line_definition_owner_code VARCHAR2(1);
57995 --
57996 -- adr variables
57997 l_segment VARCHAR2(30);
57998 l_ccid NUMBER;
57999 l_adr_transaction_coa_id NUMBER;
58000 l_adr_accounting_coa_id NUMBER;
58001 l_adr_flexfield_segment_code VARCHAR2(30);
58002 l_adr_flex_value_set_id NUMBER;
58003 l_adr_value_type_code VARCHAR2(30);
58004 l_adr_value_combination_id NUMBER;
58005 l_adr_value_segment_code VARCHAR2(30);
58006
58007 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
58008 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
58009 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
58010 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
58011
58012 -- 4262811 Variables ------------------------------------------------------------------------------------------
58013 l_entered_amt_idx NUMBER;
58014 l_accted_amt_idx NUMBER;
58015 l_acc_rev_flag VARCHAR2(1);
58016 l_accrual_line_num NUMBER;
58017 l_tmp_amt NUMBER;
58018 l_acc_rev_natural_side_code VARCHAR2(1);
58019
58020 l_num_entries NUMBER;
58021 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
58022 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
58023 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
58024 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
58025 l_recog_line_1 NUMBER;
58026 l_recog_line_2 NUMBER;
58027
58028 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
58029 l_bflow_applied_to_amt NUMBER; -- 5132302
58033
58030 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
58031
58032 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
58034 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
58035 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
58036
58037 ---------------------------------------------------------------------------------------------------------------
58038
58039
58040 --
58041 -- bulk performance
58042 --
58043 l_balance_type_code VARCHAR2(1);
58044 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
58045 l_log_module VARCHAR2(240);
58046
58047 --
58048 -- Upgrade strategy
58049 --
58050 l_actual_upg_option VARCHAR2(1);
58051 l_enc_upg_option VARCHAR2(1);
58052
58053 --
58054 BEGIN
58055 --
58056 IF g_log_enabled THEN
58057 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_121';
58058 END IF;
58059 --
58060 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58061
58062 trace
58063 (p_msg => 'BEGIN of AcctLineType_121'
58064 ,p_level => C_LEVEL_PROCEDURE
58065 ,p_module => l_log_module);
58066
58067 END IF;
58068 --
58069 l_component_type := 'AMB_JLT';
58070 l_component_code := 'PA_RECEIVER_REVENUE_ADJ';
58071 l_component_type_code := 'S';
58072 l_component_appl_id := 275;
58073 l_amb_context_code := 'DEFAULT';
58074 l_entity_code := 'EXPENDITURES';
58075 l_event_class_code := 'BORROWED_AND_LENT_ADJ';
58076 l_event_type_code := 'BORROWED_AND_LENT_ADJ_ALL';
58077 l_line_definition_owner_code := 'S';
58078 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
58079 --
58080 l_balance_type_code := 'A';
58081 l_segment := NULL;
58082 l_ccid := NULL;
58083 l_adr_transaction_coa_id := NULL;
58084 l_adr_accounting_coa_id := NULL;
58085 l_adr_flexfield_segment_code := NULL;
58086 l_adr_flex_value_set_id := NULL;
58087 l_adr_value_type_code := NULL;
58088 l_adr_value_combination_id := NULL;
58089 l_adr_value_segment_code := NULL;
58090
58091 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
58092 l_bflow_class_code := ''; -- 4219869 Business Flow
58093 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
58094 l_budgetary_control_flag := 'N';
58095
58096 l_bflow_applied_to_amt_idx := NULL; -- 5132302
58097 l_bflow_applied_to_amt := NULL; -- 5132302
58098 l_entered_amt_idx := NULL; -- 4262811
58099 l_accted_amt_idx := NULL; -- 4262811
58100 l_acc_rev_flag := NULL; -- 4262811
58101 l_accrual_line_num := NULL; -- 4262811
58102 l_tmp_amt := NULL; -- 4262811
58103 --
58104
58105 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
58106 l_balance_type_code <> 'B' THEN
58107 IF NVL(p_source_73,'
58108 ') = 'REVENUE_TRANSFER'
58109 THEN
58110
58111 --
58112 XLA_AE_LINES_PKG.SetNewLine;
58113
58114 p_balance_type_code := l_balance_type_code;
58115 -- set the flag so later we will know whether the gain loss line needs to be created
58116
58117 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
58118 p_actual_flag :='A';
58119 END IF;
58120
58121 --
58122 -- bulk performance
58123 --
58124 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
58125 p_header_num => 0); -- 4262811
58126 --
58127 -- set accounting line options
58128 --
58129 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
58130 p_natural_side_code => 'D'
58131 , p_gain_or_loss_flag => 'N'
58132 , p_gl_transfer_mode_code => 'S'
58133 , p_acct_entry_type_code => 'A'
58134 , p_switch_side_flag => 'Y'
58135 , p_merge_duplicate_code => 'N'
58136 );
58137 --
58138 l_acc_rev_natural_side_code := 'C'; -- 4262811
58139 --
58140 --
58141 -- set accounting line type info
58142 --
58143 xla_ae_lines_pkg.SetAcctLineType
58144 (p_component_type => l_component_type
58145 ,p_event_type_code => l_event_type_code
58146 ,p_line_definition_owner_code => l_line_definition_owner_code
58147 ,p_line_definition_code => l_line_definition_code
58148 ,p_accounting_line_code => l_component_code
58149 ,p_accounting_line_type_code => l_component_type_code
58150 ,p_accounting_line_appl_id => l_component_appl_id
58151 ,p_amb_context_code => l_amb_context_code
58152 ,p_entity_code => l_entity_code
58153 ,p_event_class_code => l_event_class_code);
58154 --
58155 -- set accounting class
58156 --
58157 xla_ae_lines_pkg.SetAcctClass(
58158 p_accounting_class_code => 'RECEIVER_REVENUE'
58159 , p_ae_header_id => l_ae_header_id
58160 );
58161
58162 --
58163 -- set rounding class
58164 --
58165 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
58166 'RECEIVER_REVENUE';
58167
58168 --
58169 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
58170 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
58171 --
58172 -- bulk performance
58176 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
58173 --
58174 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
58175
58177 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
58178
58179 -- 4955764
58180 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58181 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
58182
58183 -- 4458381 Public Sector Enh
58184
58185 --
58186 -- set accounting attributes for the line type
58187 --
58188 l_entered_amt_idx := 22;
58189 l_accted_amt_idx := 27;
58190 l_bflow_applied_to_amt_idx := NULL; -- 5132302
58191 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
58192 l_rec_acct_attrs.array_char_value(1) := p_source_23;
58193 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
58194 l_rec_acct_attrs.array_char_value(2) := p_source_24;
58195 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
58196 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_9);
58197 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
58198 l_rec_acct_attrs.array_num_value(4) := p_source_42;
58199 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
58200 l_rec_acct_attrs.array_char_value(5) := p_source_26;
58201 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
58202 l_rec_acct_attrs.array_num_value(6) := p_source_43;
58203 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
58204 l_rec_acct_attrs.array_date_value(7) := p_source_28;
58205 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
58206 l_rec_acct_attrs.array_num_value(8) := p_source_29;
58207 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
58208 l_rec_acct_attrs.array_char_value(9) := p_source_30;
58209 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
58210 l_rec_acct_attrs.array_char_value(10) := p_source_31;
58211 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
58212 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_16);
58213 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
58214 l_rec_acct_attrs.array_num_value(12) := p_source_42;
58215 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
58216 l_rec_acct_attrs.array_char_value(13) := p_source_26;
58217 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
58218 l_rec_acct_attrs.array_num_value(14) := p_source_43;
58219 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
58220 l_rec_acct_attrs.array_date_value(15) := p_source_28;
58221 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
58222 l_rec_acct_attrs.array_num_value(16) := p_source_29;
58223 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
58224 l_rec_acct_attrs.array_char_value(17) := p_source_30;
58225 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
58226 l_rec_acct_attrs.array_char_value(18) := p_source_32;
58227 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
58228 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
58229 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
58230 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
58231 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
58232 l_rec_acct_attrs.array_char_value(21) := p_source_35;
58233 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
58234 l_rec_acct_attrs.array_num_value(22) := p_source_42;
58235 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
58236 l_rec_acct_attrs.array_char_value(23) := p_source_26;
58237 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
58238 l_rec_acct_attrs.array_date_value(24) := p_source_28;
58239 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
58240 l_rec_acct_attrs.array_num_value(25) := p_source_29;
58241 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
58242 l_rec_acct_attrs.array_char_value(26) := p_source_30;
58243 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
58244 l_rec_acct_attrs.array_num_value(27) := p_source_43;
58245 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
58246 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
58247 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
58248 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
58249 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
58250 l_rec_acct_attrs.array_char_value(30) := p_source_35;
58251
58252 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
58253 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
58254
58255 ---------------------------------------------------------------------------------------------------------------
58256 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
58257 ---------------------------------------------------------------------------------------------------------------
58258 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
58259
58260 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58261 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58262
58263 IF xla_accounting_cache_pkg.GetValueChar
58264 (p_source_code => 'LEDGER_CATEGORY_CODE'
58265 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
58266 AND l_bflow_method_code = 'PRIOR_ENTRY'
58270 )
58267 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
58268 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
58269 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
58271 THEN
58272 xla_ae_lines_pkg.BflowUpgEntry
58273 (p_business_method_code => l_bflow_method_code
58274 ,p_business_class_code => l_bflow_class_code
58275 ,p_balance_type => l_balance_type_code);
58276 ELSE
58277 NULL;
58278 -- No business flow processing for business flow method of NONE.
58279 END IF;
58280
58281 --
58282 -- call analytical criteria
58283 --
58284
58285 --
58286 -- call description
58287 --
58288 -- No description or it is inherited.
58289 --
58290 -- call ADRs
58291 -- Bug 4922099
58292 --
58293 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58294 (NVL(l_actual_upg_option, 'N') = 'O') OR
58295 (NVL(l_enc_upg_option, 'N') = 'O')
58296 )
58297 THEN
58298 NULL;
58299 --
58300 --
58301
58302 l_ccid := AcctDerRule_18(
58303 p_application_id => p_application_id
58304 , p_ae_header_id => l_ae_header_id
58305 , p_source_5 => p_source_5
58306 , p_source_11 => p_source_11
58307 , x_transaction_coa_id => l_adr_transaction_coa_id
58308 , x_accounting_coa_id => l_adr_accounting_coa_id
58309 , x_value_type_code => l_adr_value_type_code
58310 , p_side => 'NA'
58311 );
58312
58313 xla_ae_lines_pkg.set_ccid(
58314 p_code_combination_id => l_ccid
58315 , p_value_type_code => l_adr_value_type_code
58316 , p_transaction_coa_id => l_adr_transaction_coa_id
58317 , p_accounting_coa_id => l_adr_accounting_coa_id
58318 , p_adr_code => 'PA_RCVR_COST_REV_ADJ_ACCT_RULE'
58319 , p_adr_type_code => 'S'
58320 , p_component_type => l_component_type
58321 , p_component_code => l_component_code
58322 , p_component_type_code => l_component_type_code
58323 , p_component_appl_id => l_component_appl_id
58324 , p_amb_context_code => l_amb_context_code
58325 , p_side => 'NA'
58326 );
58327
58328
58329 --
58330 --
58331 END IF;
58332 --
58333 -- Bug 4922099
58334 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
58335 (NVL(l_enc_upg_option, 'N') = 'O')
58336 ) AND
58337 (l_bflow_method_code = 'PRIOR_ENTRY')
58338 )
58339 THEN
58340 IF
58341 --
58342 1 = 2
58343 --
58344 THEN
58345 xla_accounting_err_pkg.build_message
58346 (p_appli_s_name => 'XLA'
58347 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58348 ,p_token_1 => 'LINE_NUMBER'
58349 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
58350 ,p_token_2 => 'LINE_TYPE_NAME'
58351 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
58352 l_component_type
58353 ,l_component_code
58354 ,l_component_type_code
58355 ,l_component_appl_id
58356 ,l_amb_context_code
58357 ,l_entity_code
58358 ,l_event_class_code
58359 )
58360 ,p_token_3 => 'OWNER'
58361 ,p_value_3 => xla_lookups_pkg.get_meaning(
58362 p_lookup_type => 'XLA_OWNER_TYPE'
58363 ,p_lookup_code => l_component_type_code
58364 )
58365 ,p_token_4 => 'PRODUCT_NAME'
58366 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
58367 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
58368 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
58369 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
58370 ,p_ae_header_id => NULL
58371 );
58372
58373 IF (C_LEVEL_ERROR>= g_log_level) THEN
58374 trace
58375 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58376 ,p_level => C_LEVEL_ERROR
58377 ,p_module => l_log_module);
58378 END IF;
58379 END IF;
58380 END IF;
58381 --
58382 --
58383 ------------------------------------------------------------------------------------------------
58384 -- 4219869 Business Flow
58385 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
58386 -- Prior Entry. Currently, the following code is always generated.
58390 ------------------------------------------------------------------------------------
58387 ------------------------------------------------------------------------------------------------
58388 XLA_AE_LINES_PKG.ValidateCurrentLine;
58389
58391 -- 4219869 Business Flow
58392 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
58393 ------------------------------------------------------------------------------------
58394 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58395
58396 ----------------------------------------------------------------------------------
58397 -- 4219869 Business Flow
58398 -- Update journal entry status -- Need to generate this within IF <condition>
58399 ----------------------------------------------------------------------------------
58400 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58401 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
58402 ,p_balance_type_code => l_balance_type_code
58403 );
58404
58405 -------------------------------------------------------------------------------------------
58406 -- 4262811 - Generate the Accrual Reversal lines
58407 -------------------------------------------------------------------------------------------
58408 BEGIN
58409 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
58410 (g_array_event(p_event_id).array_value_num('header_index'));
58411 IF l_acc_rev_flag IS NULL THEN
58412 l_acc_rev_flag := 'N';
58413 END IF;
58414 EXCEPTION
58415 WHEN OTHERS THEN
58416 l_acc_rev_flag := 'N';
58417 END;
58418 --
58419 IF (l_acc_rev_flag = 'Y') THEN
58420
58421 -- 4645092 ------------------------------------------------------------------------------
58422 -- To allow MPA report to determine if it should generate report process
58423 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
58424 ------------------------------------------------------------------------------------------
58425
58426 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
58427 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
58428
58429 --
58430 -- Update the line information that should be overwritten
58431 --
58432 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
58433 p_header_num => 1);
58434 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
58435
58436 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
58437
58438 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
58439 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
58440 END IF;
58441
58442 --
58443 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
58444 --
58445 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
58446 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
58447 ELSE
58448 ---------------------------------------------------------------------------------------------------
58449 -- 4262811a Switch Sign
58450 ---------------------------------------------------------------------------------------------------
58451 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
58452 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58453 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58454 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58455 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58456 -- 5132302
58457 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
58458 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58459
58460 END IF;
58461
58462 -- 4955764
58463 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58464 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
58465
58466
58467 XLA_AE_LINES_PKG.ValidateCurrentLine;
58468 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58469
58470 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58471 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
58472 ,p_balance_type_code => l_balance_type_code);
58473
58474 END IF;
58475
58476 -----------------------------------------------------------------------------------------
58477 -- 4262811 Multiperiod Accounting
58478 -----------------------------------------------------------------------------------------
58479 -- No MPA option is assigned.
58480
58481
58482 END IF;
58483 END IF;
58484 --
58485
58486 --
58487 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58488 trace
58489 (p_msg => 'END of AcctLineType_121'
58490 ,p_level => C_LEVEL_PROCEDURE
58491 ,p_module => l_log_module);
58492 END IF;
58493 --
58494 EXCEPTION
58495 WHEN xla_exceptions_pkg.application_exception THEN
58496 RAISE;
58497 WHEN OTHERS THEN
58498 xla_exceptions_pkg.raise_message
58499 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_121');
58500 END AcctLineType_121;
58501 --
58502
58503 ---------------------------------------
58504 --
58505 -- PRIVATE FUNCTION
58509 PROCEDURE AcctLineType_122 (
58506 -- AcctLineType_122
58507 --
58508 ---------------------------------------
58510 p_application_id IN NUMBER
58511 ,p_event_id IN NUMBER
58512 ,p_calculate_acctd_flag IN VARCHAR2
58513 ,p_calculate_g_l_flag IN VARCHAR2
58514 ,p_actual_flag IN OUT VARCHAR2
58515 ,p_balance_type_code OUT VARCHAR2
58516 ,p_gain_or_loss_ref OUT VARCHAR2
58517
58518 --Allow Account Override Flag
58519 , p_source_5 IN VARCHAR2
58520 --Provider Cost Destination CCID
58521 , p_source_12 IN NUMBER
58522 --Adjustment Provider Cost Destination CCID
58523 , p_source_13 IN NUMBER
58524 --Provider Cost Source CCID
58525 , p_source_14 IN NUMBER
58526 --Reversing Line Flag
58527 , p_source_23 IN VARCHAR2
58528 --Actual Upgrade Credit Accounting Class
58529 , p_source_24 IN VARCHAR2
58530 --Entered Currency Code
58531 , p_source_26 IN VARCHAR2
58532 --Exchange Rate Date
58533 , p_source_28 IN DATE
58534 --Exchange Rate
58535 , p_source_29 IN NUMBER
58536 --Exchange Rate Type
58537 , p_source_30 IN VARCHAR2
58538 --Actual Upgrade Debit Accounting Class
58539 , p_source_31 IN VARCHAR2
58540 --Use Actuals Upgrade Attributes Flag
58541 , p_source_32 IN VARCHAR2
58542 --Expenditure Item ID
58543 , p_source_33 IN NUMBER
58544 --Cost Distribution Line Number
58545 , p_source_34 IN NUMBER
58546 --Line Type
58547 , p_source_35 IN VARCHAR2
58548 , p_source_35_meaning IN VARCHAR2
58549 --Reversed Line Number
58550 , p_source_36 IN NUMBER
58551 --Entered Amount
58552 , p_source_42 IN NUMBER
58553 --Accounted Amount
58554 , p_source_43 IN NUMBER
58555 )
58556 IS
58557
58558 l_component_type VARCHAR2(80);
58559 l_component_code VARCHAR2(30);
58560 l_component_type_code VARCHAR2(1);
58561 l_component_appl_id INTEGER;
58562 l_amb_context_code VARCHAR2(30);
58563 l_entity_code VARCHAR2(30);
58564 l_event_class_code VARCHAR2(30);
58565 l_ae_header_id NUMBER;
58566 l_event_type_code VARCHAR2(30);
58567 l_line_definition_code VARCHAR2(30);
58568 l_line_definition_owner_code VARCHAR2(1);
58569 --
58570 -- adr variables
58571 l_segment VARCHAR2(30);
58572 l_ccid NUMBER;
58573 l_adr_transaction_coa_id NUMBER;
58574 l_adr_accounting_coa_id NUMBER;
58575 l_adr_flexfield_segment_code VARCHAR2(30);
58576 l_adr_flex_value_set_id NUMBER;
58577 l_adr_value_type_code VARCHAR2(30);
58578 l_adr_value_combination_id NUMBER;
58579 l_adr_value_segment_code VARCHAR2(30);
58580
58581 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
58582 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
58583 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
58584 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
58585
58586 -- 4262811 Variables ------------------------------------------------------------------------------------------
58587 l_entered_amt_idx NUMBER;
58588 l_accted_amt_idx NUMBER;
58589 l_acc_rev_flag VARCHAR2(1);
58590 l_accrual_line_num NUMBER;
58591 l_tmp_amt NUMBER;
58592 l_acc_rev_natural_side_code VARCHAR2(1);
58593
58594 l_num_entries NUMBER;
58595 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
58596 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
58597 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
58598 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
58599 l_recog_line_1 NUMBER;
58600 l_recog_line_2 NUMBER;
58601
58602 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
58603 l_bflow_applied_to_amt NUMBER; -- 5132302
58604 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
58605
58606 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
58607
58608 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
58609 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
58610
58611 ---------------------------------------------------------------------------------------------------------------
58612
58613
58614 --
58615 -- bulk performance
58616 --
58617 l_balance_type_code VARCHAR2(1);
58618 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
58619 l_log_module VARCHAR2(240);
58620
58621 --
58622 -- Upgrade strategy
58623 --
58624 l_actual_upg_option VARCHAR2(1);
58625 l_enc_upg_option VARCHAR2(1);
58626
58627 --
58628 BEGIN
58629 --
58630 IF g_log_enabled THEN
58631 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_122';
58632 END IF;
58633 --
58634 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58635
58636 trace
58637 (p_msg => 'BEGIN of AcctLineType_122'
58638 ,p_level => C_LEVEL_PROCEDURE
58639 ,p_module => l_log_module);
58640
58641 END IF;
58642 --
58643 l_component_type := 'AMB_JLT';
58644 l_component_code := 'PA_RECLASS_DEST';
58645 l_component_type_code := 'S';
58646 l_component_appl_id := 275;
58647 l_amb_context_code := 'DEFAULT';
58648 l_entity_code := 'EXPENDITURES';
58649 l_event_class_code := 'PRVDR_RECVR_RECLASS';
58653 --
58650 l_event_type_code := 'PRVDR_RECVR_RECLASS_ALL';
58651 l_line_definition_owner_code := 'S';
58652 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
58654 l_balance_type_code := 'A';
58655 l_segment := NULL;
58656 l_ccid := NULL;
58657 l_adr_transaction_coa_id := NULL;
58658 l_adr_accounting_coa_id := NULL;
58659 l_adr_flexfield_segment_code := NULL;
58660 l_adr_flex_value_set_id := NULL;
58661 l_adr_value_type_code := NULL;
58662 l_adr_value_combination_id := NULL;
58663 l_adr_value_segment_code := NULL;
58664
58665 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
58666 l_bflow_class_code := ''; -- 4219869 Business Flow
58667 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
58668 l_budgetary_control_flag := 'N';
58669
58670 l_bflow_applied_to_amt_idx := NULL; -- 5132302
58671 l_bflow_applied_to_amt := NULL; -- 5132302
58672 l_entered_amt_idx := NULL; -- 4262811
58673 l_accted_amt_idx := NULL; -- 4262811
58674 l_acc_rev_flag := NULL; -- 4262811
58675 l_accrual_line_num := NULL; -- 4262811
58676 l_tmp_amt := NULL; -- 4262811
58677 --
58678
58679 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
58680 l_balance_type_code <> 'B' THEN
58681
58682 --
58683 XLA_AE_LINES_PKG.SetNewLine;
58684
58685 p_balance_type_code := l_balance_type_code;
58686 -- set the flag so later we will know whether the gain loss line needs to be created
58687
58688 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
58689 p_actual_flag :='A';
58690 END IF;
58691
58692 --
58693 -- bulk performance
58694 --
58695 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
58696 p_header_num => 0); -- 4262811
58697 --
58698 -- set accounting line options
58699 --
58700 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
58701 p_natural_side_code => 'D'
58702 , p_gain_or_loss_flag => 'N'
58703 , p_gl_transfer_mode_code => 'S'
58704 , p_acct_entry_type_code => 'A'
58705 , p_switch_side_flag => 'Y'
58706 , p_merge_duplicate_code => 'N'
58707 );
58708 --
58709 l_acc_rev_natural_side_code := 'C'; -- 4262811
58710 --
58711 --
58712 -- set accounting line type info
58713 --
58714 xla_ae_lines_pkg.SetAcctLineType
58715 (p_component_type => l_component_type
58716 ,p_event_type_code => l_event_type_code
58717 ,p_line_definition_owner_code => l_line_definition_owner_code
58718 ,p_line_definition_code => l_line_definition_code
58719 ,p_accounting_line_code => l_component_code
58720 ,p_accounting_line_type_code => l_component_type_code
58721 ,p_accounting_line_appl_id => l_component_appl_id
58722 ,p_amb_context_code => l_amb_context_code
58723 ,p_entity_code => l_entity_code
58724 ,p_event_class_code => l_event_class_code);
58725 --
58726 -- set accounting class
58727 --
58728 xla_ae_lines_pkg.SetAcctClass(
58729 p_accounting_class_code => 'RECLASS_DESTINATION'
58730 , p_ae_header_id => l_ae_header_id
58731 );
58732
58733 --
58734 -- set rounding class
58735 --
58736 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
58737 'RECLASS_DESTINATION';
58738
58739 --
58740 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
58741 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
58742 --
58743 -- bulk performance
58744 --
58745 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
58746
58747 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
58748 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
58749
58750 -- 4955764
58751 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58752 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
58753
58754 -- 4458381 Public Sector Enh
58755
58756 --
58757 -- set accounting attributes for the line type
58758 --
58759 l_entered_amt_idx := 22;
58760 l_accted_amt_idx := 27;
58761 l_bflow_applied_to_amt_idx := NULL; -- 5132302
58762 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
58763 l_rec_acct_attrs.array_char_value(1) := p_source_23;
58764 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
58765 l_rec_acct_attrs.array_char_value(2) := p_source_24;
58766 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
58767 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_14);
58768 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
58769 l_rec_acct_attrs.array_num_value(4) := p_source_42;
58770 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
58771 l_rec_acct_attrs.array_char_value(5) := p_source_26;
58772 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
58773 l_rec_acct_attrs.array_num_value(6) := p_source_43;
58774 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
58775 l_rec_acct_attrs.array_date_value(7) := p_source_28;
58776 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
58780 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
58777 l_rec_acct_attrs.array_num_value(8) := p_source_29;
58778 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
58779 l_rec_acct_attrs.array_char_value(9) := p_source_30;
58781 l_rec_acct_attrs.array_char_value(10) := p_source_31;
58782 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
58783 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_12);
58784 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
58785 l_rec_acct_attrs.array_num_value(12) := p_source_42;
58786 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
58787 l_rec_acct_attrs.array_char_value(13) := p_source_26;
58788 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
58789 l_rec_acct_attrs.array_num_value(14) := p_source_43;
58790 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
58791 l_rec_acct_attrs.array_date_value(15) := p_source_28;
58792 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
58793 l_rec_acct_attrs.array_num_value(16) := p_source_29;
58794 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
58795 l_rec_acct_attrs.array_char_value(17) := p_source_30;
58796 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
58797 l_rec_acct_attrs.array_char_value(18) := p_source_32;
58798 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
58799 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
58800 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
58801 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
58802 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
58803 l_rec_acct_attrs.array_char_value(21) := p_source_35;
58804 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
58805 l_rec_acct_attrs.array_num_value(22) := p_source_42;
58806 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
58807 l_rec_acct_attrs.array_char_value(23) := p_source_26;
58808 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
58809 l_rec_acct_attrs.array_date_value(24) := p_source_28;
58810 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
58811 l_rec_acct_attrs.array_num_value(25) := p_source_29;
58812 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
58813 l_rec_acct_attrs.array_char_value(26) := p_source_30;
58814 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
58815 l_rec_acct_attrs.array_num_value(27) := p_source_43;
58816 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
58817 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
58818 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
58819 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
58820 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
58821 l_rec_acct_attrs.array_char_value(30) := p_source_35;
58822
58823 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
58824 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
58825
58826 ---------------------------------------------------------------------------------------------------------------
58827 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
58828 ---------------------------------------------------------------------------------------------------------------
58829 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
58830
58831 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58832 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58833
58834 IF xla_accounting_cache_pkg.GetValueChar
58835 (p_source_code => 'LEDGER_CATEGORY_CODE'
58836 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
58837 AND l_bflow_method_code = 'PRIOR_ENTRY'
58838 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
58839 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
58840 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
58841 )
58842 THEN
58843 xla_ae_lines_pkg.BflowUpgEntry
58844 (p_business_method_code => l_bflow_method_code
58845 ,p_business_class_code => l_bflow_class_code
58846 ,p_balance_type => l_balance_type_code);
58847 ELSE
58848 NULL;
58849 -- No business flow processing for business flow method of NONE.
58850 END IF;
58851
58852 --
58853 -- call analytical criteria
58854 --
58855
58856 --
58857 -- call description
58858 --
58859 -- No description or it is inherited.
58860 --
58861 -- call ADRs
58862 -- Bug 4922099
58863 --
58864 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58865 (NVL(l_actual_upg_option, 'N') = 'O') OR
58866 (NVL(l_enc_upg_option, 'N') = 'O')
58867 )
58868 THEN
58869 NULL;
58870 --
58871 --
58872
58873 l_ccid := AcctDerRule_19(
58874 p_application_id => p_application_id
58875 , p_ae_header_id => l_ae_header_id
58876 , p_source_5 => p_source_5
58877 , p_source_12 => p_source_12
58878 , p_source_13 => p_source_13
58879 , x_transaction_coa_id => l_adr_transaction_coa_id
58880 , x_accounting_coa_id => l_adr_accounting_coa_id
58881 , x_value_type_code => l_adr_value_type_code
58882 , p_side => 'NA'
58883 );
58884
58885 xla_ae_lines_pkg.set_ccid(
58886 p_code_combination_id => l_ccid
58890 , p_adr_code => 'PA_RECLASS_DEST_ACCT_RULE'
58887 , p_value_type_code => l_adr_value_type_code
58888 , p_transaction_coa_id => l_adr_transaction_coa_id
58889 , p_accounting_coa_id => l_adr_accounting_coa_id
58891 , p_adr_type_code => 'S'
58892 , p_component_type => l_component_type
58893 , p_component_code => l_component_code
58894 , p_component_type_code => l_component_type_code
58895 , p_component_appl_id => l_component_appl_id
58896 , p_amb_context_code => l_amb_context_code
58897 , p_side => 'NA'
58898 );
58899
58900
58901 --
58902 --
58903 END IF;
58904 --
58905 -- Bug 4922099
58906 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
58907 (NVL(l_enc_upg_option, 'N') = 'O')
58908 ) AND
58909 (l_bflow_method_code = 'PRIOR_ENTRY')
58910 )
58911 THEN
58912 IF
58913 --
58914 1 = 2
58915 --
58916 THEN
58917 xla_accounting_err_pkg.build_message
58918 (p_appli_s_name => 'XLA'
58919 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58920 ,p_token_1 => 'LINE_NUMBER'
58921 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
58922 ,p_token_2 => 'LINE_TYPE_NAME'
58923 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
58924 l_component_type
58925 ,l_component_code
58926 ,l_component_type_code
58927 ,l_component_appl_id
58928 ,l_amb_context_code
58929 ,l_entity_code
58930 ,l_event_class_code
58931 )
58932 ,p_token_3 => 'OWNER'
58933 ,p_value_3 => xla_lookups_pkg.get_meaning(
58934 p_lookup_type => 'XLA_OWNER_TYPE'
58935 ,p_lookup_code => l_component_type_code
58936 )
58937 ,p_token_4 => 'PRODUCT_NAME'
58938 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
58939 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
58940 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
58941 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
58942 ,p_ae_header_id => NULL
58943 );
58944
58945 IF (C_LEVEL_ERROR>= g_log_level) THEN
58946 trace
58947 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58948 ,p_level => C_LEVEL_ERROR
58949 ,p_module => l_log_module);
58950 END IF;
58951 END IF;
58952 END IF;
58953 --
58954 --
58955 ------------------------------------------------------------------------------------------------
58956 -- 4219869 Business Flow
58957 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
58958 -- Prior Entry. Currently, the following code is always generated.
58959 ------------------------------------------------------------------------------------------------
58960 XLA_AE_LINES_PKG.ValidateCurrentLine;
58961
58962 ------------------------------------------------------------------------------------
58963 -- 4219869 Business Flow
58964 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
58965 ------------------------------------------------------------------------------------
58966 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58967
58968 ----------------------------------------------------------------------------------
58969 -- 4219869 Business Flow
58970 -- Update journal entry status -- Need to generate this within IF <condition>
58971 ----------------------------------------------------------------------------------
58972 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58973 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
58974 ,p_balance_type_code => l_balance_type_code
58975 );
58976
58977 -------------------------------------------------------------------------------------------
58978 -- 4262811 - Generate the Accrual Reversal lines
58979 -------------------------------------------------------------------------------------------
58980 BEGIN
58981 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
58982 (g_array_event(p_event_id).array_value_num('header_index'));
58983 IF l_acc_rev_flag IS NULL THEN
58984 l_acc_rev_flag := 'N';
58985 END IF;
58986 EXCEPTION
58987 WHEN OTHERS THEN
58988 l_acc_rev_flag := 'N';
58989 END;
58990 --
58991 IF (l_acc_rev_flag = 'Y') THEN
58992
58996 ------------------------------------------------------------------------------------------
58993 -- 4645092 ------------------------------------------------------------------------------
58994 -- To allow MPA report to determine if it should generate report process
58995 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
58997
58998 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
58999 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
59000
59001 --
59002 -- Update the line information that should be overwritten
59003 --
59004 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
59005 p_header_num => 1);
59006 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
59007
59008 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
59009
59010 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
59011 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
59012 END IF;
59013
59014 --
59015 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
59016 --
59017 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
59018 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
59019 ELSE
59020 ---------------------------------------------------------------------------------------------------
59021 -- 4262811a Switch Sign
59022 ---------------------------------------------------------------------------------------------------
59023 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
59024 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59025 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59026 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59027 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59028 -- 5132302
59029 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
59030 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59031
59032 END IF;
59033
59034 -- 4955764
59035 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59036 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
59037
59038
59039 XLA_AE_LINES_PKG.ValidateCurrentLine;
59040 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59041
59042 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59043 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
59044 ,p_balance_type_code => l_balance_type_code);
59045
59046 END IF;
59047
59048 -----------------------------------------------------------------------------------------
59049 -- 4262811 Multiperiod Accounting
59050 -----------------------------------------------------------------------------------------
59051 -- No MPA option is assigned.
59052
59053
59054 END IF;
59055 --
59056
59057 --
59058 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59059 trace
59060 (p_msg => 'END of AcctLineType_122'
59061 ,p_level => C_LEVEL_PROCEDURE
59062 ,p_module => l_log_module);
59063 END IF;
59064 --
59065 EXCEPTION
59066 WHEN xla_exceptions_pkg.application_exception THEN
59067 RAISE;
59068 WHEN OTHERS THEN
59069 xla_exceptions_pkg.raise_message
59070 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_122');
59071 END AcctLineType_122;
59072 --
59073
59074 ---------------------------------------
59075 --
59076 -- PRIVATE FUNCTION
59077 -- AcctLineType_123
59078 --
59079 ---------------------------------------
59080 PROCEDURE AcctLineType_123 (
59081 p_application_id IN NUMBER
59082 ,p_event_id IN NUMBER
59083 ,p_calculate_acctd_flag IN VARCHAR2
59084 ,p_calculate_g_l_flag IN VARCHAR2
59085 ,p_actual_flag IN OUT VARCHAR2
59086 ,p_balance_type_code OUT VARCHAR2
59087 ,p_gain_or_loss_ref OUT VARCHAR2
59088
59089 --Allow Account Override Flag
59090 , p_source_5 IN VARCHAR2
59091 --Provider Cost Destination CCID
59092 , p_source_12 IN NUMBER
59093 --Adjustment Provider Cost Destination CCID
59094 , p_source_13 IN NUMBER
59095 --Provider Cost Source CCID
59096 , p_source_14 IN NUMBER
59097 --Reversing Line Flag
59098 , p_source_23 IN VARCHAR2
59099 --Actual Upgrade Credit Accounting Class
59100 , p_source_24 IN VARCHAR2
59101 --Entered Currency Code
59102 , p_source_26 IN VARCHAR2
59103 --Exchange Rate Date
59104 , p_source_28 IN DATE
59105 --Exchange Rate
59106 , p_source_29 IN NUMBER
59107 --Exchange Rate Type
59108 , p_source_30 IN VARCHAR2
59109 --Actual Upgrade Debit Accounting Class
59110 , p_source_31 IN VARCHAR2
59111 --Use Actuals Upgrade Attributes Flag
59112 , p_source_32 IN VARCHAR2
59113 --Expenditure Item ID
59114 , p_source_33 IN NUMBER
59115 --Cost Distribution Line Number
59116 , p_source_34 IN NUMBER
59117 --Line Type
59118 , p_source_35 IN VARCHAR2
59119 , p_source_35_meaning IN VARCHAR2
59120 --Reversed Line Number
59121 , p_source_36 IN NUMBER
59125 , p_source_43 IN NUMBER
59122 --Entered Amount
59123 , p_source_42 IN NUMBER
59124 --Accounted Amount
59126 )
59127 IS
59128
59129 l_component_type VARCHAR2(80);
59130 l_component_code VARCHAR2(30);
59131 l_component_type_code VARCHAR2(1);
59132 l_component_appl_id INTEGER;
59133 l_amb_context_code VARCHAR2(30);
59134 l_entity_code VARCHAR2(30);
59135 l_event_class_code VARCHAR2(30);
59136 l_ae_header_id NUMBER;
59137 l_event_type_code VARCHAR2(30);
59138 l_line_definition_code VARCHAR2(30);
59139 l_line_definition_owner_code VARCHAR2(1);
59140 --
59141 -- adr variables
59142 l_segment VARCHAR2(30);
59143 l_ccid NUMBER;
59144 l_adr_transaction_coa_id NUMBER;
59145 l_adr_accounting_coa_id NUMBER;
59146 l_adr_flexfield_segment_code VARCHAR2(30);
59147 l_adr_flex_value_set_id NUMBER;
59148 l_adr_value_type_code VARCHAR2(30);
59149 l_adr_value_combination_id NUMBER;
59150 l_adr_value_segment_code VARCHAR2(30);
59151
59152 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
59153 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
59154 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
59155 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
59156
59157 -- 4262811 Variables ------------------------------------------------------------------------------------------
59158 l_entered_amt_idx NUMBER;
59159 l_accted_amt_idx NUMBER;
59160 l_acc_rev_flag VARCHAR2(1);
59161 l_accrual_line_num NUMBER;
59162 l_tmp_amt NUMBER;
59163 l_acc_rev_natural_side_code VARCHAR2(1);
59164
59165 l_num_entries NUMBER;
59166 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
59167 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
59168 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
59169 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
59170 l_recog_line_1 NUMBER;
59171 l_recog_line_2 NUMBER;
59172
59173 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
59174 l_bflow_applied_to_amt NUMBER; -- 5132302
59175 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
59176
59177 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
59178
59179 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
59180 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
59181
59182 ---------------------------------------------------------------------------------------------------------------
59183
59184
59185 --
59186 -- bulk performance
59187 --
59188 l_balance_type_code VARCHAR2(1);
59189 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
59190 l_log_module VARCHAR2(240);
59191
59192 --
59193 -- Upgrade strategy
59194 --
59195 l_actual_upg_option VARCHAR2(1);
59196 l_enc_upg_option VARCHAR2(1);
59197
59198 --
59199 BEGIN
59200 --
59201 IF g_log_enabled THEN
59202 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_123';
59203 END IF;
59204 --
59205 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59206
59207 trace
59208 (p_msg => 'BEGIN of AcctLineType_123'
59209 ,p_level => C_LEVEL_PROCEDURE
59210 ,p_module => l_log_module);
59211
59212 END IF;
59213 --
59214 l_component_type := 'AMB_JLT';
59215 l_component_code := 'PA_RECLASS_DEST_ADJ';
59216 l_component_type_code := 'S';
59217 l_component_appl_id := 275;
59218 l_amb_context_code := 'DEFAULT';
59219 l_entity_code := 'EXPENDITURES';
59220 l_event_class_code := 'PRVDR_RECVR_RECLASS_ADJ';
59221 l_event_type_code := 'PRVDR_RECVR_RECLASS_ADJ_ALL';
59222 l_line_definition_owner_code := 'S';
59223 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
59224 --
59225 l_balance_type_code := 'A';
59226 l_segment := NULL;
59227 l_ccid := NULL;
59228 l_adr_transaction_coa_id := NULL;
59229 l_adr_accounting_coa_id := NULL;
59230 l_adr_flexfield_segment_code := NULL;
59231 l_adr_flex_value_set_id := NULL;
59232 l_adr_value_type_code := NULL;
59233 l_adr_value_combination_id := NULL;
59234 l_adr_value_segment_code := NULL;
59235
59236 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
59237 l_bflow_class_code := ''; -- 4219869 Business Flow
59238 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
59239 l_budgetary_control_flag := 'N';
59240
59241 l_bflow_applied_to_amt_idx := NULL; -- 5132302
59242 l_bflow_applied_to_amt := NULL; -- 5132302
59243 l_entered_amt_idx := NULL; -- 4262811
59244 l_accted_amt_idx := NULL; -- 4262811
59245 l_acc_rev_flag := NULL; -- 4262811
59246 l_accrual_line_num := NULL; -- 4262811
59247 l_tmp_amt := NULL; -- 4262811
59248 --
59249
59250 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
59251 l_balance_type_code <> 'B' THEN
59252
59253 --
59254 XLA_AE_LINES_PKG.SetNewLine;
59255
59256 p_balance_type_code := l_balance_type_code;
59257 -- set the flag so later we will know whether the gain loss line needs to be created
59258
59262
59259 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
59260 p_actual_flag :='A';
59261 END IF;
59263 --
59264 -- bulk performance
59265 --
59266 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
59267 p_header_num => 0); -- 4262811
59268 --
59269 -- set accounting line options
59270 --
59271 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
59272 p_natural_side_code => 'D'
59273 , p_gain_or_loss_flag => 'N'
59274 , p_gl_transfer_mode_code => 'S'
59275 , p_acct_entry_type_code => 'A'
59276 , p_switch_side_flag => 'Y'
59277 , p_merge_duplicate_code => 'N'
59278 );
59279 --
59280 l_acc_rev_natural_side_code := 'C'; -- 4262811
59281 --
59282 --
59283 -- set accounting line type info
59284 --
59285 xla_ae_lines_pkg.SetAcctLineType
59286 (p_component_type => l_component_type
59287 ,p_event_type_code => l_event_type_code
59288 ,p_line_definition_owner_code => l_line_definition_owner_code
59289 ,p_line_definition_code => l_line_definition_code
59290 ,p_accounting_line_code => l_component_code
59291 ,p_accounting_line_type_code => l_component_type_code
59292 ,p_accounting_line_appl_id => l_component_appl_id
59293 ,p_amb_context_code => l_amb_context_code
59294 ,p_entity_code => l_entity_code
59295 ,p_event_class_code => l_event_class_code);
59296 --
59297 -- set accounting class
59298 --
59299 xla_ae_lines_pkg.SetAcctClass(
59300 p_accounting_class_code => 'RECLASS_DESTINATION'
59301 , p_ae_header_id => l_ae_header_id
59302 );
59303
59304 --
59305 -- set rounding class
59306 --
59307 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
59308 'RECLASS_DESTINATION';
59309
59310 --
59311 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
59312 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
59313 --
59314 -- bulk performance
59315 --
59316 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
59317
59318 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
59319 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
59320
59321 -- 4955764
59322 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59323 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
59324
59325 -- 4458381 Public Sector Enh
59326
59327 --
59328 -- set accounting attributes for the line type
59329 --
59330 l_entered_amt_idx := 22;
59331 l_accted_amt_idx := 27;
59332 l_bflow_applied_to_amt_idx := NULL; -- 5132302
59333 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
59334 l_rec_acct_attrs.array_char_value(1) := p_source_23;
59335 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
59336 l_rec_acct_attrs.array_char_value(2) := p_source_24;
59337 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
59338 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_14);
59339 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
59340 l_rec_acct_attrs.array_num_value(4) := p_source_42;
59341 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
59342 l_rec_acct_attrs.array_char_value(5) := p_source_26;
59343 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
59344 l_rec_acct_attrs.array_num_value(6) := p_source_43;
59345 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
59346 l_rec_acct_attrs.array_date_value(7) := p_source_28;
59347 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
59348 l_rec_acct_attrs.array_num_value(8) := p_source_29;
59349 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
59350 l_rec_acct_attrs.array_char_value(9) := p_source_30;
59351 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
59352 l_rec_acct_attrs.array_char_value(10) := p_source_31;
59353 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
59354 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_12);
59355 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
59356 l_rec_acct_attrs.array_num_value(12) := p_source_42;
59357 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
59358 l_rec_acct_attrs.array_char_value(13) := p_source_26;
59359 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
59360 l_rec_acct_attrs.array_num_value(14) := p_source_43;
59361 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
59362 l_rec_acct_attrs.array_date_value(15) := p_source_28;
59363 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
59364 l_rec_acct_attrs.array_num_value(16) := p_source_29;
59365 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
59366 l_rec_acct_attrs.array_char_value(17) := p_source_30;
59367 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
59368 l_rec_acct_attrs.array_char_value(18) := p_source_32;
59369 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
59370 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
59371 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
59372 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
59376 l_rec_acct_attrs.array_num_value(22) := p_source_42;
59373 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
59374 l_rec_acct_attrs.array_char_value(21) := p_source_35;
59375 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
59377 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
59378 l_rec_acct_attrs.array_char_value(23) := p_source_26;
59379 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
59380 l_rec_acct_attrs.array_date_value(24) := p_source_28;
59381 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
59382 l_rec_acct_attrs.array_num_value(25) := p_source_29;
59383 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
59384 l_rec_acct_attrs.array_char_value(26) := p_source_30;
59385 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
59386 l_rec_acct_attrs.array_num_value(27) := p_source_43;
59387 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
59388 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
59389 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
59390 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
59391 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
59392 l_rec_acct_attrs.array_char_value(30) := p_source_35;
59393
59394 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
59395 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
59396
59397 ---------------------------------------------------------------------------------------------------------------
59398 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
59399 ---------------------------------------------------------------------------------------------------------------
59400 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
59401
59402 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59403 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59404
59405 IF xla_accounting_cache_pkg.GetValueChar
59406 (p_source_code => 'LEDGER_CATEGORY_CODE'
59407 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
59408 AND l_bflow_method_code = 'PRIOR_ENTRY'
59409 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
59410 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
59411 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
59412 )
59413 THEN
59414 xla_ae_lines_pkg.BflowUpgEntry
59415 (p_business_method_code => l_bflow_method_code
59416 ,p_business_class_code => l_bflow_class_code
59417 ,p_balance_type => l_balance_type_code);
59418 ELSE
59419 NULL;
59420 -- No business flow processing for business flow method of NONE.
59421 END IF;
59422
59423 --
59424 -- call analytical criteria
59425 --
59426
59427 --
59428 -- call description
59429 --
59430 -- No description or it is inherited.
59431 --
59432 -- call ADRs
59433 -- Bug 4922099
59434 --
59435 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59436 (NVL(l_actual_upg_option, 'N') = 'O') OR
59437 (NVL(l_enc_upg_option, 'N') = 'O')
59438 )
59439 THEN
59440 NULL;
59441 --
59442 --
59443
59444 l_ccid := AcctDerRule_20(
59445 p_application_id => p_application_id
59446 , p_ae_header_id => l_ae_header_id
59447 , p_source_5 => p_source_5
59448 , p_source_13 => p_source_13
59449 , x_transaction_coa_id => l_adr_transaction_coa_id
59450 , x_accounting_coa_id => l_adr_accounting_coa_id
59451 , x_value_type_code => l_adr_value_type_code
59452 , p_side => 'NA'
59453 );
59454
59455 xla_ae_lines_pkg.set_ccid(
59456 p_code_combination_id => l_ccid
59457 , p_value_type_code => l_adr_value_type_code
59458 , p_transaction_coa_id => l_adr_transaction_coa_id
59459 , p_accounting_coa_id => l_adr_accounting_coa_id
59460 , p_adr_code => 'PA_RECLASS_DEST_ADJ_ACCT_RULE'
59461 , p_adr_type_code => 'S'
59462 , p_component_type => l_component_type
59463 , p_component_code => l_component_code
59464 , p_component_type_code => l_component_type_code
59465 , p_component_appl_id => l_component_appl_id
59466 , p_amb_context_code => l_amb_context_code
59467 , p_side => 'NA'
59468 );
59469
59470
59471 --
59472 --
59473 END IF;
59474 --
59475 -- Bug 4922099
59476 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
59477 (NVL(l_enc_upg_option, 'N') = 'O')
59478 ) AND
59479 (l_bflow_method_code = 'PRIOR_ENTRY')
59480 )
59481 THEN
59482 IF
59483 --
59484 1 = 2
59485 --
59486 THEN
59487 xla_accounting_err_pkg.build_message
59488 (p_appli_s_name => 'XLA'
59489 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59490 ,p_token_1 => 'LINE_NUMBER'
59491 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
59492 ,p_token_2 => 'LINE_TYPE_NAME'
59493 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
59497 ,l_component_appl_id
59494 l_component_type
59495 ,l_component_code
59496 ,l_component_type_code
59498 ,l_amb_context_code
59499 ,l_entity_code
59500 ,l_event_class_code
59501 )
59502 ,p_token_3 => 'OWNER'
59503 ,p_value_3 => xla_lookups_pkg.get_meaning(
59504 p_lookup_type => 'XLA_OWNER_TYPE'
59505 ,p_lookup_code => l_component_type_code
59506 )
59507 ,p_token_4 => 'PRODUCT_NAME'
59508 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
59509 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
59510 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
59511 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
59512 ,p_ae_header_id => NULL
59513 );
59514
59515 IF (C_LEVEL_ERROR>= g_log_level) THEN
59516 trace
59517 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59518 ,p_level => C_LEVEL_ERROR
59519 ,p_module => l_log_module);
59520 END IF;
59521 END IF;
59522 END IF;
59523 --
59524 --
59525 ------------------------------------------------------------------------------------------------
59526 -- 4219869 Business Flow
59527 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
59528 -- Prior Entry. Currently, the following code is always generated.
59529 ------------------------------------------------------------------------------------------------
59530 XLA_AE_LINES_PKG.ValidateCurrentLine;
59531
59532 ------------------------------------------------------------------------------------
59533 -- 4219869 Business Flow
59534 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
59535 ------------------------------------------------------------------------------------
59536 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59537
59538 ----------------------------------------------------------------------------------
59539 -- 4219869 Business Flow
59540 -- Update journal entry status -- Need to generate this within IF <condition>
59541 ----------------------------------------------------------------------------------
59542 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59543 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
59544 ,p_balance_type_code => l_balance_type_code
59545 );
59546
59547 -------------------------------------------------------------------------------------------
59548 -- 4262811 - Generate the Accrual Reversal lines
59549 -------------------------------------------------------------------------------------------
59550 BEGIN
59551 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
59552 (g_array_event(p_event_id).array_value_num('header_index'));
59553 IF l_acc_rev_flag IS NULL THEN
59554 l_acc_rev_flag := 'N';
59555 END IF;
59556 EXCEPTION
59557 WHEN OTHERS THEN
59558 l_acc_rev_flag := 'N';
59559 END;
59560 --
59561 IF (l_acc_rev_flag = 'Y') THEN
59562
59563 -- 4645092 ------------------------------------------------------------------------------
59564 -- To allow MPA report to determine if it should generate report process
59565 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
59566 ------------------------------------------------------------------------------------------
59567
59568 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
59569 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
59570
59571 --
59572 -- Update the line information that should be overwritten
59573 --
59574 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
59575 p_header_num => 1);
59576 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
59577
59578 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
59579
59580 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
59581 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
59582 END IF;
59583
59584 --
59585 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
59586 --
59587 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
59588 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
59589 ELSE
59590 ---------------------------------------------------------------------------------------------------
59591 -- 4262811a Switch Sign
59595 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59592 ---------------------------------------------------------------------------------------------------
59593 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
59594 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59596 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59597 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59598 -- 5132302
59599 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
59600 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59601
59602 END IF;
59603
59604 -- 4955764
59605 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59606 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
59607
59608
59609 XLA_AE_LINES_PKG.ValidateCurrentLine;
59610 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59611
59612 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59613 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
59614 ,p_balance_type_code => l_balance_type_code);
59615
59616 END IF;
59617
59618 -----------------------------------------------------------------------------------------
59619 -- 4262811 Multiperiod Accounting
59620 -----------------------------------------------------------------------------------------
59621 -- No MPA option is assigned.
59622
59623
59624 END IF;
59625 --
59626
59627 --
59628 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59629 trace
59630 (p_msg => 'END of AcctLineType_123'
59631 ,p_level => C_LEVEL_PROCEDURE
59632 ,p_module => l_log_module);
59633 END IF;
59634 --
59635 EXCEPTION
59636 WHEN xla_exceptions_pkg.application_exception THEN
59637 RAISE;
59638 WHEN OTHERS THEN
59639 xla_exceptions_pkg.raise_message
59640 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_123');
59641 END AcctLineType_123;
59642 --
59643
59644 ---------------------------------------
59645 --
59646 -- PRIVATE FUNCTION
59647 -- AcctLineType_124
59648 --
59649 ---------------------------------------
59650 PROCEDURE AcctLineType_124 (
59651 p_application_id IN NUMBER
59652 ,p_event_id IN NUMBER
59653 ,p_calculate_acctd_flag IN VARCHAR2
59654 ,p_calculate_g_l_flag IN VARCHAR2
59655 ,p_actual_flag IN OUT VARCHAR2
59656 ,p_balance_type_code OUT VARCHAR2
59657 ,p_gain_or_loss_ref OUT VARCHAR2
59658
59659 --Allow Account Override Flag
59660 , p_source_5 IN VARCHAR2
59661 --Provider Cost Destination CCID
59662 , p_source_12 IN NUMBER
59663 --Provider Cost Source CCID
59664 , p_source_14 IN NUMBER
59665 --Adjustment Provider Cost Source CCID
59666 , p_source_15 IN NUMBER
59667 --Reversing Line Flag
59668 , p_source_23 IN VARCHAR2
59669 --Actual Upgrade Credit Accounting Class
59670 , p_source_24 IN VARCHAR2
59671 --Entered Currency Code
59672 , p_source_26 IN VARCHAR2
59673 --Exchange Rate Date
59674 , p_source_28 IN DATE
59675 --Exchange Rate
59676 , p_source_29 IN NUMBER
59677 --Exchange Rate Type
59678 , p_source_30 IN VARCHAR2
59679 --Actual Upgrade Debit Accounting Class
59680 , p_source_31 IN VARCHAR2
59681 --Use Actuals Upgrade Attributes Flag
59682 , p_source_32 IN VARCHAR2
59683 --Expenditure Item ID
59684 , p_source_33 IN NUMBER
59685 --Cost Distribution Line Number
59686 , p_source_34 IN NUMBER
59687 --Line Type
59688 , p_source_35 IN VARCHAR2
59689 , p_source_35_meaning IN VARCHAR2
59690 --Reversed Line Number
59691 , p_source_36 IN NUMBER
59692 --Entered Amount
59693 , p_source_42 IN NUMBER
59694 --Accounted Amount
59695 , p_source_43 IN NUMBER
59696 )
59697 IS
59698
59699 l_component_type VARCHAR2(80);
59700 l_component_code VARCHAR2(30);
59701 l_component_type_code VARCHAR2(1);
59702 l_component_appl_id INTEGER;
59703 l_amb_context_code VARCHAR2(30);
59704 l_entity_code VARCHAR2(30);
59705 l_event_class_code VARCHAR2(30);
59706 l_ae_header_id NUMBER;
59707 l_event_type_code VARCHAR2(30);
59708 l_line_definition_code VARCHAR2(30);
59709 l_line_definition_owner_code VARCHAR2(1);
59710 --
59711 -- adr variables
59712 l_segment VARCHAR2(30);
59713 l_ccid NUMBER;
59714 l_adr_transaction_coa_id NUMBER;
59715 l_adr_accounting_coa_id NUMBER;
59716 l_adr_flexfield_segment_code VARCHAR2(30);
59717 l_adr_flex_value_set_id NUMBER;
59718 l_adr_value_type_code VARCHAR2(30);
59719 l_adr_value_combination_id NUMBER;
59720 l_adr_value_segment_code VARCHAR2(30);
59721
59722 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
59723 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
59724 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
59725 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
59726
59727 -- 4262811 Variables ------------------------------------------------------------------------------------------
59728 l_entered_amt_idx NUMBER;
59729 l_accted_amt_idx NUMBER;
59733 l_acc_rev_natural_side_code VARCHAR2(1);
59730 l_acc_rev_flag VARCHAR2(1);
59731 l_accrual_line_num NUMBER;
59732 l_tmp_amt NUMBER;
59734
59735 l_num_entries NUMBER;
59736 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
59737 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
59738 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
59739 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
59740 l_recog_line_1 NUMBER;
59741 l_recog_line_2 NUMBER;
59742
59743 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
59744 l_bflow_applied_to_amt NUMBER; -- 5132302
59745 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
59746
59747 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
59748
59749 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
59750 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
59751
59752 ---------------------------------------------------------------------------------------------------------------
59753
59754
59755 --
59756 -- bulk performance
59757 --
59758 l_balance_type_code VARCHAR2(1);
59759 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
59760 l_log_module VARCHAR2(240);
59761
59762 --
59763 -- Upgrade strategy
59764 --
59765 l_actual_upg_option VARCHAR2(1);
59766 l_enc_upg_option VARCHAR2(1);
59767
59768 --
59769 BEGIN
59770 --
59771 IF g_log_enabled THEN
59772 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_124';
59773 END IF;
59774 --
59775 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59776
59777 trace
59778 (p_msg => 'BEGIN of AcctLineType_124'
59779 ,p_level => C_LEVEL_PROCEDURE
59780 ,p_module => l_log_module);
59781
59782 END IF;
59783 --
59784 l_component_type := 'AMB_JLT';
59785 l_component_code := 'PA_RECLASS_SOURCE';
59786 l_component_type_code := 'S';
59787 l_component_appl_id := 275;
59788 l_amb_context_code := 'DEFAULT';
59789 l_entity_code := 'EXPENDITURES';
59790 l_event_class_code := 'PRVDR_RECVR_RECLASS';
59791 l_event_type_code := 'PRVDR_RECVR_RECLASS_ALL';
59792 l_line_definition_owner_code := 'S';
59793 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
59794 --
59795 l_balance_type_code := 'A';
59796 l_segment := NULL;
59797 l_ccid := NULL;
59798 l_adr_transaction_coa_id := NULL;
59799 l_adr_accounting_coa_id := NULL;
59800 l_adr_flexfield_segment_code := NULL;
59801 l_adr_flex_value_set_id := NULL;
59802 l_adr_value_type_code := NULL;
59803 l_adr_value_combination_id := NULL;
59804 l_adr_value_segment_code := NULL;
59805
59806 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
59807 l_bflow_class_code := ''; -- 4219869 Business Flow
59808 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
59809 l_budgetary_control_flag := 'N';
59810
59811 l_bflow_applied_to_amt_idx := NULL; -- 5132302
59812 l_bflow_applied_to_amt := NULL; -- 5132302
59813 l_entered_amt_idx := NULL; -- 4262811
59814 l_accted_amt_idx := NULL; -- 4262811
59815 l_acc_rev_flag := NULL; -- 4262811
59816 l_accrual_line_num := NULL; -- 4262811
59817 l_tmp_amt := NULL; -- 4262811
59818 --
59819
59820 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
59821 l_balance_type_code <> 'B' THEN
59822
59823 --
59824 XLA_AE_LINES_PKG.SetNewLine;
59825
59826 p_balance_type_code := l_balance_type_code;
59827 -- set the flag so later we will know whether the gain loss line needs to be created
59828
59829 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
59830 p_actual_flag :='A';
59831 END IF;
59832
59833 --
59834 -- bulk performance
59835 --
59836 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
59837 p_header_num => 0); -- 4262811
59838 --
59839 -- set accounting line options
59840 --
59841 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
59842 p_natural_side_code => 'C'
59843 , p_gain_or_loss_flag => 'N'
59844 , p_gl_transfer_mode_code => 'S'
59845 , p_acct_entry_type_code => 'A'
59846 , p_switch_side_flag => 'Y'
59847 , p_merge_duplicate_code => 'N'
59848 );
59849 --
59850 l_acc_rev_natural_side_code := 'D'; -- 4262811
59851 --
59852 --
59853 -- set accounting line type info
59854 --
59855 xla_ae_lines_pkg.SetAcctLineType
59856 (p_component_type => l_component_type
59857 ,p_event_type_code => l_event_type_code
59858 ,p_line_definition_owner_code => l_line_definition_owner_code
59859 ,p_line_definition_code => l_line_definition_code
59860 ,p_accounting_line_code => l_component_code
59861 ,p_accounting_line_type_code => l_component_type_code
59862 ,p_accounting_line_appl_id => l_component_appl_id
59863 ,p_amb_context_code => l_amb_context_code
59864 ,p_entity_code => l_entity_code
59865 ,p_event_class_code => l_event_class_code);
59866 --
59867 -- set accounting class
59868 --
59872 );
59869 xla_ae_lines_pkg.SetAcctClass(
59870 p_accounting_class_code => 'RECLASS_SOURCE'
59871 , p_ae_header_id => l_ae_header_id
59873
59874 --
59875 -- set rounding class
59876 --
59877 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
59878 'RECLASS_SOURCE';
59879
59880 --
59881 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
59882 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
59883 --
59884 -- bulk performance
59885 --
59886 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
59887
59888 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
59889 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
59890
59891 -- 4955764
59892 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59893 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
59894
59895 -- 4458381 Public Sector Enh
59896
59897 --
59898 -- set accounting attributes for the line type
59899 --
59900 l_entered_amt_idx := 22;
59901 l_accted_amt_idx := 27;
59902 l_bflow_applied_to_amt_idx := NULL; -- 5132302
59903 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
59904 l_rec_acct_attrs.array_char_value(1) := p_source_23;
59905 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
59906 l_rec_acct_attrs.array_char_value(2) := p_source_24;
59907 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
59908 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_14);
59909 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
59910 l_rec_acct_attrs.array_num_value(4) := p_source_42;
59911 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
59912 l_rec_acct_attrs.array_char_value(5) := p_source_26;
59913 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
59914 l_rec_acct_attrs.array_num_value(6) := p_source_43;
59915 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
59916 l_rec_acct_attrs.array_date_value(7) := p_source_28;
59917 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
59918 l_rec_acct_attrs.array_num_value(8) := p_source_29;
59919 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
59920 l_rec_acct_attrs.array_char_value(9) := p_source_30;
59921 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
59922 l_rec_acct_attrs.array_char_value(10) := p_source_31;
59923 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
59924 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_12);
59925 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
59926 l_rec_acct_attrs.array_num_value(12) := p_source_42;
59927 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
59928 l_rec_acct_attrs.array_char_value(13) := p_source_26;
59929 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
59930 l_rec_acct_attrs.array_num_value(14) := p_source_43;
59931 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
59932 l_rec_acct_attrs.array_date_value(15) := p_source_28;
59933 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
59934 l_rec_acct_attrs.array_num_value(16) := p_source_29;
59935 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
59936 l_rec_acct_attrs.array_char_value(17) := p_source_30;
59937 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
59938 l_rec_acct_attrs.array_char_value(18) := p_source_32;
59939 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
59940 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
59941 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
59942 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
59943 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
59944 l_rec_acct_attrs.array_char_value(21) := p_source_35;
59945 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
59946 l_rec_acct_attrs.array_num_value(22) := p_source_42;
59947 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
59948 l_rec_acct_attrs.array_char_value(23) := p_source_26;
59949 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
59950 l_rec_acct_attrs.array_date_value(24) := p_source_28;
59951 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
59952 l_rec_acct_attrs.array_num_value(25) := p_source_29;
59953 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
59954 l_rec_acct_attrs.array_char_value(26) := p_source_30;
59955 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
59956 l_rec_acct_attrs.array_num_value(27) := p_source_43;
59957 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
59958 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
59959 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
59960 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
59961 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
59962 l_rec_acct_attrs.array_char_value(30) := p_source_35;
59963
59964 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
59965 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
59966
59967 ---------------------------------------------------------------------------------------------------------------
59968 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
59972 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59969 ---------------------------------------------------------------------------------------------------------------
59970 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
59971
59973 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59974
59975 IF xla_accounting_cache_pkg.GetValueChar
59976 (p_source_code => 'LEDGER_CATEGORY_CODE'
59977 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
59978 AND l_bflow_method_code = 'PRIOR_ENTRY'
59979 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
59980 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
59981 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
59982 )
59983 THEN
59984 xla_ae_lines_pkg.BflowUpgEntry
59985 (p_business_method_code => l_bflow_method_code
59986 ,p_business_class_code => l_bflow_class_code
59987 ,p_balance_type => l_balance_type_code);
59988 ELSE
59989 NULL;
59990 -- No business flow processing for business flow method of NONE.
59991 END IF;
59992
59993 --
59994 -- call analytical criteria
59995 --
59996
59997 --
59998 -- call description
59999 --
60000 -- No description or it is inherited.
60001 --
60002 -- call ADRs
60003 -- Bug 4922099
60004 --
60005 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60006 (NVL(l_actual_upg_option, 'N') = 'O') OR
60007 (NVL(l_enc_upg_option, 'N') = 'O')
60008 )
60009 THEN
60010 NULL;
60011 --
60012 --
60013
60014 l_ccid := AcctDerRule_21(
60015 p_application_id => p_application_id
60016 , p_ae_header_id => l_ae_header_id
60017 , p_source_5 => p_source_5
60018 , p_source_14 => p_source_14
60019 , p_source_15 => p_source_15
60020 , x_transaction_coa_id => l_adr_transaction_coa_id
60021 , x_accounting_coa_id => l_adr_accounting_coa_id
60022 , x_value_type_code => l_adr_value_type_code
60023 , p_side => 'NA'
60024 );
60025
60026 xla_ae_lines_pkg.set_ccid(
60027 p_code_combination_id => l_ccid
60028 , p_value_type_code => l_adr_value_type_code
60029 , p_transaction_coa_id => l_adr_transaction_coa_id
60030 , p_accounting_coa_id => l_adr_accounting_coa_id
60031 , p_adr_code => 'PA_RECLASS_SOURCE_ACCT_RULE'
60032 , p_adr_type_code => 'S'
60033 , p_component_type => l_component_type
60034 , p_component_code => l_component_code
60035 , p_component_type_code => l_component_type_code
60036 , p_component_appl_id => l_component_appl_id
60037 , p_amb_context_code => l_amb_context_code
60038 , p_side => 'NA'
60039 );
60040
60041
60042 --
60043 --
60044 END IF;
60045 --
60046 -- Bug 4922099
60047 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
60048 (NVL(l_enc_upg_option, 'N') = 'O')
60049 ) AND
60050 (l_bflow_method_code = 'PRIOR_ENTRY')
60051 )
60052 THEN
60053 IF
60054 --
60055 1 = 2
60056 --
60057 THEN
60058 xla_accounting_err_pkg.build_message
60059 (p_appli_s_name => 'XLA'
60060 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60061 ,p_token_1 => 'LINE_NUMBER'
60062 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
60063 ,p_token_2 => 'LINE_TYPE_NAME'
60064 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
60065 l_component_type
60066 ,l_component_code
60067 ,l_component_type_code
60068 ,l_component_appl_id
60069 ,l_amb_context_code
60070 ,l_entity_code
60071 ,l_event_class_code
60072 )
60073 ,p_token_3 => 'OWNER'
60074 ,p_value_3 => xla_lookups_pkg.get_meaning(
60075 p_lookup_type => 'XLA_OWNER_TYPE'
60076 ,p_lookup_code => l_component_type_code
60077 )
60078 ,p_token_4 => 'PRODUCT_NAME'
60079 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
60080 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
60081 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
60082 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
60083 ,p_ae_header_id => NULL
60087 trace
60084 );
60085
60086 IF (C_LEVEL_ERROR>= g_log_level) THEN
60088 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60089 ,p_level => C_LEVEL_ERROR
60090 ,p_module => l_log_module);
60091 END IF;
60092 END IF;
60093 END IF;
60094 --
60095 --
60096 ------------------------------------------------------------------------------------------------
60097 -- 4219869 Business Flow
60098 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
60099 -- Prior Entry. Currently, the following code is always generated.
60100 ------------------------------------------------------------------------------------------------
60101 XLA_AE_LINES_PKG.ValidateCurrentLine;
60102
60103 ------------------------------------------------------------------------------------
60104 -- 4219869 Business Flow
60105 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
60106 ------------------------------------------------------------------------------------
60107 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60108
60109 ----------------------------------------------------------------------------------
60110 -- 4219869 Business Flow
60111 -- Update journal entry status -- Need to generate this within IF <condition>
60112 ----------------------------------------------------------------------------------
60113 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60114 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
60115 ,p_balance_type_code => l_balance_type_code
60116 );
60117
60118 -------------------------------------------------------------------------------------------
60119 -- 4262811 - Generate the Accrual Reversal lines
60120 -------------------------------------------------------------------------------------------
60121 BEGIN
60122 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
60123 (g_array_event(p_event_id).array_value_num('header_index'));
60124 IF l_acc_rev_flag IS NULL THEN
60125 l_acc_rev_flag := 'N';
60126 END IF;
60127 EXCEPTION
60128 WHEN OTHERS THEN
60129 l_acc_rev_flag := 'N';
60130 END;
60131 --
60132 IF (l_acc_rev_flag = 'Y') THEN
60133
60134 -- 4645092 ------------------------------------------------------------------------------
60135 -- To allow MPA report to determine if it should generate report process
60136 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
60137 ------------------------------------------------------------------------------------------
60138
60139 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
60140 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
60141
60142 --
60143 -- Update the line information that should be overwritten
60144 --
60145 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
60146 p_header_num => 1);
60147 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
60148
60149 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
60150
60151 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
60152 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
60153 END IF;
60154
60155 --
60156 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
60157 --
60158 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
60159 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
60160 ELSE
60161 ---------------------------------------------------------------------------------------------------
60162 -- 4262811a Switch Sign
60163 ---------------------------------------------------------------------------------------------------
60164 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
60165 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60166 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60167 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60168 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60169 -- 5132302
60170 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
60171 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60172
60173 END IF;
60174
60175 -- 4955764
60176 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60177 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
60178
60179
60180 XLA_AE_LINES_PKG.ValidateCurrentLine;
60181 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60182
60183 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60184 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
60185 ,p_balance_type_code => l_balance_type_code);
60186
60187 END IF;
60188
60189 -----------------------------------------------------------------------------------------
60190 -- 4262811 Multiperiod Accounting
60191 -----------------------------------------------------------------------------------------
60192 -- No MPA option is assigned.
60193
60194
60195 END IF;
60199 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60196 --
60197
60198 --
60200 trace
60201 (p_msg => 'END of AcctLineType_124'
60202 ,p_level => C_LEVEL_PROCEDURE
60203 ,p_module => l_log_module);
60204 END IF;
60205 --
60206 EXCEPTION
60207 WHEN xla_exceptions_pkg.application_exception THEN
60208 RAISE;
60209 WHEN OTHERS THEN
60210 xla_exceptions_pkg.raise_message
60211 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_124');
60212 END AcctLineType_124;
60213 --
60214
60215 ---------------------------------------
60216 --
60217 -- PRIVATE FUNCTION
60218 -- AcctLineType_125
60219 --
60220 ---------------------------------------
60221 PROCEDURE AcctLineType_125 (
60222 p_application_id IN NUMBER
60223 ,p_event_id IN NUMBER
60224 ,p_calculate_acctd_flag IN VARCHAR2
60225 ,p_calculate_g_l_flag IN VARCHAR2
60226 ,p_actual_flag IN OUT VARCHAR2
60227 ,p_balance_type_code OUT VARCHAR2
60228 ,p_gain_or_loss_ref OUT VARCHAR2
60229
60230 --Allow Account Override Flag
60231 , p_source_5 IN VARCHAR2
60232 --Provider Cost Destination CCID
60233 , p_source_12 IN NUMBER
60234 --Provider Cost Source CCID
60235 , p_source_14 IN NUMBER
60236 --Adjustment Provider Cost Source CCID
60237 , p_source_15 IN NUMBER
60238 --Reversing Line Flag
60239 , p_source_23 IN VARCHAR2
60240 --Actual Upgrade Credit Accounting Class
60241 , p_source_24 IN VARCHAR2
60242 --Entered Currency Code
60243 , p_source_26 IN VARCHAR2
60244 --Exchange Rate Date
60245 , p_source_28 IN DATE
60246 --Exchange Rate
60247 , p_source_29 IN NUMBER
60248 --Exchange Rate Type
60249 , p_source_30 IN VARCHAR2
60250 --Actual Upgrade Debit Accounting Class
60251 , p_source_31 IN VARCHAR2
60252 --Use Actuals Upgrade Attributes Flag
60253 , p_source_32 IN VARCHAR2
60254 --Expenditure Item ID
60255 , p_source_33 IN NUMBER
60256 --Cost Distribution Line Number
60257 , p_source_34 IN NUMBER
60258 --Line Type
60259 , p_source_35 IN VARCHAR2
60260 , p_source_35_meaning IN VARCHAR2
60261 --Reversed Line Number
60262 , p_source_36 IN NUMBER
60263 --Entered Amount
60264 , p_source_42 IN NUMBER
60265 --Accounted Amount
60266 , p_source_43 IN NUMBER
60267 )
60268 IS
60269
60270 l_component_type VARCHAR2(80);
60271 l_component_code VARCHAR2(30);
60272 l_component_type_code VARCHAR2(1);
60273 l_component_appl_id INTEGER;
60274 l_amb_context_code VARCHAR2(30);
60275 l_entity_code VARCHAR2(30);
60276 l_event_class_code VARCHAR2(30);
60277 l_ae_header_id NUMBER;
60278 l_event_type_code VARCHAR2(30);
60279 l_line_definition_code VARCHAR2(30);
60280 l_line_definition_owner_code VARCHAR2(1);
60281 --
60282 -- adr variables
60283 l_segment VARCHAR2(30);
60284 l_ccid NUMBER;
60285 l_adr_transaction_coa_id NUMBER;
60286 l_adr_accounting_coa_id NUMBER;
60287 l_adr_flexfield_segment_code VARCHAR2(30);
60288 l_adr_flex_value_set_id NUMBER;
60289 l_adr_value_type_code VARCHAR2(30);
60290 l_adr_value_combination_id NUMBER;
60291 l_adr_value_segment_code VARCHAR2(30);
60292
60293 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
60294 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
60295 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
60296 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
60297
60298 -- 4262811 Variables ------------------------------------------------------------------------------------------
60299 l_entered_amt_idx NUMBER;
60300 l_accted_amt_idx NUMBER;
60301 l_acc_rev_flag VARCHAR2(1);
60302 l_accrual_line_num NUMBER;
60303 l_tmp_amt NUMBER;
60304 l_acc_rev_natural_side_code VARCHAR2(1);
60305
60306 l_num_entries NUMBER;
60307 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
60308 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
60309 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
60310 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
60311 l_recog_line_1 NUMBER;
60312 l_recog_line_2 NUMBER;
60313
60314 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
60315 l_bflow_applied_to_amt NUMBER; -- 5132302
60316 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
60317
60318 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
60319
60320 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
60321 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
60322
60323 ---------------------------------------------------------------------------------------------------------------
60324
60325
60326 --
60327 -- bulk performance
60328 --
60329 l_balance_type_code VARCHAR2(1);
60330 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
60331 l_log_module VARCHAR2(240);
60332
60333 --
60334 -- Upgrade strategy
60335 --
60336 l_actual_upg_option VARCHAR2(1);
60337 l_enc_upg_option VARCHAR2(1);
60338
60339 --
60340 BEGIN
60341 --
60342 IF g_log_enabled THEN
60346 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60343 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_125';
60344 END IF;
60345 --
60347
60348 trace
60349 (p_msg => 'BEGIN of AcctLineType_125'
60350 ,p_level => C_LEVEL_PROCEDURE
60351 ,p_module => l_log_module);
60352
60353 END IF;
60354 --
60355 l_component_type := 'AMB_JLT';
60356 l_component_code := 'PA_RECLASS_SOURCE_ADJ';
60357 l_component_type_code := 'S';
60358 l_component_appl_id := 275;
60359 l_amb_context_code := 'DEFAULT';
60360 l_entity_code := 'EXPENDITURES';
60361 l_event_class_code := 'PRVDR_RECVR_RECLASS_ADJ';
60362 l_event_type_code := 'PRVDR_RECVR_RECLASS_ADJ_ALL';
60363 l_line_definition_owner_code := 'S';
60364 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
60365 --
60366 l_balance_type_code := 'A';
60367 l_segment := NULL;
60368 l_ccid := NULL;
60369 l_adr_transaction_coa_id := NULL;
60370 l_adr_accounting_coa_id := NULL;
60371 l_adr_flexfield_segment_code := NULL;
60372 l_adr_flex_value_set_id := NULL;
60373 l_adr_value_type_code := NULL;
60374 l_adr_value_combination_id := NULL;
60375 l_adr_value_segment_code := NULL;
60376
60377 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
60378 l_bflow_class_code := ''; -- 4219869 Business Flow
60379 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
60380 l_budgetary_control_flag := 'N';
60381
60382 l_bflow_applied_to_amt_idx := NULL; -- 5132302
60383 l_bflow_applied_to_amt := NULL; -- 5132302
60384 l_entered_amt_idx := NULL; -- 4262811
60385 l_accted_amt_idx := NULL; -- 4262811
60386 l_acc_rev_flag := NULL; -- 4262811
60387 l_accrual_line_num := NULL; -- 4262811
60388 l_tmp_amt := NULL; -- 4262811
60389 --
60390
60391 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
60392 l_balance_type_code <> 'B' THEN
60393
60394 --
60395 XLA_AE_LINES_PKG.SetNewLine;
60396
60397 p_balance_type_code := l_balance_type_code;
60398 -- set the flag so later we will know whether the gain loss line needs to be created
60399
60400 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
60401 p_actual_flag :='A';
60402 END IF;
60403
60404 --
60405 -- bulk performance
60406 --
60407 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
60408 p_header_num => 0); -- 4262811
60409 --
60410 -- set accounting line options
60411 --
60412 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
60413 p_natural_side_code => 'C'
60414 , p_gain_or_loss_flag => 'N'
60415 , p_gl_transfer_mode_code => 'S'
60416 , p_acct_entry_type_code => 'A'
60417 , p_switch_side_flag => 'Y'
60418 , p_merge_duplicate_code => 'N'
60419 );
60420 --
60421 l_acc_rev_natural_side_code := 'D'; -- 4262811
60422 --
60423 --
60424 -- set accounting line type info
60425 --
60426 xla_ae_lines_pkg.SetAcctLineType
60427 (p_component_type => l_component_type
60428 ,p_event_type_code => l_event_type_code
60429 ,p_line_definition_owner_code => l_line_definition_owner_code
60430 ,p_line_definition_code => l_line_definition_code
60431 ,p_accounting_line_code => l_component_code
60432 ,p_accounting_line_type_code => l_component_type_code
60433 ,p_accounting_line_appl_id => l_component_appl_id
60434 ,p_amb_context_code => l_amb_context_code
60435 ,p_entity_code => l_entity_code
60436 ,p_event_class_code => l_event_class_code);
60437 --
60438 -- set accounting class
60439 --
60440 xla_ae_lines_pkg.SetAcctClass(
60441 p_accounting_class_code => 'RECLASS_SOURCE'
60442 , p_ae_header_id => l_ae_header_id
60443 );
60444
60445 --
60446 -- set rounding class
60447 --
60448 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
60449 'RECLASS_SOURCE';
60450
60451 --
60452 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
60453 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
60454 --
60455 -- bulk performance
60456 --
60457 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
60458
60459 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
60460 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
60461
60462 -- 4955764
60463 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60464 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
60465
60466 -- 4458381 Public Sector Enh
60467
60468 --
60469 -- set accounting attributes for the line type
60470 --
60471 l_entered_amt_idx := 22;
60472 l_accted_amt_idx := 27;
60473 l_bflow_applied_to_amt_idx := NULL; -- 5132302
60474 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
60475 l_rec_acct_attrs.array_char_value(1) := p_source_23;
60476 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
60477 l_rec_acct_attrs.array_char_value(2) := p_source_24;
60481 l_rec_acct_attrs.array_num_value(4) := p_source_42;
60478 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
60479 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_14);
60480 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
60482 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
60483 l_rec_acct_attrs.array_char_value(5) := p_source_26;
60484 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
60485 l_rec_acct_attrs.array_num_value(6) := p_source_43;
60486 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
60487 l_rec_acct_attrs.array_date_value(7) := p_source_28;
60488 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
60489 l_rec_acct_attrs.array_num_value(8) := p_source_29;
60490 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
60491 l_rec_acct_attrs.array_char_value(9) := p_source_30;
60492 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
60493 l_rec_acct_attrs.array_char_value(10) := p_source_31;
60494 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
60495 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_12);
60496 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
60497 l_rec_acct_attrs.array_num_value(12) := p_source_42;
60498 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
60499 l_rec_acct_attrs.array_char_value(13) := p_source_26;
60500 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
60501 l_rec_acct_attrs.array_num_value(14) := p_source_43;
60502 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
60503 l_rec_acct_attrs.array_date_value(15) := p_source_28;
60504 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
60505 l_rec_acct_attrs.array_num_value(16) := p_source_29;
60506 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
60507 l_rec_acct_attrs.array_char_value(17) := p_source_30;
60508 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
60509 l_rec_acct_attrs.array_char_value(18) := p_source_32;
60510 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
60511 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_33);
60512 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
60513 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_34);
60514 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
60515 l_rec_acct_attrs.array_char_value(21) := p_source_35;
60516 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
60517 l_rec_acct_attrs.array_num_value(22) := p_source_42;
60518 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
60519 l_rec_acct_attrs.array_char_value(23) := p_source_26;
60520 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
60521 l_rec_acct_attrs.array_date_value(24) := p_source_28;
60522 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
60523 l_rec_acct_attrs.array_num_value(25) := p_source_29;
60524 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
60525 l_rec_acct_attrs.array_char_value(26) := p_source_30;
60526 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
60527 l_rec_acct_attrs.array_num_value(27) := p_source_43;
60528 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
60529 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_33);
60530 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
60531 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_36);
60532 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
60533 l_rec_acct_attrs.array_char_value(30) := p_source_35;
60534
60535 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
60536 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
60537
60538 ---------------------------------------------------------------------------------------------------------------
60539 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
60540 ---------------------------------------------------------------------------------------------------------------
60541 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
60542
60543 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60544 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60545
60546 IF xla_accounting_cache_pkg.GetValueChar
60547 (p_source_code => 'LEDGER_CATEGORY_CODE'
60548 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
60549 AND l_bflow_method_code = 'PRIOR_ENTRY'
60550 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
60551 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
60552 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
60553 )
60554 THEN
60555 xla_ae_lines_pkg.BflowUpgEntry
60556 (p_business_method_code => l_bflow_method_code
60557 ,p_business_class_code => l_bflow_class_code
60558 ,p_balance_type => l_balance_type_code);
60559 ELSE
60560 NULL;
60561 -- No business flow processing for business flow method of NONE.
60562 END IF;
60563
60564 --
60565 -- call analytical criteria
60566 --
60567
60568 --
60569 -- call description
60570 --
60571 -- No description or it is inherited.
60572 --
60573 -- call ADRs
60574 -- Bug 4922099
60575 --
60576 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60577 (NVL(l_actual_upg_option, 'N') = 'O') OR
60578 (NVL(l_enc_upg_option, 'N') = 'O')
60579 )
60583 --
60580 THEN
60581 NULL;
60582 --
60584
60585 l_ccid := AcctDerRule_22(
60586 p_application_id => p_application_id
60587 , p_ae_header_id => l_ae_header_id
60588 , p_source_5 => p_source_5
60589 , p_source_15 => p_source_15
60590 , x_transaction_coa_id => l_adr_transaction_coa_id
60591 , x_accounting_coa_id => l_adr_accounting_coa_id
60592 , x_value_type_code => l_adr_value_type_code
60593 , p_side => 'NA'
60594 );
60595
60596 xla_ae_lines_pkg.set_ccid(
60597 p_code_combination_id => l_ccid
60598 , p_value_type_code => l_adr_value_type_code
60599 , p_transaction_coa_id => l_adr_transaction_coa_id
60600 , p_accounting_coa_id => l_adr_accounting_coa_id
60601 , p_adr_code => 'PA_RECLASS_SRC_ADJ_ACCT_RULE'
60602 , p_adr_type_code => 'S'
60603 , p_component_type => l_component_type
60604 , p_component_code => l_component_code
60605 , p_component_type_code => l_component_type_code
60606 , p_component_appl_id => l_component_appl_id
60607 , p_amb_context_code => l_amb_context_code
60608 , p_side => 'NA'
60609 );
60610
60611
60612 --
60613 --
60614 END IF;
60615 --
60616 -- Bug 4922099
60617 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
60618 (NVL(l_enc_upg_option, 'N') = 'O')
60619 ) AND
60620 (l_bflow_method_code = 'PRIOR_ENTRY')
60621 )
60622 THEN
60623 IF
60624 --
60625 1 = 2
60626 --
60627 THEN
60628 xla_accounting_err_pkg.build_message
60629 (p_appli_s_name => 'XLA'
60630 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60631 ,p_token_1 => 'LINE_NUMBER'
60632 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
60633 ,p_token_2 => 'LINE_TYPE_NAME'
60634 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
60635 l_component_type
60636 ,l_component_code
60637 ,l_component_type_code
60638 ,l_component_appl_id
60639 ,l_amb_context_code
60640 ,l_entity_code
60641 ,l_event_class_code
60642 )
60643 ,p_token_3 => 'OWNER'
60644 ,p_value_3 => xla_lookups_pkg.get_meaning(
60645 p_lookup_type => 'XLA_OWNER_TYPE'
60646 ,p_lookup_code => l_component_type_code
60647 )
60648 ,p_token_4 => 'PRODUCT_NAME'
60649 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
60650 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
60651 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
60652 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
60653 ,p_ae_header_id => NULL
60654 );
60655
60656 IF (C_LEVEL_ERROR>= g_log_level) THEN
60657 trace
60658 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60659 ,p_level => C_LEVEL_ERROR
60660 ,p_module => l_log_module);
60661 END IF;
60662 END IF;
60663 END IF;
60664 --
60665 --
60666 ------------------------------------------------------------------------------------------------
60667 -- 4219869 Business Flow
60668 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
60669 -- Prior Entry. Currently, the following code is always generated.
60670 ------------------------------------------------------------------------------------------------
60671 XLA_AE_LINES_PKG.ValidateCurrentLine;
60672
60673 ------------------------------------------------------------------------------------
60674 -- 4219869 Business Flow
60675 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
60676 ------------------------------------------------------------------------------------
60677 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60678
60679 ----------------------------------------------------------------------------------
60680 -- 4219869 Business Flow
60681 -- Update journal entry status -- Need to generate this within IF <condition>
60682 ----------------------------------------------------------------------------------
60683 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60684 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
60685 ,p_balance_type_code => l_balance_type_code
60686 );
60687
60691 BEGIN
60688 -------------------------------------------------------------------------------------------
60689 -- 4262811 - Generate the Accrual Reversal lines
60690 -------------------------------------------------------------------------------------------
60692 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
60693 (g_array_event(p_event_id).array_value_num('header_index'));
60694 IF l_acc_rev_flag IS NULL THEN
60695 l_acc_rev_flag := 'N';
60696 END IF;
60697 EXCEPTION
60698 WHEN OTHERS THEN
60699 l_acc_rev_flag := 'N';
60700 END;
60701 --
60702 IF (l_acc_rev_flag = 'Y') THEN
60703
60704 -- 4645092 ------------------------------------------------------------------------------
60705 -- To allow MPA report to determine if it should generate report process
60706 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
60707 ------------------------------------------------------------------------------------------
60708
60709 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
60710 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
60711
60712 --
60713 -- Update the line information that should be overwritten
60714 --
60715 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
60716 p_header_num => 1);
60717 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
60718
60719 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
60720
60721 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
60722 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
60723 END IF;
60724
60725 --
60726 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
60727 --
60728 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
60729 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
60730 ELSE
60731 ---------------------------------------------------------------------------------------------------
60732 -- 4262811a Switch Sign
60733 ---------------------------------------------------------------------------------------------------
60734 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
60735 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60736 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60737 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60738 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60739 -- 5132302
60740 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
60741 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60742
60743 END IF;
60744
60745 -- 4955764
60746 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60747 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
60748
60749
60750 XLA_AE_LINES_PKG.ValidateCurrentLine;
60751 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60752
60753 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60754 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
60755 ,p_balance_type_code => l_balance_type_code);
60756
60757 END IF;
60758
60759 -----------------------------------------------------------------------------------------
60760 -- 4262811 Multiperiod Accounting
60761 -----------------------------------------------------------------------------------------
60762 -- No MPA option is assigned.
60763
60764
60765 END IF;
60766 --
60767
60768 --
60769 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60770 trace
60771 (p_msg => 'END of AcctLineType_125'
60772 ,p_level => C_LEVEL_PROCEDURE
60773 ,p_module => l_log_module);
60774 END IF;
60775 --
60776 EXCEPTION
60777 WHEN xla_exceptions_pkg.application_exception THEN
60778 RAISE;
60779 WHEN OTHERS THEN
60780 xla_exceptions_pkg.raise_message
60781 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_125');
60782 END AcctLineType_125;
60783 --
60784
60785 ---------------------------------------
60786 --
60787 -- PRIVATE FUNCTION
60788 -- AcctLineType_126
60789 --
60790 ---------------------------------------
60791 PROCEDURE AcctLineType_126 (
60792 p_application_id IN NUMBER
60793 ,p_event_id IN NUMBER
60794 ,p_calculate_acctd_flag IN VARCHAR2
60795 ,p_calculate_g_l_flag IN VARCHAR2
60796 ,p_actual_flag IN OUT VARCHAR2
60797 ,p_balance_type_code OUT VARCHAR2
60798 ,p_gain_or_loss_ref OUT VARCHAR2
60799
60800 --Actual Upgrade Credit Accounting Class
60801 , p_source_24 IN VARCHAR2
60802 --Entered Currency Code
60803 , p_source_26 IN VARCHAR2
60804 --Exchange Rate Date
60805 , p_source_28 IN DATE
60806 --Exchange Rate
60807 , p_source_29 IN NUMBER
60808 --Exchange Rate Type
60809 , p_source_30 IN VARCHAR2
60810 --Actual Upgrade Debit Accounting Class
60811 , p_source_31 IN VARCHAR2
60812 --Use Actuals Upgrade Attributes Flag
60813 , p_source_32 IN VARCHAR2
60814 --Entered Amount
60818 --Revenue Distribution Type
60815 , p_source_42 IN NUMBER
60816 --Accounted Amount
60817 , p_source_43 IN NUMBER
60819 , p_source_46 IN VARCHAR2
60820 --Crediting Revenue Flag
60821 , p_source_48 IN VARCHAR2
60822 --Revenue First Distribution ID
60823 , p_source_49 IN NUMBER
60824 --Revenue Second Distribution ID
60825 , p_source_50 IN NUMBER
60826 --Event ID
60827 , p_source_51 IN NUMBER
60828 --Actual Upgrade Credit CCID
60829 , p_source_64 IN NUMBER
60830 --Actual Upgrade Debit CCID
60831 , p_source_65 IN NUMBER
60832 --Application ID
60833 , p_source_66 IN NUMBER
60834 --Revenue Entity Code
60835 , p_source_67 IN VARCHAR2
60836 --Crediting Revenue First Distribution ID
60837 , p_source_68 IN NUMBER
60838 --Project ID
60839 , p_source_69 IN NUMBER
60840 --Crediting Revenue Second Distribution ID
60841 , p_source_70 IN NUMBER
60842 --Draft Revenue Number Credited
60843 , p_source_71 IN NUMBER
60844 )
60845 IS
60846
60847 l_component_type VARCHAR2(80);
60848 l_component_code VARCHAR2(30);
60849 l_component_type_code VARCHAR2(1);
60850 l_component_appl_id INTEGER;
60851 l_amb_context_code VARCHAR2(30);
60852 l_entity_code VARCHAR2(30);
60853 l_event_class_code VARCHAR2(30);
60854 l_ae_header_id NUMBER;
60855 l_event_type_code VARCHAR2(30);
60856 l_line_definition_code VARCHAR2(30);
60857 l_line_definition_owner_code VARCHAR2(1);
60858 --
60859 -- adr variables
60860 l_segment VARCHAR2(30);
60861 l_ccid NUMBER;
60862 l_adr_transaction_coa_id NUMBER;
60863 l_adr_accounting_coa_id NUMBER;
60864 l_adr_flexfield_segment_code VARCHAR2(30);
60865 l_adr_flex_value_set_id NUMBER;
60866 l_adr_value_type_code VARCHAR2(30);
60867 l_adr_value_combination_id NUMBER;
60868 l_adr_value_segment_code VARCHAR2(30);
60869
60870 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
60871 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
60872 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
60873 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
60874
60875 -- 4262811 Variables ------------------------------------------------------------------------------------------
60876 l_entered_amt_idx NUMBER;
60877 l_accted_amt_idx NUMBER;
60878 l_acc_rev_flag VARCHAR2(1);
60879 l_accrual_line_num NUMBER;
60880 l_tmp_amt NUMBER;
60881 l_acc_rev_natural_side_code VARCHAR2(1);
60882
60883 l_num_entries NUMBER;
60884 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
60885 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
60886 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
60887 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
60888 l_recog_line_1 NUMBER;
60889 l_recog_line_2 NUMBER;
60890
60891 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
60892 l_bflow_applied_to_amt NUMBER; -- 5132302
60893 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
60894
60895 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
60896
60897 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
60898 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
60899
60900 ---------------------------------------------------------------------------------------------------------------
60901
60902
60903 --
60904 -- bulk performance
60905 --
60906 l_balance_type_code VARCHAR2(1);
60907 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
60908 l_log_module VARCHAR2(240);
60909
60910 --
60911 -- Upgrade strategy
60912 --
60913 l_actual_upg_option VARCHAR2(1);
60914 l_enc_upg_option VARCHAR2(1);
60915
60916 --
60917 BEGIN
60918 --
60919 IF g_log_enabled THEN
60920 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_126';
60921 END IF;
60922 --
60923 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60924
60925 trace
60926 (p_msg => 'BEGIN of AcctLineType_126'
60927 ,p_level => C_LEVEL_PROCEDURE
60928 ,p_module => l_log_module);
60929
60930 END IF;
60931 --
60932 l_component_type := 'AMB_JLT';
60933 l_component_code := 'PA_REV_ADJ';
60934 l_component_type_code := 'S';
60935 l_component_appl_id := 275;
60936 l_amb_context_code := 'DEFAULT';
60937 l_entity_code := 'REVENUE';
60938 l_event_class_code := 'REVENUE_ADJ';
60939 l_event_type_code := 'REVENUE_ADJ_ALL';
60940 l_line_definition_owner_code := 'S';
60941 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
60942 --
60943 l_balance_type_code := 'A';
60944 l_segment := NULL;
60945 l_ccid := NULL;
60946 l_adr_transaction_coa_id := NULL;
60947 l_adr_accounting_coa_id := NULL;
60948 l_adr_flexfield_segment_code := NULL;
60949 l_adr_flex_value_set_id := NULL;
60950 l_adr_value_type_code := NULL;
60951 l_adr_value_combination_id := NULL;
60952 l_adr_value_segment_code := NULL;
60953
60954 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
60955 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
60959 l_bflow_applied_to_amt_idx := NULL; -- 5132302
60956 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
60957 l_budgetary_control_flag := 'N';
60958
60960 l_bflow_applied_to_amt := NULL; -- 5132302
60961 l_entered_amt_idx := NULL; -- 4262811
60962 l_accted_amt_idx := NULL; -- 4262811
60963 l_acc_rev_flag := NULL; -- 4262811
60964 l_accrual_line_num := NULL; -- 4262811
60965 l_tmp_amt := NULL; -- 4262811
60966 --
60967
60968 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
60969 l_balance_type_code <> 'B' THEN
60970 IF NVL(p_source_46,'
60971 ') = 'Revenue - Normal Revenue' AND
60972 NVL(p_source_48,'
60973 ') = 'Y'
60974 THEN
60975
60976 --
60977 XLA_AE_LINES_PKG.SetNewLine;
60978
60979 p_balance_type_code := l_balance_type_code;
60980 -- set the flag so later we will know whether the gain loss line needs to be created
60981
60982 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
60983 p_actual_flag :='A';
60984 END IF;
60985
60986 --
60987 -- bulk performance
60988 --
60989 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
60990 p_header_num => 0); -- 4262811
60991 --
60992 -- set accounting line options
60993 --
60994 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
60995 p_natural_side_code => 'D'
60996 , p_gain_or_loss_flag => 'N'
60997 , p_gl_transfer_mode_code => 'S'
60998 , p_acct_entry_type_code => 'A'
60999 , p_switch_side_flag => 'Y'
61000 , p_merge_duplicate_code => 'N'
61001 );
61002 --
61003 l_acc_rev_natural_side_code := 'C'; -- 4262811
61004 --
61005 --
61006 -- set accounting line type info
61007 --
61008 xla_ae_lines_pkg.SetAcctLineType
61009 (p_component_type => l_component_type
61010 ,p_event_type_code => l_event_type_code
61011 ,p_line_definition_owner_code => l_line_definition_owner_code
61012 ,p_line_definition_code => l_line_definition_code
61013 ,p_accounting_line_code => l_component_code
61014 ,p_accounting_line_type_code => l_component_type_code
61015 ,p_accounting_line_appl_id => l_component_appl_id
61016 ,p_amb_context_code => l_amb_context_code
61017 ,p_entity_code => l_entity_code
61018 ,p_event_class_code => l_event_class_code);
61019 --
61020 -- set accounting class
61021 --
61022 xla_ae_lines_pkg.SetAcctClass(
61023 p_accounting_class_code => 'REVENUE_ADJ'
61024 , p_ae_header_id => l_ae_header_id
61025 );
61026
61027 --
61028 -- set rounding class
61029 --
61030 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
61031 'REVENUE_ADJ';
61032
61033 --
61034 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
61035 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
61036 --
61037 -- bulk performance
61038 --
61039 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
61040
61041 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
61042 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
61043
61044 -- 4955764
61045 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61046 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
61047
61048 -- 4458381 Public Sector Enh
61049
61050 --
61051 -- set accounting attributes for the line type
61052 --
61053 l_entered_amt_idx := 28;
61054 l_accted_amt_idx := 31;
61055 l_bflow_applied_to_amt_idx := NULL; -- 5132302
61056 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACTUAL_UPG_CR_ACCT_CLASS';
61057 l_rec_acct_attrs.array_char_value(1) := p_source_24;
61058 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_CCID';
61059 l_rec_acct_attrs.array_num_value(2) := TO_NUMBER(p_source_64);
61060 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ENTERED_AMT';
61061 l_rec_acct_attrs.array_num_value(3) := p_source_42;
61062 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_CURR';
61063 l_rec_acct_attrs.array_char_value(4) := p_source_26;
61064 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_LEDGER_AMT';
61065 l_rec_acct_attrs.array_num_value(5) := p_source_43;
61066 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_XDATE';
61067 l_rec_acct_attrs.array_date_value(6) := p_source_28;
61068 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XRATE';
61069 l_rec_acct_attrs.array_num_value(7) := p_source_29;
61070 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE_TYPE';
61071 l_rec_acct_attrs.array_char_value(8) := p_source_30;
61072 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_DR_ACCT_CLASS';
61073 l_rec_acct_attrs.array_char_value(9) := p_source_31;
61074 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_CCID';
61075 l_rec_acct_attrs.array_num_value(10) := TO_NUMBER(p_source_65);
61076 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ENTERED_AMT';
61077 l_rec_acct_attrs.array_num_value(11) := p_source_42;
61078 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_CURR';
61079 l_rec_acct_attrs.array_char_value(12) := p_source_26;
61083 l_rec_acct_attrs.array_date_value(14) := p_source_28;
61080 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_LEDGER_AMT';
61081 l_rec_acct_attrs.array_num_value(13) := p_source_43;
61082 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_XDATE';
61084 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XRATE';
61085 l_rec_acct_attrs.array_num_value(15) := p_source_29;
61086 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE_TYPE';
61087 l_rec_acct_attrs.array_char_value(16) := p_source_30;
61088 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_OPTION';
61089 l_rec_acct_attrs.array_char_value(17) := p_source_32;
61090 l_rec_acct_attrs.array_acct_attr_code(18) := 'APPLIED_TO_APPLICATION_ID';
61091 l_rec_acct_attrs.array_num_value(18) := p_source_66;
61092 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_DISTRIBUTION_TYPE';
61093 l_rec_acct_attrs.array_char_value(19) := p_source_46;
61094 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_ENTITY_CODE';
61095 l_rec_acct_attrs.array_char_value(20) := p_source_67;
61096 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_FIRST_DIST_ID';
61097 l_rec_acct_attrs.array_num_value(21) := to_char(p_source_68);
61098 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
61099 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_69);
61100 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_SECOND_DIST_ID';
61101 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_70);
61102 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
61103 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_71);
61104 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
61105 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_49);
61106 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
61107 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_50);
61108 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
61109 l_rec_acct_attrs.array_char_value(27) := p_source_46;
61110 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
61111 l_rec_acct_attrs.array_num_value(28) := p_source_42;
61112 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
61113 l_rec_acct_attrs.array_char_value(29) := p_source_26;
61114 l_rec_acct_attrs.array_acct_attr_code(30) := 'GAIN_LOSS_REFERENCE';
61115 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_51);
61116 l_rec_acct_attrs.array_acct_attr_code(31) := 'LEDGER_AMOUNT';
61117 l_rec_acct_attrs.array_num_value(31) := p_source_43;
61118
61119 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
61120 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
61121
61122 ---------------------------------------------------------------------------------------------------------------
61123 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
61124 ---------------------------------------------------------------------------------------------------------------
61125 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
61126
61127 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61128 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61129
61130 IF xla_accounting_cache_pkg.GetValueChar
61131 (p_source_code => 'LEDGER_CATEGORY_CODE'
61132 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
61133 AND l_bflow_method_code = 'PRIOR_ENTRY'
61134 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
61135 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
61136 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
61137 )
61138 THEN
61139 xla_ae_lines_pkg.BflowUpgEntry
61140 (p_business_method_code => l_bflow_method_code
61141 ,p_business_class_code => l_bflow_class_code
61142 ,p_balance_type => l_balance_type_code);
61143 ELSE
61144 NULL;
61145 XLA_AE_LINES_PKG.business_flow_validation(
61146 p_business_method_code => l_bflow_method_code
61147 ,p_business_class_code => l_bflow_class_code
61148 ,p_inherit_description_flag => l_inherit_desc_flag);
61149 END IF;
61150
61151 --
61152 -- call analytical criteria
61153 --
61154 -- Inherited Analytical Criteria for business flow method of Prior Entry.
61155 --
61156 -- call description
61157 --
61158 -- No description or it is inherited.
61159 --
61160 -- call ADRs
61161 -- Bug 4922099
61162 --
61163 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61164 (NVL(l_actual_upg_option, 'N') = 'O') OR
61165 (NVL(l_enc_upg_option, 'N') = 'O')
61166 )
61167 THEN
61168 NULL;
61169 --
61170 --
61171
61172 --
61173 --
61174 END IF;
61175 --
61176 -- Bug 4922099
61177 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
61178 (NVL(l_enc_upg_option, 'N') = 'O')
61179 ) AND
61180 (l_bflow_method_code = 'PRIOR_ENTRY')
61181 )
61182 THEN
61183 IF
61184 --
61185 1 = 1
61186 --
61187 THEN
61188 xla_accounting_err_pkg.build_message
61189 (p_appli_s_name => 'XLA'
61190 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61191 ,p_token_1 => 'LINE_NUMBER'
61195 l_component_type
61192 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
61193 ,p_token_2 => 'LINE_TYPE_NAME'
61194 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
61196 ,l_component_code
61197 ,l_component_type_code
61198 ,l_component_appl_id
61199 ,l_amb_context_code
61200 ,l_entity_code
61201 ,l_event_class_code
61202 )
61203 ,p_token_3 => 'OWNER'
61204 ,p_value_3 => xla_lookups_pkg.get_meaning(
61205 p_lookup_type => 'XLA_OWNER_TYPE'
61206 ,p_lookup_code => l_component_type_code
61207 )
61208 ,p_token_4 => 'PRODUCT_NAME'
61209 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
61210 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
61211 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
61212 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
61213 ,p_ae_header_id => NULL
61214 );
61215
61216 IF (C_LEVEL_ERROR>= g_log_level) THEN
61217 trace
61218 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61219 ,p_level => C_LEVEL_ERROR
61220 ,p_module => l_log_module);
61221 END IF;
61222 END IF;
61223 END IF;
61224 --
61225 --
61226 ------------------------------------------------------------------------------------------------
61227 -- 4219869 Business Flow
61228 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
61229 -- Prior Entry. Currently, the following code is always generated.
61230 ------------------------------------------------------------------------------------------------
61231 -- No ValidateCurrentLine for business flow method of Prior Entry
61232
61233 ------------------------------------------------------------------------------------
61234 -- 4219869 Business Flow
61235 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
61236 ------------------------------------------------------------------------------------
61237 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61238
61239 ----------------------------------------------------------------------------------
61240 -- 4219869 Business Flow
61241 -- Update journal entry status -- Need to generate this within IF <condition>
61242 ----------------------------------------------------------------------------------
61243 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61244 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
61245 ,p_balance_type_code => l_balance_type_code
61246 );
61247
61248 -------------------------------------------------------------------------------------------
61249 -- 4262811 - Generate the Accrual Reversal lines
61250 -------------------------------------------------------------------------------------------
61251 BEGIN
61252 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
61253 (g_array_event(p_event_id).array_value_num('header_index'));
61254 IF l_acc_rev_flag IS NULL THEN
61255 l_acc_rev_flag := 'N';
61256 END IF;
61257 EXCEPTION
61258 WHEN OTHERS THEN
61259 l_acc_rev_flag := 'N';
61260 END;
61261 --
61262 IF (l_acc_rev_flag = 'Y') THEN
61263
61264 -- 4645092 ------------------------------------------------------------------------------
61265 -- To allow MPA report to determine if it should generate report process
61266 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
61267 ------------------------------------------------------------------------------------------
61268
61269 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
61270 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
61271
61272 --
61273 -- Update the line information that should be overwritten
61274 --
61275 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
61276 p_header_num => 1);
61277 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
61278
61279 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
61280
61281 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
61282 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
61283 END IF;
61284
61285 --
61286 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
61287 --
61288 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
61292 -- 4262811a Switch Sign
61289 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
61290 ELSE
61291 ---------------------------------------------------------------------------------------------------
61293 ---------------------------------------------------------------------------------------------------
61294 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
61295 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61296 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61297 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61298 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61299 -- 5132302
61300 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
61301 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61302
61303 END IF;
61304
61305 -- 4955764
61306 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61307 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
61308
61309
61310 XLA_AE_LINES_PKG.ValidateCurrentLine;
61311 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61312
61313 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61314 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
61315 ,p_balance_type_code => l_balance_type_code);
61316
61317 END IF;
61318
61319 -----------------------------------------------------------------------------------------
61320 -- 4262811 Multiperiod Accounting
61321 -----------------------------------------------------------------------------------------
61322 -- No MPA option is assigned.
61323
61324
61325 END IF;
61326 END IF;
61327 --
61328
61329 --
61330 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61331 trace
61332 (p_msg => 'END of AcctLineType_126'
61333 ,p_level => C_LEVEL_PROCEDURE
61334 ,p_module => l_log_module);
61335 END IF;
61336 --
61337 EXCEPTION
61338 WHEN xla_exceptions_pkg.application_exception THEN
61339 RAISE;
61340 WHEN OTHERS THEN
61341 xla_exceptions_pkg.raise_message
61342 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_126');
61343 END AcctLineType_126;
61344 --
61345
61346 ---------------------------------------
61347 --
61348 -- PRIVATE FUNCTION
61349 -- AcctLineType_127
61350 --
61351 ---------------------------------------
61352 PROCEDURE AcctLineType_127 (
61353 p_application_id IN NUMBER
61354 ,p_event_id IN NUMBER
61355 ,p_calculate_acctd_flag IN VARCHAR2
61356 ,p_calculate_g_l_flag IN VARCHAR2
61357 ,p_actual_flag IN OUT VARCHAR2
61358 ,p_balance_type_code OUT VARCHAR2
61359 ,p_gain_or_loss_ref OUT VARCHAR2
61360
61361 --Budget Code Combination ID
61362 , p_source_3 IN NUMBER
61363 --Cost CCID
61364 , p_source_4 IN NUMBER
61365 --Allow Account Override Flag
61366 , p_source_5 IN VARCHAR2
61367 --Adjustment Cost CCID
61368 , p_source_6 IN NUMBER
61369 --Cost Clearing CCID
61370 , p_source_7 IN NUMBER
61371 --Reversing Line Flag
61372 , p_source_23 IN VARCHAR2
61373 --Actual Upgrade Credit Accounting Class
61374 , p_source_24 IN VARCHAR2
61375 --Entered Currency Code
61376 , p_source_26 IN VARCHAR2
61377 --Exchange Rate Date
61378 , p_source_28 IN DATE
61379 --Exchange Rate
61380 , p_source_29 IN NUMBER
61381 --Exchange Rate Type
61382 , p_source_30 IN VARCHAR2
61383 --Actual Upgrade Debit Accounting Class
61384 , p_source_31 IN VARCHAR2
61385 --Use Actuals Upgrade Attributes Flag
61386 , p_source_32 IN VARCHAR2
61387 --Expenditure Item ID
61388 , p_source_33 IN NUMBER
61389 --Cost Distribution Line Number
61390 , p_source_34 IN NUMBER
61391 --Line Type
61392 , p_source_35 IN VARCHAR2
61393 , p_source_35_meaning IN VARCHAR2
61394 --Reversed Line Number
61395 , p_source_36 IN NUMBER
61396 --Encumbrance Upgrade Credit Accounting Class
61397 , p_source_41 IN VARCHAR2
61398 --Use Encumbrance Upgrade Attributes Flag
61399 , p_source_44 IN VARCHAR2
61400 --Entered Burdened Cost
61401 , p_source_52 IN NUMBER
61402 --Accounted Burdened Cost
61403 , p_source_53 IN NUMBER
61404 --Encumbrance Amount
61405 , p_source_54 IN NUMBER
61406 --Project Encumbrance Applied to Application Identifier
61407 , p_source_55 IN NUMBER
61408 --Project Encumbrance Applied to Distribution Type
61409 , p_source_56 IN VARCHAR2
61410 --Project Encumbrance Applied to Entity Code
61411 , p_source_57 IN VARCHAR2
61412 --Project Encumbrance Applied to First Distribution ID
61413 , p_source_58 IN NUMBER
61414 --Project Encumbrance Applied to First System Transaction ID
61415 , p_source_59 IN NUMBER
61416 --Project Encumbrance Applied to Second Distribution ID
61417 , p_source_60 IN VARCHAR2
61418 --Encumbrance Upgrade Debit Accounting Class
61419 , p_source_61 IN VARCHAR2
61420 --Encumbrance Type ID
61421 , p_source_62 IN NUMBER
61422 --Project Encumbrance Type ID
61423 , p_source_63 IN NUMBER
61424 )
61425 IS
61426
61430 l_component_appl_id INTEGER;
61427 l_component_type VARCHAR2(80);
61428 l_component_code VARCHAR2(30);
61429 l_component_type_code VARCHAR2(1);
61431 l_amb_context_code VARCHAR2(30);
61432 l_entity_code VARCHAR2(30);
61433 l_event_class_code VARCHAR2(30);
61434 l_ae_header_id NUMBER;
61435 l_event_type_code VARCHAR2(30);
61436 l_line_definition_code VARCHAR2(30);
61437 l_line_definition_owner_code VARCHAR2(1);
61438 --
61439 -- adr variables
61440 l_segment VARCHAR2(30);
61441 l_ccid NUMBER;
61442 l_adr_transaction_coa_id NUMBER;
61443 l_adr_accounting_coa_id NUMBER;
61444 l_adr_flexfield_segment_code VARCHAR2(30);
61445 l_adr_flex_value_set_id NUMBER;
61446 l_adr_value_type_code VARCHAR2(30);
61447 l_adr_value_combination_id NUMBER;
61448 l_adr_value_segment_code VARCHAR2(30);
61449
61450 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
61451 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
61452 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
61453 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
61454
61455 -- 4262811 Variables ------------------------------------------------------------------------------------------
61456 l_entered_amt_idx NUMBER;
61457 l_accted_amt_idx NUMBER;
61458 l_acc_rev_flag VARCHAR2(1);
61459 l_accrual_line_num NUMBER;
61460 l_tmp_amt NUMBER;
61461 l_acc_rev_natural_side_code VARCHAR2(1);
61462
61463 l_num_entries NUMBER;
61464 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
61465 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
61466 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
61467 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
61468 l_recog_line_1 NUMBER;
61469 l_recog_line_2 NUMBER;
61470
61471 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
61472 l_bflow_applied_to_amt NUMBER; -- 5132302
61473 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
61474
61475 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
61476
61477 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
61478 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
61479
61480 ---------------------------------------------------------------------------------------------------------------
61481
61482
61483 --
61484 -- bulk performance
61485 --
61486 l_balance_type_code VARCHAR2(1);
61487 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
61488 l_log_module VARCHAR2(240);
61489
61490 --
61491 -- Upgrade strategy
61492 --
61493 l_actual_upg_option VARCHAR2(1);
61494 l_enc_upg_option VARCHAR2(1);
61495
61496 --
61497 BEGIN
61498 --
61499 IF g_log_enabled THEN
61500 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_127';
61501 END IF;
61502 --
61503 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61504
61505 trace
61506 (p_msg => 'BEGIN of AcctLineType_127'
61507 ,p_level => C_LEVEL_PROCEDURE
61508 ,p_module => l_log_module);
61509
61510 END IF;
61511 --
61512 l_component_type := 'AMB_JLT';
61513 l_component_code := 'PA_TOT_BURDENED_COST';
61514 l_component_type_code := 'S';
61515 l_component_appl_id := 275;
61516 l_amb_context_code := 'DEFAULT';
61517 l_entity_code := 'EXPENDITURES';
61518 l_event_class_code := 'TOT_BURDENED_COST';
61519 l_event_type_code := 'TOT_BURDENED_COST_ALL';
61520 l_line_definition_owner_code := 'S';
61521 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
61522 --
61523 l_balance_type_code := 'A';
61524 l_segment := NULL;
61525 l_ccid := NULL;
61526 l_adr_transaction_coa_id := NULL;
61527 l_adr_accounting_coa_id := NULL;
61528 l_adr_flexfield_segment_code := NULL;
61529 l_adr_flex_value_set_id := NULL;
61530 l_adr_value_type_code := NULL;
61531 l_adr_value_combination_id := NULL;
61532 l_adr_value_segment_code := NULL;
61533
61534 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
61535 l_bflow_class_code := ''; -- 4219869 Business Flow
61536 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
61537 l_budgetary_control_flag := 'N';
61538
61539 l_bflow_applied_to_amt_idx := NULL; -- 5132302
61540 l_bflow_applied_to_amt := NULL; -- 5132302
61541 l_entered_amt_idx := NULL; -- 4262811
61542 l_accted_amt_idx := NULL; -- 4262811
61543 l_acc_rev_flag := NULL; -- 4262811
61544 l_accrual_line_num := NULL; -- 4262811
61545 l_tmp_amt := NULL; -- 4262811
61546 --
61547
61548 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
61549 l_balance_type_code <> 'B' THEN
61550 IF NVL(p_source_35,'
61551 ') = 'D'
61552 THEN
61553
61554 --
61555 XLA_AE_LINES_PKG.SetNewLine;
61556
61557 p_balance_type_code := l_balance_type_code;
61558 -- set the flag so later we will know whether the gain loss line needs to be created
61559
61560 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
61561 p_actual_flag :='A';
61562 END IF;
61563
61564 --
61568 p_header_num => 0); -- 4262811
61565 -- bulk performance
61566 --
61567 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
61569 --
61570 -- set accounting line options
61571 --
61572 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
61573 p_natural_side_code => 'D'
61574 , p_gain_or_loss_flag => 'N'
61575 , p_gl_transfer_mode_code => 'S'
61576 , p_acct_entry_type_code => 'A'
61577 , p_switch_side_flag => 'Y'
61578 , p_merge_duplicate_code => 'N'
61579 );
61580 --
61581 l_acc_rev_natural_side_code := 'C'; -- 4262811
61582 --
61583 --
61584 -- set accounting line type info
61585 --
61586 xla_ae_lines_pkg.SetAcctLineType
61587 (p_component_type => l_component_type
61588 ,p_event_type_code => l_event_type_code
61589 ,p_line_definition_owner_code => l_line_definition_owner_code
61590 ,p_line_definition_code => l_line_definition_code
61591 ,p_accounting_line_code => l_component_code
61592 ,p_accounting_line_type_code => l_component_type_code
61593 ,p_accounting_line_appl_id => l_component_appl_id
61594 ,p_amb_context_code => l_amb_context_code
61595 ,p_entity_code => l_entity_code
61596 ,p_event_class_code => l_event_class_code);
61597 --
61598 -- set accounting class
61599 --
61600 xla_ae_lines_pkg.SetAcctClass(
61601 p_accounting_class_code => 'COST'
61602 , p_ae_header_id => l_ae_header_id
61603 );
61604
61605 --
61606 -- set rounding class
61607 --
61608 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
61609 'COST';
61610
61611 --
61612 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
61613 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
61614 --
61615 -- bulk performance
61616 --
61617 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
61618
61619 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
61620 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
61621
61622 -- 4955764
61623 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61624 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
61625
61626 -- 4458381 Public Sector Enh
61627
61628 --
61629 -- set accounting attributes for the line type
61630 --
61631 l_entered_amt_idx := 40;
61632 l_accted_amt_idx := 46;
61633 l_bflow_applied_to_amt_idx := 19; -- 5132302
61634 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
61635 l_rec_acct_attrs.array_char_value(1) := p_source_23;
61636 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
61637 l_rec_acct_attrs.array_char_value(2) := p_source_24;
61638 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
61639 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
61640 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
61641 l_rec_acct_attrs.array_num_value(4) := p_source_52;
61642 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
61643 l_rec_acct_attrs.array_char_value(5) := p_source_26;
61644 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
61645 l_rec_acct_attrs.array_num_value(6) := p_source_53;
61646 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
61647 l_rec_acct_attrs.array_date_value(7) := p_source_28;
61648 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
61649 l_rec_acct_attrs.array_num_value(8) := p_source_29;
61650 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
61651 l_rec_acct_attrs.array_char_value(9) := p_source_30;
61652 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
61653 l_rec_acct_attrs.array_char_value(10) := p_source_31;
61654 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
61655 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
61656 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
61657 l_rec_acct_attrs.array_num_value(12) := p_source_52;
61658 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
61659 l_rec_acct_attrs.array_char_value(13) := p_source_26;
61660 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
61661 l_rec_acct_attrs.array_num_value(14) := p_source_53;
61662 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
61663 l_rec_acct_attrs.array_date_value(15) := p_source_28;
61664 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
61665 l_rec_acct_attrs.array_num_value(16) := p_source_29;
61666 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
61667 l_rec_acct_attrs.array_char_value(17) := p_source_30;
61668 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
61669 l_rec_acct_attrs.array_char_value(18) := p_source_32;
61670 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
61671 l_rec_acct_attrs.array_num_value(19) := p_source_54;
61672 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
61673 l_rec_acct_attrs.array_num_value(20) := p_source_55;
61674 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
61675 l_rec_acct_attrs.array_char_value(21) := p_source_56;
61676 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
61680 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
61677 l_rec_acct_attrs.array_char_value(22) := p_source_57;
61678 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
61679 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_58);
61681 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_59);
61682 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
61683 l_rec_acct_attrs.array_char_value(25) := p_source_60;
61684 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
61685 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_33);
61686 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
61687 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_34);
61688 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
61689 l_rec_acct_attrs.array_char_value(28) := p_source_35;
61690 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
61691 l_rec_acct_attrs.array_char_value(29) := p_source_41;
61692 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
61693 l_rec_acct_attrs.array_num_value(30) := p_source_3;
61694 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
61695 l_rec_acct_attrs.array_num_value(31) := p_source_54;
61696 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
61697 l_rec_acct_attrs.array_char_value(32) :=
61698 xla_ae_sources_pkg.GetSystemSourceChar(
61699 p_source_code => 'XLA_CURRENCY_CODE'
61700 , p_source_type_code => 'Y'
61701 , p_source_application_id => 602
61702 );
61703 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
61704 l_rec_acct_attrs.array_num_value(33) := p_source_54;
61705 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
61706 l_rec_acct_attrs.array_char_value(34) := p_source_61;
61707 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
61708 l_rec_acct_attrs.array_num_value(35) := p_source_3;
61709 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
61710 l_rec_acct_attrs.array_num_value(36) := p_source_54;
61711 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
61712 l_rec_acct_attrs.array_char_value(37) :=
61713 xla_ae_sources_pkg.GetSystemSourceChar(
61714 p_source_code => 'XLA_CURRENCY_CODE'
61715 , p_source_type_code => 'Y'
61716 , p_source_application_id => 602
61717 );
61718 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
61719 l_rec_acct_attrs.array_num_value(38) := p_source_54;
61720 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
61721 l_rec_acct_attrs.array_char_value(39) := p_source_44;
61722 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
61723 l_rec_acct_attrs.array_num_value(40) := p_source_52;
61724 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
61725 l_rec_acct_attrs.array_char_value(41) := p_source_26;
61726 l_rec_acct_attrs.array_acct_attr_code(42) := 'EXCHANGE_DATE';
61727 l_rec_acct_attrs.array_date_value(42) := p_source_28;
61728 l_rec_acct_attrs.array_acct_attr_code(43) := 'EXCHANGE_RATE';
61729 l_rec_acct_attrs.array_num_value(43) := p_source_29;
61730 l_rec_acct_attrs.array_acct_attr_code(44) := 'EXCHANGE_RATE_TYPE';
61731 l_rec_acct_attrs.array_char_value(44) := p_source_30;
61732 l_rec_acct_attrs.array_acct_attr_code(45) := 'GAIN_LOSS_REFERENCE';
61733 l_rec_acct_attrs.array_num_value(45) := to_char(p_source_33);
61734 l_rec_acct_attrs.array_acct_attr_code(46) := 'LEDGER_AMOUNT';
61735 l_rec_acct_attrs.array_num_value(46) := p_source_53;
61736 l_rec_acct_attrs.array_acct_attr_code(47) := 'REVERSED_DISTRIBUTION_ID1';
61737 l_rec_acct_attrs.array_num_value(47) := to_char(p_source_33);
61738 l_rec_acct_attrs.array_acct_attr_code(48) := 'REVERSED_DISTRIBUTION_ID2';
61739 l_rec_acct_attrs.array_num_value(48) := to_char(p_source_36);
61740 l_rec_acct_attrs.array_acct_attr_code(49) := 'REVERSED_DISTRIBUTION_TYPE';
61741 l_rec_acct_attrs.array_char_value(49) := p_source_35;
61742 l_rec_acct_attrs.array_acct_attr_code(50) := 'UPG_CR_ENC_TYPE_ID';
61743 l_rec_acct_attrs.array_num_value(50) := p_source_62;
61744 l_rec_acct_attrs.array_acct_attr_code(51) := 'UPG_DR_ENC_TYPE_ID';
61745 l_rec_acct_attrs.array_num_value(51) := p_source_63;
61746
61747 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
61748 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
61749
61750 ---------------------------------------------------------------------------------------------------------------
61751 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
61752 ---------------------------------------------------------------------------------------------------------------
61753 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
61754
61755 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61756 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61757
61758 IF xla_accounting_cache_pkg.GetValueChar
61759 (p_source_code => 'LEDGER_CATEGORY_CODE'
61760 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
61761 AND l_bflow_method_code = 'PRIOR_ENTRY'
61762 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
61763 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
61764 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
61765 )
61766 THEN
61767 xla_ae_lines_pkg.BflowUpgEntry
61768 (p_business_method_code => l_bflow_method_code
61769 ,p_business_class_code => l_bflow_class_code
61770 ,p_balance_type => l_balance_type_code);
61771 ELSE
61772 NULL;
61776 --
61773 -- No business flow processing for business flow method of NONE.
61774 END IF;
61775
61777 -- call analytical criteria
61778 --
61779
61780 --
61781 -- call description
61782 --
61783 -- No description or it is inherited.
61784 --
61785 -- call ADRs
61786 -- Bug 4922099
61787 --
61788 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61789 (NVL(l_actual_upg_option, 'N') = 'O') OR
61790 (NVL(l_enc_upg_option, 'N') = 'O')
61791 )
61792 THEN
61793 NULL;
61794 --
61795 --
61796
61797 l_ccid := AcctDerRule_12(
61798 p_application_id => p_application_id
61799 , p_ae_header_id => l_ae_header_id
61800 , p_source_4 => p_source_4
61801 , p_source_5 => p_source_5
61802 , p_source_6 => p_source_6
61803 , x_transaction_coa_id => l_adr_transaction_coa_id
61804 , x_accounting_coa_id => l_adr_accounting_coa_id
61805 , x_value_type_code => l_adr_value_type_code
61806 , p_side => 'NA'
61807 );
61808
61809 xla_ae_lines_pkg.set_ccid(
61810 p_code_combination_id => l_ccid
61811 , p_value_type_code => l_adr_value_type_code
61812 , p_transaction_coa_id => l_adr_transaction_coa_id
61813 , p_accounting_coa_id => l_adr_accounting_coa_id
61814 , p_adr_code => 'PA_COST_ACCT_RULE'
61815 , p_adr_type_code => 'S'
61816 , p_component_type => l_component_type
61817 , p_component_code => l_component_code
61818 , p_component_type_code => l_component_type_code
61819 , p_component_appl_id => l_component_appl_id
61820 , p_amb_context_code => l_amb_context_code
61821 , p_side => 'NA'
61822 );
61823
61824
61825 --
61826 --
61827 END IF;
61828 --
61829 -- Bug 4922099
61830 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
61831 (NVL(l_enc_upg_option, 'N') = 'O')
61832 ) AND
61833 (l_bflow_method_code = 'PRIOR_ENTRY')
61834 )
61835 THEN
61836 IF
61837 --
61838 1 = 2
61839 --
61840 THEN
61841 xla_accounting_err_pkg.build_message
61842 (p_appli_s_name => 'XLA'
61843 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61844 ,p_token_1 => 'LINE_NUMBER'
61845 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
61846 ,p_token_2 => 'LINE_TYPE_NAME'
61847 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
61848 l_component_type
61849 ,l_component_code
61850 ,l_component_type_code
61851 ,l_component_appl_id
61852 ,l_amb_context_code
61853 ,l_entity_code
61854 ,l_event_class_code
61855 )
61856 ,p_token_3 => 'OWNER'
61857 ,p_value_3 => xla_lookups_pkg.get_meaning(
61858 p_lookup_type => 'XLA_OWNER_TYPE'
61859 ,p_lookup_code => l_component_type_code
61860 )
61861 ,p_token_4 => 'PRODUCT_NAME'
61862 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
61863 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
61864 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
61865 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
61866 ,p_ae_header_id => NULL
61867 );
61868
61869 IF (C_LEVEL_ERROR>= g_log_level) THEN
61870 trace
61871 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61872 ,p_level => C_LEVEL_ERROR
61873 ,p_module => l_log_module);
61874 END IF;
61875 END IF;
61876 END IF;
61877 --
61878 --
61879 ------------------------------------------------------------------------------------------------
61880 -- 4219869 Business Flow
61881 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
61882 -- Prior Entry. Currently, the following code is always generated.
61883 ------------------------------------------------------------------------------------------------
61884 XLA_AE_LINES_PKG.ValidateCurrentLine;
61885
61886 ------------------------------------------------------------------------------------
61887 -- 4219869 Business Flow
61888 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
61889 ------------------------------------------------------------------------------------
61890 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61894 -- Update journal entry status -- Need to generate this within IF <condition>
61891
61892 ----------------------------------------------------------------------------------
61893 -- 4219869 Business Flow
61895 ----------------------------------------------------------------------------------
61896 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61897 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
61898 ,p_balance_type_code => l_balance_type_code
61899 );
61900
61901 -------------------------------------------------------------------------------------------
61902 -- 4262811 - Generate the Accrual Reversal lines
61903 -------------------------------------------------------------------------------------------
61904 BEGIN
61905 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
61906 (g_array_event(p_event_id).array_value_num('header_index'));
61907 IF l_acc_rev_flag IS NULL THEN
61908 l_acc_rev_flag := 'N';
61909 END IF;
61910 EXCEPTION
61911 WHEN OTHERS THEN
61912 l_acc_rev_flag := 'N';
61913 END;
61914 --
61915 IF (l_acc_rev_flag = 'Y') THEN
61916
61917 -- 4645092 ------------------------------------------------------------------------------
61918 -- To allow MPA report to determine if it should generate report process
61919 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
61920 ------------------------------------------------------------------------------------------
61921
61922 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
61923 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
61924
61925 --
61926 -- Update the line information that should be overwritten
61927 --
61928 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
61929 p_header_num => 1);
61930 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
61931
61932 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
61933
61934 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
61935 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
61936 END IF;
61937
61938 --
61939 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
61940 --
61941 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
61942 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
61943 ELSE
61944 ---------------------------------------------------------------------------------------------------
61945 -- 4262811a Switch Sign
61946 ---------------------------------------------------------------------------------------------------
61947 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
61948 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61949 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61950 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61951 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61952 -- 5132302
61953 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
61954 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61955
61956 END IF;
61957
61958 -- 4955764
61959 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61960 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
61961
61962
61963 XLA_AE_LINES_PKG.ValidateCurrentLine;
61964 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61965
61966 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61967 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
61968 ,p_balance_type_code => l_balance_type_code);
61969
61970 END IF;
61971
61972 -----------------------------------------------------------------------------------------
61973 -- 4262811 Multiperiod Accounting
61974 -----------------------------------------------------------------------------------------
61975 -- No MPA option is assigned.
61976
61977
61978 END IF;
61979 END IF;
61980 --
61981
61982 --
61983 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61984 trace
61985 (p_msg => 'END of AcctLineType_127'
61986 ,p_level => C_LEVEL_PROCEDURE
61987 ,p_module => l_log_module);
61988 END IF;
61989 --
61990 EXCEPTION
61991 WHEN xla_exceptions_pkg.application_exception THEN
61992 RAISE;
61993 WHEN OTHERS THEN
61994 xla_exceptions_pkg.raise_message
61995 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_127');
61996 END AcctLineType_127;
61997 --
61998
61999 ---------------------------------------
62000 --
62001 -- PRIVATE FUNCTION
62002 -- AcctLineType_128
62003 --
62004 ---------------------------------------
62005 PROCEDURE AcctLineType_128 (
62006 p_application_id IN NUMBER
62007 ,p_event_id IN NUMBER
62008 ,p_calculate_acctd_flag IN VARCHAR2
62009 ,p_calculate_g_l_flag IN VARCHAR2
62010 ,p_actual_flag IN OUT VARCHAR2
62011 ,p_balance_type_code OUT VARCHAR2
62012 ,p_gain_or_loss_ref OUT VARCHAR2
62013
62014 --Budget Code Combination ID
62018 --Allow Account Override Flag
62015 , p_source_3 IN NUMBER
62016 --Cost CCID
62017 , p_source_4 IN NUMBER
62019 , p_source_5 IN VARCHAR2
62020 --Adjustment Cost CCID
62021 , p_source_6 IN NUMBER
62022 --Cost Clearing CCID
62023 , p_source_7 IN NUMBER
62024 --Reversing Line Flag
62025 , p_source_23 IN VARCHAR2
62026 --Actual Upgrade Credit Accounting Class
62027 , p_source_24 IN VARCHAR2
62028 --Entered Currency Code
62029 , p_source_26 IN VARCHAR2
62030 --Exchange Rate Date
62031 , p_source_28 IN DATE
62032 --Exchange Rate
62033 , p_source_29 IN NUMBER
62034 --Exchange Rate Type
62035 , p_source_30 IN VARCHAR2
62036 --Actual Upgrade Debit Accounting Class
62037 , p_source_31 IN VARCHAR2
62038 --Use Actuals Upgrade Attributes Flag
62039 , p_source_32 IN VARCHAR2
62040 --Expenditure Item ID
62041 , p_source_33 IN NUMBER
62042 --Cost Distribution Line Number
62043 , p_source_34 IN NUMBER
62044 --Line Type
62045 , p_source_35 IN VARCHAR2
62046 , p_source_35_meaning IN VARCHAR2
62047 --Reversed Line Number
62048 , p_source_36 IN NUMBER
62049 --Use Encumbrance Upgrade Attributes Flag
62050 , p_source_44 IN VARCHAR2
62051 --Entered Burdened Cost
62052 , p_source_52 IN NUMBER
62053 --Accounted Burdened Cost
62054 , p_source_53 IN NUMBER
62055 --Encumbrance Amount
62056 , p_source_54 IN NUMBER
62057 --Project Encumbrance Applied to Application Identifier
62058 , p_source_55 IN NUMBER
62059 --Project Encumbrance Applied to Distribution Type
62060 , p_source_56 IN VARCHAR2
62061 --Project Encumbrance Applied to Entity Code
62062 , p_source_57 IN VARCHAR2
62063 --Project Encumbrance Applied to First Distribution ID
62064 , p_source_58 IN NUMBER
62065 --Project Encumbrance Applied to First System Transaction ID
62066 , p_source_59 IN NUMBER
62067 --Project Encumbrance Applied to Second Distribution ID
62068 , p_source_60 IN VARCHAR2
62069 --Encumbrance Upgrade Debit Accounting Class
62070 , p_source_61 IN VARCHAR2
62071 --Encumbrance Type ID
62072 , p_source_62 IN NUMBER
62073 --Project Encumbrance Type ID
62074 , p_source_63 IN NUMBER
62075 )
62076 IS
62077
62078 l_component_type VARCHAR2(80);
62079 l_component_code VARCHAR2(30);
62080 l_component_type_code VARCHAR2(1);
62081 l_component_appl_id INTEGER;
62082 l_amb_context_code VARCHAR2(30);
62083 l_entity_code VARCHAR2(30);
62084 l_event_class_code VARCHAR2(30);
62085 l_ae_header_id NUMBER;
62086 l_event_type_code VARCHAR2(30);
62087 l_line_definition_code VARCHAR2(30);
62088 l_line_definition_owner_code VARCHAR2(1);
62089 --
62090 -- adr variables
62091 l_segment VARCHAR2(30);
62092 l_ccid NUMBER;
62093 l_adr_transaction_coa_id NUMBER;
62094 l_adr_accounting_coa_id NUMBER;
62095 l_adr_flexfield_segment_code VARCHAR2(30);
62096 l_adr_flex_value_set_id NUMBER;
62097 l_adr_value_type_code VARCHAR2(30);
62098 l_adr_value_combination_id NUMBER;
62099 l_adr_value_segment_code VARCHAR2(30);
62100
62101 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
62102 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
62103 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
62104 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
62105
62106 -- 4262811 Variables ------------------------------------------------------------------------------------------
62107 l_entered_amt_idx NUMBER;
62108 l_accted_amt_idx NUMBER;
62109 l_acc_rev_flag VARCHAR2(1);
62110 l_accrual_line_num NUMBER;
62111 l_tmp_amt NUMBER;
62112 l_acc_rev_natural_side_code VARCHAR2(1);
62113
62114 l_num_entries NUMBER;
62115 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
62116 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
62117 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
62118 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
62119 l_recog_line_1 NUMBER;
62120 l_recog_line_2 NUMBER;
62121
62122 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
62123 l_bflow_applied_to_amt NUMBER; -- 5132302
62124 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
62125
62126 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
62127
62128 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
62129 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
62130
62131 ---------------------------------------------------------------------------------------------------------------
62132
62133
62134 --
62135 -- bulk performance
62136 --
62137 l_balance_type_code VARCHAR2(1);
62138 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
62139 l_log_module VARCHAR2(240);
62140
62141 --
62142 -- Upgrade strategy
62143 --
62144 l_actual_upg_option VARCHAR2(1);
62145 l_enc_upg_option VARCHAR2(1);
62146
62147 --
62148 BEGIN
62149 --
62150 IF g_log_enabled THEN
62151 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_128';
62152 END IF;
62153 --
62154 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62155
62159 ,p_module => l_log_module);
62156 trace
62157 (p_msg => 'BEGIN of AcctLineType_128'
62158 ,p_level => C_LEVEL_PROCEDURE
62160
62161 END IF;
62162 --
62163 l_component_type := 'AMB_JLT';
62164 l_component_code := 'PA_TOT_BURDENED_COST_ADJ';
62165 l_component_type_code := 'S';
62166 l_component_appl_id := 275;
62167 l_amb_context_code := 'DEFAULT';
62168 l_entity_code := 'EXPENDITURES';
62169 l_event_class_code := 'TOT_BURDENED_COST_ADJ';
62170 l_event_type_code := 'TOT_BURDENED_COST_ADJ_ALL';
62171 l_line_definition_owner_code := 'S';
62172 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
62173 --
62174 l_balance_type_code := 'A';
62175 l_segment := NULL;
62176 l_ccid := NULL;
62177 l_adr_transaction_coa_id := NULL;
62178 l_adr_accounting_coa_id := NULL;
62179 l_adr_flexfield_segment_code := NULL;
62180 l_adr_flex_value_set_id := NULL;
62181 l_adr_value_type_code := NULL;
62182 l_adr_value_combination_id := NULL;
62183 l_adr_value_segment_code := NULL;
62184
62185 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
62186 l_bflow_class_code := ''; -- 4219869 Business Flow
62187 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
62188 l_budgetary_control_flag := 'N';
62189
62190 l_bflow_applied_to_amt_idx := NULL; -- 5132302
62191 l_bflow_applied_to_amt := NULL; -- 5132302
62192 l_entered_amt_idx := NULL; -- 4262811
62193 l_accted_amt_idx := NULL; -- 4262811
62194 l_acc_rev_flag := NULL; -- 4262811
62195 l_accrual_line_num := NULL; -- 4262811
62196 l_tmp_amt := NULL; -- 4262811
62197 --
62198
62199 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
62200 l_balance_type_code <> 'B' THEN
62201 IF NVL(p_source_35,'
62202 ') = 'D'
62203 THEN
62204
62205 --
62206 XLA_AE_LINES_PKG.SetNewLine;
62207
62208 p_balance_type_code := l_balance_type_code;
62209 -- set the flag so later we will know whether the gain loss line needs to be created
62210
62211 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
62212 p_actual_flag :='A';
62213 END IF;
62214
62215 --
62216 -- bulk performance
62217 --
62218 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
62219 p_header_num => 0); -- 4262811
62220 --
62221 -- set accounting line options
62222 --
62223 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
62224 p_natural_side_code => 'D'
62225 , p_gain_or_loss_flag => 'N'
62226 , p_gl_transfer_mode_code => 'S'
62227 , p_acct_entry_type_code => 'A'
62228 , p_switch_side_flag => 'Y'
62229 , p_merge_duplicate_code => 'N'
62230 );
62231 --
62232 l_acc_rev_natural_side_code := 'C'; -- 4262811
62233 --
62234 --
62235 -- set accounting line type info
62236 --
62237 xla_ae_lines_pkg.SetAcctLineType
62238 (p_component_type => l_component_type
62239 ,p_event_type_code => l_event_type_code
62240 ,p_line_definition_owner_code => l_line_definition_owner_code
62241 ,p_line_definition_code => l_line_definition_code
62242 ,p_accounting_line_code => l_component_code
62243 ,p_accounting_line_type_code => l_component_type_code
62244 ,p_accounting_line_appl_id => l_component_appl_id
62245 ,p_amb_context_code => l_amb_context_code
62246 ,p_entity_code => l_entity_code
62247 ,p_event_class_code => l_event_class_code);
62248 --
62249 -- set accounting class
62250 --
62251 xla_ae_lines_pkg.SetAcctClass(
62252 p_accounting_class_code => 'COST'
62253 , p_ae_header_id => l_ae_header_id
62254 );
62255
62256 --
62257 -- set rounding class
62258 --
62259 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
62260 'COST';
62261
62262 --
62263 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
62264 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
62265 --
62266 -- bulk performance
62267 --
62268 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
62269
62270 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
62271 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
62272
62273 -- 4955764
62274 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62275 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
62276
62277 -- 4458381 Public Sector Enh
62278
62279 --
62280 -- set accounting attributes for the line type
62281 --
62282 l_entered_amt_idx := 35;
62283 l_accted_amt_idx := 40;
62284 l_bflow_applied_to_amt_idx := 19; -- 5132302
62285 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
62286 l_rec_acct_attrs.array_char_value(1) := p_source_23;
62287 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
62288 l_rec_acct_attrs.array_char_value(2) := p_source_24;
62289 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
62290 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
62294 l_rec_acct_attrs.array_char_value(5) := p_source_26;
62291 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
62292 l_rec_acct_attrs.array_num_value(4) := p_source_52;
62293 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
62295 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
62296 l_rec_acct_attrs.array_num_value(6) := p_source_53;
62297 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
62298 l_rec_acct_attrs.array_date_value(7) := p_source_28;
62299 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
62300 l_rec_acct_attrs.array_num_value(8) := p_source_29;
62301 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
62302 l_rec_acct_attrs.array_char_value(9) := p_source_30;
62303 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
62304 l_rec_acct_attrs.array_char_value(10) := p_source_31;
62305 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
62306 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
62307 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
62308 l_rec_acct_attrs.array_num_value(12) := p_source_52;
62309 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
62310 l_rec_acct_attrs.array_char_value(13) := p_source_26;
62311 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
62312 l_rec_acct_attrs.array_num_value(14) := p_source_53;
62313 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
62314 l_rec_acct_attrs.array_date_value(15) := p_source_28;
62315 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
62316 l_rec_acct_attrs.array_num_value(16) := p_source_29;
62317 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
62318 l_rec_acct_attrs.array_char_value(17) := p_source_30;
62319 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
62320 l_rec_acct_attrs.array_char_value(18) := p_source_32;
62321 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
62322 l_rec_acct_attrs.array_num_value(19) := p_source_54;
62323 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
62324 l_rec_acct_attrs.array_num_value(20) := p_source_55;
62325 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
62326 l_rec_acct_attrs.array_char_value(21) := p_source_56;
62327 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
62328 l_rec_acct_attrs.array_char_value(22) := p_source_57;
62329 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
62330 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_58);
62331 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
62332 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_59);
62333 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
62334 l_rec_acct_attrs.array_char_value(25) := p_source_60;
62335 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
62336 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_33);
62337 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
62338 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_34);
62339 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
62340 l_rec_acct_attrs.array_char_value(28) := p_source_35;
62341 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_ACCT_CLASS';
62342 l_rec_acct_attrs.array_char_value(29) := p_source_61;
62343 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_CCID';
62344 l_rec_acct_attrs.array_num_value(30) := p_source_3;
62345 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_AMT';
62346 l_rec_acct_attrs.array_num_value(31) := p_source_54;
62347 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_ENTERED_CURR';
62348 l_rec_acct_attrs.array_char_value(32) :=
62349 xla_ae_sources_pkg.GetSystemSourceChar(
62350 p_source_code => 'XLA_CURRENCY_CODE'
62351 , p_source_type_code => 'Y'
62352 , p_source_application_id => 602
62353 );
62354 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_DR_LEDGER_AMT';
62355 l_rec_acct_attrs.array_num_value(33) := p_source_54;
62356 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_OPTION';
62357 l_rec_acct_attrs.array_char_value(34) := p_source_44;
62358 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENTERED_CURRENCY_AMOUNT';
62359 l_rec_acct_attrs.array_num_value(35) := p_source_52;
62360 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENTERED_CURRENCY_CODE';
62361 l_rec_acct_attrs.array_char_value(36) := p_source_26;
62362 l_rec_acct_attrs.array_acct_attr_code(37) := 'EXCHANGE_DATE';
62363 l_rec_acct_attrs.array_date_value(37) := p_source_28;
62364 l_rec_acct_attrs.array_acct_attr_code(38) := 'EXCHANGE_RATE';
62365 l_rec_acct_attrs.array_num_value(38) := p_source_29;
62366 l_rec_acct_attrs.array_acct_attr_code(39) := 'EXCHANGE_RATE_TYPE';
62367 l_rec_acct_attrs.array_char_value(39) := p_source_30;
62368 l_rec_acct_attrs.array_acct_attr_code(40) := 'LEDGER_AMOUNT';
62369 l_rec_acct_attrs.array_num_value(40) := p_source_53;
62370 l_rec_acct_attrs.array_acct_attr_code(41) := 'REVERSED_DISTRIBUTION_ID1';
62371 l_rec_acct_attrs.array_num_value(41) := to_char(p_source_33);
62372 l_rec_acct_attrs.array_acct_attr_code(42) := 'REVERSED_DISTRIBUTION_ID2';
62373 l_rec_acct_attrs.array_num_value(42) := to_char(p_source_36);
62374 l_rec_acct_attrs.array_acct_attr_code(43) := 'REVERSED_DISTRIBUTION_TYPE';
62375 l_rec_acct_attrs.array_char_value(43) := p_source_35;
62376 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_CR_ENC_TYPE_ID';
62377 l_rec_acct_attrs.array_num_value(44) := p_source_62;
62378 l_rec_acct_attrs.array_acct_attr_code(45) := 'UPG_DR_ENC_TYPE_ID';
62379 l_rec_acct_attrs.array_num_value(45) := p_source_63;
62380
62381 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
62385 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
62382 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
62383
62384 ---------------------------------------------------------------------------------------------------------------
62386 ---------------------------------------------------------------------------------------------------------------
62387 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
62388
62389 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62390 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62391
62392 IF xla_accounting_cache_pkg.GetValueChar
62393 (p_source_code => 'LEDGER_CATEGORY_CODE'
62394 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
62395 AND l_bflow_method_code = 'PRIOR_ENTRY'
62396 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
62397 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
62398 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
62399 )
62400 THEN
62401 xla_ae_lines_pkg.BflowUpgEntry
62402 (p_business_method_code => l_bflow_method_code
62403 ,p_business_class_code => l_bflow_class_code
62404 ,p_balance_type => l_balance_type_code);
62405 ELSE
62406 NULL;
62407 -- No business flow processing for business flow method of NONE.
62408 END IF;
62409
62410 --
62411 -- call analytical criteria
62412 --
62413
62414 --
62415 -- call description
62416 --
62417 -- No description or it is inherited.
62418 --
62419 -- call ADRs
62420 -- Bug 4922099
62421 --
62422 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62423 (NVL(l_actual_upg_option, 'N') = 'O') OR
62424 (NVL(l_enc_upg_option, 'N') = 'O')
62425 )
62426 THEN
62427 NULL;
62428 --
62429 --
62430
62431 l_ccid := AcctDerRule_13(
62432 p_application_id => p_application_id
62433 , p_ae_header_id => l_ae_header_id
62434 , p_source_5 => p_source_5
62435 , p_source_6 => p_source_6
62436 , x_transaction_coa_id => l_adr_transaction_coa_id
62437 , x_accounting_coa_id => l_adr_accounting_coa_id
62438 , x_value_type_code => l_adr_value_type_code
62439 , p_side => 'NA'
62440 );
62441
62442 xla_ae_lines_pkg.set_ccid(
62443 p_code_combination_id => l_ccid
62444 , p_value_type_code => l_adr_value_type_code
62445 , p_transaction_coa_id => l_adr_transaction_coa_id
62446 , p_accounting_coa_id => l_adr_accounting_coa_id
62447 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
62448 , p_adr_type_code => 'S'
62449 , p_component_type => l_component_type
62450 , p_component_code => l_component_code
62451 , p_component_type_code => l_component_type_code
62452 , p_component_appl_id => l_component_appl_id
62453 , p_amb_context_code => l_amb_context_code
62454 , p_side => 'NA'
62455 );
62456
62457
62458 --
62459 --
62460 END IF;
62461 --
62462 -- Bug 4922099
62463 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
62464 (NVL(l_enc_upg_option, 'N') = 'O')
62465 ) AND
62466 (l_bflow_method_code = 'PRIOR_ENTRY')
62467 )
62468 THEN
62469 IF
62470 --
62471 1 = 2
62472 --
62473 THEN
62474 xla_accounting_err_pkg.build_message
62475 (p_appli_s_name => 'XLA'
62476 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62477 ,p_token_1 => 'LINE_NUMBER'
62478 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
62479 ,p_token_2 => 'LINE_TYPE_NAME'
62480 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
62481 l_component_type
62482 ,l_component_code
62483 ,l_component_type_code
62484 ,l_component_appl_id
62485 ,l_amb_context_code
62486 ,l_entity_code
62487 ,l_event_class_code
62488 )
62489 ,p_token_3 => 'OWNER'
62490 ,p_value_3 => xla_lookups_pkg.get_meaning(
62491 p_lookup_type => 'XLA_OWNER_TYPE'
62492 ,p_lookup_code => l_component_type_code
62493 )
62494 ,p_token_4 => 'PRODUCT_NAME'
62495 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
62496 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
62500 );
62497 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
62498 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
62499 ,p_ae_header_id => NULL
62501
62502 IF (C_LEVEL_ERROR>= g_log_level) THEN
62503 trace
62504 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62505 ,p_level => C_LEVEL_ERROR
62506 ,p_module => l_log_module);
62507 END IF;
62508 END IF;
62509 END IF;
62510 --
62511 --
62512 ------------------------------------------------------------------------------------------------
62513 -- 4219869 Business Flow
62514 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
62515 -- Prior Entry. Currently, the following code is always generated.
62516 ------------------------------------------------------------------------------------------------
62517 XLA_AE_LINES_PKG.ValidateCurrentLine;
62518
62519 ------------------------------------------------------------------------------------
62520 -- 4219869 Business Flow
62521 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
62522 ------------------------------------------------------------------------------------
62523 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62524
62525 ----------------------------------------------------------------------------------
62526 -- 4219869 Business Flow
62527 -- Update journal entry status -- Need to generate this within IF <condition>
62528 ----------------------------------------------------------------------------------
62529 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62530 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
62531 ,p_balance_type_code => l_balance_type_code
62532 );
62533
62534 -------------------------------------------------------------------------------------------
62535 -- 4262811 - Generate the Accrual Reversal lines
62536 -------------------------------------------------------------------------------------------
62537 BEGIN
62538 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
62539 (g_array_event(p_event_id).array_value_num('header_index'));
62540 IF l_acc_rev_flag IS NULL THEN
62541 l_acc_rev_flag := 'N';
62542 END IF;
62543 EXCEPTION
62544 WHEN OTHERS THEN
62545 l_acc_rev_flag := 'N';
62546 END;
62547 --
62548 IF (l_acc_rev_flag = 'Y') THEN
62549
62550 -- 4645092 ------------------------------------------------------------------------------
62551 -- To allow MPA report to determine if it should generate report process
62552 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
62553 ------------------------------------------------------------------------------------------
62554
62555 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
62556 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
62557
62558 --
62559 -- Update the line information that should be overwritten
62560 --
62561 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
62562 p_header_num => 1);
62563 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
62564
62565 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
62566
62567 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
62568 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
62569 END IF;
62570
62571 --
62572 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
62573 --
62574 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
62575 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
62576 ELSE
62577 ---------------------------------------------------------------------------------------------------
62578 -- 4262811a Switch Sign
62579 ---------------------------------------------------------------------------------------------------
62580 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
62581 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62582 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62583 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62584 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62585 -- 5132302
62586 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
62587 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62588
62589 END IF;
62590
62591 -- 4955764
62592 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62593 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
62594
62595
62596 XLA_AE_LINES_PKG.ValidateCurrentLine;
62597 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62598
62599 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62600 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
62601 ,p_balance_type_code => l_balance_type_code);
62602
62603 END IF;
62604
62608 -- No MPA option is assigned.
62605 -----------------------------------------------------------------------------------------
62606 -- 4262811 Multiperiod Accounting
62607 -----------------------------------------------------------------------------------------
62609
62610
62611 END IF;
62612 END IF;
62613 --
62614
62615 --
62616 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62617 trace
62618 (p_msg => 'END of AcctLineType_128'
62619 ,p_level => C_LEVEL_PROCEDURE
62620 ,p_module => l_log_module);
62621 END IF;
62622 --
62623 EXCEPTION
62624 WHEN xla_exceptions_pkg.application_exception THEN
62625 RAISE;
62626 WHEN OTHERS THEN
62627 xla_exceptions_pkg.raise_message
62628 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_128');
62629 END AcctLineType_128;
62630 --
62631
62632 ---------------------------------------
62633 --
62634 -- PRIVATE FUNCTION
62635 -- AcctLineType_129
62636 --
62637 ---------------------------------------
62638 PROCEDURE AcctLineType_129 (
62639 p_application_id IN NUMBER
62640 ,p_event_id IN NUMBER
62641 ,p_calculate_acctd_flag IN VARCHAR2
62642 ,p_calculate_g_l_flag IN VARCHAR2
62643 ,p_actual_flag IN OUT VARCHAR2
62644 ,p_balance_type_code OUT VARCHAR2
62645 ,p_gain_or_loss_ref OUT VARCHAR2
62646
62647 --Budget Code Combination ID
62648 , p_source_3 IN NUMBER
62649 --Cost CCID
62650 , p_source_4 IN NUMBER
62651 --Allow Account Override Flag
62652 , p_source_5 IN VARCHAR2
62653 --Cost Clearing CCID
62654 , p_source_7 IN NUMBER
62655 --Adjustment Cost Clearing CCID
62656 , p_source_8 IN NUMBER
62657 --Reversing Line Flag
62658 , p_source_23 IN VARCHAR2
62659 --Actual Upgrade Credit Accounting Class
62660 , p_source_24 IN VARCHAR2
62661 --Entered Currency Code
62662 , p_source_26 IN VARCHAR2
62663 --Exchange Rate Date
62664 , p_source_28 IN DATE
62665 --Exchange Rate
62666 , p_source_29 IN NUMBER
62667 --Exchange Rate Type
62668 , p_source_30 IN VARCHAR2
62669 --Actual Upgrade Debit Accounting Class
62670 , p_source_31 IN VARCHAR2
62671 --Use Actuals Upgrade Attributes Flag
62672 , p_source_32 IN VARCHAR2
62673 --Expenditure Item ID
62674 , p_source_33 IN NUMBER
62675 --Cost Distribution Line Number
62676 , p_source_34 IN NUMBER
62677 --Line Type
62678 , p_source_35 IN VARCHAR2
62679 , p_source_35_meaning IN VARCHAR2
62680 --Reversed Line Number
62681 , p_source_36 IN NUMBER
62682 --Encumbrance Upgrade Credit Accounting Class
62683 , p_source_41 IN VARCHAR2
62684 --Use Encumbrance Upgrade Attributes Flag
62685 , p_source_44 IN VARCHAR2
62686 --Entered Burdened Cost
62687 , p_source_52 IN NUMBER
62688 --Accounted Burdened Cost
62689 , p_source_53 IN NUMBER
62690 --Encumbrance Amount
62691 , p_source_54 IN NUMBER
62692 --Project Encumbrance Applied to Application Identifier
62693 , p_source_55 IN NUMBER
62694 --Project Encumbrance Applied to Distribution Type
62695 , p_source_56 IN VARCHAR2
62696 --Project Encumbrance Applied to Entity Code
62697 , p_source_57 IN VARCHAR2
62698 --Project Encumbrance Applied to First Distribution ID
62699 , p_source_58 IN NUMBER
62700 --Project Encumbrance Applied to First System Transaction ID
62701 , p_source_59 IN NUMBER
62702 --Project Encumbrance Applied to Second Distribution ID
62703 , p_source_60 IN VARCHAR2
62704 --Encumbrance Upgrade Debit Accounting Class
62705 , p_source_61 IN VARCHAR2
62706 --Encumbrance Type ID
62707 , p_source_62 IN NUMBER
62708 --Project Encumbrance Type ID
62709 , p_source_63 IN NUMBER
62710 )
62711 IS
62712
62713 l_component_type VARCHAR2(80);
62714 l_component_code VARCHAR2(30);
62715 l_component_type_code VARCHAR2(1);
62716 l_component_appl_id INTEGER;
62717 l_amb_context_code VARCHAR2(30);
62718 l_entity_code VARCHAR2(30);
62719 l_event_class_code VARCHAR2(30);
62720 l_ae_header_id NUMBER;
62721 l_event_type_code VARCHAR2(30);
62722 l_line_definition_code VARCHAR2(30);
62723 l_line_definition_owner_code VARCHAR2(1);
62724 --
62725 -- adr variables
62726 l_segment VARCHAR2(30);
62727 l_ccid NUMBER;
62728 l_adr_transaction_coa_id NUMBER;
62729 l_adr_accounting_coa_id NUMBER;
62730 l_adr_flexfield_segment_code VARCHAR2(30);
62731 l_adr_flex_value_set_id NUMBER;
62732 l_adr_value_type_code VARCHAR2(30);
62733 l_adr_value_combination_id NUMBER;
62734 l_adr_value_segment_code VARCHAR2(30);
62735
62736 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
62737 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
62738 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
62739 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
62740
62741 -- 4262811 Variables ------------------------------------------------------------------------------------------
62742 l_entered_amt_idx NUMBER;
62743 l_accted_amt_idx NUMBER;
62744 l_acc_rev_flag VARCHAR2(1);
62745 l_accrual_line_num NUMBER;
62746 l_tmp_amt NUMBER;
62747 l_acc_rev_natural_side_code VARCHAR2(1);
62748
62749 l_num_entries NUMBER;
62750 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
62754 l_recog_line_1 NUMBER;
62751 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
62752 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
62753 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
62755 l_recog_line_2 NUMBER;
62756
62757 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
62758 l_bflow_applied_to_amt NUMBER; -- 5132302
62759 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
62760
62761 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
62762
62763 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
62764 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
62765
62766 ---------------------------------------------------------------------------------------------------------------
62767
62768
62769 --
62770 -- bulk performance
62771 --
62772 l_balance_type_code VARCHAR2(1);
62773 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
62774 l_log_module VARCHAR2(240);
62775
62776 --
62777 -- Upgrade strategy
62778 --
62779 l_actual_upg_option VARCHAR2(1);
62780 l_enc_upg_option VARCHAR2(1);
62781
62782 --
62783 BEGIN
62784 --
62785 IF g_log_enabled THEN
62786 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_129';
62787 END IF;
62788 --
62789 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62790
62791 trace
62792 (p_msg => 'BEGIN of AcctLineType_129'
62793 ,p_level => C_LEVEL_PROCEDURE
62794 ,p_module => l_log_module);
62795
62796 END IF;
62797 --
62798 l_component_type := 'AMB_JLT';
62799 l_component_code := 'PA_TOT_BURDENED_COST_CLEARING';
62800 l_component_type_code := 'S';
62801 l_component_appl_id := 275;
62802 l_amb_context_code := 'DEFAULT';
62803 l_entity_code := 'EXPENDITURES';
62804 l_event_class_code := 'TOT_BURDENED_COST';
62805 l_event_type_code := 'TOT_BURDENED_COST_ALL';
62806 l_line_definition_owner_code := 'S';
62807 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
62808 --
62809 l_balance_type_code := 'A';
62810 l_segment := NULL;
62811 l_ccid := NULL;
62812 l_adr_transaction_coa_id := NULL;
62813 l_adr_accounting_coa_id := NULL;
62814 l_adr_flexfield_segment_code := NULL;
62815 l_adr_flex_value_set_id := NULL;
62816 l_adr_value_type_code := NULL;
62817 l_adr_value_combination_id := NULL;
62818 l_adr_value_segment_code := NULL;
62819
62820 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
62821 l_bflow_class_code := ''; -- 4219869 Business Flow
62822 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
62823 l_budgetary_control_flag := 'N';
62824
62825 l_bflow_applied_to_amt_idx := NULL; -- 5132302
62826 l_bflow_applied_to_amt := NULL; -- 5132302
62827 l_entered_amt_idx := NULL; -- 4262811
62828 l_accted_amt_idx := NULL; -- 4262811
62829 l_acc_rev_flag := NULL; -- 4262811
62830 l_accrual_line_num := NULL; -- 4262811
62831 l_tmp_amt := NULL; -- 4262811
62832 --
62833
62834 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
62835 l_balance_type_code <> 'B' THEN
62836 IF NVL(p_source_35,'
62837 ') = 'C'
62838 THEN
62839
62840 --
62841 XLA_AE_LINES_PKG.SetNewLine;
62842
62843 p_balance_type_code := l_balance_type_code;
62844 -- set the flag so later we will know whether the gain loss line needs to be created
62845
62846 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
62847 p_actual_flag :='A';
62848 END IF;
62849
62850 --
62851 -- bulk performance
62852 --
62853 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
62854 p_header_num => 0); -- 4262811
62855 --
62856 -- set accounting line options
62857 --
62858 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
62859 p_natural_side_code => 'C'
62860 , p_gain_or_loss_flag => 'N'
62861 , p_gl_transfer_mode_code => 'S'
62862 , p_acct_entry_type_code => 'A'
62863 , p_switch_side_flag => 'Y'
62864 , p_merge_duplicate_code => 'N'
62865 );
62866 --
62867 l_acc_rev_natural_side_code := 'D'; -- 4262811
62868 --
62869 --
62870 -- set accounting line type info
62871 --
62872 xla_ae_lines_pkg.SetAcctLineType
62873 (p_component_type => l_component_type
62874 ,p_event_type_code => l_event_type_code
62875 ,p_line_definition_owner_code => l_line_definition_owner_code
62876 ,p_line_definition_code => l_line_definition_code
62877 ,p_accounting_line_code => l_component_code
62878 ,p_accounting_line_type_code => l_component_type_code
62879 ,p_accounting_line_appl_id => l_component_appl_id
62880 ,p_amb_context_code => l_amb_context_code
62881 ,p_entity_code => l_entity_code
62882 ,p_event_class_code => l_event_class_code);
62883 --
62884 -- set accounting class
62885 --
62886 xla_ae_lines_pkg.SetAcctClass(
62887 p_accounting_class_code => 'COST_CLEARING'
62888 , p_ae_header_id => l_ae_header_id
62889 );
62890
62891 --
62892 -- set rounding class
62896
62893 --
62894 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
62895 'COST_CLEARING';
62897 --
62898 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
62899 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
62900 --
62901 -- bulk performance
62902 --
62903 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
62904
62905 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
62906 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
62907
62908 -- 4955764
62909 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62910 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
62911
62912 -- 4458381 Public Sector Enh
62913
62914 --
62915 -- set accounting attributes for the line type
62916 --
62917 l_entered_amt_idx := 40;
62918 l_accted_amt_idx := 46;
62919 l_bflow_applied_to_amt_idx := 19; -- 5132302
62920 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
62921 l_rec_acct_attrs.array_char_value(1) := p_source_23;
62922 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
62923 l_rec_acct_attrs.array_char_value(2) := p_source_24;
62924 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
62925 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
62926 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
62927 l_rec_acct_attrs.array_num_value(4) := p_source_52;
62928 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
62929 l_rec_acct_attrs.array_char_value(5) := p_source_26;
62930 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
62931 l_rec_acct_attrs.array_num_value(6) := p_source_53;
62932 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
62933 l_rec_acct_attrs.array_date_value(7) := p_source_28;
62934 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
62935 l_rec_acct_attrs.array_num_value(8) := p_source_29;
62936 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
62937 l_rec_acct_attrs.array_char_value(9) := p_source_30;
62938 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
62939 l_rec_acct_attrs.array_char_value(10) := p_source_31;
62940 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
62941 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
62942 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
62943 l_rec_acct_attrs.array_num_value(12) := p_source_52;
62944 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
62945 l_rec_acct_attrs.array_char_value(13) := p_source_26;
62946 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
62947 l_rec_acct_attrs.array_num_value(14) := p_source_53;
62948 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
62949 l_rec_acct_attrs.array_date_value(15) := p_source_28;
62950 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
62951 l_rec_acct_attrs.array_num_value(16) := p_source_29;
62952 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
62953 l_rec_acct_attrs.array_char_value(17) := p_source_30;
62954 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
62955 l_rec_acct_attrs.array_char_value(18) := p_source_32;
62956 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
62957 l_rec_acct_attrs.array_num_value(19) := p_source_54;
62958 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
62959 l_rec_acct_attrs.array_num_value(20) := p_source_55;
62960 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
62961 l_rec_acct_attrs.array_char_value(21) := p_source_56;
62962 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
62963 l_rec_acct_attrs.array_char_value(22) := p_source_57;
62964 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
62965 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_58);
62966 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
62967 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_59);
62968 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
62969 l_rec_acct_attrs.array_char_value(25) := p_source_60;
62970 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
62971 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_33);
62972 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
62973 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_34);
62974 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
62975 l_rec_acct_attrs.array_char_value(28) := p_source_35;
62976 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
62977 l_rec_acct_attrs.array_char_value(29) := p_source_41;
62978 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
62979 l_rec_acct_attrs.array_num_value(30) := p_source_3;
62980 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
62981 l_rec_acct_attrs.array_num_value(31) := p_source_54;
62982 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
62983 l_rec_acct_attrs.array_char_value(32) :=
62984 xla_ae_sources_pkg.GetSystemSourceChar(
62985 p_source_code => 'XLA_CURRENCY_CODE'
62986 , p_source_type_code => 'Y'
62987 , p_source_application_id => 602
62988 );
62989 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
62990 l_rec_acct_attrs.array_num_value(33) := p_source_54;
62991 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
62995 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
62992 l_rec_acct_attrs.array_char_value(34) := p_source_61;
62993 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
62994 l_rec_acct_attrs.array_num_value(35) := p_source_3;
62996 l_rec_acct_attrs.array_num_value(36) := p_source_54;
62997 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
62998 l_rec_acct_attrs.array_char_value(37) :=
62999 xla_ae_sources_pkg.GetSystemSourceChar(
63000 p_source_code => 'XLA_CURRENCY_CODE'
63001 , p_source_type_code => 'Y'
63002 , p_source_application_id => 602
63003 );
63004 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
63005 l_rec_acct_attrs.array_num_value(38) := p_source_54;
63006 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
63007 l_rec_acct_attrs.array_char_value(39) := p_source_44;
63008 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
63009 l_rec_acct_attrs.array_num_value(40) := p_source_52;
63010 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
63011 l_rec_acct_attrs.array_char_value(41) := p_source_26;
63012 l_rec_acct_attrs.array_acct_attr_code(42) := 'EXCHANGE_DATE';
63013 l_rec_acct_attrs.array_date_value(42) := p_source_28;
63014 l_rec_acct_attrs.array_acct_attr_code(43) := 'EXCHANGE_RATE';
63015 l_rec_acct_attrs.array_num_value(43) := p_source_29;
63016 l_rec_acct_attrs.array_acct_attr_code(44) := 'EXCHANGE_RATE_TYPE';
63017 l_rec_acct_attrs.array_char_value(44) := p_source_30;
63018 l_rec_acct_attrs.array_acct_attr_code(45) := 'GAIN_LOSS_REFERENCE';
63019 l_rec_acct_attrs.array_num_value(45) := to_char(p_source_33);
63020 l_rec_acct_attrs.array_acct_attr_code(46) := 'LEDGER_AMOUNT';
63021 l_rec_acct_attrs.array_num_value(46) := p_source_53;
63022 l_rec_acct_attrs.array_acct_attr_code(47) := 'REVERSED_DISTRIBUTION_ID1';
63023 l_rec_acct_attrs.array_num_value(47) := to_char(p_source_33);
63024 l_rec_acct_attrs.array_acct_attr_code(48) := 'REVERSED_DISTRIBUTION_ID2';
63025 l_rec_acct_attrs.array_num_value(48) := to_char(p_source_36);
63026 l_rec_acct_attrs.array_acct_attr_code(49) := 'REVERSED_DISTRIBUTION_TYPE';
63027 l_rec_acct_attrs.array_char_value(49) := p_source_35;
63028 l_rec_acct_attrs.array_acct_attr_code(50) := 'UPG_CR_ENC_TYPE_ID';
63029 l_rec_acct_attrs.array_num_value(50) := p_source_62;
63030 l_rec_acct_attrs.array_acct_attr_code(51) := 'UPG_DR_ENC_TYPE_ID';
63031 l_rec_acct_attrs.array_num_value(51) := p_source_63;
63032
63033 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
63034 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
63035
63036 ---------------------------------------------------------------------------------------------------------------
63037 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
63038 ---------------------------------------------------------------------------------------------------------------
63039 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
63040
63041 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63042 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63043
63044 IF xla_accounting_cache_pkg.GetValueChar
63045 (p_source_code => 'LEDGER_CATEGORY_CODE'
63046 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
63047 AND l_bflow_method_code = 'PRIOR_ENTRY'
63048 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
63049 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
63050 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
63051 )
63052 THEN
63053 xla_ae_lines_pkg.BflowUpgEntry
63054 (p_business_method_code => l_bflow_method_code
63055 ,p_business_class_code => l_bflow_class_code
63056 ,p_balance_type => l_balance_type_code);
63057 ELSE
63058 NULL;
63059 -- No business flow processing for business flow method of NONE.
63060 END IF;
63061
63062 --
63063 -- call analytical criteria
63064 --
63065
63066 --
63067 -- call description
63068 --
63069 -- No description or it is inherited.
63070 --
63071 -- call ADRs
63072 -- Bug 4922099
63073 --
63074 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63075 (NVL(l_actual_upg_option, 'N') = 'O') OR
63076 (NVL(l_enc_upg_option, 'N') = 'O')
63077 )
63078 THEN
63079 NULL;
63080 --
63081 --
63082
63083 l_ccid := AcctDerRule_14(
63084 p_application_id => p_application_id
63085 , p_ae_header_id => l_ae_header_id
63086 , p_source_5 => p_source_5
63087 , p_source_7 => p_source_7
63088 , p_source_8 => p_source_8
63089 , x_transaction_coa_id => l_adr_transaction_coa_id
63090 , x_accounting_coa_id => l_adr_accounting_coa_id
63091 , x_value_type_code => l_adr_value_type_code
63092 , p_side => 'NA'
63093 );
63094
63095 xla_ae_lines_pkg.set_ccid(
63096 p_code_combination_id => l_ccid
63097 , p_value_type_code => l_adr_value_type_code
63098 , p_transaction_coa_id => l_adr_transaction_coa_id
63099 , p_accounting_coa_id => l_adr_accounting_coa_id
63100 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
63101 , p_adr_type_code => 'S'
63102 , p_component_type => l_component_type
63103 , p_component_code => l_component_code
63104 , p_component_type_code => l_component_type_code
63105 , p_component_appl_id => l_component_appl_id
63109
63106 , p_amb_context_code => l_amb_context_code
63107 , p_side => 'NA'
63108 );
63110
63111 --
63112 --
63113 END IF;
63114 --
63115 -- Bug 4922099
63116 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
63117 (NVL(l_enc_upg_option, 'N') = 'O')
63118 ) AND
63119 (l_bflow_method_code = 'PRIOR_ENTRY')
63120 )
63121 THEN
63122 IF
63123 --
63124 1 = 2
63125 --
63126 THEN
63127 xla_accounting_err_pkg.build_message
63128 (p_appli_s_name => 'XLA'
63129 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63130 ,p_token_1 => 'LINE_NUMBER'
63131 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
63132 ,p_token_2 => 'LINE_TYPE_NAME'
63133 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
63134 l_component_type
63135 ,l_component_code
63136 ,l_component_type_code
63137 ,l_component_appl_id
63138 ,l_amb_context_code
63139 ,l_entity_code
63140 ,l_event_class_code
63141 )
63142 ,p_token_3 => 'OWNER'
63143 ,p_value_3 => xla_lookups_pkg.get_meaning(
63144 p_lookup_type => 'XLA_OWNER_TYPE'
63145 ,p_lookup_code => l_component_type_code
63146 )
63147 ,p_token_4 => 'PRODUCT_NAME'
63148 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
63149 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
63150 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
63151 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
63152 ,p_ae_header_id => NULL
63153 );
63154
63155 IF (C_LEVEL_ERROR>= g_log_level) THEN
63156 trace
63157 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63158 ,p_level => C_LEVEL_ERROR
63159 ,p_module => l_log_module);
63160 END IF;
63161 END IF;
63162 END IF;
63163 --
63164 --
63165 ------------------------------------------------------------------------------------------------
63166 -- 4219869 Business Flow
63167 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
63168 -- Prior Entry. Currently, the following code is always generated.
63169 ------------------------------------------------------------------------------------------------
63170 XLA_AE_LINES_PKG.ValidateCurrentLine;
63171
63172 ------------------------------------------------------------------------------------
63173 -- 4219869 Business Flow
63174 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
63175 ------------------------------------------------------------------------------------
63176 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63177
63178 ----------------------------------------------------------------------------------
63179 -- 4219869 Business Flow
63180 -- Update journal entry status -- Need to generate this within IF <condition>
63181 ----------------------------------------------------------------------------------
63182 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63183 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
63184 ,p_balance_type_code => l_balance_type_code
63185 );
63186
63187 -------------------------------------------------------------------------------------------
63188 -- 4262811 - Generate the Accrual Reversal lines
63189 -------------------------------------------------------------------------------------------
63190 BEGIN
63191 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
63192 (g_array_event(p_event_id).array_value_num('header_index'));
63193 IF l_acc_rev_flag IS NULL THEN
63194 l_acc_rev_flag := 'N';
63195 END IF;
63196 EXCEPTION
63197 WHEN OTHERS THEN
63198 l_acc_rev_flag := 'N';
63199 END;
63200 --
63201 IF (l_acc_rev_flag = 'Y') THEN
63202
63203 -- 4645092 ------------------------------------------------------------------------------
63204 -- To allow MPA report to determine if it should generate report process
63205 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
63206 ------------------------------------------------------------------------------------------
63207
63208 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
63209 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
63210
63211 --
63212 -- Update the line information that should be overwritten
63213 --
63217
63214 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
63215 p_header_num => 1);
63216 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
63218 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
63219
63220 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
63221 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
63222 END IF;
63223
63224 --
63225 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
63226 --
63227 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
63228 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
63229 ELSE
63230 ---------------------------------------------------------------------------------------------------
63231 -- 4262811a Switch Sign
63232 ---------------------------------------------------------------------------------------------------
63233 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
63234 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63235 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63236 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63237 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63238 -- 5132302
63239 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
63240 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63241
63242 END IF;
63243
63244 -- 4955764
63245 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63246 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
63247
63248
63249 XLA_AE_LINES_PKG.ValidateCurrentLine;
63250 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63251
63252 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63253 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
63254 ,p_balance_type_code => l_balance_type_code);
63255
63256 END IF;
63257
63258 -----------------------------------------------------------------------------------------
63259 -- 4262811 Multiperiod Accounting
63260 -----------------------------------------------------------------------------------------
63261 -- No MPA option is assigned.
63262
63263
63264 END IF;
63265 END IF;
63266 --
63267
63268 --
63269 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63270 trace
63271 (p_msg => 'END of AcctLineType_129'
63272 ,p_level => C_LEVEL_PROCEDURE
63273 ,p_module => l_log_module);
63274 END IF;
63275 --
63276 EXCEPTION
63277 WHEN xla_exceptions_pkg.application_exception THEN
63278 RAISE;
63279 WHEN OTHERS THEN
63280 xla_exceptions_pkg.raise_message
63281 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_129');
63282 END AcctLineType_129;
63283 --
63284
63285 ---------------------------------------
63286 --
63287 -- PRIVATE FUNCTION
63288 -- AcctLineType_130
63289 --
63290 ---------------------------------------
63291 PROCEDURE AcctLineType_130 (
63292 p_application_id IN NUMBER
63293 ,p_event_id IN NUMBER
63294 ,p_calculate_acctd_flag IN VARCHAR2
63295 ,p_calculate_g_l_flag IN VARCHAR2
63296 ,p_actual_flag IN OUT VARCHAR2
63297 ,p_balance_type_code OUT VARCHAR2
63298 ,p_gain_or_loss_ref OUT VARCHAR2
63299
63300 --Budget Code Combination ID
63301 , p_source_3 IN NUMBER
63302 --Cost CCID
63303 , p_source_4 IN NUMBER
63304 --Allow Account Override Flag
63305 , p_source_5 IN VARCHAR2
63306 --Cost Clearing CCID
63307 , p_source_7 IN NUMBER
63308 --Adjustment Cost Clearing CCID
63309 , p_source_8 IN NUMBER
63310 --Reversing Line Flag
63311 , p_source_23 IN VARCHAR2
63312 --Actual Upgrade Credit Accounting Class
63313 , p_source_24 IN VARCHAR2
63314 --Entered Currency Code
63315 , p_source_26 IN VARCHAR2
63316 --Exchange Rate Date
63317 , p_source_28 IN DATE
63318 --Exchange Rate
63319 , p_source_29 IN NUMBER
63320 --Exchange Rate Type
63321 , p_source_30 IN VARCHAR2
63322 --Actual Upgrade Debit Accounting Class
63323 , p_source_31 IN VARCHAR2
63324 --Use Actuals Upgrade Attributes Flag
63325 , p_source_32 IN VARCHAR2
63326 --Expenditure Item ID
63327 , p_source_33 IN NUMBER
63328 --Cost Distribution Line Number
63329 , p_source_34 IN NUMBER
63330 --Line Type
63331 , p_source_35 IN VARCHAR2
63332 , p_source_35_meaning IN VARCHAR2
63333 --Reversed Line Number
63334 , p_source_36 IN NUMBER
63335 --Use Encumbrance Upgrade Attributes Flag
63336 , p_source_44 IN VARCHAR2
63337 --Entered Burdened Cost
63338 , p_source_52 IN NUMBER
63339 --Accounted Burdened Cost
63340 , p_source_53 IN NUMBER
63341 --Encumbrance Amount
63342 , p_source_54 IN NUMBER
63343 --Project Encumbrance Applied to Application Identifier
63344 , p_source_55 IN NUMBER
63345 --Project Encumbrance Applied to Distribution Type
63346 , p_source_56 IN VARCHAR2
63350 , p_source_58 IN NUMBER
63347 --Project Encumbrance Applied to Entity Code
63348 , p_source_57 IN VARCHAR2
63349 --Project Encumbrance Applied to First Distribution ID
63351 --Project Encumbrance Applied to First System Transaction ID
63352 , p_source_59 IN NUMBER
63353 --Project Encumbrance Applied to Second Distribution ID
63354 , p_source_60 IN VARCHAR2
63355 --Encumbrance Upgrade Debit Accounting Class
63356 , p_source_61 IN VARCHAR2
63357 --Encumbrance Type ID
63358 , p_source_62 IN NUMBER
63359 --Project Encumbrance Type ID
63360 , p_source_63 IN NUMBER
63361 )
63362 IS
63363
63364 l_component_type VARCHAR2(80);
63365 l_component_code VARCHAR2(30);
63366 l_component_type_code VARCHAR2(1);
63367 l_component_appl_id INTEGER;
63368 l_amb_context_code VARCHAR2(30);
63369 l_entity_code VARCHAR2(30);
63370 l_event_class_code VARCHAR2(30);
63371 l_ae_header_id NUMBER;
63372 l_event_type_code VARCHAR2(30);
63373 l_line_definition_code VARCHAR2(30);
63374 l_line_definition_owner_code VARCHAR2(1);
63375 --
63376 -- adr variables
63377 l_segment VARCHAR2(30);
63378 l_ccid NUMBER;
63379 l_adr_transaction_coa_id NUMBER;
63380 l_adr_accounting_coa_id NUMBER;
63381 l_adr_flexfield_segment_code VARCHAR2(30);
63382 l_adr_flex_value_set_id NUMBER;
63383 l_adr_value_type_code VARCHAR2(30);
63384 l_adr_value_combination_id NUMBER;
63385 l_adr_value_segment_code VARCHAR2(30);
63386
63387 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
63388 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
63389 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
63390 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
63391
63392 -- 4262811 Variables ------------------------------------------------------------------------------------------
63393 l_entered_amt_idx NUMBER;
63394 l_accted_amt_idx NUMBER;
63395 l_acc_rev_flag VARCHAR2(1);
63396 l_accrual_line_num NUMBER;
63397 l_tmp_amt NUMBER;
63398 l_acc_rev_natural_side_code VARCHAR2(1);
63399
63400 l_num_entries NUMBER;
63401 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
63402 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
63403 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
63404 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
63405 l_recog_line_1 NUMBER;
63406 l_recog_line_2 NUMBER;
63407
63408 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
63409 l_bflow_applied_to_amt NUMBER; -- 5132302
63410 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
63411
63412 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
63413
63414 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
63415 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
63416
63417 ---------------------------------------------------------------------------------------------------------------
63418
63419
63420 --
63421 -- bulk performance
63422 --
63423 l_balance_type_code VARCHAR2(1);
63424 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
63425 l_log_module VARCHAR2(240);
63426
63427 --
63428 -- Upgrade strategy
63429 --
63430 l_actual_upg_option VARCHAR2(1);
63431 l_enc_upg_option VARCHAR2(1);
63432
63433 --
63434 BEGIN
63435 --
63436 IF g_log_enabled THEN
63437 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_130';
63438 END IF;
63439 --
63440 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63441
63442 trace
63443 (p_msg => 'BEGIN of AcctLineType_130'
63444 ,p_level => C_LEVEL_PROCEDURE
63445 ,p_module => l_log_module);
63446
63447 END IF;
63448 --
63449 l_component_type := 'AMB_JLT';
63450 l_component_code := 'PA_TOT_BURDENED_COST_CLEAR_ADJ';
63451 l_component_type_code := 'S';
63452 l_component_appl_id := 275;
63453 l_amb_context_code := 'DEFAULT';
63454 l_entity_code := 'EXPENDITURES';
63455 l_event_class_code := 'TOT_BURDENED_COST_ADJ';
63456 l_event_type_code := 'TOT_BURDENED_COST_ADJ_ALL';
63457 l_line_definition_owner_code := 'S';
63458 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
63459 --
63460 l_balance_type_code := 'A';
63461 l_segment := NULL;
63462 l_ccid := NULL;
63463 l_adr_transaction_coa_id := NULL;
63464 l_adr_accounting_coa_id := NULL;
63465 l_adr_flexfield_segment_code := NULL;
63466 l_adr_flex_value_set_id := NULL;
63467 l_adr_value_type_code := NULL;
63468 l_adr_value_combination_id := NULL;
63469 l_adr_value_segment_code := NULL;
63470
63471 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
63472 l_bflow_class_code := ''; -- 4219869 Business Flow
63473 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
63474 l_budgetary_control_flag := 'N';
63475
63476 l_bflow_applied_to_amt_idx := NULL; -- 5132302
63477 l_bflow_applied_to_amt := NULL; -- 5132302
63478 l_entered_amt_idx := NULL; -- 4262811
63479 l_accted_amt_idx := NULL; -- 4262811
63480 l_acc_rev_flag := NULL; -- 4262811
63484
63481 l_accrual_line_num := NULL; -- 4262811
63482 l_tmp_amt := NULL; -- 4262811
63483 --
63485 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
63486 l_balance_type_code <> 'B' THEN
63487 IF NVL(p_source_35,'
63488 ') = 'C'
63489 THEN
63490
63491 --
63492 XLA_AE_LINES_PKG.SetNewLine;
63493
63494 p_balance_type_code := l_balance_type_code;
63495 -- set the flag so later we will know whether the gain loss line needs to be created
63496
63497 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
63498 p_actual_flag :='A';
63499 END IF;
63500
63501 --
63502 -- bulk performance
63503 --
63504 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
63505 p_header_num => 0); -- 4262811
63506 --
63507 -- set accounting line options
63508 --
63509 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
63510 p_natural_side_code => 'C'
63511 , p_gain_or_loss_flag => 'N'
63512 , p_gl_transfer_mode_code => 'S'
63513 , p_acct_entry_type_code => 'A'
63514 , p_switch_side_flag => 'Y'
63515 , p_merge_duplicate_code => 'N'
63516 );
63517 --
63518 l_acc_rev_natural_side_code := 'D'; -- 4262811
63519 --
63520 --
63521 -- set accounting line type info
63522 --
63523 xla_ae_lines_pkg.SetAcctLineType
63524 (p_component_type => l_component_type
63525 ,p_event_type_code => l_event_type_code
63526 ,p_line_definition_owner_code => l_line_definition_owner_code
63527 ,p_line_definition_code => l_line_definition_code
63528 ,p_accounting_line_code => l_component_code
63529 ,p_accounting_line_type_code => l_component_type_code
63530 ,p_accounting_line_appl_id => l_component_appl_id
63531 ,p_amb_context_code => l_amb_context_code
63532 ,p_entity_code => l_entity_code
63533 ,p_event_class_code => l_event_class_code);
63534 --
63535 -- set accounting class
63536 --
63537 xla_ae_lines_pkg.SetAcctClass(
63538 p_accounting_class_code => 'COST_CLEARING'
63539 , p_ae_header_id => l_ae_header_id
63540 );
63541
63542 --
63543 -- set rounding class
63544 --
63545 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
63546 'COST_CLEARING';
63547
63548 --
63549 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
63550 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
63551 --
63552 -- bulk performance
63553 --
63554 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
63555
63556 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
63557 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
63558
63559 -- 4955764
63560 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63561 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
63562
63563 -- 4458381 Public Sector Enh
63564
63565 --
63566 -- set accounting attributes for the line type
63567 --
63568 l_entered_amt_idx := 35;
63569 l_accted_amt_idx := 40;
63570 l_bflow_applied_to_amt_idx := 19; -- 5132302
63571 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
63572 l_rec_acct_attrs.array_char_value(1) := p_source_23;
63573 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
63574 l_rec_acct_attrs.array_char_value(2) := p_source_24;
63575 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
63576 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
63577 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
63578 l_rec_acct_attrs.array_num_value(4) := p_source_52;
63579 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
63580 l_rec_acct_attrs.array_char_value(5) := p_source_26;
63581 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
63582 l_rec_acct_attrs.array_num_value(6) := p_source_53;
63583 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
63584 l_rec_acct_attrs.array_date_value(7) := p_source_28;
63585 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
63586 l_rec_acct_attrs.array_num_value(8) := p_source_29;
63587 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
63588 l_rec_acct_attrs.array_char_value(9) := p_source_30;
63589 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
63590 l_rec_acct_attrs.array_char_value(10) := p_source_31;
63591 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
63592 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
63593 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
63594 l_rec_acct_attrs.array_num_value(12) := p_source_52;
63595 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
63596 l_rec_acct_attrs.array_char_value(13) := p_source_26;
63597 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
63598 l_rec_acct_attrs.array_num_value(14) := p_source_53;
63599 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
63600 l_rec_acct_attrs.array_date_value(15) := p_source_28;
63601 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
63602 l_rec_acct_attrs.array_num_value(16) := p_source_29;
63606 l_rec_acct_attrs.array_char_value(18) := p_source_32;
63603 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
63604 l_rec_acct_attrs.array_char_value(17) := p_source_30;
63605 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
63607 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
63608 l_rec_acct_attrs.array_num_value(19) := p_source_54;
63609 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
63610 l_rec_acct_attrs.array_num_value(20) := p_source_55;
63611 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
63612 l_rec_acct_attrs.array_char_value(21) := p_source_56;
63613 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
63614 l_rec_acct_attrs.array_char_value(22) := p_source_57;
63615 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
63616 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_58);
63617 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
63618 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_59);
63619 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
63620 l_rec_acct_attrs.array_char_value(25) := p_source_60;
63621 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
63622 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_33);
63623 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
63624 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_34);
63625 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
63626 l_rec_acct_attrs.array_char_value(28) := p_source_35;
63627 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_ACCT_CLASS';
63628 l_rec_acct_attrs.array_char_value(29) := p_source_61;
63629 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_CCID';
63630 l_rec_acct_attrs.array_num_value(30) := p_source_3;
63631 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_AMT';
63632 l_rec_acct_attrs.array_num_value(31) := p_source_54;
63633 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_ENTERED_CURR';
63634 l_rec_acct_attrs.array_char_value(32) :=
63635 xla_ae_sources_pkg.GetSystemSourceChar(
63636 p_source_code => 'XLA_CURRENCY_CODE'
63637 , p_source_type_code => 'Y'
63638 , p_source_application_id => 602
63639 );
63640 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_DR_LEDGER_AMT';
63641 l_rec_acct_attrs.array_num_value(33) := p_source_54;
63642 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_OPTION';
63643 l_rec_acct_attrs.array_char_value(34) := p_source_44;
63644 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENTERED_CURRENCY_AMOUNT';
63645 l_rec_acct_attrs.array_num_value(35) := p_source_52;
63646 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENTERED_CURRENCY_CODE';
63647 l_rec_acct_attrs.array_char_value(36) := p_source_26;
63648 l_rec_acct_attrs.array_acct_attr_code(37) := 'EXCHANGE_DATE';
63649 l_rec_acct_attrs.array_date_value(37) := p_source_28;
63650 l_rec_acct_attrs.array_acct_attr_code(38) := 'EXCHANGE_RATE';
63651 l_rec_acct_attrs.array_num_value(38) := p_source_29;
63652 l_rec_acct_attrs.array_acct_attr_code(39) := 'EXCHANGE_RATE_TYPE';
63653 l_rec_acct_attrs.array_char_value(39) := p_source_30;
63654 l_rec_acct_attrs.array_acct_attr_code(40) := 'LEDGER_AMOUNT';
63655 l_rec_acct_attrs.array_num_value(40) := p_source_53;
63656 l_rec_acct_attrs.array_acct_attr_code(41) := 'REVERSED_DISTRIBUTION_ID1';
63657 l_rec_acct_attrs.array_num_value(41) := to_char(p_source_33);
63658 l_rec_acct_attrs.array_acct_attr_code(42) := 'REVERSED_DISTRIBUTION_ID2';
63659 l_rec_acct_attrs.array_num_value(42) := to_char(p_source_36);
63660 l_rec_acct_attrs.array_acct_attr_code(43) := 'REVERSED_DISTRIBUTION_TYPE';
63661 l_rec_acct_attrs.array_char_value(43) := p_source_35;
63662 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_CR_ENC_TYPE_ID';
63663 l_rec_acct_attrs.array_num_value(44) := p_source_62;
63664 l_rec_acct_attrs.array_acct_attr_code(45) := 'UPG_DR_ENC_TYPE_ID';
63665 l_rec_acct_attrs.array_num_value(45) := p_source_63;
63666
63667 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
63668 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
63669
63670 ---------------------------------------------------------------------------------------------------------------
63671 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
63672 ---------------------------------------------------------------------------------------------------------------
63673 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
63674
63675 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63676 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63677
63678 IF xla_accounting_cache_pkg.GetValueChar
63679 (p_source_code => 'LEDGER_CATEGORY_CODE'
63680 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
63681 AND l_bflow_method_code = 'PRIOR_ENTRY'
63682 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
63683 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
63684 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
63685 )
63686 THEN
63687 xla_ae_lines_pkg.BflowUpgEntry
63688 (p_business_method_code => l_bflow_method_code
63689 ,p_business_class_code => l_bflow_class_code
63690 ,p_balance_type => l_balance_type_code);
63691 ELSE
63692 NULL;
63693 -- No business flow processing for business flow method of NONE.
63694 END IF;
63695
63696 --
63697 -- call analytical criteria
63698 --
63699
63700 --
63701 -- call description
63702 --
63706 -- Bug 4922099
63703 -- No description or it is inherited.
63704 --
63705 -- call ADRs
63707 --
63708 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63709 (NVL(l_actual_upg_option, 'N') = 'O') OR
63710 (NVL(l_enc_upg_option, 'N') = 'O')
63711 )
63712 THEN
63713 NULL;
63714 --
63715 --
63716
63717 l_ccid := AcctDerRule_15(
63718 p_application_id => p_application_id
63719 , p_ae_header_id => l_ae_header_id
63720 , p_source_5 => p_source_5
63721 , p_source_8 => p_source_8
63722 , x_transaction_coa_id => l_adr_transaction_coa_id
63723 , x_accounting_coa_id => l_adr_accounting_coa_id
63724 , x_value_type_code => l_adr_value_type_code
63725 , p_side => 'NA'
63726 );
63727
63728 xla_ae_lines_pkg.set_ccid(
63729 p_code_combination_id => l_ccid
63730 , p_value_type_code => l_adr_value_type_code
63731 , p_transaction_coa_id => l_adr_transaction_coa_id
63732 , p_accounting_coa_id => l_adr_accounting_coa_id
63733 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
63734 , p_adr_type_code => 'S'
63735 , p_component_type => l_component_type
63736 , p_component_code => l_component_code
63737 , p_component_type_code => l_component_type_code
63738 , p_component_appl_id => l_component_appl_id
63739 , p_amb_context_code => l_amb_context_code
63740 , p_side => 'NA'
63741 );
63742
63743
63744 --
63745 --
63746 END IF;
63747 --
63748 -- Bug 4922099
63749 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
63750 (NVL(l_enc_upg_option, 'N') = 'O')
63751 ) AND
63752 (l_bflow_method_code = 'PRIOR_ENTRY')
63753 )
63754 THEN
63755 IF
63756 --
63757 1 = 2
63758 --
63759 THEN
63760 xla_accounting_err_pkg.build_message
63761 (p_appli_s_name => 'XLA'
63762 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63763 ,p_token_1 => 'LINE_NUMBER'
63764 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
63765 ,p_token_2 => 'LINE_TYPE_NAME'
63766 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
63767 l_component_type
63768 ,l_component_code
63769 ,l_component_type_code
63770 ,l_component_appl_id
63771 ,l_amb_context_code
63772 ,l_entity_code
63773 ,l_event_class_code
63774 )
63775 ,p_token_3 => 'OWNER'
63776 ,p_value_3 => xla_lookups_pkg.get_meaning(
63777 p_lookup_type => 'XLA_OWNER_TYPE'
63778 ,p_lookup_code => l_component_type_code
63779 )
63780 ,p_token_4 => 'PRODUCT_NAME'
63781 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
63782 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
63783 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
63784 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
63785 ,p_ae_header_id => NULL
63786 );
63787
63788 IF (C_LEVEL_ERROR>= g_log_level) THEN
63789 trace
63790 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63791 ,p_level => C_LEVEL_ERROR
63792 ,p_module => l_log_module);
63793 END IF;
63794 END IF;
63795 END IF;
63796 --
63797 --
63798 ------------------------------------------------------------------------------------------------
63799 -- 4219869 Business Flow
63800 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
63801 -- Prior Entry. Currently, the following code is always generated.
63802 ------------------------------------------------------------------------------------------------
63803 XLA_AE_LINES_PKG.ValidateCurrentLine;
63804
63805 ------------------------------------------------------------------------------------
63806 -- 4219869 Business Flow
63807 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
63808 ------------------------------------------------------------------------------------
63809 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63810
63811 ----------------------------------------------------------------------------------
63812 -- 4219869 Business Flow
63813 -- Update journal entry status -- Need to generate this within IF <condition>
63817 ,p_balance_type_code => l_balance_type_code
63814 ----------------------------------------------------------------------------------
63815 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63816 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
63818 );
63819
63820 -------------------------------------------------------------------------------------------
63821 -- 4262811 - Generate the Accrual Reversal lines
63822 -------------------------------------------------------------------------------------------
63823 BEGIN
63824 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
63825 (g_array_event(p_event_id).array_value_num('header_index'));
63826 IF l_acc_rev_flag IS NULL THEN
63827 l_acc_rev_flag := 'N';
63828 END IF;
63829 EXCEPTION
63830 WHEN OTHERS THEN
63831 l_acc_rev_flag := 'N';
63832 END;
63833 --
63834 IF (l_acc_rev_flag = 'Y') THEN
63835
63836 -- 4645092 ------------------------------------------------------------------------------
63837 -- To allow MPA report to determine if it should generate report process
63838 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
63839 ------------------------------------------------------------------------------------------
63840
63841 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
63842 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
63843
63844 --
63845 -- Update the line information that should be overwritten
63846 --
63847 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
63848 p_header_num => 1);
63849 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
63850
63851 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
63852
63853 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
63854 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
63855 END IF;
63856
63857 --
63858 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
63859 --
63860 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
63861 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
63862 ELSE
63863 ---------------------------------------------------------------------------------------------------
63864 -- 4262811a Switch Sign
63865 ---------------------------------------------------------------------------------------------------
63866 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
63867 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63868 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63869 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63870 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63871 -- 5132302
63872 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
63873 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63874
63875 END IF;
63876
63877 -- 4955764
63878 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63879 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
63880
63881
63882 XLA_AE_LINES_PKG.ValidateCurrentLine;
63883 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63884
63885 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63886 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
63887 ,p_balance_type_code => l_balance_type_code);
63888
63889 END IF;
63890
63891 -----------------------------------------------------------------------------------------
63892 -- 4262811 Multiperiod Accounting
63893 -----------------------------------------------------------------------------------------
63894 -- No MPA option is assigned.
63895
63896
63897 END IF;
63898 END IF;
63899 --
63900
63901 --
63902 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63903 trace
63904 (p_msg => 'END of AcctLineType_130'
63905 ,p_level => C_LEVEL_PROCEDURE
63906 ,p_module => l_log_module);
63907 END IF;
63908 --
63909 EXCEPTION
63910 WHEN xla_exceptions_pkg.application_exception THEN
63911 RAISE;
63912 WHEN OTHERS THEN
63913 xla_exceptions_pkg.raise_message
63914 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_130');
63915 END AcctLineType_130;
63916 --
63917
63918 ---------------------------------------
63919 --
63920 -- PRIVATE FUNCTION
63921 -- AcctLineType_131
63922 --
63923 ---------------------------------------
63924 PROCEDURE AcctLineType_131 (
63925 p_application_id IN NUMBER
63926 ,p_event_id IN NUMBER
63927 ,p_calculate_acctd_flag IN VARCHAR2
63928 ,p_calculate_g_l_flag IN VARCHAR2
63929 ,p_actual_flag IN OUT VARCHAR2
63930 ,p_balance_type_code OUT VARCHAR2
63931 ,p_gain_or_loss_ref OUT VARCHAR2
63932
63933 --Budget Code Combination ID
63934 , p_source_3 IN NUMBER
63935 --Cost CCID
63936 , p_source_4 IN NUMBER
63937 --Allow Account Override Flag
63938 , p_source_5 IN VARCHAR2
63939 --Adjustment Cost CCID
63943 --Reversing Line Flag
63940 , p_source_6 IN NUMBER
63941 --Cost Clearing CCID
63942 , p_source_7 IN NUMBER
63944 , p_source_23 IN VARCHAR2
63945 --Actual Upgrade Credit Accounting Class
63946 , p_source_24 IN VARCHAR2
63947 --Entered Currency Code
63948 , p_source_26 IN VARCHAR2
63949 --Exchange Rate Date
63950 , p_source_28 IN DATE
63951 --Exchange Rate
63952 , p_source_29 IN NUMBER
63953 --Exchange Rate Type
63954 , p_source_30 IN VARCHAR2
63955 --Actual Upgrade Debit Accounting Class
63956 , p_source_31 IN VARCHAR2
63957 --Use Actuals Upgrade Attributes Flag
63958 , p_source_32 IN VARCHAR2
63959 --Expenditure Item ID
63960 , p_source_33 IN NUMBER
63961 --Cost Distribution Line Number
63962 , p_source_34 IN NUMBER
63963 --Line Type
63964 , p_source_35 IN VARCHAR2
63965 , p_source_35_meaning IN VARCHAR2
63966 --Reversed Line Number
63967 , p_source_36 IN NUMBER
63968 --Use Encumbrance Upgrade Attributes Flag
63969 , p_source_44 IN VARCHAR2
63970 --Entered Burdened Cost
63971 , p_source_52 IN NUMBER
63972 --Accounted Burdened Cost
63973 , p_source_53 IN NUMBER
63974 --Encumbrance Amount
63975 , p_source_54 IN NUMBER
63976 --Project Encumbrance Applied to Application Identifier
63977 , p_source_55 IN NUMBER
63978 --Project Encumbrance Applied to Distribution Type
63979 , p_source_56 IN VARCHAR2
63980 --Project Encumbrance Applied to Entity Code
63981 , p_source_57 IN VARCHAR2
63982 --Project Encumbrance Applied to First Distribution ID
63983 , p_source_58 IN NUMBER
63984 --Project Encumbrance Applied to First System Transaction ID
63985 , p_source_59 IN NUMBER
63986 --Project Encumbrance Applied to Second Distribution ID
63987 , p_source_60 IN VARCHAR2
63988 --Encumbrance Upgrade Debit Accounting Class
63989 , p_source_61 IN VARCHAR2
63990 --Encumbrance Type ID
63991 , p_source_62 IN NUMBER
63992 --Project Encumbrance Type ID
63993 , p_source_63 IN NUMBER
63994 )
63995 IS
63996
63997 l_component_type VARCHAR2(80);
63998 l_component_code VARCHAR2(30);
63999 l_component_type_code VARCHAR2(1);
64000 l_component_appl_id INTEGER;
64001 l_amb_context_code VARCHAR2(30);
64002 l_entity_code VARCHAR2(30);
64003 l_event_class_code VARCHAR2(30);
64004 l_ae_header_id NUMBER;
64005 l_event_type_code VARCHAR2(30);
64006 l_line_definition_code VARCHAR2(30);
64007 l_line_definition_owner_code VARCHAR2(1);
64008 --
64009 -- adr variables
64010 l_segment VARCHAR2(30);
64011 l_ccid NUMBER;
64012 l_adr_transaction_coa_id NUMBER;
64013 l_adr_accounting_coa_id NUMBER;
64014 l_adr_flexfield_segment_code VARCHAR2(30);
64015 l_adr_flex_value_set_id NUMBER;
64016 l_adr_value_type_code VARCHAR2(30);
64017 l_adr_value_combination_id NUMBER;
64018 l_adr_value_segment_code VARCHAR2(30);
64019
64020 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
64021 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
64022 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
64023 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
64024
64025 -- 4262811 Variables ------------------------------------------------------------------------------------------
64026 l_entered_amt_idx NUMBER;
64027 l_accted_amt_idx NUMBER;
64028 l_acc_rev_flag VARCHAR2(1);
64029 l_accrual_line_num NUMBER;
64030 l_tmp_amt NUMBER;
64031 l_acc_rev_natural_side_code VARCHAR2(1);
64032
64033 l_num_entries NUMBER;
64034 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
64035 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
64036 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
64037 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
64038 l_recog_line_1 NUMBER;
64039 l_recog_line_2 NUMBER;
64040
64041 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
64042 l_bflow_applied_to_amt NUMBER; -- 5132302
64043 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
64044
64045 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
64046
64047 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
64048 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
64049
64050 ---------------------------------------------------------------------------------------------------------------
64051
64052
64053 --
64054 -- bulk performance
64055 --
64056 l_balance_type_code VARCHAR2(1);
64057 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
64058 l_log_module VARCHAR2(240);
64059
64060 --
64061 -- Upgrade strategy
64062 --
64063 l_actual_upg_option VARCHAR2(1);
64064 l_enc_upg_option VARCHAR2(1);
64065
64066 --
64067 BEGIN
64068 --
64069 IF g_log_enabled THEN
64070 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_131';
64071 END IF;
64072 --
64073 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64074
64075 trace
64076 (p_msg => 'BEGIN of AcctLineType_131'
64077 ,p_level => C_LEVEL_PROCEDURE
64078 ,p_module => l_log_module);
64079
64080 END IF;
64081 --
64085 l_component_appl_id := 275;
64082 l_component_type := 'AMB_JLT';
64083 l_component_code := 'PA_TOT_BURDEN_COST_ADJ_FED';
64084 l_component_type_code := 'S';
64086 l_amb_context_code := 'DEFAULT';
64087 l_entity_code := 'EXPENDITURES';
64088 l_event_class_code := 'TOT_BURDENED_COST_ADJ';
64089 l_event_type_code := 'TOT_BURDENED_COST_ADJ_ALL';
64090 l_line_definition_owner_code := 'S';
64091 l_line_definition_code := 'FV_PROJECTS_JLD';
64092 --
64093 l_balance_type_code := 'A';
64094 l_segment := NULL;
64095 l_ccid := NULL;
64096 l_adr_transaction_coa_id := NULL;
64097 l_adr_accounting_coa_id := NULL;
64098 l_adr_flexfield_segment_code := NULL;
64099 l_adr_flex_value_set_id := NULL;
64100 l_adr_value_type_code := NULL;
64101 l_adr_value_combination_id := NULL;
64102 l_adr_value_segment_code := NULL;
64103
64104 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
64105 l_bflow_class_code := ''; -- 4219869 Business Flow
64106 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
64107 l_budgetary_control_flag := 'N';
64108
64109 l_bflow_applied_to_amt_idx := NULL; -- 5132302
64110 l_bflow_applied_to_amt := NULL; -- 5132302
64111 l_entered_amt_idx := NULL; -- 4262811
64112 l_accted_amt_idx := NULL; -- 4262811
64113 l_acc_rev_flag := NULL; -- 4262811
64114 l_accrual_line_num := NULL; -- 4262811
64115 l_tmp_amt := NULL; -- 4262811
64116 --
64117
64118 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
64119 l_balance_type_code <> 'B' THEN
64120 IF NVL(p_source_35,'
64121 ') = 'D'
64122 THEN
64123
64124 --
64125 XLA_AE_LINES_PKG.SetNewLine;
64126
64127 p_balance_type_code := l_balance_type_code;
64128 -- set the flag so later we will know whether the gain loss line needs to be created
64129
64130 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
64131 p_actual_flag :='A';
64132 END IF;
64133
64134 --
64135 -- bulk performance
64136 --
64137 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
64138 p_header_num => 0); -- 4262811
64139 --
64140 -- set accounting line options
64141 --
64142 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
64143 p_natural_side_code => 'D'
64144 , p_gain_or_loss_flag => 'N'
64145 , p_gl_transfer_mode_code => 'S'
64146 , p_acct_entry_type_code => 'A'
64147 , p_switch_side_flag => 'Y'
64148 , p_merge_duplicate_code => 'N'
64149 );
64150 --
64151 l_acc_rev_natural_side_code := 'C'; -- 4262811
64152 --
64153 --
64154 -- set accounting line type info
64155 --
64156 xla_ae_lines_pkg.SetAcctLineType
64157 (p_component_type => l_component_type
64158 ,p_event_type_code => l_event_type_code
64159 ,p_line_definition_owner_code => l_line_definition_owner_code
64160 ,p_line_definition_code => l_line_definition_code
64161 ,p_accounting_line_code => l_component_code
64162 ,p_accounting_line_type_code => l_component_type_code
64163 ,p_accounting_line_appl_id => l_component_appl_id
64164 ,p_amb_context_code => l_amb_context_code
64165 ,p_entity_code => l_entity_code
64166 ,p_event_class_code => l_event_class_code);
64167 --
64168 -- set accounting class
64169 --
64170 xla_ae_lines_pkg.SetAcctClass(
64171 p_accounting_class_code => 'FEDERAL_PROJECT_COST'
64172 , p_ae_header_id => l_ae_header_id
64173 );
64174
64175 --
64176 -- set rounding class
64177 --
64178 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
64179 'FEDERAL_PROJECT_COST';
64180
64181 --
64182 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
64183 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
64184 --
64185 -- bulk performance
64186 --
64187 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
64188
64189 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
64190 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
64191
64192 -- 4955764
64193 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64194 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
64195
64196 -- 4458381 Public Sector Enh
64197
64198 --
64199 -- set accounting attributes for the line type
64200 --
64201 l_entered_amt_idx := 34;
64202 l_accted_amt_idx := 39;
64203 l_bflow_applied_to_amt_idx := NULL; -- 5132302
64204 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
64205 l_rec_acct_attrs.array_char_value(1) := p_source_23;
64206 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
64207 l_rec_acct_attrs.array_char_value(2) := p_source_24;
64208 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
64209 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
64210 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
64211 l_rec_acct_attrs.array_num_value(4) := p_source_52;
64215 l_rec_acct_attrs.array_num_value(6) := p_source_53;
64212 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
64213 l_rec_acct_attrs.array_char_value(5) := p_source_26;
64214 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
64216 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
64217 l_rec_acct_attrs.array_date_value(7) := p_source_28;
64218 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
64219 l_rec_acct_attrs.array_num_value(8) := p_source_29;
64220 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
64221 l_rec_acct_attrs.array_char_value(9) := p_source_30;
64222 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
64223 l_rec_acct_attrs.array_char_value(10) := p_source_31;
64224 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
64225 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
64226 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
64227 l_rec_acct_attrs.array_num_value(12) := p_source_52;
64228 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
64229 l_rec_acct_attrs.array_char_value(13) := p_source_26;
64230 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
64231 l_rec_acct_attrs.array_num_value(14) := p_source_53;
64232 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
64233 l_rec_acct_attrs.array_date_value(15) := p_source_28;
64234 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
64235 l_rec_acct_attrs.array_num_value(16) := p_source_29;
64236 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
64237 l_rec_acct_attrs.array_char_value(17) := p_source_30;
64238 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
64239 l_rec_acct_attrs.array_char_value(18) := p_source_32;
64240 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_APPLICATION_ID';
64241 l_rec_acct_attrs.array_num_value(19) := p_source_55;
64242 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_DISTRIBUTION_TYPE';
64243 l_rec_acct_attrs.array_char_value(20) := p_source_56;
64244 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_ENTITY_CODE';
64245 l_rec_acct_attrs.array_char_value(21) := p_source_57;
64246 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_DIST_ID';
64247 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_58);
64248 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
64249 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_59);
64250 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_DIST_ID';
64251 l_rec_acct_attrs.array_char_value(24) := p_source_60;
64252 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
64253 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_33);
64254 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
64255 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_34);
64256 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
64257 l_rec_acct_attrs.array_char_value(27) := p_source_35;
64258 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENC_UPG_DR_ACCT_CLASS';
64259 l_rec_acct_attrs.array_char_value(28) := p_source_61;
64260 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_CCID';
64261 l_rec_acct_attrs.array_num_value(29) := p_source_3;
64262 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_ENTERED_AMT';
64263 l_rec_acct_attrs.array_num_value(30) := p_source_54;
64264 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_CURR';
64265 l_rec_acct_attrs.array_char_value(31) :=
64266 xla_ae_sources_pkg.GetSystemSourceChar(
64267 p_source_code => 'XLA_CURRENCY_CODE'
64268 , p_source_type_code => 'Y'
64269 , p_source_application_id => 602
64270 );
64271 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_LEDGER_AMT';
64272 l_rec_acct_attrs.array_num_value(32) := p_source_54;
64273 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_OPTION';
64274 l_rec_acct_attrs.array_char_value(33) := p_source_44;
64275 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENTERED_CURRENCY_AMOUNT';
64276 l_rec_acct_attrs.array_num_value(34) := p_source_52;
64277 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENTERED_CURRENCY_CODE';
64278 l_rec_acct_attrs.array_char_value(35) := p_source_26;
64279 l_rec_acct_attrs.array_acct_attr_code(36) := 'EXCHANGE_DATE';
64280 l_rec_acct_attrs.array_date_value(36) := p_source_28;
64281 l_rec_acct_attrs.array_acct_attr_code(37) := 'EXCHANGE_RATE';
64282 l_rec_acct_attrs.array_num_value(37) := p_source_29;
64283 l_rec_acct_attrs.array_acct_attr_code(38) := 'EXCHANGE_RATE_TYPE';
64284 l_rec_acct_attrs.array_char_value(38) := p_source_30;
64285 l_rec_acct_attrs.array_acct_attr_code(39) := 'LEDGER_AMOUNT';
64286 l_rec_acct_attrs.array_num_value(39) := p_source_53;
64287 l_rec_acct_attrs.array_acct_attr_code(40) := 'REVERSED_DISTRIBUTION_ID1';
64288 l_rec_acct_attrs.array_num_value(40) := to_char(p_source_33);
64289 l_rec_acct_attrs.array_acct_attr_code(41) := 'REVERSED_DISTRIBUTION_ID2';
64290 l_rec_acct_attrs.array_num_value(41) := to_char(p_source_36);
64291 l_rec_acct_attrs.array_acct_attr_code(42) := 'REVERSED_DISTRIBUTION_TYPE';
64292 l_rec_acct_attrs.array_char_value(42) := p_source_35;
64293 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
64294 l_rec_acct_attrs.array_num_value(43) := p_source_62;
64295 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
64296 l_rec_acct_attrs.array_num_value(44) := p_source_63;
64297
64298 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
64299 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
64300
64301 ---------------------------------------------------------------------------------------------------------------
64302 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
64306 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64303 ---------------------------------------------------------------------------------------------------------------
64304 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
64305
64307 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64308
64309 IF xla_accounting_cache_pkg.GetValueChar
64310 (p_source_code => 'LEDGER_CATEGORY_CODE'
64311 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
64312 AND l_bflow_method_code = 'PRIOR_ENTRY'
64313 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
64314 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
64315 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
64316 )
64317 THEN
64318 xla_ae_lines_pkg.BflowUpgEntry
64319 (p_business_method_code => l_bflow_method_code
64320 ,p_business_class_code => l_bflow_class_code
64321 ,p_balance_type => l_balance_type_code);
64322 ELSE
64323 NULL;
64324 -- No business flow processing for business flow method of NONE.
64325 END IF;
64326
64327 --
64328 -- call analytical criteria
64329 --
64330
64331 --
64332 -- call description
64333 --
64334 -- No description or it is inherited.
64335 --
64336 -- call ADRs
64337 -- Bug 4922099
64338 --
64339 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64340 (NVL(l_actual_upg_option, 'N') = 'O') OR
64341 (NVL(l_enc_upg_option, 'N') = 'O')
64342 )
64343 THEN
64344 NULL;
64345 --
64346 --
64347
64348 l_ccid := AcctDerRule_13(
64349 p_application_id => p_application_id
64350 , p_ae_header_id => l_ae_header_id
64351 , p_source_5 => p_source_5
64352 , p_source_6 => p_source_6
64353 , x_transaction_coa_id => l_adr_transaction_coa_id
64354 , x_accounting_coa_id => l_adr_accounting_coa_id
64355 , x_value_type_code => l_adr_value_type_code
64356 , p_side => 'NA'
64357 );
64358
64359 xla_ae_lines_pkg.set_ccid(
64360 p_code_combination_id => l_ccid
64361 , p_value_type_code => l_adr_value_type_code
64362 , p_transaction_coa_id => l_adr_transaction_coa_id
64363 , p_accounting_coa_id => l_adr_accounting_coa_id
64364 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
64365 , p_adr_type_code => 'S'
64366 , p_component_type => l_component_type
64367 , p_component_code => l_component_code
64368 , p_component_type_code => l_component_type_code
64369 , p_component_appl_id => l_component_appl_id
64370 , p_amb_context_code => l_amb_context_code
64371 , p_side => 'NA'
64372 );
64373
64374
64375 l_segment := AcctDerRule_4(
64376 p_application_id => p_application_id
64377 , p_ae_header_id => l_ae_header_id
64378 , x_transaction_coa_id => l_adr_transaction_coa_id
64379 , x_accounting_coa_id => l_adr_accounting_coa_id
64380 , x_flexfield_segment_code => l_adr_flexfield_segment_code
64381 , x_flex_value_set_id => l_adr_flex_value_set_id
64382 , x_value_type_code => l_adr_value_type_code
64383 , x_value_combination_id => l_adr_value_combination_id
64384 , x_value_segment_code => l_adr_value_segment_code
64385 , p_side => 'NA'
64386 , p_override_seg_flag => 'Y'
64387 );
64388
64389 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
64390
64391 xla_ae_lines_pkg.set_segment(
64392 p_to_segment_code => 'GL_ACCOUNT'
64393 , p_segment_value => l_segment
64394 , p_from_segment_code => l_adr_value_segment_code
64395 , p_from_combination_id => l_adr_value_combination_id
64396 , p_value_type_code => l_adr_value_type_code
64397 , p_transaction_coa_id => l_adr_transaction_coa_id
64398 , p_accounting_coa_id => l_adr_accounting_coa_id
64399 , p_flexfield_segment_code => l_adr_flexfield_segment_code
64400 , p_flex_value_set_id => l_adr_flex_value_set_id
64401 , p_adr_code => 'FV_461001_PROJECTS'
64402 , p_adr_type_code => 'S'
64403 , p_component_type => l_component_type
64404 , p_component_code => l_component_code
64405 , p_component_type_code => l_component_type_code
64406 , p_component_appl_id => l_component_appl_id
64407 , p_amb_context_code => l_amb_context_code
64408 , p_entity_code => 'EXPENDITURES'
64409 , p_event_class_code => 'TOT_BURDENED_COST_ADJ'
64410 , p_side => 'NA'
64411 );
64412
64413 END IF;
64414
64415 --
64416 --
64417 END IF;
64418 --
64419 -- Bug 4922099
64420 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
64421 (NVL(l_enc_upg_option, 'N') = 'O')
64422 ) AND
64423 (l_bflow_method_code = 'PRIOR_ENTRY')
64424 )
64425 THEN
64426 IF
64427 --
64428 1 = 2
64429 --
64430 THEN
64431 xla_accounting_err_pkg.build_message
64432 (p_appli_s_name => 'XLA'
64433 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64437 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
64434 ,p_token_1 => 'LINE_NUMBER'
64435 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
64436 ,p_token_2 => 'LINE_TYPE_NAME'
64438 l_component_type
64439 ,l_component_code
64440 ,l_component_type_code
64441 ,l_component_appl_id
64442 ,l_amb_context_code
64443 ,l_entity_code
64444 ,l_event_class_code
64445 )
64446 ,p_token_3 => 'OWNER'
64447 ,p_value_3 => xla_lookups_pkg.get_meaning(
64448 p_lookup_type => 'XLA_OWNER_TYPE'
64449 ,p_lookup_code => l_component_type_code
64450 )
64451 ,p_token_4 => 'PRODUCT_NAME'
64452 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
64453 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
64454 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
64455 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
64456 ,p_ae_header_id => NULL
64457 );
64458
64459 IF (C_LEVEL_ERROR>= g_log_level) THEN
64460 trace
64461 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64462 ,p_level => C_LEVEL_ERROR
64463 ,p_module => l_log_module);
64464 END IF;
64465 END IF;
64466 END IF;
64467 --
64468 --
64469 ------------------------------------------------------------------------------------------------
64470 -- 4219869 Business Flow
64471 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
64472 -- Prior Entry. Currently, the following code is always generated.
64473 ------------------------------------------------------------------------------------------------
64474 XLA_AE_LINES_PKG.ValidateCurrentLine;
64475
64476 ------------------------------------------------------------------------------------
64477 -- 4219869 Business Flow
64478 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
64479 ------------------------------------------------------------------------------------
64480 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64481
64482 ----------------------------------------------------------------------------------
64483 -- 4219869 Business Flow
64484 -- Update journal entry status -- Need to generate this within IF <condition>
64485 ----------------------------------------------------------------------------------
64486 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64487 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
64488 ,p_balance_type_code => l_balance_type_code
64489 );
64490
64491 -------------------------------------------------------------------------------------------
64492 -- 4262811 - Generate the Accrual Reversal lines
64493 -------------------------------------------------------------------------------------------
64494 BEGIN
64495 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
64496 (g_array_event(p_event_id).array_value_num('header_index'));
64497 IF l_acc_rev_flag IS NULL THEN
64498 l_acc_rev_flag := 'N';
64499 END IF;
64500 EXCEPTION
64501 WHEN OTHERS THEN
64502 l_acc_rev_flag := 'N';
64503 END;
64504 --
64505 IF (l_acc_rev_flag = 'Y') THEN
64506
64507 -- 4645092 ------------------------------------------------------------------------------
64508 -- To allow MPA report to determine if it should generate report process
64509 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
64510 ------------------------------------------------------------------------------------------
64511
64512 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
64513 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
64514
64515 --
64516 -- Update the line information that should be overwritten
64517 --
64518 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
64519 p_header_num => 1);
64520 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
64521
64522 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
64523
64524 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
64525 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
64526 END IF;
64527
64528 --
64529 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
64530 --
64534 ---------------------------------------------------------------------------------------------------
64531 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
64532 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
64533 ELSE
64535 -- 4262811a Switch Sign
64536 ---------------------------------------------------------------------------------------------------
64537 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
64538 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64539 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64540 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64541 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64542 -- 5132302
64543 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
64544 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64545
64546 END IF;
64547
64548 -- 4955764
64549 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64550 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
64551
64552
64553 XLA_AE_LINES_PKG.ValidateCurrentLine;
64554 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64555
64556 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64557 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
64558 ,p_balance_type_code => l_balance_type_code);
64559
64560 END IF;
64561
64562 -----------------------------------------------------------------------------------------
64563 -- 4262811 Multiperiod Accounting
64564 -----------------------------------------------------------------------------------------
64565 -- No MPA option is assigned.
64566
64567
64568 END IF;
64569 END IF;
64570 --
64571
64572 --
64573 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64574 trace
64575 (p_msg => 'END of AcctLineType_131'
64576 ,p_level => C_LEVEL_PROCEDURE
64577 ,p_module => l_log_module);
64578 END IF;
64579 --
64580 EXCEPTION
64581 WHEN xla_exceptions_pkg.application_exception THEN
64582 RAISE;
64583 WHEN OTHERS THEN
64584 xla_exceptions_pkg.raise_message
64585 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_131');
64586 END AcctLineType_131;
64587 --
64588
64589 ---------------------------------------
64590 --
64591 -- PRIVATE FUNCTION
64592 -- AcctLineType_132
64593 --
64594 ---------------------------------------
64595 PROCEDURE AcctLineType_132 (
64596 p_application_id IN NUMBER
64597 ,p_event_id IN NUMBER
64598 ,p_calculate_acctd_flag IN VARCHAR2
64599 ,p_calculate_g_l_flag IN VARCHAR2
64600 ,p_actual_flag IN OUT VARCHAR2
64601 ,p_balance_type_code OUT VARCHAR2
64602 ,p_gain_or_loss_ref OUT VARCHAR2
64603
64604 --Budget Code Combination ID
64605 , p_source_3 IN NUMBER
64606 --Cost CCID
64607 , p_source_4 IN NUMBER
64608 --Allow Account Override Flag
64609 , p_source_5 IN VARCHAR2
64610 --Cost Clearing CCID
64611 , p_source_7 IN NUMBER
64612 --Adjustment Cost Clearing CCID
64613 , p_source_8 IN NUMBER
64614 --Reversing Line Flag
64615 , p_source_23 IN VARCHAR2
64616 --Actual Upgrade Credit Accounting Class
64617 , p_source_24 IN VARCHAR2
64618 --Entered Currency Code
64619 , p_source_26 IN VARCHAR2
64620 --Exchange Rate Date
64621 , p_source_28 IN DATE
64622 --Exchange Rate
64623 , p_source_29 IN NUMBER
64624 --Exchange Rate Type
64625 , p_source_30 IN VARCHAR2
64626 --Actual Upgrade Debit Accounting Class
64627 , p_source_31 IN VARCHAR2
64628 --Use Actuals Upgrade Attributes Flag
64629 , p_source_32 IN VARCHAR2
64630 --Expenditure Item ID
64631 , p_source_33 IN NUMBER
64632 --Cost Distribution Line Number
64633 , p_source_34 IN NUMBER
64634 --Line Type
64635 , p_source_35 IN VARCHAR2
64636 , p_source_35_meaning IN VARCHAR2
64637 --Reversed Line Number
64638 , p_source_36 IN NUMBER
64639 --Encumbrance Upgrade Credit Accounting Class
64640 , p_source_41 IN VARCHAR2
64641 --Use Encumbrance Upgrade Attributes Flag
64642 , p_source_44 IN VARCHAR2
64643 --Entered Burdened Cost
64644 , p_source_52 IN NUMBER
64645 --Accounted Burdened Cost
64646 , p_source_53 IN NUMBER
64647 --Encumbrance Amount
64648 , p_source_54 IN NUMBER
64649 --Project Encumbrance Applied to Application Identifier
64650 , p_source_55 IN NUMBER
64651 --Project Encumbrance Applied to Distribution Type
64652 , p_source_56 IN VARCHAR2
64653 --Project Encumbrance Applied to Entity Code
64654 , p_source_57 IN VARCHAR2
64655 --Project Encumbrance Applied to First Distribution ID
64656 , p_source_58 IN NUMBER
64657 --Project Encumbrance Applied to First System Transaction ID
64658 , p_source_59 IN NUMBER
64659 --Project Encumbrance Applied to Second Distribution ID
64660 , p_source_60 IN VARCHAR2
64661 --Encumbrance Upgrade Debit Accounting Class
64662 , p_source_61 IN VARCHAR2
64663 --Encumbrance Type ID
64664 , p_source_62 IN NUMBER
64665 --Project Encumbrance Type ID
64669
64666 , p_source_63 IN NUMBER
64667 )
64668 IS
64670 l_component_type VARCHAR2(80);
64671 l_component_code VARCHAR2(30);
64672 l_component_type_code VARCHAR2(1);
64673 l_component_appl_id INTEGER;
64674 l_amb_context_code VARCHAR2(30);
64675 l_entity_code VARCHAR2(30);
64676 l_event_class_code VARCHAR2(30);
64677 l_ae_header_id NUMBER;
64678 l_event_type_code VARCHAR2(30);
64679 l_line_definition_code VARCHAR2(30);
64680 l_line_definition_owner_code VARCHAR2(1);
64681 --
64682 -- adr variables
64683 l_segment VARCHAR2(30);
64684 l_ccid NUMBER;
64685 l_adr_transaction_coa_id NUMBER;
64686 l_adr_accounting_coa_id NUMBER;
64687 l_adr_flexfield_segment_code VARCHAR2(30);
64688 l_adr_flex_value_set_id NUMBER;
64689 l_adr_value_type_code VARCHAR2(30);
64690 l_adr_value_combination_id NUMBER;
64691 l_adr_value_segment_code VARCHAR2(30);
64692
64693 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
64694 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
64695 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
64696 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
64697
64698 -- 4262811 Variables ------------------------------------------------------------------------------------------
64699 l_entered_amt_idx NUMBER;
64700 l_accted_amt_idx NUMBER;
64701 l_acc_rev_flag VARCHAR2(1);
64702 l_accrual_line_num NUMBER;
64703 l_tmp_amt NUMBER;
64704 l_acc_rev_natural_side_code VARCHAR2(1);
64705
64706 l_num_entries NUMBER;
64707 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
64708 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
64709 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
64710 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
64711 l_recog_line_1 NUMBER;
64712 l_recog_line_2 NUMBER;
64713
64714 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
64715 l_bflow_applied_to_amt NUMBER; -- 5132302
64716 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
64717
64718 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
64719
64720 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
64721 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
64722
64723 ---------------------------------------------------------------------------------------------------------------
64724
64725
64726 --
64727 -- bulk performance
64728 --
64729 l_balance_type_code VARCHAR2(1);
64730 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
64731 l_log_module VARCHAR2(240);
64732
64733 --
64734 -- Upgrade strategy
64735 --
64736 l_actual_upg_option VARCHAR2(1);
64737 l_enc_upg_option VARCHAR2(1);
64738
64739 --
64740 BEGIN
64741 --
64742 IF g_log_enabled THEN
64743 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_132';
64744 END IF;
64745 --
64746 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64747
64748 trace
64749 (p_msg => 'BEGIN of AcctLineType_132'
64750 ,p_level => C_LEVEL_PROCEDURE
64751 ,p_module => l_log_module);
64752
64753 END IF;
64754 --
64755 l_component_type := 'AMB_JLT';
64756 l_component_code := 'PA_TOT_BURDEN_COST_CLEAR_FED';
64757 l_component_type_code := 'S';
64758 l_component_appl_id := 275;
64759 l_amb_context_code := 'DEFAULT';
64760 l_entity_code := 'EXPENDITURES';
64761 l_event_class_code := 'TOT_BURDENED_COST';
64762 l_event_type_code := 'TOT_BURDENED_COST_ALL';
64763 l_line_definition_owner_code := 'S';
64764 l_line_definition_code := 'FV_PROJECTS_JLD';
64765 --
64766 l_balance_type_code := 'A';
64767 l_segment := NULL;
64768 l_ccid := NULL;
64769 l_adr_transaction_coa_id := NULL;
64770 l_adr_accounting_coa_id := NULL;
64771 l_adr_flexfield_segment_code := NULL;
64772 l_adr_flex_value_set_id := NULL;
64773 l_adr_value_type_code := NULL;
64774 l_adr_value_combination_id := NULL;
64775 l_adr_value_segment_code := NULL;
64776
64777 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
64778 l_bflow_class_code := ''; -- 4219869 Business Flow
64779 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
64780 l_budgetary_control_flag := 'N';
64781
64782 l_bflow_applied_to_amt_idx := NULL; -- 5132302
64783 l_bflow_applied_to_amt := NULL; -- 5132302
64784 l_entered_amt_idx := NULL; -- 4262811
64785 l_accted_amt_idx := NULL; -- 4262811
64786 l_acc_rev_flag := NULL; -- 4262811
64787 l_accrual_line_num := NULL; -- 4262811
64788 l_tmp_amt := NULL; -- 4262811
64789 --
64790
64791 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
64792 l_balance_type_code <> 'B' THEN
64793 IF NVL(p_source_35,'
64794 ') = 'C'
64795 THEN
64796
64797 --
64798 XLA_AE_LINES_PKG.SetNewLine;
64799
64800 p_balance_type_code := l_balance_type_code;
64801 -- set the flag so later we will know whether the gain loss line needs to be created
64802
64803 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
64807 --
64804 p_actual_flag :='A';
64805 END IF;
64806
64808 -- bulk performance
64809 --
64810 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
64811 p_header_num => 0); -- 4262811
64812 --
64813 -- set accounting line options
64814 --
64815 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
64816 p_natural_side_code => 'C'
64817 , p_gain_or_loss_flag => 'N'
64818 , p_gl_transfer_mode_code => 'S'
64819 , p_acct_entry_type_code => 'A'
64820 , p_switch_side_flag => 'Y'
64821 , p_merge_duplicate_code => 'N'
64822 );
64823 --
64824 l_acc_rev_natural_side_code := 'D'; -- 4262811
64825 --
64826 --
64827 -- set accounting line type info
64828 --
64829 xla_ae_lines_pkg.SetAcctLineType
64830 (p_component_type => l_component_type
64831 ,p_event_type_code => l_event_type_code
64832 ,p_line_definition_owner_code => l_line_definition_owner_code
64833 ,p_line_definition_code => l_line_definition_code
64834 ,p_accounting_line_code => l_component_code
64835 ,p_accounting_line_type_code => l_component_type_code
64836 ,p_accounting_line_appl_id => l_component_appl_id
64837 ,p_amb_context_code => l_amb_context_code
64838 ,p_entity_code => l_entity_code
64839 ,p_event_class_code => l_event_class_code);
64840 --
64841 -- set accounting class
64842 --
64843 xla_ae_lines_pkg.SetAcctClass(
64844 p_accounting_class_code => 'FEDERAL_PROJECT_COST_CLEARING'
64845 , p_ae_header_id => l_ae_header_id
64846 );
64847
64848 --
64849 -- set rounding class
64850 --
64851 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
64852 'FEDERAL_PROJECT_COST_CLEARING';
64853
64854 --
64855 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
64856 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
64857 --
64858 -- bulk performance
64859 --
64860 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
64861
64862 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
64863 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
64864
64865 -- 4955764
64866 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64867 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
64868
64869 -- 4458381 Public Sector Enh
64870
64871 --
64872 -- set accounting attributes for the line type
64873 --
64874 l_entered_amt_idx := 39;
64875 l_accted_amt_idx := 45;
64876 l_bflow_applied_to_amt_idx := NULL; -- 5132302
64877 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
64878 l_rec_acct_attrs.array_char_value(1) := p_source_23;
64879 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
64880 l_rec_acct_attrs.array_char_value(2) := p_source_24;
64881 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
64882 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
64883 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
64884 l_rec_acct_attrs.array_num_value(4) := p_source_52;
64885 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
64886 l_rec_acct_attrs.array_char_value(5) := p_source_26;
64887 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
64888 l_rec_acct_attrs.array_num_value(6) := p_source_53;
64889 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
64890 l_rec_acct_attrs.array_date_value(7) := p_source_28;
64891 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
64892 l_rec_acct_attrs.array_num_value(8) := p_source_29;
64893 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
64894 l_rec_acct_attrs.array_char_value(9) := p_source_30;
64895 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
64896 l_rec_acct_attrs.array_char_value(10) := p_source_31;
64897 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
64898 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
64899 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
64900 l_rec_acct_attrs.array_num_value(12) := p_source_52;
64901 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
64902 l_rec_acct_attrs.array_char_value(13) := p_source_26;
64903 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
64904 l_rec_acct_attrs.array_num_value(14) := p_source_53;
64905 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
64906 l_rec_acct_attrs.array_date_value(15) := p_source_28;
64907 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
64908 l_rec_acct_attrs.array_num_value(16) := p_source_29;
64909 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
64910 l_rec_acct_attrs.array_char_value(17) := p_source_30;
64911 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
64912 l_rec_acct_attrs.array_char_value(18) := p_source_32;
64913 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_APPLICATION_ID';
64914 l_rec_acct_attrs.array_num_value(19) := p_source_55;
64915 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_DISTRIBUTION_TYPE';
64916 l_rec_acct_attrs.array_char_value(20) := p_source_56;
64917 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_ENTITY_CODE';
64921 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
64918 l_rec_acct_attrs.array_char_value(21) := p_source_57;
64919 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_DIST_ID';
64920 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_58);
64922 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_59);
64923 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_DIST_ID';
64924 l_rec_acct_attrs.array_char_value(24) := p_source_60;
64925 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
64926 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_33);
64927 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
64928 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_34);
64929 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
64930 l_rec_acct_attrs.array_char_value(27) := p_source_35;
64931 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENC_UPG_CR_ACCT_CLASS';
64932 l_rec_acct_attrs.array_char_value(28) := p_source_41;
64933 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_CCID';
64934 l_rec_acct_attrs.array_num_value(29) := p_source_3;
64935 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_ENTERED_AMT';
64936 l_rec_acct_attrs.array_num_value(30) := p_source_54;
64937 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_CURR';
64938 l_rec_acct_attrs.array_char_value(31) :=
64939 xla_ae_sources_pkg.GetSystemSourceChar(
64940 p_source_code => 'XLA_CURRENCY_CODE'
64941 , p_source_type_code => 'Y'
64942 , p_source_application_id => 602
64943 );
64944 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_LEDGER_AMT';
64945 l_rec_acct_attrs.array_num_value(32) := p_source_54;
64946 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_DR_ACCT_CLASS';
64947 l_rec_acct_attrs.array_char_value(33) := p_source_61;
64948 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_CCID';
64949 l_rec_acct_attrs.array_num_value(34) := p_source_3;
64950 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_ENTERED_AMT';
64951 l_rec_acct_attrs.array_num_value(35) := p_source_54;
64952 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_CURR';
64953 l_rec_acct_attrs.array_char_value(36) :=
64954 xla_ae_sources_pkg.GetSystemSourceChar(
64955 p_source_code => 'XLA_CURRENCY_CODE'
64956 , p_source_type_code => 'Y'
64957 , p_source_application_id => 602
64958 );
64959 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_LEDGER_AMT';
64960 l_rec_acct_attrs.array_num_value(37) := p_source_54;
64961 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_OPTION';
64962 l_rec_acct_attrs.array_char_value(38) := p_source_44;
64963 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENTERED_CURRENCY_AMOUNT';
64964 l_rec_acct_attrs.array_num_value(39) := p_source_52;
64965 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_CODE';
64966 l_rec_acct_attrs.array_char_value(40) := p_source_26;
64967 l_rec_acct_attrs.array_acct_attr_code(41) := 'EXCHANGE_DATE';
64968 l_rec_acct_attrs.array_date_value(41) := p_source_28;
64969 l_rec_acct_attrs.array_acct_attr_code(42) := 'EXCHANGE_RATE';
64970 l_rec_acct_attrs.array_num_value(42) := p_source_29;
64971 l_rec_acct_attrs.array_acct_attr_code(43) := 'EXCHANGE_RATE_TYPE';
64972 l_rec_acct_attrs.array_char_value(43) := p_source_30;
64973 l_rec_acct_attrs.array_acct_attr_code(44) := 'GAIN_LOSS_REFERENCE';
64974 l_rec_acct_attrs.array_num_value(44) := to_char(p_source_33);
64975 l_rec_acct_attrs.array_acct_attr_code(45) := 'LEDGER_AMOUNT';
64976 l_rec_acct_attrs.array_num_value(45) := p_source_53;
64977 l_rec_acct_attrs.array_acct_attr_code(46) := 'REVERSED_DISTRIBUTION_ID1';
64978 l_rec_acct_attrs.array_num_value(46) := to_char(p_source_33);
64979 l_rec_acct_attrs.array_acct_attr_code(47) := 'REVERSED_DISTRIBUTION_ID2';
64980 l_rec_acct_attrs.array_num_value(47) := to_char(p_source_36);
64981 l_rec_acct_attrs.array_acct_attr_code(48) := 'REVERSED_DISTRIBUTION_TYPE';
64982 l_rec_acct_attrs.array_char_value(48) := p_source_35;
64983 l_rec_acct_attrs.array_acct_attr_code(49) := 'UPG_CR_ENC_TYPE_ID';
64984 l_rec_acct_attrs.array_num_value(49) := p_source_62;
64985 l_rec_acct_attrs.array_acct_attr_code(50) := 'UPG_DR_ENC_TYPE_ID';
64986 l_rec_acct_attrs.array_num_value(50) := p_source_63;
64987
64988 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
64989 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
64990
64991 ---------------------------------------------------------------------------------------------------------------
64992 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
64993 ---------------------------------------------------------------------------------------------------------------
64994 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
64995
64996 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64997 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64998
64999 IF xla_accounting_cache_pkg.GetValueChar
65000 (p_source_code => 'LEDGER_CATEGORY_CODE'
65001 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
65002 AND l_bflow_method_code = 'PRIOR_ENTRY'
65003 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
65004 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
65005 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
65006 )
65007 THEN
65008 xla_ae_lines_pkg.BflowUpgEntry
65009 (p_business_method_code => l_bflow_method_code
65010 ,p_business_class_code => l_bflow_class_code
65011 ,p_balance_type => l_balance_type_code);
65012 ELSE
65013 NULL;
65017 --
65014 -- No business flow processing for business flow method of NONE.
65015 END IF;
65016
65018 -- call analytical criteria
65019 --
65020
65021 --
65022 -- call description
65023 --
65024 -- No description or it is inherited.
65025 --
65026 -- call ADRs
65027 -- Bug 4922099
65028 --
65029 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
65030 (NVL(l_actual_upg_option, 'N') = 'O') OR
65031 (NVL(l_enc_upg_option, 'N') = 'O')
65032 )
65033 THEN
65034 NULL;
65035 --
65036 --
65037
65038 l_ccid := AcctDerRule_14(
65039 p_application_id => p_application_id
65040 , p_ae_header_id => l_ae_header_id
65041 , p_source_5 => p_source_5
65042 , p_source_7 => p_source_7
65043 , p_source_8 => p_source_8
65044 , x_transaction_coa_id => l_adr_transaction_coa_id
65045 , x_accounting_coa_id => l_adr_accounting_coa_id
65046 , x_value_type_code => l_adr_value_type_code
65047 , p_side => 'NA'
65048 );
65049
65050 xla_ae_lines_pkg.set_ccid(
65051 p_code_combination_id => l_ccid
65052 , p_value_type_code => l_adr_value_type_code
65053 , p_transaction_coa_id => l_adr_transaction_coa_id
65054 , p_accounting_coa_id => l_adr_accounting_coa_id
65055 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
65056 , p_adr_type_code => 'S'
65057 , p_component_type => l_component_type
65058 , p_component_code => l_component_code
65059 , p_component_type_code => l_component_type_code
65060 , p_component_appl_id => l_component_appl_id
65061 , p_amb_context_code => l_amb_context_code
65062 , p_side => 'NA'
65063 );
65064
65065
65066 l_segment := AcctDerRule_5(
65067 p_application_id => p_application_id
65068 , p_ae_header_id => l_ae_header_id
65069 , x_transaction_coa_id => l_adr_transaction_coa_id
65070 , x_accounting_coa_id => l_adr_accounting_coa_id
65071 , x_flexfield_segment_code => l_adr_flexfield_segment_code
65072 , x_flex_value_set_id => l_adr_flex_value_set_id
65073 , x_value_type_code => l_adr_value_type_code
65074 , x_value_combination_id => l_adr_value_combination_id
65075 , x_value_segment_code => l_adr_value_segment_code
65076 , p_side => 'NA'
65077 , p_override_seg_flag => 'Y'
65078 );
65079
65080 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
65081
65082 xla_ae_lines_pkg.set_segment(
65083 p_to_segment_code => 'GL_ACCOUNT'
65084 , p_segment_value => l_segment
65085 , p_from_segment_code => l_adr_value_segment_code
65086 , p_from_combination_id => l_adr_value_combination_id
65087 , p_value_type_code => l_adr_value_type_code
65088 , p_transaction_coa_id => l_adr_transaction_coa_id
65089 , p_accounting_coa_id => l_adr_accounting_coa_id
65090 , p_flexfield_segment_code => l_adr_flexfield_segment_code
65091 , p_flex_value_set_id => l_adr_flex_value_set_id
65092 , p_adr_code => 'FV_490201_PROJECTS'
65093 , p_adr_type_code => 'S'
65094 , p_component_type => l_component_type
65095 , p_component_code => l_component_code
65096 , p_component_type_code => l_component_type_code
65097 , p_component_appl_id => l_component_appl_id
65098 , p_amb_context_code => l_amb_context_code
65099 , p_entity_code => 'EXPENDITURES'
65100 , p_event_class_code => 'TOT_BURDENED_COST'
65101 , p_side => 'NA'
65102 );
65103
65104 END IF;
65105
65106 --
65107 --
65108 END IF;
65109 --
65110 -- Bug 4922099
65111 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
65112 (NVL(l_enc_upg_option, 'N') = 'O')
65113 ) AND
65114 (l_bflow_method_code = 'PRIOR_ENTRY')
65115 )
65116 THEN
65117 IF
65118 --
65119 1 = 2
65120 --
65121 THEN
65122 xla_accounting_err_pkg.build_message
65123 (p_appli_s_name => 'XLA'
65124 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
65125 ,p_token_1 => 'LINE_NUMBER'
65126 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
65127 ,p_token_2 => 'LINE_TYPE_NAME'
65128 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
65129 l_component_type
65130 ,l_component_code
65131 ,l_component_type_code
65132 ,l_component_appl_id
65133 ,l_amb_context_code
65134 ,l_entity_code
65135 ,l_event_class_code
65136 )
65137 ,p_token_3 => 'OWNER'
65141 )
65138 ,p_value_3 => xla_lookups_pkg.get_meaning(
65139 p_lookup_type => 'XLA_OWNER_TYPE'
65140 ,p_lookup_code => l_component_type_code
65142 ,p_token_4 => 'PRODUCT_NAME'
65143 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
65144 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
65145 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
65146 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
65147 ,p_ae_header_id => NULL
65148 );
65149
65150 IF (C_LEVEL_ERROR>= g_log_level) THEN
65151 trace
65152 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
65153 ,p_level => C_LEVEL_ERROR
65154 ,p_module => l_log_module);
65155 END IF;
65156 END IF;
65157 END IF;
65158 --
65159 --
65160 ------------------------------------------------------------------------------------------------
65161 -- 4219869 Business Flow
65162 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
65163 -- Prior Entry. Currently, the following code is always generated.
65164 ------------------------------------------------------------------------------------------------
65165 XLA_AE_LINES_PKG.ValidateCurrentLine;
65166
65167 ------------------------------------------------------------------------------------
65168 -- 4219869 Business Flow
65169 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
65170 ------------------------------------------------------------------------------------
65171 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65172
65173 ----------------------------------------------------------------------------------
65174 -- 4219869 Business Flow
65175 -- Update journal entry status -- Need to generate this within IF <condition>
65176 ----------------------------------------------------------------------------------
65177 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65178 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
65179 ,p_balance_type_code => l_balance_type_code
65180 );
65181
65182 -------------------------------------------------------------------------------------------
65183 -- 4262811 - Generate the Accrual Reversal lines
65184 -------------------------------------------------------------------------------------------
65185 BEGIN
65186 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
65187 (g_array_event(p_event_id).array_value_num('header_index'));
65188 IF l_acc_rev_flag IS NULL THEN
65189 l_acc_rev_flag := 'N';
65190 END IF;
65191 EXCEPTION
65192 WHEN OTHERS THEN
65193 l_acc_rev_flag := 'N';
65194 END;
65195 --
65196 IF (l_acc_rev_flag = 'Y') THEN
65197
65198 -- 4645092 ------------------------------------------------------------------------------
65199 -- To allow MPA report to determine if it should generate report process
65200 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
65201 ------------------------------------------------------------------------------------------
65202
65203 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
65204 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
65205
65206 --
65207 -- Update the line information that should be overwritten
65208 --
65209 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
65210 p_header_num => 1);
65211 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
65212
65213 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
65214
65215 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
65216 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
65217 END IF;
65218
65219 --
65220 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
65221 --
65222 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
65223 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
65224 ELSE
65225 ---------------------------------------------------------------------------------------------------
65226 -- 4262811a Switch Sign
65227 ---------------------------------------------------------------------------------------------------
65228 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
65229 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65230 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65231 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65232 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65233 -- 5132302
65234 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
65235 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65236
65240 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
65237 END IF;
65238
65239 -- 4955764
65241 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
65242
65243
65244 XLA_AE_LINES_PKG.ValidateCurrentLine;
65245 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65246
65247 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65248 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
65249 ,p_balance_type_code => l_balance_type_code);
65250
65251 END IF;
65252
65253 -----------------------------------------------------------------------------------------
65254 -- 4262811 Multiperiod Accounting
65255 -----------------------------------------------------------------------------------------
65256 -- No MPA option is assigned.
65257
65258
65259 END IF;
65260 END IF;
65261 --
65262
65263 --
65264 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65265 trace
65266 (p_msg => 'END of AcctLineType_132'
65267 ,p_level => C_LEVEL_PROCEDURE
65268 ,p_module => l_log_module);
65269 END IF;
65270 --
65271 EXCEPTION
65272 WHEN xla_exceptions_pkg.application_exception THEN
65273 RAISE;
65274 WHEN OTHERS THEN
65275 xla_exceptions_pkg.raise_message
65276 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_132');
65277 END AcctLineType_132;
65278 --
65279
65280 ---------------------------------------
65281 --
65282 -- PRIVATE FUNCTION
65283 -- AcctLineType_133
65284 --
65285 ---------------------------------------
65286 PROCEDURE AcctLineType_133 (
65287 p_application_id IN NUMBER
65288 ,p_event_id IN NUMBER
65289 ,p_calculate_acctd_flag IN VARCHAR2
65290 ,p_calculate_g_l_flag IN VARCHAR2
65291 ,p_actual_flag IN OUT VARCHAR2
65292 ,p_balance_type_code OUT VARCHAR2
65293 ,p_gain_or_loss_ref OUT VARCHAR2
65294
65295 --Budget Code Combination ID
65296 , p_source_3 IN NUMBER
65297 --Cost CCID
65298 , p_source_4 IN NUMBER
65299 --Allow Account Override Flag
65300 , p_source_5 IN VARCHAR2
65301 --Adjustment Cost CCID
65302 , p_source_6 IN NUMBER
65303 --Cost Clearing CCID
65304 , p_source_7 IN NUMBER
65305 --Reversing Line Flag
65306 , p_source_23 IN VARCHAR2
65307 --Actual Upgrade Credit Accounting Class
65308 , p_source_24 IN VARCHAR2
65309 --Entered Currency Code
65310 , p_source_26 IN VARCHAR2
65311 --Exchange Rate Date
65312 , p_source_28 IN DATE
65313 --Exchange Rate
65314 , p_source_29 IN NUMBER
65315 --Exchange Rate Type
65316 , p_source_30 IN VARCHAR2
65317 --Actual Upgrade Debit Accounting Class
65318 , p_source_31 IN VARCHAR2
65319 --Use Actuals Upgrade Attributes Flag
65320 , p_source_32 IN VARCHAR2
65321 --Expenditure Item ID
65322 , p_source_33 IN NUMBER
65323 --Cost Distribution Line Number
65324 , p_source_34 IN NUMBER
65325 --Line Type
65326 , p_source_35 IN VARCHAR2
65327 , p_source_35_meaning IN VARCHAR2
65328 --Reversed Line Number
65329 , p_source_36 IN NUMBER
65330 --Encumbrance Upgrade Credit Accounting Class
65331 , p_source_41 IN VARCHAR2
65332 --Use Encumbrance Upgrade Attributes Flag
65333 , p_source_44 IN VARCHAR2
65334 --Entered Burdened Cost
65335 , p_source_52 IN NUMBER
65336 --Accounted Burdened Cost
65337 , p_source_53 IN NUMBER
65338 --Encumbrance Amount
65339 , p_source_54 IN NUMBER
65340 --Project Encumbrance Applied to Application Identifier
65341 , p_source_55 IN NUMBER
65342 --Project Encumbrance Applied to Distribution Type
65343 , p_source_56 IN VARCHAR2
65344 --Project Encumbrance Applied to Entity Code
65345 , p_source_57 IN VARCHAR2
65346 --Project Encumbrance Applied to First Distribution ID
65347 , p_source_58 IN NUMBER
65348 --Project Encumbrance Applied to First System Transaction ID
65349 , p_source_59 IN NUMBER
65350 --Project Encumbrance Applied to Second Distribution ID
65351 , p_source_60 IN VARCHAR2
65352 --Encumbrance Upgrade Debit Accounting Class
65353 , p_source_61 IN VARCHAR2
65354 --Encumbrance Type ID
65355 , p_source_62 IN NUMBER
65356 --Project Encumbrance Type ID
65357 , p_source_63 IN NUMBER
65358 )
65359 IS
65360
65361 l_component_type VARCHAR2(80);
65362 l_component_code VARCHAR2(30);
65363 l_component_type_code VARCHAR2(1);
65364 l_component_appl_id INTEGER;
65365 l_amb_context_code VARCHAR2(30);
65366 l_entity_code VARCHAR2(30);
65367 l_event_class_code VARCHAR2(30);
65368 l_ae_header_id NUMBER;
65369 l_event_type_code VARCHAR2(30);
65370 l_line_definition_code VARCHAR2(30);
65371 l_line_definition_owner_code VARCHAR2(1);
65372 --
65373 -- adr variables
65374 l_segment VARCHAR2(30);
65375 l_ccid NUMBER;
65376 l_adr_transaction_coa_id NUMBER;
65377 l_adr_accounting_coa_id NUMBER;
65378 l_adr_flexfield_segment_code VARCHAR2(30);
65379 l_adr_flex_value_set_id NUMBER;
65380 l_adr_value_type_code VARCHAR2(30);
65381 l_adr_value_combination_id NUMBER;
65382 l_adr_value_segment_code VARCHAR2(30);
65383
65384 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
65385 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
65389 -- 4262811 Variables ------------------------------------------------------------------------------------------
65386 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
65387 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
65388
65390 l_entered_amt_idx NUMBER;
65391 l_accted_amt_idx NUMBER;
65392 l_acc_rev_flag VARCHAR2(1);
65393 l_accrual_line_num NUMBER;
65394 l_tmp_amt NUMBER;
65395 l_acc_rev_natural_side_code VARCHAR2(1);
65396
65397 l_num_entries NUMBER;
65398 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
65399 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
65400 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
65401 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
65402 l_recog_line_1 NUMBER;
65403 l_recog_line_2 NUMBER;
65404
65405 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
65406 l_bflow_applied_to_amt NUMBER; -- 5132302
65407 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
65408
65409 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
65410
65411 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
65412 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
65413
65414 ---------------------------------------------------------------------------------------------------------------
65415
65416
65417 --
65418 -- bulk performance
65419 --
65420 l_balance_type_code VARCHAR2(1);
65421 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
65422 l_log_module VARCHAR2(240);
65423
65424 --
65425 -- Upgrade strategy
65426 --
65427 l_actual_upg_option VARCHAR2(1);
65428 l_enc_upg_option VARCHAR2(1);
65429
65430 --
65431 BEGIN
65432 --
65433 IF g_log_enabled THEN
65434 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_133';
65435 END IF;
65436 --
65437 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65438
65439 trace
65440 (p_msg => 'BEGIN of AcctLineType_133'
65441 ,p_level => C_LEVEL_PROCEDURE
65442 ,p_module => l_log_module);
65443
65444 END IF;
65445 --
65446 l_component_type := 'AMB_JLT';
65447 l_component_code := 'PA_TOT_BURDEN_COST_FED';
65448 l_component_type_code := 'S';
65449 l_component_appl_id := 275;
65450 l_amb_context_code := 'DEFAULT';
65451 l_entity_code := 'EXPENDITURES';
65452 l_event_class_code := 'TOT_BURDENED_COST';
65453 l_event_type_code := 'TOT_BURDENED_COST_ALL';
65454 l_line_definition_owner_code := 'S';
65455 l_line_definition_code := 'FV_PROJECTS_JLD';
65456 --
65457 l_balance_type_code := 'A';
65458 l_segment := NULL;
65459 l_ccid := NULL;
65460 l_adr_transaction_coa_id := NULL;
65461 l_adr_accounting_coa_id := NULL;
65462 l_adr_flexfield_segment_code := NULL;
65463 l_adr_flex_value_set_id := NULL;
65464 l_adr_value_type_code := NULL;
65465 l_adr_value_combination_id := NULL;
65466 l_adr_value_segment_code := NULL;
65467
65468 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
65469 l_bflow_class_code := ''; -- 4219869 Business Flow
65470 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
65471 l_budgetary_control_flag := 'N';
65472
65473 l_bflow_applied_to_amt_idx := NULL; -- 5132302
65474 l_bflow_applied_to_amt := NULL; -- 5132302
65475 l_entered_amt_idx := NULL; -- 4262811
65476 l_accted_amt_idx := NULL; -- 4262811
65477 l_acc_rev_flag := NULL; -- 4262811
65478 l_accrual_line_num := NULL; -- 4262811
65479 l_tmp_amt := NULL; -- 4262811
65480 --
65481
65482 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
65483 l_balance_type_code <> 'B' THEN
65484 IF NVL(p_source_35,'
65485 ') = 'D'
65486 THEN
65487
65488 --
65489 XLA_AE_LINES_PKG.SetNewLine;
65490
65491 p_balance_type_code := l_balance_type_code;
65492 -- set the flag so later we will know whether the gain loss line needs to be created
65493
65494 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
65495 p_actual_flag :='A';
65496 END IF;
65497
65498 --
65499 -- bulk performance
65500 --
65501 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
65502 p_header_num => 0); -- 4262811
65503 --
65504 -- set accounting line options
65505 --
65506 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
65507 p_natural_side_code => 'D'
65508 , p_gain_or_loss_flag => 'N'
65509 , p_gl_transfer_mode_code => 'S'
65510 , p_acct_entry_type_code => 'A'
65511 , p_switch_side_flag => 'Y'
65512 , p_merge_duplicate_code => 'N'
65513 );
65514 --
65515 l_acc_rev_natural_side_code := 'C'; -- 4262811
65516 --
65517 --
65518 -- set accounting line type info
65519 --
65520 xla_ae_lines_pkg.SetAcctLineType
65521 (p_component_type => l_component_type
65522 ,p_event_type_code => l_event_type_code
65523 ,p_line_definition_owner_code => l_line_definition_owner_code
65524 ,p_line_definition_code => l_line_definition_code
65528 ,p_amb_context_code => l_amb_context_code
65525 ,p_accounting_line_code => l_component_code
65526 ,p_accounting_line_type_code => l_component_type_code
65527 ,p_accounting_line_appl_id => l_component_appl_id
65529 ,p_entity_code => l_entity_code
65530 ,p_event_class_code => l_event_class_code);
65531 --
65532 -- set accounting class
65533 --
65534 xla_ae_lines_pkg.SetAcctClass(
65535 p_accounting_class_code => 'FEDERAL_PROJECT_COST'
65536 , p_ae_header_id => l_ae_header_id
65537 );
65538
65539 --
65540 -- set rounding class
65541 --
65542 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
65543 'FEDERAL_PROJECT_COST';
65544
65545 --
65546 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
65547 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
65548 --
65549 -- bulk performance
65550 --
65551 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
65552
65553 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
65554 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
65555
65556 -- 4955764
65557 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
65558 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
65559
65560 -- 4458381 Public Sector Enh
65561
65562 --
65563 -- set accounting attributes for the line type
65564 --
65565 l_entered_amt_idx := 39;
65566 l_accted_amt_idx := 45;
65567 l_bflow_applied_to_amt_idx := NULL; -- 5132302
65568 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
65569 l_rec_acct_attrs.array_char_value(1) := p_source_23;
65570 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
65571 l_rec_acct_attrs.array_char_value(2) := p_source_24;
65572 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
65573 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
65574 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
65575 l_rec_acct_attrs.array_num_value(4) := p_source_52;
65576 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
65577 l_rec_acct_attrs.array_char_value(5) := p_source_26;
65578 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
65579 l_rec_acct_attrs.array_num_value(6) := p_source_53;
65580 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
65581 l_rec_acct_attrs.array_date_value(7) := p_source_28;
65582 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
65583 l_rec_acct_attrs.array_num_value(8) := p_source_29;
65584 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
65585 l_rec_acct_attrs.array_char_value(9) := p_source_30;
65586 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
65587 l_rec_acct_attrs.array_char_value(10) := p_source_31;
65588 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
65589 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
65590 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
65591 l_rec_acct_attrs.array_num_value(12) := p_source_52;
65592 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
65593 l_rec_acct_attrs.array_char_value(13) := p_source_26;
65594 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
65595 l_rec_acct_attrs.array_num_value(14) := p_source_53;
65596 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
65597 l_rec_acct_attrs.array_date_value(15) := p_source_28;
65598 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
65599 l_rec_acct_attrs.array_num_value(16) := p_source_29;
65600 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
65601 l_rec_acct_attrs.array_char_value(17) := p_source_30;
65602 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
65603 l_rec_acct_attrs.array_char_value(18) := p_source_32;
65604 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_APPLICATION_ID';
65605 l_rec_acct_attrs.array_num_value(19) := p_source_55;
65606 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_DISTRIBUTION_TYPE';
65607 l_rec_acct_attrs.array_char_value(20) := p_source_56;
65608 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_ENTITY_CODE';
65609 l_rec_acct_attrs.array_char_value(21) := p_source_57;
65610 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_DIST_ID';
65611 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_58);
65612 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
65613 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_59);
65614 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_DIST_ID';
65615 l_rec_acct_attrs.array_char_value(24) := p_source_60;
65616 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
65617 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_33);
65618 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
65619 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_34);
65620 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
65621 l_rec_acct_attrs.array_char_value(27) := p_source_35;
65622 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENC_UPG_CR_ACCT_CLASS';
65623 l_rec_acct_attrs.array_char_value(28) := p_source_41;
65624 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_CCID';
65625 l_rec_acct_attrs.array_num_value(29) := p_source_3;
65626 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_ENTERED_AMT';
65630 xla_ae_sources_pkg.GetSystemSourceChar(
65627 l_rec_acct_attrs.array_num_value(30) := p_source_54;
65628 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_CURR';
65629 l_rec_acct_attrs.array_char_value(31) :=
65631 p_source_code => 'XLA_CURRENCY_CODE'
65632 , p_source_type_code => 'Y'
65633 , p_source_application_id => 602
65634 );
65635 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_LEDGER_AMT';
65636 l_rec_acct_attrs.array_num_value(32) := p_source_54;
65637 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_DR_ACCT_CLASS';
65638 l_rec_acct_attrs.array_char_value(33) := p_source_61;
65639 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_CCID';
65640 l_rec_acct_attrs.array_num_value(34) := p_source_3;
65641 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_ENTERED_AMT';
65642 l_rec_acct_attrs.array_num_value(35) := p_source_54;
65643 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_CURR';
65644 l_rec_acct_attrs.array_char_value(36) :=
65645 xla_ae_sources_pkg.GetSystemSourceChar(
65646 p_source_code => 'XLA_CURRENCY_CODE'
65647 , p_source_type_code => 'Y'
65648 , p_source_application_id => 602
65649 );
65650 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_LEDGER_AMT';
65651 l_rec_acct_attrs.array_num_value(37) := p_source_54;
65652 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_OPTION';
65653 l_rec_acct_attrs.array_char_value(38) := p_source_44;
65654 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENTERED_CURRENCY_AMOUNT';
65655 l_rec_acct_attrs.array_num_value(39) := p_source_52;
65656 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_CODE';
65657 l_rec_acct_attrs.array_char_value(40) := p_source_26;
65658 l_rec_acct_attrs.array_acct_attr_code(41) := 'EXCHANGE_DATE';
65659 l_rec_acct_attrs.array_date_value(41) := p_source_28;
65660 l_rec_acct_attrs.array_acct_attr_code(42) := 'EXCHANGE_RATE';
65661 l_rec_acct_attrs.array_num_value(42) := p_source_29;
65662 l_rec_acct_attrs.array_acct_attr_code(43) := 'EXCHANGE_RATE_TYPE';
65663 l_rec_acct_attrs.array_char_value(43) := p_source_30;
65664 l_rec_acct_attrs.array_acct_attr_code(44) := 'GAIN_LOSS_REFERENCE';
65665 l_rec_acct_attrs.array_num_value(44) := to_char(p_source_33);
65666 l_rec_acct_attrs.array_acct_attr_code(45) := 'LEDGER_AMOUNT';
65667 l_rec_acct_attrs.array_num_value(45) := p_source_53;
65668 l_rec_acct_attrs.array_acct_attr_code(46) := 'REVERSED_DISTRIBUTION_ID1';
65669 l_rec_acct_attrs.array_num_value(46) := to_char(p_source_33);
65670 l_rec_acct_attrs.array_acct_attr_code(47) := 'REVERSED_DISTRIBUTION_ID2';
65671 l_rec_acct_attrs.array_num_value(47) := to_char(p_source_36);
65672 l_rec_acct_attrs.array_acct_attr_code(48) := 'REVERSED_DISTRIBUTION_TYPE';
65673 l_rec_acct_attrs.array_char_value(48) := p_source_35;
65674 l_rec_acct_attrs.array_acct_attr_code(49) := 'UPG_CR_ENC_TYPE_ID';
65675 l_rec_acct_attrs.array_num_value(49) := p_source_62;
65676 l_rec_acct_attrs.array_acct_attr_code(50) := 'UPG_DR_ENC_TYPE_ID';
65677 l_rec_acct_attrs.array_num_value(50) := p_source_63;
65678
65679 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
65680 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
65681
65682 ---------------------------------------------------------------------------------------------------------------
65683 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
65684 ---------------------------------------------------------------------------------------------------------------
65685 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
65686
65687 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
65688 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
65689
65690 IF xla_accounting_cache_pkg.GetValueChar
65691 (p_source_code => 'LEDGER_CATEGORY_CODE'
65692 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
65693 AND l_bflow_method_code = 'PRIOR_ENTRY'
65694 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
65695 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
65696 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
65697 )
65698 THEN
65699 xla_ae_lines_pkg.BflowUpgEntry
65700 (p_business_method_code => l_bflow_method_code
65701 ,p_business_class_code => l_bflow_class_code
65702 ,p_balance_type => l_balance_type_code);
65703 ELSE
65704 NULL;
65705 -- No business flow processing for business flow method of NONE.
65706 END IF;
65707
65708 --
65709 -- call analytical criteria
65710 --
65711
65712 --
65713 -- call description
65714 --
65715 -- No description or it is inherited.
65716 --
65717 -- call ADRs
65718 -- Bug 4922099
65719 --
65720 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
65721 (NVL(l_actual_upg_option, 'N') = 'O') OR
65722 (NVL(l_enc_upg_option, 'N') = 'O')
65723 )
65724 THEN
65725 NULL;
65726 --
65727 --
65728
65729 l_ccid := AcctDerRule_12(
65730 p_application_id => p_application_id
65731 , p_ae_header_id => l_ae_header_id
65732 , p_source_4 => p_source_4
65733 , p_source_5 => p_source_5
65734 , p_source_6 => p_source_6
65735 , x_transaction_coa_id => l_adr_transaction_coa_id
65736 , x_accounting_coa_id => l_adr_accounting_coa_id
65737 , x_value_type_code => l_adr_value_type_code
65738 , p_side => 'NA'
65739 );
65740
65741 xla_ae_lines_pkg.set_ccid(
65745 , p_accounting_coa_id => l_adr_accounting_coa_id
65742 p_code_combination_id => l_ccid
65743 , p_value_type_code => l_adr_value_type_code
65744 , p_transaction_coa_id => l_adr_transaction_coa_id
65746 , p_adr_code => 'PA_COST_ACCT_RULE'
65747 , p_adr_type_code => 'S'
65748 , p_component_type => l_component_type
65749 , p_component_code => l_component_code
65750 , p_component_type_code => l_component_type_code
65751 , p_component_appl_id => l_component_appl_id
65752 , p_amb_context_code => l_amb_context_code
65753 , p_side => 'NA'
65754 );
65755
65756
65757 l_segment := AcctDerRule_4(
65758 p_application_id => p_application_id
65759 , p_ae_header_id => l_ae_header_id
65760 , x_transaction_coa_id => l_adr_transaction_coa_id
65761 , x_accounting_coa_id => l_adr_accounting_coa_id
65762 , x_flexfield_segment_code => l_adr_flexfield_segment_code
65763 , x_flex_value_set_id => l_adr_flex_value_set_id
65764 , x_value_type_code => l_adr_value_type_code
65765 , x_value_combination_id => l_adr_value_combination_id
65766 , x_value_segment_code => l_adr_value_segment_code
65767 , p_side => 'NA'
65768 , p_override_seg_flag => 'Y'
65769 );
65770
65771 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
65772
65773 xla_ae_lines_pkg.set_segment(
65774 p_to_segment_code => 'GL_ACCOUNT'
65775 , p_segment_value => l_segment
65776 , p_from_segment_code => l_adr_value_segment_code
65777 , p_from_combination_id => l_adr_value_combination_id
65778 , p_value_type_code => l_adr_value_type_code
65779 , p_transaction_coa_id => l_adr_transaction_coa_id
65780 , p_accounting_coa_id => l_adr_accounting_coa_id
65781 , p_flexfield_segment_code => l_adr_flexfield_segment_code
65782 , p_flex_value_set_id => l_adr_flex_value_set_id
65783 , p_adr_code => 'FV_461001_PROJECTS'
65784 , p_adr_type_code => 'S'
65785 , p_component_type => l_component_type
65786 , p_component_code => l_component_code
65787 , p_component_type_code => l_component_type_code
65788 , p_component_appl_id => l_component_appl_id
65789 , p_amb_context_code => l_amb_context_code
65790 , p_entity_code => 'EXPENDITURES'
65791 , p_event_class_code => 'TOT_BURDENED_COST'
65792 , p_side => 'NA'
65793 );
65794
65795 END IF;
65796
65797 --
65798 --
65799 END IF;
65800 --
65801 -- Bug 4922099
65802 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
65803 (NVL(l_enc_upg_option, 'N') = 'O')
65804 ) AND
65805 (l_bflow_method_code = 'PRIOR_ENTRY')
65806 )
65807 THEN
65808 IF
65809 --
65810 1 = 2
65811 --
65812 THEN
65813 xla_accounting_err_pkg.build_message
65814 (p_appli_s_name => 'XLA'
65815 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
65816 ,p_token_1 => 'LINE_NUMBER'
65817 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
65818 ,p_token_2 => 'LINE_TYPE_NAME'
65819 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
65820 l_component_type
65821 ,l_component_code
65822 ,l_component_type_code
65823 ,l_component_appl_id
65824 ,l_amb_context_code
65825 ,l_entity_code
65826 ,l_event_class_code
65827 )
65828 ,p_token_3 => 'OWNER'
65829 ,p_value_3 => xla_lookups_pkg.get_meaning(
65830 p_lookup_type => 'XLA_OWNER_TYPE'
65831 ,p_lookup_code => l_component_type_code
65832 )
65833 ,p_token_4 => 'PRODUCT_NAME'
65834 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
65835 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
65836 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
65837 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
65838 ,p_ae_header_id => NULL
65839 );
65840
65841 IF (C_LEVEL_ERROR>= g_log_level) THEN
65842 trace
65843 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
65844 ,p_level => C_LEVEL_ERROR
65845 ,p_module => l_log_module);
65846 END IF;
65850 --
65847 END IF;
65848 END IF;
65849 --
65851 ------------------------------------------------------------------------------------------------
65852 -- 4219869 Business Flow
65853 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
65854 -- Prior Entry. Currently, the following code is always generated.
65855 ------------------------------------------------------------------------------------------------
65856 XLA_AE_LINES_PKG.ValidateCurrentLine;
65857
65858 ------------------------------------------------------------------------------------
65859 -- 4219869 Business Flow
65860 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
65861 ------------------------------------------------------------------------------------
65862 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65863
65864 ----------------------------------------------------------------------------------
65865 -- 4219869 Business Flow
65866 -- Update journal entry status -- Need to generate this within IF <condition>
65867 ----------------------------------------------------------------------------------
65868 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65869 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
65870 ,p_balance_type_code => l_balance_type_code
65871 );
65872
65873 -------------------------------------------------------------------------------------------
65874 -- 4262811 - Generate the Accrual Reversal lines
65875 -------------------------------------------------------------------------------------------
65876 BEGIN
65877 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
65878 (g_array_event(p_event_id).array_value_num('header_index'));
65879 IF l_acc_rev_flag IS NULL THEN
65880 l_acc_rev_flag := 'N';
65881 END IF;
65882 EXCEPTION
65883 WHEN OTHERS THEN
65884 l_acc_rev_flag := 'N';
65885 END;
65886 --
65887 IF (l_acc_rev_flag = 'Y') THEN
65888
65889 -- 4645092 ------------------------------------------------------------------------------
65890 -- To allow MPA report to determine if it should generate report process
65891 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
65892 ------------------------------------------------------------------------------------------
65893
65894 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
65895 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
65896
65897 --
65898 -- Update the line information that should be overwritten
65899 --
65900 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
65901 p_header_num => 1);
65902 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
65903
65904 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
65905
65906 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
65907 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
65908 END IF;
65909
65910 --
65911 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
65912 --
65913 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
65914 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
65915 ELSE
65916 ---------------------------------------------------------------------------------------------------
65917 -- 4262811a Switch Sign
65918 ---------------------------------------------------------------------------------------------------
65919 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
65920 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65921 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65922 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65923 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65924 -- 5132302
65925 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
65926 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65927
65928 END IF;
65929
65930 -- 4955764
65931 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
65932 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
65933
65934
65935 XLA_AE_LINES_PKG.ValidateCurrentLine;
65936 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65937
65938 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65939 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
65940 ,p_balance_type_code => l_balance_type_code);
65941
65942 END IF;
65943
65944 -----------------------------------------------------------------------------------------
65945 -- 4262811 Multiperiod Accounting
65946 -----------------------------------------------------------------------------------------
65947 -- No MPA option is assigned.
65948
65949
65950 END IF;
65951 END IF;
65952 --
65953
65954 --
65955 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65956 trace
65957 (p_msg => 'END of AcctLineType_133'
65958 ,p_level => C_LEVEL_PROCEDURE
65959 ,p_module => l_log_module);
65960 END IF;
65961 --
65962 EXCEPTION
65966 xla_exceptions_pkg.raise_message
65963 WHEN xla_exceptions_pkg.application_exception THEN
65964 RAISE;
65965 WHEN OTHERS THEN
65967 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_133');
65968 END AcctLineType_133;
65969 --
65970
65971 ---------------------------------------
65972 --
65973 -- PRIVATE FUNCTION
65974 -- AcctLineType_134
65975 --
65976 ---------------------------------------
65977 PROCEDURE AcctLineType_134 (
65978 p_application_id IN NUMBER
65979 ,p_event_id IN NUMBER
65980 ,p_calculate_acctd_flag IN VARCHAR2
65981 ,p_calculate_g_l_flag IN VARCHAR2
65982 ,p_actual_flag IN OUT VARCHAR2
65983 ,p_balance_type_code OUT VARCHAR2
65984 ,p_gain_or_loss_ref OUT VARCHAR2
65985
65986 --Budget Code Combination ID
65987 , p_source_3 IN NUMBER
65988 --Cost CCID
65989 , p_source_4 IN NUMBER
65990 --Allow Account Override Flag
65991 , p_source_5 IN VARCHAR2
65992 --Cost Clearing CCID
65993 , p_source_7 IN NUMBER
65994 --Adjustment Cost Clearing CCID
65995 , p_source_8 IN NUMBER
65996 --Reversing Line Flag
65997 , p_source_23 IN VARCHAR2
65998 --Actual Upgrade Credit Accounting Class
65999 , p_source_24 IN VARCHAR2
66000 --Entered Currency Code
66001 , p_source_26 IN VARCHAR2
66002 --Exchange Rate Date
66003 , p_source_28 IN DATE
66004 --Exchange Rate
66005 , p_source_29 IN NUMBER
66006 --Exchange Rate Type
66007 , p_source_30 IN VARCHAR2
66008 --Actual Upgrade Debit Accounting Class
66009 , p_source_31 IN VARCHAR2
66010 --Use Actuals Upgrade Attributes Flag
66011 , p_source_32 IN VARCHAR2
66012 --Expenditure Item ID
66013 , p_source_33 IN NUMBER
66014 --Cost Distribution Line Number
66015 , p_source_34 IN NUMBER
66016 --Line Type
66017 , p_source_35 IN VARCHAR2
66018 , p_source_35_meaning IN VARCHAR2
66019 --Reversed Line Number
66020 , p_source_36 IN NUMBER
66021 --Use Encumbrance Upgrade Attributes Flag
66022 , p_source_44 IN VARCHAR2
66023 --Entered Burdened Cost
66024 , p_source_52 IN NUMBER
66025 --Accounted Burdened Cost
66026 , p_source_53 IN NUMBER
66027 --Encumbrance Amount
66028 , p_source_54 IN NUMBER
66029 --Project Encumbrance Applied to Application Identifier
66030 , p_source_55 IN NUMBER
66031 --Project Encumbrance Applied to Distribution Type
66032 , p_source_56 IN VARCHAR2
66033 --Project Encumbrance Applied to Entity Code
66034 , p_source_57 IN VARCHAR2
66035 --Project Encumbrance Applied to First Distribution ID
66036 , p_source_58 IN NUMBER
66037 --Project Encumbrance Applied to First System Transaction ID
66038 , p_source_59 IN NUMBER
66039 --Project Encumbrance Applied to Second Distribution ID
66040 , p_source_60 IN VARCHAR2
66041 --Encumbrance Upgrade Debit Accounting Class
66042 , p_source_61 IN VARCHAR2
66043 --Encumbrance Type ID
66044 , p_source_62 IN NUMBER
66045 --Project Encumbrance Type ID
66046 , p_source_63 IN NUMBER
66047 )
66048 IS
66049
66050 l_component_type VARCHAR2(80);
66051 l_component_code VARCHAR2(30);
66052 l_component_type_code VARCHAR2(1);
66053 l_component_appl_id INTEGER;
66054 l_amb_context_code VARCHAR2(30);
66055 l_entity_code VARCHAR2(30);
66056 l_event_class_code VARCHAR2(30);
66057 l_ae_header_id NUMBER;
66058 l_event_type_code VARCHAR2(30);
66059 l_line_definition_code VARCHAR2(30);
66060 l_line_definition_owner_code VARCHAR2(1);
66061 --
66062 -- adr variables
66063 l_segment VARCHAR2(30);
66064 l_ccid NUMBER;
66065 l_adr_transaction_coa_id NUMBER;
66066 l_adr_accounting_coa_id NUMBER;
66067 l_adr_flexfield_segment_code VARCHAR2(30);
66068 l_adr_flex_value_set_id NUMBER;
66069 l_adr_value_type_code VARCHAR2(30);
66070 l_adr_value_combination_id NUMBER;
66071 l_adr_value_segment_code VARCHAR2(30);
66072
66073 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
66074 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
66075 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
66076 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
66077
66078 -- 4262811 Variables ------------------------------------------------------------------------------------------
66079 l_entered_amt_idx NUMBER;
66080 l_accted_amt_idx NUMBER;
66081 l_acc_rev_flag VARCHAR2(1);
66082 l_accrual_line_num NUMBER;
66083 l_tmp_amt NUMBER;
66084 l_acc_rev_natural_side_code VARCHAR2(1);
66085
66086 l_num_entries NUMBER;
66087 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
66088 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
66089 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
66090 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
66091 l_recog_line_1 NUMBER;
66092 l_recog_line_2 NUMBER;
66093
66094 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
66095 l_bflow_applied_to_amt NUMBER; -- 5132302
66096 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
66097
66098 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
66099
66103 ---------------------------------------------------------------------------------------------------------------
66100 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
66101 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
66102
66104
66105
66106 --
66107 -- bulk performance
66108 --
66109 l_balance_type_code VARCHAR2(1);
66110 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
66111 l_log_module VARCHAR2(240);
66112
66113 --
66114 -- Upgrade strategy
66115 --
66116 l_actual_upg_option VARCHAR2(1);
66117 l_enc_upg_option VARCHAR2(1);
66118
66119 --
66120 BEGIN
66121 --
66122 IF g_log_enabled THEN
66123 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_134';
66124 END IF;
66125 --
66126 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66127
66128 trace
66129 (p_msg => 'BEGIN of AcctLineType_134'
66130 ,p_level => C_LEVEL_PROCEDURE
66131 ,p_module => l_log_module);
66132
66133 END IF;
66134 --
66135 l_component_type := 'AMB_JLT';
66136 l_component_code := 'PA_TOT_BURD_COST_ADJ_CLEAR_FED';
66137 l_component_type_code := 'S';
66138 l_component_appl_id := 275;
66139 l_amb_context_code := 'DEFAULT';
66140 l_entity_code := 'EXPENDITURES';
66141 l_event_class_code := 'TOT_BURDENED_COST_ADJ';
66142 l_event_type_code := 'TOT_BURDENED_COST_ADJ_ALL';
66143 l_line_definition_owner_code := 'S';
66144 l_line_definition_code := 'FV_PROJECTS_JLD';
66145 --
66146 l_balance_type_code := 'A';
66147 l_segment := NULL;
66148 l_ccid := NULL;
66149 l_adr_transaction_coa_id := NULL;
66150 l_adr_accounting_coa_id := NULL;
66151 l_adr_flexfield_segment_code := NULL;
66152 l_adr_flex_value_set_id := NULL;
66153 l_adr_value_type_code := NULL;
66154 l_adr_value_combination_id := NULL;
66155 l_adr_value_segment_code := NULL;
66156
66157 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
66158 l_bflow_class_code := ''; -- 4219869 Business Flow
66159 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
66160 l_budgetary_control_flag := 'N';
66161
66162 l_bflow_applied_to_amt_idx := NULL; -- 5132302
66163 l_bflow_applied_to_amt := NULL; -- 5132302
66164 l_entered_amt_idx := NULL; -- 4262811
66165 l_accted_amt_idx := NULL; -- 4262811
66166 l_acc_rev_flag := NULL; -- 4262811
66167 l_accrual_line_num := NULL; -- 4262811
66168 l_tmp_amt := NULL; -- 4262811
66169 --
66170
66171 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
66172 l_balance_type_code <> 'B' THEN
66173 IF NVL(p_source_35,'
66174 ') = 'C'
66175 THEN
66176
66177 --
66178 XLA_AE_LINES_PKG.SetNewLine;
66179
66180 p_balance_type_code := l_balance_type_code;
66181 -- set the flag so later we will know whether the gain loss line needs to be created
66182
66183 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
66184 p_actual_flag :='A';
66185 END IF;
66186
66187 --
66188 -- bulk performance
66189 --
66190 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
66191 p_header_num => 0); -- 4262811
66192 --
66193 -- set accounting line options
66194 --
66195 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
66196 p_natural_side_code => 'C'
66197 , p_gain_or_loss_flag => 'N'
66198 , p_gl_transfer_mode_code => 'S'
66199 , p_acct_entry_type_code => 'A'
66200 , p_switch_side_flag => 'Y'
66201 , p_merge_duplicate_code => 'N'
66202 );
66203 --
66204 l_acc_rev_natural_side_code := 'D'; -- 4262811
66205 --
66206 --
66207 -- set accounting line type info
66208 --
66209 xla_ae_lines_pkg.SetAcctLineType
66210 (p_component_type => l_component_type
66211 ,p_event_type_code => l_event_type_code
66212 ,p_line_definition_owner_code => l_line_definition_owner_code
66213 ,p_line_definition_code => l_line_definition_code
66214 ,p_accounting_line_code => l_component_code
66215 ,p_accounting_line_type_code => l_component_type_code
66216 ,p_accounting_line_appl_id => l_component_appl_id
66217 ,p_amb_context_code => l_amb_context_code
66218 ,p_entity_code => l_entity_code
66219 ,p_event_class_code => l_event_class_code);
66220 --
66221 -- set accounting class
66222 --
66223 xla_ae_lines_pkg.SetAcctClass(
66224 p_accounting_class_code => 'FEDERAL_PROJECT_COST_CLEARING'
66225 , p_ae_header_id => l_ae_header_id
66226 );
66227
66228 --
66229 -- set rounding class
66230 --
66231 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
66232 'FEDERAL_PROJECT_COST_CLEARING';
66233
66234 --
66235 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
66236 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
66237 --
66238 -- bulk performance
66239 --
66240 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
66241
66245 -- 4955764
66242 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
66243 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
66244
66246 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
66247 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
66248
66249 -- 4458381 Public Sector Enh
66250
66251 --
66252 -- set accounting attributes for the line type
66253 --
66254 l_entered_amt_idx := 34;
66255 l_accted_amt_idx := 39;
66256 l_bflow_applied_to_amt_idx := NULL; -- 5132302
66257 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
66258 l_rec_acct_attrs.array_char_value(1) := p_source_23;
66259 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
66260 l_rec_acct_attrs.array_char_value(2) := p_source_24;
66261 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
66262 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_7);
66263 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
66264 l_rec_acct_attrs.array_num_value(4) := p_source_52;
66265 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
66266 l_rec_acct_attrs.array_char_value(5) := p_source_26;
66267 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
66268 l_rec_acct_attrs.array_num_value(6) := p_source_53;
66269 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
66270 l_rec_acct_attrs.array_date_value(7) := p_source_28;
66271 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
66272 l_rec_acct_attrs.array_num_value(8) := p_source_29;
66273 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
66274 l_rec_acct_attrs.array_char_value(9) := p_source_30;
66275 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
66276 l_rec_acct_attrs.array_char_value(10) := p_source_31;
66277 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
66278 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_4);
66279 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
66280 l_rec_acct_attrs.array_num_value(12) := p_source_52;
66281 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
66282 l_rec_acct_attrs.array_char_value(13) := p_source_26;
66283 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
66284 l_rec_acct_attrs.array_num_value(14) := p_source_53;
66285 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
66286 l_rec_acct_attrs.array_date_value(15) := p_source_28;
66287 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
66288 l_rec_acct_attrs.array_num_value(16) := p_source_29;
66289 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
66290 l_rec_acct_attrs.array_char_value(17) := p_source_30;
66291 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
66292 l_rec_acct_attrs.array_char_value(18) := p_source_32;
66293 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_APPLICATION_ID';
66294 l_rec_acct_attrs.array_num_value(19) := p_source_55;
66295 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_DISTRIBUTION_TYPE';
66296 l_rec_acct_attrs.array_char_value(20) := p_source_56;
66297 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_ENTITY_CODE';
66298 l_rec_acct_attrs.array_char_value(21) := p_source_57;
66299 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_DIST_ID';
66300 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_58);
66301 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
66302 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_59);
66303 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_DIST_ID';
66304 l_rec_acct_attrs.array_char_value(24) := p_source_60;
66305 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
66306 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_33);
66307 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
66308 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_34);
66309 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
66310 l_rec_acct_attrs.array_char_value(27) := p_source_35;
66311 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENC_UPG_DR_ACCT_CLASS';
66312 l_rec_acct_attrs.array_char_value(28) := p_source_61;
66313 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_CCID';
66314 l_rec_acct_attrs.array_num_value(29) := p_source_3;
66315 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_ENTERED_AMT';
66316 l_rec_acct_attrs.array_num_value(30) := p_source_54;
66317 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_CURR';
66318 l_rec_acct_attrs.array_char_value(31) :=
66319 xla_ae_sources_pkg.GetSystemSourceChar(
66320 p_source_code => 'XLA_CURRENCY_CODE'
66321 , p_source_type_code => 'Y'
66322 , p_source_application_id => 602
66323 );
66324 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_LEDGER_AMT';
66325 l_rec_acct_attrs.array_num_value(32) := p_source_54;
66326 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_OPTION';
66327 l_rec_acct_attrs.array_char_value(33) := p_source_44;
66328 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENTERED_CURRENCY_AMOUNT';
66329 l_rec_acct_attrs.array_num_value(34) := p_source_52;
66330 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENTERED_CURRENCY_CODE';
66331 l_rec_acct_attrs.array_char_value(35) := p_source_26;
66332 l_rec_acct_attrs.array_acct_attr_code(36) := 'EXCHANGE_DATE';
66333 l_rec_acct_attrs.array_date_value(36) := p_source_28;
66334 l_rec_acct_attrs.array_acct_attr_code(37) := 'EXCHANGE_RATE';
66335 l_rec_acct_attrs.array_num_value(37) := p_source_29;
66336 l_rec_acct_attrs.array_acct_attr_code(38) := 'EXCHANGE_RATE_TYPE';
66337 l_rec_acct_attrs.array_char_value(38) := p_source_30;
66341 l_rec_acct_attrs.array_num_value(40) := to_char(p_source_33);
66338 l_rec_acct_attrs.array_acct_attr_code(39) := 'LEDGER_AMOUNT';
66339 l_rec_acct_attrs.array_num_value(39) := p_source_53;
66340 l_rec_acct_attrs.array_acct_attr_code(40) := 'REVERSED_DISTRIBUTION_ID1';
66342 l_rec_acct_attrs.array_acct_attr_code(41) := 'REVERSED_DISTRIBUTION_ID2';
66343 l_rec_acct_attrs.array_num_value(41) := to_char(p_source_36);
66344 l_rec_acct_attrs.array_acct_attr_code(42) := 'REVERSED_DISTRIBUTION_TYPE';
66345 l_rec_acct_attrs.array_char_value(42) := p_source_35;
66346 l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
66347 l_rec_acct_attrs.array_num_value(43) := p_source_62;
66348 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
66349 l_rec_acct_attrs.array_num_value(44) := p_source_63;
66350
66351 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
66352 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
66353
66354 ---------------------------------------------------------------------------------------------------------------
66355 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
66356 ---------------------------------------------------------------------------------------------------------------
66357 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
66358
66359 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66360 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66361
66362 IF xla_accounting_cache_pkg.GetValueChar
66363 (p_source_code => 'LEDGER_CATEGORY_CODE'
66364 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
66365 AND l_bflow_method_code = 'PRIOR_ENTRY'
66366 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
66367 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
66368 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
66369 )
66370 THEN
66371 xla_ae_lines_pkg.BflowUpgEntry
66372 (p_business_method_code => l_bflow_method_code
66373 ,p_business_class_code => l_bflow_class_code
66374 ,p_balance_type => l_balance_type_code);
66375 ELSE
66376 NULL;
66377 -- No business flow processing for business flow method of NONE.
66378 END IF;
66379
66380 --
66381 -- call analytical criteria
66382 --
66383
66384 --
66385 -- call description
66386 --
66387 -- No description or it is inherited.
66388 --
66389 -- call ADRs
66390 -- Bug 4922099
66391 --
66392 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
66393 (NVL(l_actual_upg_option, 'N') = 'O') OR
66394 (NVL(l_enc_upg_option, 'N') = 'O')
66395 )
66396 THEN
66397 NULL;
66398 --
66399 --
66400
66401 l_ccid := AcctDerRule_15(
66402 p_application_id => p_application_id
66403 , p_ae_header_id => l_ae_header_id
66404 , p_source_5 => p_source_5
66405 , p_source_8 => p_source_8
66406 , x_transaction_coa_id => l_adr_transaction_coa_id
66407 , x_accounting_coa_id => l_adr_accounting_coa_id
66408 , x_value_type_code => l_adr_value_type_code
66409 , p_side => 'NA'
66410 );
66411
66412 xla_ae_lines_pkg.set_ccid(
66413 p_code_combination_id => l_ccid
66414 , p_value_type_code => l_adr_value_type_code
66415 , p_transaction_coa_id => l_adr_transaction_coa_id
66416 , p_accounting_coa_id => l_adr_accounting_coa_id
66417 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
66418 , p_adr_type_code => 'S'
66419 , p_component_type => l_component_type
66420 , p_component_code => l_component_code
66421 , p_component_type_code => l_component_type_code
66422 , p_component_appl_id => l_component_appl_id
66423 , p_amb_context_code => l_amb_context_code
66424 , p_side => 'NA'
66425 );
66426
66427
66428 l_segment := AcctDerRule_5(
66429 p_application_id => p_application_id
66430 , p_ae_header_id => l_ae_header_id
66431 , x_transaction_coa_id => l_adr_transaction_coa_id
66432 , x_accounting_coa_id => l_adr_accounting_coa_id
66433 , x_flexfield_segment_code => l_adr_flexfield_segment_code
66434 , x_flex_value_set_id => l_adr_flex_value_set_id
66435 , x_value_type_code => l_adr_value_type_code
66436 , x_value_combination_id => l_adr_value_combination_id
66437 , x_value_segment_code => l_adr_value_segment_code
66438 , p_side => 'NA'
66439 , p_override_seg_flag => 'Y'
66440 );
66441
66442 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
66443
66444 xla_ae_lines_pkg.set_segment(
66445 p_to_segment_code => 'GL_ACCOUNT'
66446 , p_segment_value => l_segment
66447 , p_from_segment_code => l_adr_value_segment_code
66448 , p_from_combination_id => l_adr_value_combination_id
66449 , p_value_type_code => l_adr_value_type_code
66450 , p_transaction_coa_id => l_adr_transaction_coa_id
66451 , p_accounting_coa_id => l_adr_accounting_coa_id
66452 , p_flexfield_segment_code => l_adr_flexfield_segment_code
66453 , p_flex_value_set_id => l_adr_flex_value_set_id
66454 , p_adr_code => 'FV_490201_PROJECTS'
66455 , p_adr_type_code => 'S'
66459 , p_component_appl_id => l_component_appl_id
66456 , p_component_type => l_component_type
66457 , p_component_code => l_component_code
66458 , p_component_type_code => l_component_type_code
66460 , p_amb_context_code => l_amb_context_code
66461 , p_entity_code => 'EXPENDITURES'
66462 , p_event_class_code => 'TOT_BURDENED_COST_ADJ'
66463 , p_side => 'NA'
66464 );
66465
66466 END IF;
66467
66468 --
66469 --
66470 END IF;
66471 --
66472 -- Bug 4922099
66473 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
66474 (NVL(l_enc_upg_option, 'N') = 'O')
66475 ) AND
66476 (l_bflow_method_code = 'PRIOR_ENTRY')
66477 )
66478 THEN
66479 IF
66480 --
66481 1 = 2
66482 --
66483 THEN
66484 xla_accounting_err_pkg.build_message
66485 (p_appli_s_name => 'XLA'
66486 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
66487 ,p_token_1 => 'LINE_NUMBER'
66488 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
66489 ,p_token_2 => 'LINE_TYPE_NAME'
66490 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
66491 l_component_type
66492 ,l_component_code
66493 ,l_component_type_code
66494 ,l_component_appl_id
66495 ,l_amb_context_code
66496 ,l_entity_code
66497 ,l_event_class_code
66498 )
66499 ,p_token_3 => 'OWNER'
66500 ,p_value_3 => xla_lookups_pkg.get_meaning(
66501 p_lookup_type => 'XLA_OWNER_TYPE'
66502 ,p_lookup_code => l_component_type_code
66503 )
66504 ,p_token_4 => 'PRODUCT_NAME'
66505 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
66506 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
66507 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
66508 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
66509 ,p_ae_header_id => NULL
66510 );
66511
66512 IF (C_LEVEL_ERROR>= g_log_level) THEN
66513 trace
66514 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
66515 ,p_level => C_LEVEL_ERROR
66516 ,p_module => l_log_module);
66517 END IF;
66518 END IF;
66519 END IF;
66520 --
66521 --
66522 ------------------------------------------------------------------------------------------------
66523 -- 4219869 Business Flow
66524 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
66525 -- Prior Entry. Currently, the following code is always generated.
66526 ------------------------------------------------------------------------------------------------
66527 XLA_AE_LINES_PKG.ValidateCurrentLine;
66528
66529 ------------------------------------------------------------------------------------
66530 -- 4219869 Business Flow
66531 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
66532 ------------------------------------------------------------------------------------
66533 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
66534
66535 ----------------------------------------------------------------------------------
66536 -- 4219869 Business Flow
66537 -- Update journal entry status -- Need to generate this within IF <condition>
66538 ----------------------------------------------------------------------------------
66539 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
66540 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
66541 ,p_balance_type_code => l_balance_type_code
66542 );
66543
66544 -------------------------------------------------------------------------------------------
66545 -- 4262811 - Generate the Accrual Reversal lines
66546 -------------------------------------------------------------------------------------------
66547 BEGIN
66548 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
66549 (g_array_event(p_event_id).array_value_num('header_index'));
66550 IF l_acc_rev_flag IS NULL THEN
66551 l_acc_rev_flag := 'N';
66552 END IF;
66553 EXCEPTION
66554 WHEN OTHERS THEN
66555 l_acc_rev_flag := 'N';
66556 END;
66557 --
66558 IF (l_acc_rev_flag = 'Y') THEN
66559
66560 -- 4645092 ------------------------------------------------------------------------------
66561 -- To allow MPA report to determine if it should generate report process
66565 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
66562 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
66563 ------------------------------------------------------------------------------------------
66564
66566 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
66567
66568 --
66569 -- Update the line information that should be overwritten
66570 --
66571 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
66572 p_header_num => 1);
66573 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
66574
66575 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
66576
66577 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
66578 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
66579 END IF;
66580
66581 --
66582 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
66583 --
66584 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
66585 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
66586 ELSE
66587 ---------------------------------------------------------------------------------------------------
66588 -- 4262811a Switch Sign
66589 ---------------------------------------------------------------------------------------------------
66590 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
66591 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
66592 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66593 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
66594 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66595 -- 5132302
66596 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
66597 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66598
66599 END IF;
66600
66601 -- 4955764
66602 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
66603 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
66604
66605
66606 XLA_AE_LINES_PKG.ValidateCurrentLine;
66607 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
66608
66609 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
66610 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
66611 ,p_balance_type_code => l_balance_type_code);
66612
66613 END IF;
66614
66615 -----------------------------------------------------------------------------------------
66616 -- 4262811 Multiperiod Accounting
66617 -----------------------------------------------------------------------------------------
66618 -- No MPA option is assigned.
66619
66620
66621 END IF;
66622 END IF;
66623 --
66624
66625 --
66626 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66627 trace
66628 (p_msg => 'END of AcctLineType_134'
66629 ,p_level => C_LEVEL_PROCEDURE
66630 ,p_module => l_log_module);
66631 END IF;
66632 --
66633 EXCEPTION
66634 WHEN xla_exceptions_pkg.application_exception THEN
66635 RAISE;
66636 WHEN OTHERS THEN
66637 xla_exceptions_pkg.raise_message
66638 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_134');
66639 END AcctLineType_134;
66640 --
66641
66642 ---------------------------------------
66643 --
66644 -- PRIVATE FUNCTION
66645 -- AcctLineType_135
66646 --
66647 ---------------------------------------
66648 PROCEDURE AcctLineType_135 (
66649 p_application_id IN NUMBER
66650 ,p_event_id IN NUMBER
66651 ,p_calculate_acctd_flag IN VARCHAR2
66652 ,p_calculate_g_l_flag IN VARCHAR2
66653 ,p_actual_flag IN OUT VARCHAR2
66654 ,p_balance_type_code OUT VARCHAR2
66655 ,p_gain_or_loss_ref OUT VARCHAR2
66656
66657 --Unbilled Receivables CCID
66658 , p_source_20 IN NUMBER
66659 --Entered Currency Code
66660 , p_source_26 IN VARCHAR2
66661 --Exchange Rate Date
66662 , p_source_28 IN DATE
66663 --Exchange Rate
66664 , p_source_29 IN NUMBER
66665 --Exchange Rate Type
66666 , p_source_30 IN VARCHAR2
66667 --Entered Amount
66668 , p_source_42 IN NUMBER
66669 --Accounted Amount
66670 , p_source_43 IN NUMBER
66671 --Revenue Distribution Type
66672 , p_source_46 IN VARCHAR2
66673 --Crediting Revenue Flag
66674 , p_source_48 IN VARCHAR2
66675 --Revenue First Distribution ID
66676 , p_source_49 IN NUMBER
66677 --Revenue Second Distribution ID
66678 , p_source_50 IN NUMBER
66679 --Event ID
66680 , p_source_51 IN NUMBER
66681 )
66682 IS
66683
66684 l_component_type VARCHAR2(80);
66685 l_component_code VARCHAR2(30);
66686 l_component_type_code VARCHAR2(1);
66687 l_component_appl_id INTEGER;
66688 l_amb_context_code VARCHAR2(30);
66689 l_entity_code VARCHAR2(30);
66690 l_event_class_code VARCHAR2(30);
66691 l_ae_header_id NUMBER;
66692 l_event_type_code VARCHAR2(30);
66693 l_line_definition_code VARCHAR2(30);
66694 l_line_definition_owner_code VARCHAR2(1);
66698 l_ccid NUMBER;
66695 --
66696 -- adr variables
66697 l_segment VARCHAR2(30);
66699 l_adr_transaction_coa_id NUMBER;
66700 l_adr_accounting_coa_id NUMBER;
66701 l_adr_flexfield_segment_code VARCHAR2(30);
66702 l_adr_flex_value_set_id NUMBER;
66703 l_adr_value_type_code VARCHAR2(30);
66704 l_adr_value_combination_id NUMBER;
66705 l_adr_value_segment_code VARCHAR2(30);
66706
66707 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
66708 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
66709 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
66710 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
66711
66712 -- 4262811 Variables ------------------------------------------------------------------------------------------
66713 l_entered_amt_idx NUMBER;
66714 l_accted_amt_idx NUMBER;
66715 l_acc_rev_flag VARCHAR2(1);
66716 l_accrual_line_num NUMBER;
66717 l_tmp_amt NUMBER;
66718 l_acc_rev_natural_side_code VARCHAR2(1);
66719
66720 l_num_entries NUMBER;
66721 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
66722 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
66723 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
66724 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
66725 l_recog_line_1 NUMBER;
66726 l_recog_line_2 NUMBER;
66727
66728 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
66729 l_bflow_applied_to_amt NUMBER; -- 5132302
66730 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
66731
66732 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
66733
66734 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
66735 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
66736
66737 ---------------------------------------------------------------------------------------------------------------
66738
66739
66740 --
66741 -- bulk performance
66742 --
66743 l_balance_type_code VARCHAR2(1);
66744 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
66745 l_log_module VARCHAR2(240);
66746
66747 --
66748 -- Upgrade strategy
66749 --
66750 l_actual_upg_option VARCHAR2(1);
66751 l_enc_upg_option VARCHAR2(1);
66752
66753 --
66754 BEGIN
66755 --
66756 IF g_log_enabled THEN
66757 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_135';
66758 END IF;
66759 --
66760 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66761
66762 trace
66763 (p_msg => 'BEGIN of AcctLineType_135'
66764 ,p_level => C_LEVEL_PROCEDURE
66765 ,p_module => l_log_module);
66766
66767 END IF;
66768 --
66769 l_component_type := 'AMB_JLT';
66770 l_component_code := 'PA_UBR';
66771 l_component_type_code := 'S';
66772 l_component_appl_id := 275;
66773 l_amb_context_code := 'DEFAULT';
66774 l_entity_code := 'REVENUE';
66775 l_event_class_code := 'REVENUE';
66776 l_event_type_code := 'REVENUE_ALL';
66777 l_line_definition_owner_code := 'S';
66778 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
66779 --
66780 l_balance_type_code := 'A';
66781 l_segment := NULL;
66782 l_ccid := NULL;
66783 l_adr_transaction_coa_id := NULL;
66784 l_adr_accounting_coa_id := NULL;
66785 l_adr_flexfield_segment_code := NULL;
66786 l_adr_flex_value_set_id := NULL;
66787 l_adr_value_type_code := NULL;
66788 l_adr_value_combination_id := NULL;
66789 l_adr_value_segment_code := NULL;
66790
66791 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
66792 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
66793 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
66794 l_budgetary_control_flag := 'N';
66795
66796 l_bflow_applied_to_amt_idx := NULL; -- 5132302
66797 l_bflow_applied_to_amt := NULL; -- 5132302
66798 l_entered_amt_idx := NULL; -- 4262811
66799 l_accted_amt_idx := NULL; -- 4262811
66800 l_acc_rev_flag := NULL; -- 4262811
66801 l_accrual_line_num := NULL; -- 4262811
66802 l_tmp_amt := NULL; -- 4262811
66803 --
66804
66805 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
66806 l_balance_type_code <> 'B' THEN
66807 IF NVL(p_source_46,'
66808 ') = 'Revenue - UBR' AND
66809 NVL(p_source_48,'
66810 ') = 'N'
66811 THEN
66812
66813 --
66814 XLA_AE_LINES_PKG.SetNewLine;
66815
66816 p_balance_type_code := l_balance_type_code;
66817 -- set the flag so later we will know whether the gain loss line needs to be created
66818
66819 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
66820 p_actual_flag :='A';
66821 END IF;
66822
66823 --
66824 -- bulk performance
66825 --
66826 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
66827 p_header_num => 0); -- 4262811
66828 --
66829 -- set accounting line options
66830 --
66831 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
66832 p_natural_side_code => 'D'
66833 , p_gain_or_loss_flag => 'N'
66834 , p_gl_transfer_mode_code => 'S'
66838 );
66835 , p_acct_entry_type_code => 'A'
66836 , p_switch_side_flag => 'Y'
66837 , p_merge_duplicate_code => 'N'
66839 --
66840 l_acc_rev_natural_side_code := 'C'; -- 4262811
66841 --
66842 --
66843 -- set accounting line type info
66844 --
66845 xla_ae_lines_pkg.SetAcctLineType
66846 (p_component_type => l_component_type
66847 ,p_event_type_code => l_event_type_code
66848 ,p_line_definition_owner_code => l_line_definition_owner_code
66849 ,p_line_definition_code => l_line_definition_code
66850 ,p_accounting_line_code => l_component_code
66851 ,p_accounting_line_type_code => l_component_type_code
66852 ,p_accounting_line_appl_id => l_component_appl_id
66853 ,p_amb_context_code => l_amb_context_code
66854 ,p_entity_code => l_entity_code
66855 ,p_event_class_code => l_event_class_code);
66856 --
66857 -- set accounting class
66858 --
66859 xla_ae_lines_pkg.SetAcctClass(
66860 p_accounting_class_code => 'UNBILL'
66861 , p_ae_header_id => l_ae_header_id
66862 );
66863
66864 --
66865 -- set rounding class
66866 --
66867 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
66868 'UNBILL';
66869
66870 --
66871 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
66872 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
66873 --
66874 -- bulk performance
66875 --
66876 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
66877
66878 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
66879 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
66880
66881 -- 4955764
66882 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
66883 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
66884
66885 -- 4458381 Public Sector Enh
66886
66887 --
66888 -- set accounting attributes for the line type
66889 --
66890 l_entered_amt_idx := 4;
66891 l_accted_amt_idx := 10;
66892 l_bflow_applied_to_amt_idx := NULL; -- 5132302
66893 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
66894 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_49);
66895 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
66896 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_50);
66897 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
66898 l_rec_acct_attrs.array_char_value(3) := p_source_46;
66899 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
66900 l_rec_acct_attrs.array_num_value(4) := p_source_42;
66901 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
66902 l_rec_acct_attrs.array_char_value(5) := p_source_26;
66903 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
66904 l_rec_acct_attrs.array_date_value(6) := p_source_28;
66905 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
66906 l_rec_acct_attrs.array_num_value(7) := p_source_29;
66907 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
66908 l_rec_acct_attrs.array_char_value(8) := p_source_30;
66909 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
66910 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_51);
66911 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
66912 l_rec_acct_attrs.array_num_value(10) := p_source_43;
66913
66914 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
66915 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
66916
66917 ---------------------------------------------------------------------------------------------------------------
66918 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
66919 ---------------------------------------------------------------------------------------------------------------
66920 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
66921
66922 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66923 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66924
66925 IF xla_accounting_cache_pkg.GetValueChar
66926 (p_source_code => 'LEDGER_CATEGORY_CODE'
66927 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
66928 AND l_bflow_method_code = 'PRIOR_ENTRY'
66929 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
66930 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
66931 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
66932 )
66933 THEN
66934 xla_ae_lines_pkg.BflowUpgEntry
66935 (p_business_method_code => l_bflow_method_code
66936 ,p_business_class_code => l_bflow_class_code
66937 ,p_balance_type => l_balance_type_code);
66938 ELSE
66939 NULL;
66940 -- No business flow processing for business flow method of NONE.
66941 END IF;
66942
66943 --
66944 -- call analytical criteria
66945 --
66946
66947 --
66948 -- call description
66949 --
66950 -- No description or it is inherited.
66951 --
66952 -- call ADRs
66953 -- Bug 4922099
66954 --
66955 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
66959 THEN
66956 (NVL(l_actual_upg_option, 'N') = 'O') OR
66957 (NVL(l_enc_upg_option, 'N') = 'O')
66958 )
66960 NULL;
66961 --
66962 --
66963
66964 l_ccid := AcctDerRule_27(
66965 p_application_id => p_application_id
66966 , p_ae_header_id => l_ae_header_id
66967 , p_source_20 => p_source_20
66968 , x_transaction_coa_id => l_adr_transaction_coa_id
66969 , x_accounting_coa_id => l_adr_accounting_coa_id
66970 , x_value_type_code => l_adr_value_type_code
66971 , p_side => 'NA'
66972 );
66973
66974 xla_ae_lines_pkg.set_ccid(
66975 p_code_combination_id => l_ccid
66976 , p_value_type_code => l_adr_value_type_code
66977 , p_transaction_coa_id => l_adr_transaction_coa_id
66978 , p_accounting_coa_id => l_adr_accounting_coa_id
66979 , p_adr_code => 'UBR_RULE'
66980 , p_adr_type_code => 'S'
66981 , p_component_type => l_component_type
66982 , p_component_code => l_component_code
66983 , p_component_type_code => l_component_type_code
66984 , p_component_appl_id => l_component_appl_id
66985 , p_amb_context_code => l_amb_context_code
66986 , p_side => 'NA'
66987 );
66988
66989
66990 --
66991 --
66992 END IF;
66993 --
66994 -- Bug 4922099
66995 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
66996 (NVL(l_enc_upg_option, 'N') = 'O')
66997 ) AND
66998 (l_bflow_method_code = 'PRIOR_ENTRY')
66999 )
67000 THEN
67001 IF
67002 --
67003 1 = 2
67004 --
67005 THEN
67006 xla_accounting_err_pkg.build_message
67007 (p_appli_s_name => 'XLA'
67008 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
67009 ,p_token_1 => 'LINE_NUMBER'
67010 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
67011 ,p_token_2 => 'LINE_TYPE_NAME'
67012 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
67013 l_component_type
67014 ,l_component_code
67015 ,l_component_type_code
67016 ,l_component_appl_id
67017 ,l_amb_context_code
67018 ,l_entity_code
67019 ,l_event_class_code
67020 )
67021 ,p_token_3 => 'OWNER'
67022 ,p_value_3 => xla_lookups_pkg.get_meaning(
67023 p_lookup_type => 'XLA_OWNER_TYPE'
67024 ,p_lookup_code => l_component_type_code
67025 )
67026 ,p_token_4 => 'PRODUCT_NAME'
67027 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
67028 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
67029 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
67030 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
67031 ,p_ae_header_id => NULL
67032 );
67033
67034 IF (C_LEVEL_ERROR>= g_log_level) THEN
67035 trace
67036 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
67037 ,p_level => C_LEVEL_ERROR
67038 ,p_module => l_log_module);
67039 END IF;
67040 END IF;
67041 END IF;
67042 --
67043 --
67044 ------------------------------------------------------------------------------------------------
67045 -- 4219869 Business Flow
67046 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
67047 -- Prior Entry. Currently, the following code is always generated.
67048 ------------------------------------------------------------------------------------------------
67049 XLA_AE_LINES_PKG.ValidateCurrentLine;
67050
67051 ------------------------------------------------------------------------------------
67052 -- 4219869 Business Flow
67053 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
67054 ------------------------------------------------------------------------------------
67055 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
67056
67057 ----------------------------------------------------------------------------------
67058 -- 4219869 Business Flow
67059 -- Update journal entry status -- Need to generate this within IF <condition>
67060 ----------------------------------------------------------------------------------
67061 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
67062 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
67063 ,p_balance_type_code => l_balance_type_code
67064 );
67065
67069 BEGIN
67066 -------------------------------------------------------------------------------------------
67067 -- 4262811 - Generate the Accrual Reversal lines
67068 -------------------------------------------------------------------------------------------
67070 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
67071 (g_array_event(p_event_id).array_value_num('header_index'));
67072 IF l_acc_rev_flag IS NULL THEN
67073 l_acc_rev_flag := 'N';
67074 END IF;
67075 EXCEPTION
67076 WHEN OTHERS THEN
67077 l_acc_rev_flag := 'N';
67078 END;
67079 --
67080 IF (l_acc_rev_flag = 'Y') THEN
67081
67082 -- 4645092 ------------------------------------------------------------------------------
67083 -- To allow MPA report to determine if it should generate report process
67084 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
67085 ------------------------------------------------------------------------------------------
67086
67087 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
67088 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
67089
67090 --
67091 -- Update the line information that should be overwritten
67092 --
67093 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
67094 p_header_num => 1);
67095 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
67096
67097 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
67098
67099 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
67100 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
67101 END IF;
67102
67103 --
67104 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
67105 --
67106 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
67107 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
67108 ELSE
67109 ---------------------------------------------------------------------------------------------------
67110 -- 4262811a Switch Sign
67111 ---------------------------------------------------------------------------------------------------
67112 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
67113 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
67114 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67115 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
67116 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67117 -- 5132302
67118 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
67119 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67120
67121 END IF;
67122
67123 -- 4955764
67124 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
67125 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
67126
67127
67128 XLA_AE_LINES_PKG.ValidateCurrentLine;
67129 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
67130
67131 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
67132 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
67133 ,p_balance_type_code => l_balance_type_code);
67134
67135 END IF;
67136
67137 -----------------------------------------------------------------------------------------
67138 -- 4262811 Multiperiod Accounting
67139 -----------------------------------------------------------------------------------------
67140 -- No MPA option is assigned.
67141
67142
67143 END IF;
67144 END IF;
67145 --
67146
67147 --
67148 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67149 trace
67150 (p_msg => 'END of AcctLineType_135'
67151 ,p_level => C_LEVEL_PROCEDURE
67152 ,p_module => l_log_module);
67153 END IF;
67154 --
67155 EXCEPTION
67156 WHEN xla_exceptions_pkg.application_exception THEN
67157 RAISE;
67158 WHEN OTHERS THEN
67159 xla_exceptions_pkg.raise_message
67160 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_135');
67161 END AcctLineType_135;
67162 --
67163
67164 ---------------------------------------
67165 --
67166 -- PRIVATE FUNCTION
67167 -- AcctLineType_136
67168 --
67169 ---------------------------------------
67170 PROCEDURE AcctLineType_136 (
67171 p_application_id IN NUMBER
67172 ,p_event_id IN NUMBER
67173 ,p_calculate_acctd_flag IN VARCHAR2
67174 ,p_calculate_g_l_flag IN VARCHAR2
67175 ,p_actual_flag IN OUT VARCHAR2
67176 ,p_balance_type_code OUT VARCHAR2
67177 ,p_gain_or_loss_ref OUT VARCHAR2
67178
67179 --Unbilled Receivables CCID
67180 , p_source_20 IN NUMBER
67181 --Actual Upgrade Credit Accounting Class
67182 , p_source_24 IN VARCHAR2
67183 --Entered Currency Code
67184 , p_source_26 IN VARCHAR2
67185 --Exchange Rate Date
67186 , p_source_28 IN DATE
67187 --Exchange Rate
67188 , p_source_29 IN NUMBER
67189 --Exchange Rate Type
67190 , p_source_30 IN VARCHAR2
67191 --Actual Upgrade Debit Accounting Class
67192 , p_source_31 IN VARCHAR2
67196 , p_source_42 IN NUMBER
67193 --Use Actuals Upgrade Attributes Flag
67194 , p_source_32 IN VARCHAR2
67195 --Entered Amount
67197 --Accounted Amount
67198 , p_source_43 IN NUMBER
67199 --Revenue Distribution Type
67200 , p_source_46 IN VARCHAR2
67201 --Crediting Revenue Flag
67202 , p_source_48 IN VARCHAR2
67203 --Revenue First Distribution ID
67204 , p_source_49 IN NUMBER
67205 --Revenue Second Distribution ID
67206 , p_source_50 IN NUMBER
67207 --Event ID
67208 , p_source_51 IN NUMBER
67209 --Actual Upgrade Credit CCID
67210 , p_source_64 IN NUMBER
67211 --Actual Upgrade Debit CCID
67212 , p_source_65 IN NUMBER
67213 --Application ID
67214 , p_source_66 IN NUMBER
67215 --Revenue Entity Code
67216 , p_source_67 IN VARCHAR2
67217 --Crediting Revenue First Distribution ID
67218 , p_source_68 IN NUMBER
67219 --Project ID
67220 , p_source_69 IN NUMBER
67221 --Crediting Revenue Second Distribution ID
67222 , p_source_70 IN NUMBER
67223 --Draft Revenue Number Credited
67224 , p_source_71 IN NUMBER
67225 )
67226 IS
67227
67228 l_component_type VARCHAR2(80);
67229 l_component_code VARCHAR2(30);
67230 l_component_type_code VARCHAR2(1);
67231 l_component_appl_id INTEGER;
67232 l_amb_context_code VARCHAR2(30);
67233 l_entity_code VARCHAR2(30);
67234 l_event_class_code VARCHAR2(30);
67235 l_ae_header_id NUMBER;
67236 l_event_type_code VARCHAR2(30);
67237 l_line_definition_code VARCHAR2(30);
67238 l_line_definition_owner_code VARCHAR2(1);
67239 --
67240 -- adr variables
67241 l_segment VARCHAR2(30);
67242 l_ccid NUMBER;
67243 l_adr_transaction_coa_id NUMBER;
67244 l_adr_accounting_coa_id NUMBER;
67245 l_adr_flexfield_segment_code VARCHAR2(30);
67246 l_adr_flex_value_set_id NUMBER;
67247 l_adr_value_type_code VARCHAR2(30);
67248 l_adr_value_combination_id NUMBER;
67249 l_adr_value_segment_code VARCHAR2(30);
67250
67251 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
67252 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
67253 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
67254 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
67255
67256 -- 4262811 Variables ------------------------------------------------------------------------------------------
67257 l_entered_amt_idx NUMBER;
67258 l_accted_amt_idx NUMBER;
67259 l_acc_rev_flag VARCHAR2(1);
67260 l_accrual_line_num NUMBER;
67261 l_tmp_amt NUMBER;
67262 l_acc_rev_natural_side_code VARCHAR2(1);
67263
67264 l_num_entries NUMBER;
67265 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
67266 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
67267 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
67268 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
67269 l_recog_line_1 NUMBER;
67270 l_recog_line_2 NUMBER;
67271
67272 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
67273 l_bflow_applied_to_amt NUMBER; -- 5132302
67274 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
67275
67276 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
67277
67278 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
67279 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
67280
67281 ---------------------------------------------------------------------------------------------------------------
67282
67283
67284 --
67285 -- bulk performance
67286 --
67287 l_balance_type_code VARCHAR2(1);
67288 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
67289 l_log_module VARCHAR2(240);
67290
67291 --
67292 -- Upgrade strategy
67293 --
67294 l_actual_upg_option VARCHAR2(1);
67295 l_enc_upg_option VARCHAR2(1);
67296
67297 --
67298 BEGIN
67299 --
67300 IF g_log_enabled THEN
67301 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_136';
67302 END IF;
67303 --
67304 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67305
67306 trace
67307 (p_msg => 'BEGIN of AcctLineType_136'
67308 ,p_level => C_LEVEL_PROCEDURE
67309 ,p_module => l_log_module);
67310
67311 END IF;
67312 --
67313 l_component_type := 'AMB_JLT';
67314 l_component_code := 'PA_UBR_ADJ';
67315 l_component_type_code := 'S';
67316 l_component_appl_id := 275;
67317 l_amb_context_code := 'DEFAULT';
67318 l_entity_code := 'REVENUE';
67319 l_event_class_code := 'REVENUE_ADJ';
67320 l_event_type_code := 'REVENUE_ADJ_ALL';
67321 l_line_definition_owner_code := 'S';
67322 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
67323 --
67324 l_balance_type_code := 'A';
67325 l_segment := NULL;
67326 l_ccid := NULL;
67327 l_adr_transaction_coa_id := NULL;
67328 l_adr_accounting_coa_id := NULL;
67329 l_adr_flexfield_segment_code := NULL;
67330 l_adr_flex_value_set_id := NULL;
67331 l_adr_value_type_code := NULL;
67332 l_adr_value_combination_id := NULL;
67333 l_adr_value_segment_code := NULL;
67334
67338 l_budgetary_control_flag := 'N';
67335 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
67336 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
67337 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
67339
67340 l_bflow_applied_to_amt_idx := NULL; -- 5132302
67341 l_bflow_applied_to_amt := NULL; -- 5132302
67342 l_entered_amt_idx := NULL; -- 4262811
67343 l_accted_amt_idx := NULL; -- 4262811
67344 l_acc_rev_flag := NULL; -- 4262811
67345 l_accrual_line_num := NULL; -- 4262811
67346 l_tmp_amt := NULL; -- 4262811
67347 --
67348
67349 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
67350 l_balance_type_code <> 'B' THEN
67351 IF NVL(p_source_46,'
67352 ') = 'Revenue - UBR' AND
67353 NVL(p_source_48,'
67354 ') = 'Y'
67355 THEN
67356
67357 --
67358 XLA_AE_LINES_PKG.SetNewLine;
67359
67360 p_balance_type_code := l_balance_type_code;
67361 -- set the flag so later we will know whether the gain loss line needs to be created
67362
67363 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
67364 p_actual_flag :='A';
67365 END IF;
67366
67367 --
67368 -- bulk performance
67369 --
67370 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
67371 p_header_num => 0); -- 4262811
67372 --
67373 -- set accounting line options
67374 --
67375 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
67376 p_natural_side_code => 'C'
67377 , p_gain_or_loss_flag => 'N'
67378 , p_gl_transfer_mode_code => 'S'
67379 , p_acct_entry_type_code => 'A'
67380 , p_switch_side_flag => 'Y'
67381 , p_merge_duplicate_code => 'N'
67382 );
67383 --
67384 l_acc_rev_natural_side_code := 'D'; -- 4262811
67385 --
67386 --
67387 -- set accounting line type info
67388 --
67389 xla_ae_lines_pkg.SetAcctLineType
67390 (p_component_type => l_component_type
67391 ,p_event_type_code => l_event_type_code
67392 ,p_line_definition_owner_code => l_line_definition_owner_code
67393 ,p_line_definition_code => l_line_definition_code
67394 ,p_accounting_line_code => l_component_code
67395 ,p_accounting_line_type_code => l_component_type_code
67396 ,p_accounting_line_appl_id => l_component_appl_id
67397 ,p_amb_context_code => l_amb_context_code
67398 ,p_entity_code => l_entity_code
67399 ,p_event_class_code => l_event_class_code);
67400 --
67401 -- set accounting class
67402 --
67403 xla_ae_lines_pkg.SetAcctClass(
67404 p_accounting_class_code => 'UNBILL'
67405 , p_ae_header_id => l_ae_header_id
67406 );
67407
67408 --
67409 -- set rounding class
67410 --
67411 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
67412 'UNBILL';
67413
67414 --
67415 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
67416 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
67417 --
67418 -- bulk performance
67419 --
67420 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
67421
67422 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
67423 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
67424
67425 -- 4955764
67426 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
67427 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
67428
67429 -- 4458381 Public Sector Enh
67430
67431 --
67432 -- set accounting attributes for the line type
67433 --
67434 l_entered_amt_idx := 28;
67435 l_accted_amt_idx := 34;
67436 l_bflow_applied_to_amt_idx := NULL; -- 5132302
67437 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACTUAL_UPG_CR_ACCT_CLASS';
67438 l_rec_acct_attrs.array_char_value(1) := p_source_24;
67439 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_CCID';
67440 l_rec_acct_attrs.array_num_value(2) := TO_NUMBER(p_source_64);
67441 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ENTERED_AMT';
67442 l_rec_acct_attrs.array_num_value(3) := p_source_42;
67443 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_CURR';
67444 l_rec_acct_attrs.array_char_value(4) := p_source_26;
67445 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_LEDGER_AMT';
67446 l_rec_acct_attrs.array_num_value(5) := p_source_43;
67447 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_XDATE';
67448 l_rec_acct_attrs.array_date_value(6) := p_source_28;
67449 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XRATE';
67450 l_rec_acct_attrs.array_num_value(7) := p_source_29;
67451 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE_TYPE';
67452 l_rec_acct_attrs.array_char_value(8) := p_source_30;
67453 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_DR_ACCT_CLASS';
67454 l_rec_acct_attrs.array_char_value(9) := p_source_31;
67455 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_CCID';
67456 l_rec_acct_attrs.array_num_value(10) := TO_NUMBER(p_source_65);
67457 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ENTERED_AMT';
67458 l_rec_acct_attrs.array_num_value(11) := p_source_42;
67459 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_CURR';
67463 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_XDATE';
67460 l_rec_acct_attrs.array_char_value(12) := p_source_26;
67461 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_LEDGER_AMT';
67462 l_rec_acct_attrs.array_num_value(13) := p_source_43;
67464 l_rec_acct_attrs.array_date_value(14) := p_source_28;
67465 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XRATE';
67466 l_rec_acct_attrs.array_num_value(15) := p_source_29;
67467 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE_TYPE';
67468 l_rec_acct_attrs.array_char_value(16) := p_source_30;
67469 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_OPTION';
67470 l_rec_acct_attrs.array_char_value(17) := p_source_32;
67471 l_rec_acct_attrs.array_acct_attr_code(18) := 'APPLIED_TO_APPLICATION_ID';
67472 l_rec_acct_attrs.array_num_value(18) := p_source_66;
67473 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_DISTRIBUTION_TYPE';
67474 l_rec_acct_attrs.array_char_value(19) := p_source_46;
67475 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_ENTITY_CODE';
67476 l_rec_acct_attrs.array_char_value(20) := p_source_67;
67477 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_FIRST_DIST_ID';
67478 l_rec_acct_attrs.array_num_value(21) := to_char(p_source_68);
67479 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
67480 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_69);
67481 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_SECOND_DIST_ID';
67482 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_70);
67483 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
67484 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_71);
67485 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
67486 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_49);
67487 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
67488 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_50);
67489 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
67490 l_rec_acct_attrs.array_char_value(27) := p_source_46;
67491 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
67492 l_rec_acct_attrs.array_num_value(28) := p_source_42;
67493 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
67494 l_rec_acct_attrs.array_char_value(29) := p_source_26;
67495 l_rec_acct_attrs.array_acct_attr_code(30) := 'EXCHANGE_DATE';
67496 l_rec_acct_attrs.array_date_value(30) := p_source_28;
67497 l_rec_acct_attrs.array_acct_attr_code(31) := 'EXCHANGE_RATE';
67498 l_rec_acct_attrs.array_num_value(31) := p_source_29;
67499 l_rec_acct_attrs.array_acct_attr_code(32) := 'EXCHANGE_RATE_TYPE';
67500 l_rec_acct_attrs.array_char_value(32) := p_source_30;
67501 l_rec_acct_attrs.array_acct_attr_code(33) := 'GAIN_LOSS_REFERENCE';
67502 l_rec_acct_attrs.array_num_value(33) := to_char(p_source_51);
67503 l_rec_acct_attrs.array_acct_attr_code(34) := 'LEDGER_AMOUNT';
67504 l_rec_acct_attrs.array_num_value(34) := p_source_43;
67505
67506 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
67507 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
67508
67509 ---------------------------------------------------------------------------------------------------------------
67510 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
67511 ---------------------------------------------------------------------------------------------------------------
67512 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
67513
67514 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
67515 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
67516
67517 IF xla_accounting_cache_pkg.GetValueChar
67518 (p_source_code => 'LEDGER_CATEGORY_CODE'
67519 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
67520 AND l_bflow_method_code = 'PRIOR_ENTRY'
67521 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
67522 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
67523 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
67524 )
67525 THEN
67526 xla_ae_lines_pkg.BflowUpgEntry
67527 (p_business_method_code => l_bflow_method_code
67528 ,p_business_class_code => l_bflow_class_code
67529 ,p_balance_type => l_balance_type_code);
67530 ELSE
67531 NULL;
67532 -- No business flow processing for business flow method of NONE.
67533 END IF;
67534
67535 --
67536 -- call analytical criteria
67537 --
67538
67539 --
67540 -- call description
67541 --
67542 -- No description or it is inherited.
67543 --
67544 -- call ADRs
67545 -- Bug 4922099
67546 --
67547 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
67548 (NVL(l_actual_upg_option, 'N') = 'O') OR
67549 (NVL(l_enc_upg_option, 'N') = 'O')
67550 )
67551 THEN
67552 NULL;
67553 --
67554 --
67555
67556 l_ccid := AcctDerRule_27(
67557 p_application_id => p_application_id
67558 , p_ae_header_id => l_ae_header_id
67559 , p_source_20 => p_source_20
67560 , x_transaction_coa_id => l_adr_transaction_coa_id
67561 , x_accounting_coa_id => l_adr_accounting_coa_id
67562 , x_value_type_code => l_adr_value_type_code
67563 , p_side => 'NA'
67564 );
67565
67566 xla_ae_lines_pkg.set_ccid(
67567 p_code_combination_id => l_ccid
67568 , p_value_type_code => l_adr_value_type_code
67572 , p_adr_type_code => 'S'
67569 , p_transaction_coa_id => l_adr_transaction_coa_id
67570 , p_accounting_coa_id => l_adr_accounting_coa_id
67571 , p_adr_code => 'UBR_RULE'
67573 , p_component_type => l_component_type
67574 , p_component_code => l_component_code
67575 , p_component_type_code => l_component_type_code
67576 , p_component_appl_id => l_component_appl_id
67577 , p_amb_context_code => l_amb_context_code
67578 , p_side => 'NA'
67579 );
67580
67581
67582 --
67583 --
67584 END IF;
67585 --
67586 -- Bug 4922099
67587 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
67588 (NVL(l_enc_upg_option, 'N') = 'O')
67589 ) AND
67590 (l_bflow_method_code = 'PRIOR_ENTRY')
67591 )
67592 THEN
67593 IF
67594 --
67595 1 = 2
67596 --
67597 THEN
67598 xla_accounting_err_pkg.build_message
67599 (p_appli_s_name => 'XLA'
67600 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
67601 ,p_token_1 => 'LINE_NUMBER'
67602 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
67603 ,p_token_2 => 'LINE_TYPE_NAME'
67604 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
67605 l_component_type
67606 ,l_component_code
67607 ,l_component_type_code
67608 ,l_component_appl_id
67609 ,l_amb_context_code
67610 ,l_entity_code
67611 ,l_event_class_code
67612 )
67613 ,p_token_3 => 'OWNER'
67614 ,p_value_3 => xla_lookups_pkg.get_meaning(
67615 p_lookup_type => 'XLA_OWNER_TYPE'
67616 ,p_lookup_code => l_component_type_code
67617 )
67618 ,p_token_4 => 'PRODUCT_NAME'
67619 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
67620 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
67621 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
67622 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
67623 ,p_ae_header_id => NULL
67624 );
67625
67626 IF (C_LEVEL_ERROR>= g_log_level) THEN
67627 trace
67628 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
67629 ,p_level => C_LEVEL_ERROR
67630 ,p_module => l_log_module);
67631 END IF;
67632 END IF;
67633 END IF;
67634 --
67635 --
67636 ------------------------------------------------------------------------------------------------
67637 -- 4219869 Business Flow
67638 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
67639 -- Prior Entry. Currently, the following code is always generated.
67640 ------------------------------------------------------------------------------------------------
67641 XLA_AE_LINES_PKG.ValidateCurrentLine;
67642
67643 ------------------------------------------------------------------------------------
67644 -- 4219869 Business Flow
67645 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
67646 ------------------------------------------------------------------------------------
67647 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
67648
67649 ----------------------------------------------------------------------------------
67650 -- 4219869 Business Flow
67651 -- Update journal entry status -- Need to generate this within IF <condition>
67652 ----------------------------------------------------------------------------------
67653 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
67654 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
67655 ,p_balance_type_code => l_balance_type_code
67656 );
67657
67658 -------------------------------------------------------------------------------------------
67659 -- 4262811 - Generate the Accrual Reversal lines
67660 -------------------------------------------------------------------------------------------
67661 BEGIN
67662 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
67663 (g_array_event(p_event_id).array_value_num('header_index'));
67664 IF l_acc_rev_flag IS NULL THEN
67665 l_acc_rev_flag := 'N';
67666 END IF;
67667 EXCEPTION
67668 WHEN OTHERS THEN
67669 l_acc_rev_flag := 'N';
67670 END;
67671 --
67672 IF (l_acc_rev_flag = 'Y') THEN
67673
67674 -- 4645092 ------------------------------------------------------------------------------
67678
67675 -- To allow MPA report to determine if it should generate report process
67676 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
67677 ------------------------------------------------------------------------------------------
67679 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
67680 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
67681
67682 --
67683 -- Update the line information that should be overwritten
67684 --
67685 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
67686 p_header_num => 1);
67687 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
67688
67689 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
67690
67691 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
67692 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
67693 END IF;
67694
67695 --
67696 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
67697 --
67698 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
67699 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
67700 ELSE
67701 ---------------------------------------------------------------------------------------------------
67702 -- 4262811a Switch Sign
67703 ---------------------------------------------------------------------------------------------------
67704 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
67705 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
67706 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67707 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
67708 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67709 -- 5132302
67710 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
67711 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67712
67713 END IF;
67714
67715 -- 4955764
67716 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
67717 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
67718
67719
67720 XLA_AE_LINES_PKG.ValidateCurrentLine;
67721 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
67722
67723 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
67724 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
67725 ,p_balance_type_code => l_balance_type_code);
67726
67727 END IF;
67728
67729 -----------------------------------------------------------------------------------------
67730 -- 4262811 Multiperiod Accounting
67731 -----------------------------------------------------------------------------------------
67732 -- No MPA option is assigned.
67733
67734
67735 END IF;
67736 END IF;
67737 --
67738
67739 --
67740 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67741 trace
67742 (p_msg => 'END of AcctLineType_136'
67743 ,p_level => C_LEVEL_PROCEDURE
67744 ,p_module => l_log_module);
67745 END IF;
67746 --
67747 EXCEPTION
67748 WHEN xla_exceptions_pkg.application_exception THEN
67749 RAISE;
67750 WHEN OTHERS THEN
67751 xla_exceptions_pkg.raise_message
67752 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_136');
67753 END AcctLineType_136;
67754 --
67755
67756 ---------------------------------------
67757 --
67758 -- PRIVATE FUNCTION
67759 -- AcctLineType_137
67760 --
67761 ---------------------------------------
67762 PROCEDURE AcctLineType_137 (
67763 p_application_id IN NUMBER
67764 ,p_event_id IN NUMBER
67765 ,p_calculate_acctd_flag IN VARCHAR2
67766 ,p_calculate_g_l_flag IN VARCHAR2
67767 ,p_actual_flag IN OUT VARCHAR2
67768 ,p_balance_type_code OUT VARCHAR2
67769 ,p_gain_or_loss_ref OUT VARCHAR2
67770
67771 --Unbilled Receivables CCID
67772 , p_source_20 IN NUMBER
67773 --Actual Upgrade Credit Accounting Class
67774 , p_source_24 IN VARCHAR2
67775 --Entered Currency Code
67776 , p_source_26 IN VARCHAR2
67777 --Exchange Rate Date
67778 , p_source_28 IN DATE
67779 --Exchange Rate
67780 , p_source_29 IN NUMBER
67781 --Exchange Rate Type
67782 , p_source_30 IN VARCHAR2
67783 --Actual Upgrade Debit Accounting Class
67784 , p_source_31 IN VARCHAR2
67785 --Use Actuals Upgrade Attributes Flag
67786 , p_source_32 IN VARCHAR2
67787 --Entered Amount
67788 , p_source_42 IN NUMBER
67789 --Accounted Amount
67790 , p_source_43 IN NUMBER
67791 --Revenue Distribution Type
67792 , p_source_46 IN VARCHAR2
67793 --Crediting Revenue Flag
67794 , p_source_48 IN VARCHAR2
67795 --Revenue First Distribution ID
67796 , p_source_49 IN NUMBER
67797 --Revenue Second Distribution ID
67798 , p_source_50 IN NUMBER
67799 --Event ID
67800 , p_source_51 IN NUMBER
67801 --Actual Upgrade Credit CCID
67802 , p_source_64 IN NUMBER
67803 --Actual Upgrade Debit CCID
67804 , p_source_65 IN NUMBER
67805 --Application ID
67806 , p_source_66 IN NUMBER
67810 , p_source_68 IN NUMBER
67807 --Revenue Entity Code
67808 , p_source_67 IN VARCHAR2
67809 --Crediting Revenue First Distribution ID
67811 --Project ID
67812 , p_source_69 IN NUMBER
67813 --Crediting Revenue Second Distribution ID
67814 , p_source_70 IN NUMBER
67815 --Draft Revenue Number Credited
67816 , p_source_71 IN NUMBER
67817 )
67818 IS
67819
67820 l_component_type VARCHAR2(80);
67821 l_component_code VARCHAR2(30);
67822 l_component_type_code VARCHAR2(1);
67823 l_component_appl_id INTEGER;
67824 l_amb_context_code VARCHAR2(30);
67825 l_entity_code VARCHAR2(30);
67826 l_event_class_code VARCHAR2(30);
67827 l_ae_header_id NUMBER;
67828 l_event_type_code VARCHAR2(30);
67829 l_line_definition_code VARCHAR2(30);
67830 l_line_definition_owner_code VARCHAR2(1);
67831 --
67832 -- adr variables
67833 l_segment VARCHAR2(30);
67834 l_ccid NUMBER;
67835 l_adr_transaction_coa_id NUMBER;
67836 l_adr_accounting_coa_id NUMBER;
67837 l_adr_flexfield_segment_code VARCHAR2(30);
67838 l_adr_flex_value_set_id NUMBER;
67839 l_adr_value_type_code VARCHAR2(30);
67840 l_adr_value_combination_id NUMBER;
67841 l_adr_value_segment_code VARCHAR2(30);
67842
67843 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
67844 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
67845 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
67846 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
67847
67848 -- 4262811 Variables ------------------------------------------------------------------------------------------
67849 l_entered_amt_idx NUMBER;
67850 l_accted_amt_idx NUMBER;
67851 l_acc_rev_flag VARCHAR2(1);
67852 l_accrual_line_num NUMBER;
67853 l_tmp_amt NUMBER;
67854 l_acc_rev_natural_side_code VARCHAR2(1);
67855
67856 l_num_entries NUMBER;
67857 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
67858 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
67859 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
67860 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
67861 l_recog_line_1 NUMBER;
67862 l_recog_line_2 NUMBER;
67863
67864 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
67865 l_bflow_applied_to_amt NUMBER; -- 5132302
67866 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
67867
67868 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
67869
67870 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
67871 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
67872
67873 ---------------------------------------------------------------------------------------------------------------
67874
67875
67876 --
67877 -- bulk performance
67878 --
67879 l_balance_type_code VARCHAR2(1);
67880 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
67881 l_log_module VARCHAR2(240);
67882
67883 --
67884 -- Upgrade strategy
67885 --
67886 l_actual_upg_option VARCHAR2(1);
67887 l_enc_upg_option VARCHAR2(1);
67888
67889 --
67890 BEGIN
67891 --
67892 IF g_log_enabled THEN
67893 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_137';
67894 END IF;
67895 --
67896 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67897
67898 trace
67899 (p_msg => 'BEGIN of AcctLineType_137'
67900 ,p_level => C_LEVEL_PROCEDURE
67901 ,p_module => l_log_module);
67902
67903 END IF;
67904 --
67905 l_component_type := 'AMB_JLT';
67906 l_component_code := 'PA_UBR_ADJ_FED';
67907 l_component_type_code := 'S';
67908 l_component_appl_id := 275;
67909 l_amb_context_code := 'DEFAULT';
67910 l_entity_code := 'REVENUE';
67911 l_event_class_code := 'REVENUE_ADJ';
67912 l_event_type_code := 'REVENUE_ADJ_ALL';
67913 l_line_definition_owner_code := 'S';
67914 l_line_definition_code := 'FV_PROJECTS_JLD';
67915 --
67916 l_balance_type_code := 'A';
67917 l_segment := NULL;
67918 l_ccid := NULL;
67919 l_adr_transaction_coa_id := NULL;
67920 l_adr_accounting_coa_id := NULL;
67921 l_adr_flexfield_segment_code := NULL;
67922 l_adr_flex_value_set_id := NULL;
67923 l_adr_value_type_code := NULL;
67924 l_adr_value_combination_id := NULL;
67925 l_adr_value_segment_code := NULL;
67926
67927 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
67928 l_bflow_class_code := ''; -- 4219869 Business Flow
67929 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
67930 l_budgetary_control_flag := 'N';
67931
67932 l_bflow_applied_to_amt_idx := NULL; -- 5132302
67933 l_bflow_applied_to_amt := NULL; -- 5132302
67934 l_entered_amt_idx := NULL; -- 4262811
67935 l_accted_amt_idx := NULL; -- 4262811
67936 l_acc_rev_flag := NULL; -- 4262811
67937 l_accrual_line_num := NULL; -- 4262811
67938 l_tmp_amt := NULL; -- 4262811
67939 --
67940
67941 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
67942 l_balance_type_code <> 'B' THEN
67943 IF NVL(p_source_46,'
67947 THEN
67944 ') = 'Revenue - UBR' AND
67945 NVL(p_source_48,'
67946 ') = 'Y'
67948
67949 --
67950 XLA_AE_LINES_PKG.SetNewLine;
67951
67952 p_balance_type_code := l_balance_type_code;
67953 -- set the flag so later we will know whether the gain loss line needs to be created
67954
67955 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
67956 p_actual_flag :='A';
67957 END IF;
67958
67959 --
67960 -- bulk performance
67961 --
67962 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
67963 p_header_num => 0); -- 4262811
67964 --
67965 -- set accounting line options
67966 --
67967 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
67968 p_natural_side_code => 'C'
67969 , p_gain_or_loss_flag => 'N'
67970 , p_gl_transfer_mode_code => 'S'
67971 , p_acct_entry_type_code => 'A'
67972 , p_switch_side_flag => 'Y'
67973 , p_merge_duplicate_code => 'N'
67974 );
67975 --
67976 l_acc_rev_natural_side_code := 'D'; -- 4262811
67977 --
67978 --
67979 -- set accounting line type info
67980 --
67981 xla_ae_lines_pkg.SetAcctLineType
67982 (p_component_type => l_component_type
67983 ,p_event_type_code => l_event_type_code
67984 ,p_line_definition_owner_code => l_line_definition_owner_code
67985 ,p_line_definition_code => l_line_definition_code
67986 ,p_accounting_line_code => l_component_code
67987 ,p_accounting_line_type_code => l_component_type_code
67988 ,p_accounting_line_appl_id => l_component_appl_id
67989 ,p_amb_context_code => l_amb_context_code
67990 ,p_entity_code => l_entity_code
67991 ,p_event_class_code => l_event_class_code);
67992 --
67993 -- set accounting class
67994 --
67995 xla_ae_lines_pkg.SetAcctClass(
67996 p_accounting_class_code => 'FEDERAL_UNBILLED_RECEIVABLE_AD'
67997 , p_ae_header_id => l_ae_header_id
67998 );
67999
68000 --
68001 -- set rounding class
68002 --
68003 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
68004 'FEDERAL_UNBILLED_RECEIVABLE_AD';
68005
68006 --
68007 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
68008 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
68009 --
68010 -- bulk performance
68011 --
68012 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
68013
68014 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
68015 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
68016
68017 -- 4955764
68018 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
68019 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
68020
68021 -- 4458381 Public Sector Enh
68022
68023 --
68024 -- set accounting attributes for the line type
68025 --
68026 l_entered_amt_idx := 28;
68027 l_accted_amt_idx := 31;
68028 l_bflow_applied_to_amt_idx := NULL; -- 5132302
68029 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACTUAL_UPG_CR_ACCT_CLASS';
68030 l_rec_acct_attrs.array_char_value(1) := p_source_24;
68031 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_CCID';
68032 l_rec_acct_attrs.array_num_value(2) := TO_NUMBER(p_source_64);
68033 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ENTERED_AMT';
68034 l_rec_acct_attrs.array_num_value(3) := p_source_42;
68035 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_CURR';
68036 l_rec_acct_attrs.array_char_value(4) := p_source_26;
68037 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_LEDGER_AMT';
68038 l_rec_acct_attrs.array_num_value(5) := p_source_43;
68039 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_XDATE';
68040 l_rec_acct_attrs.array_date_value(6) := p_source_28;
68041 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XRATE';
68042 l_rec_acct_attrs.array_num_value(7) := p_source_29;
68043 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE_TYPE';
68044 l_rec_acct_attrs.array_char_value(8) := p_source_30;
68045 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_DR_ACCT_CLASS';
68046 l_rec_acct_attrs.array_char_value(9) := p_source_31;
68047 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_CCID';
68048 l_rec_acct_attrs.array_num_value(10) := TO_NUMBER(p_source_65);
68049 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ENTERED_AMT';
68050 l_rec_acct_attrs.array_num_value(11) := p_source_42;
68051 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_CURR';
68052 l_rec_acct_attrs.array_char_value(12) := p_source_26;
68053 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_LEDGER_AMT';
68054 l_rec_acct_attrs.array_num_value(13) := p_source_43;
68055 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_XDATE';
68056 l_rec_acct_attrs.array_date_value(14) := p_source_28;
68057 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XRATE';
68058 l_rec_acct_attrs.array_num_value(15) := p_source_29;
68059 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE_TYPE';
68060 l_rec_acct_attrs.array_char_value(16) := p_source_30;
68061 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_OPTION';
68062 l_rec_acct_attrs.array_char_value(17) := p_source_32;
68063 l_rec_acct_attrs.array_acct_attr_code(18) := 'APPLIED_TO_APPLICATION_ID';
68067 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_ENTITY_CODE';
68064 l_rec_acct_attrs.array_num_value(18) := p_source_66;
68065 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_DISTRIBUTION_TYPE';
68066 l_rec_acct_attrs.array_char_value(19) := p_source_46;
68068 l_rec_acct_attrs.array_char_value(20) := p_source_67;
68069 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_FIRST_DIST_ID';
68070 l_rec_acct_attrs.array_num_value(21) := to_char(p_source_68);
68071 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
68072 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_69);
68073 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_SECOND_DIST_ID';
68074 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_70);
68075 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
68076 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_71);
68077 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
68078 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_49);
68079 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
68080 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_50);
68081 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
68082 l_rec_acct_attrs.array_char_value(27) := p_source_46;
68083 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
68084 l_rec_acct_attrs.array_num_value(28) := p_source_42;
68085 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
68086 l_rec_acct_attrs.array_char_value(29) := p_source_26;
68087 l_rec_acct_attrs.array_acct_attr_code(30) := 'GAIN_LOSS_REFERENCE';
68088 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_51);
68089 l_rec_acct_attrs.array_acct_attr_code(31) := 'LEDGER_AMOUNT';
68090 l_rec_acct_attrs.array_num_value(31) := p_source_43;
68091
68092 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
68093 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
68094
68095 ---------------------------------------------------------------------------------------------------------------
68096 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
68097 ---------------------------------------------------------------------------------------------------------------
68098 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
68099
68100 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
68101 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
68102
68103 IF xla_accounting_cache_pkg.GetValueChar
68104 (p_source_code => 'LEDGER_CATEGORY_CODE'
68105 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
68106 AND l_bflow_method_code = 'PRIOR_ENTRY'
68107 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
68108 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
68109 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
68110 )
68111 THEN
68112 xla_ae_lines_pkg.BflowUpgEntry
68113 (p_business_method_code => l_bflow_method_code
68114 ,p_business_class_code => l_bflow_class_code
68115 ,p_balance_type => l_balance_type_code);
68116 ELSE
68117 NULL;
68118 -- No business flow processing for business flow method of NONE.
68119 END IF;
68120
68121 --
68122 -- call analytical criteria
68123 --
68124
68125 --
68126 -- call description
68127 --
68128 -- No description or it is inherited.
68129 --
68130 -- call ADRs
68131 -- Bug 4922099
68132 --
68133 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
68134 (NVL(l_actual_upg_option, 'N') = 'O') OR
68135 (NVL(l_enc_upg_option, 'N') = 'O')
68136 )
68137 THEN
68138 NULL;
68139 --
68140 --
68141
68142 l_ccid := AcctDerRule_27(
68143 p_application_id => p_application_id
68144 , p_ae_header_id => l_ae_header_id
68145 , p_source_20 => p_source_20
68146 , x_transaction_coa_id => l_adr_transaction_coa_id
68147 , x_accounting_coa_id => l_adr_accounting_coa_id
68148 , x_value_type_code => l_adr_value_type_code
68149 , p_side => 'NA'
68150 );
68151
68152 xla_ae_lines_pkg.set_ccid(
68153 p_code_combination_id => l_ccid
68154 , p_value_type_code => l_adr_value_type_code
68155 , p_transaction_coa_id => l_adr_transaction_coa_id
68156 , p_accounting_coa_id => l_adr_accounting_coa_id
68157 , p_adr_code => 'UBR_RULE'
68158 , p_adr_type_code => 'S'
68159 , p_component_type => l_component_type
68160 , p_component_code => l_component_code
68161 , p_component_type_code => l_component_type_code
68162 , p_component_appl_id => l_component_appl_id
68163 , p_amb_context_code => l_amb_context_code
68164 , p_side => 'NA'
68165 );
68166
68167
68168 l_segment := AcctDerRule_3(
68169 p_application_id => p_application_id
68170 , p_ae_header_id => l_ae_header_id
68171 , x_transaction_coa_id => l_adr_transaction_coa_id
68172 , x_accounting_coa_id => l_adr_accounting_coa_id
68173 , x_flexfield_segment_code => l_adr_flexfield_segment_code
68174 , x_flex_value_set_id => l_adr_flex_value_set_id
68175 , x_value_type_code => l_adr_value_type_code
68176 , x_value_combination_id => l_adr_value_combination_id
68180 );
68177 , x_value_segment_code => l_adr_value_segment_code
68178 , p_side => 'NA'
68179 , p_override_seg_flag => 'Y'
68181
68182 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
68183
68184 xla_ae_lines_pkg.set_segment(
68185 p_to_segment_code => 'GL_ACCOUNT'
68186 , p_segment_value => l_segment
68187 , p_from_segment_code => l_adr_value_segment_code
68188 , p_from_combination_id => l_adr_value_combination_id
68189 , p_value_type_code => l_adr_value_type_code
68190 , p_transaction_coa_id => l_adr_transaction_coa_id
68191 , p_accounting_coa_id => l_adr_accounting_coa_id
68192 , p_flexfield_segment_code => l_adr_flexfield_segment_code
68193 , p_flex_value_set_id => l_adr_flex_value_set_id
68194 , p_adr_code => 'FV_425X01_PROJECTS'
68195 , p_adr_type_code => 'S'
68196 , p_component_type => l_component_type
68197 , p_component_code => l_component_code
68198 , p_component_type_code => l_component_type_code
68199 , p_component_appl_id => l_component_appl_id
68200 , p_amb_context_code => l_amb_context_code
68201 , p_entity_code => 'REVENUE'
68202 , p_event_class_code => 'REVENUE_ADJ'
68203 , p_side => 'NA'
68204 );
68205
68206 END IF;
68207
68208 --
68209 --
68210 END IF;
68211 --
68212 -- Bug 4922099
68213 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
68214 (NVL(l_enc_upg_option, 'N') = 'O')
68215 ) AND
68216 (l_bflow_method_code = 'PRIOR_ENTRY')
68217 )
68218 THEN
68219 IF
68220 --
68221 1 = 2
68222 --
68223 THEN
68224 xla_accounting_err_pkg.build_message
68225 (p_appli_s_name => 'XLA'
68226 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
68227 ,p_token_1 => 'LINE_NUMBER'
68228 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
68229 ,p_token_2 => 'LINE_TYPE_NAME'
68230 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
68231 l_component_type
68232 ,l_component_code
68233 ,l_component_type_code
68234 ,l_component_appl_id
68235 ,l_amb_context_code
68236 ,l_entity_code
68237 ,l_event_class_code
68238 )
68239 ,p_token_3 => 'OWNER'
68240 ,p_value_3 => xla_lookups_pkg.get_meaning(
68241 p_lookup_type => 'XLA_OWNER_TYPE'
68242 ,p_lookup_code => l_component_type_code
68243 )
68244 ,p_token_4 => 'PRODUCT_NAME'
68245 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
68246 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
68247 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
68248 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
68249 ,p_ae_header_id => NULL
68250 );
68251
68252 IF (C_LEVEL_ERROR>= g_log_level) THEN
68253 trace
68254 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
68255 ,p_level => C_LEVEL_ERROR
68256 ,p_module => l_log_module);
68257 END IF;
68258 END IF;
68259 END IF;
68260 --
68261 --
68262 ------------------------------------------------------------------------------------------------
68263 -- 4219869 Business Flow
68264 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
68265 -- Prior Entry. Currently, the following code is always generated.
68266 ------------------------------------------------------------------------------------------------
68267 XLA_AE_LINES_PKG.ValidateCurrentLine;
68268
68269 ------------------------------------------------------------------------------------
68270 -- 4219869 Business Flow
68271 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
68272 ------------------------------------------------------------------------------------
68273 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
68274
68275 ----------------------------------------------------------------------------------
68276 -- 4219869 Business Flow
68277 -- Update journal entry status -- Need to generate this within IF <condition>
68278 ----------------------------------------------------------------------------------
68279 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
68280 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
68284 -------------------------------------------------------------------------------------------
68281 ,p_balance_type_code => l_balance_type_code
68282 );
68283
68285 -- 4262811 - Generate the Accrual Reversal lines
68286 -------------------------------------------------------------------------------------------
68287 BEGIN
68288 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
68289 (g_array_event(p_event_id).array_value_num('header_index'));
68290 IF l_acc_rev_flag IS NULL THEN
68291 l_acc_rev_flag := 'N';
68292 END IF;
68293 EXCEPTION
68294 WHEN OTHERS THEN
68295 l_acc_rev_flag := 'N';
68296 END;
68297 --
68298 IF (l_acc_rev_flag = 'Y') THEN
68299
68300 -- 4645092 ------------------------------------------------------------------------------
68301 -- To allow MPA report to determine if it should generate report process
68302 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
68303 ------------------------------------------------------------------------------------------
68304
68305 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
68306 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
68307
68308 --
68309 -- Update the line information that should be overwritten
68310 --
68311 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
68312 p_header_num => 1);
68313 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
68314
68315 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
68316
68317 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
68318 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
68319 END IF;
68320
68321 --
68322 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
68323 --
68324 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
68325 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
68326 ELSE
68327 ---------------------------------------------------------------------------------------------------
68328 -- 4262811a Switch Sign
68329 ---------------------------------------------------------------------------------------------------
68330 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
68331 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
68332 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68333 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
68334 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68335 -- 5132302
68336 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
68337 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68338
68339 END IF;
68340
68341 -- 4955764
68342 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
68343 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
68344
68345
68346 XLA_AE_LINES_PKG.ValidateCurrentLine;
68347 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
68348
68349 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
68350 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
68351 ,p_balance_type_code => l_balance_type_code);
68352
68353 END IF;
68354
68355 -----------------------------------------------------------------------------------------
68356 -- 4262811 Multiperiod Accounting
68357 -----------------------------------------------------------------------------------------
68358 -- No MPA option is assigned.
68359
68360
68361 END IF;
68362 END IF;
68363 --
68364
68365 --
68366 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68367 trace
68368 (p_msg => 'END of AcctLineType_137'
68369 ,p_level => C_LEVEL_PROCEDURE
68370 ,p_module => l_log_module);
68371 END IF;
68372 --
68373 EXCEPTION
68374 WHEN xla_exceptions_pkg.application_exception THEN
68375 RAISE;
68376 WHEN OTHERS THEN
68377 xla_exceptions_pkg.raise_message
68378 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_137');
68379 END AcctLineType_137;
68380 --
68381
68382 ---------------------------------------
68383 --
68384 -- PRIVATE FUNCTION
68385 -- AcctLineType_138
68386 --
68387 ---------------------------------------
68388 PROCEDURE AcctLineType_138 (
68389 p_application_id IN NUMBER
68390 ,p_event_id IN NUMBER
68391 ,p_calculate_acctd_flag IN VARCHAR2
68392 ,p_calculate_g_l_flag IN VARCHAR2
68393 ,p_actual_flag IN OUT VARCHAR2
68394 ,p_balance_type_code OUT VARCHAR2
68395 ,p_gain_or_loss_ref OUT VARCHAR2
68396
68397 --Unbilled Receivables CCID
68398 , p_source_20 IN NUMBER
68399 --Entered Currency Code
68400 , p_source_26 IN VARCHAR2
68401 --Entered Amount
68402 , p_source_42 IN NUMBER
68403 --Accounted Amount
68404 , p_source_43 IN NUMBER
68405 --Revenue Distribution Type
68406 , p_source_46 IN VARCHAR2
68407 --Crediting Revenue Flag
68408 , p_source_48 IN VARCHAR2
68409 --Revenue First Distribution ID
68413 --Event ID
68410 , p_source_49 IN NUMBER
68411 --Revenue Second Distribution ID
68412 , p_source_50 IN NUMBER
68414 , p_source_51 IN NUMBER
68415 )
68416 IS
68417
68418 l_component_type VARCHAR2(80);
68419 l_component_code VARCHAR2(30);
68420 l_component_type_code VARCHAR2(1);
68421 l_component_appl_id INTEGER;
68422 l_amb_context_code VARCHAR2(30);
68423 l_entity_code VARCHAR2(30);
68424 l_event_class_code VARCHAR2(30);
68425 l_ae_header_id NUMBER;
68426 l_event_type_code VARCHAR2(30);
68427 l_line_definition_code VARCHAR2(30);
68428 l_line_definition_owner_code VARCHAR2(1);
68429 --
68430 -- adr variables
68431 l_segment VARCHAR2(30);
68432 l_ccid NUMBER;
68433 l_adr_transaction_coa_id NUMBER;
68434 l_adr_accounting_coa_id NUMBER;
68435 l_adr_flexfield_segment_code VARCHAR2(30);
68436 l_adr_flex_value_set_id NUMBER;
68437 l_adr_value_type_code VARCHAR2(30);
68438 l_adr_value_combination_id NUMBER;
68439 l_adr_value_segment_code VARCHAR2(30);
68440
68441 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
68442 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
68443 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
68444 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
68445
68446 -- 4262811 Variables ------------------------------------------------------------------------------------------
68447 l_entered_amt_idx NUMBER;
68448 l_accted_amt_idx NUMBER;
68449 l_acc_rev_flag VARCHAR2(1);
68450 l_accrual_line_num NUMBER;
68451 l_tmp_amt NUMBER;
68452 l_acc_rev_natural_side_code VARCHAR2(1);
68453
68454 l_num_entries NUMBER;
68455 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
68456 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
68457 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
68458 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
68459 l_recog_line_1 NUMBER;
68460 l_recog_line_2 NUMBER;
68461
68462 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
68463 l_bflow_applied_to_amt NUMBER; -- 5132302
68464 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
68465
68466 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
68467
68468 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
68469 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
68470
68471 ---------------------------------------------------------------------------------------------------------------
68472
68473
68474 --
68475 -- bulk performance
68476 --
68477 l_balance_type_code VARCHAR2(1);
68478 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
68479 l_log_module VARCHAR2(240);
68480
68481 --
68482 -- Upgrade strategy
68483 --
68484 l_actual_upg_option VARCHAR2(1);
68485 l_enc_upg_option VARCHAR2(1);
68486
68487 --
68488 BEGIN
68489 --
68490 IF g_log_enabled THEN
68491 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_138';
68492 END IF;
68493 --
68494 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68495
68496 trace
68497 (p_msg => 'BEGIN of AcctLineType_138'
68498 ,p_level => C_LEVEL_PROCEDURE
68499 ,p_module => l_log_module);
68500
68501 END IF;
68502 --
68503 l_component_type := 'AMB_JLT';
68504 l_component_code := 'PA_UBR_FED';
68505 l_component_type_code := 'S';
68506 l_component_appl_id := 275;
68507 l_amb_context_code := 'DEFAULT';
68508 l_entity_code := 'REVENUE';
68509 l_event_class_code := 'REVENUE';
68510 l_event_type_code := 'REVENUE_ALL';
68511 l_line_definition_owner_code := 'S';
68512 l_line_definition_code := 'FV_PROJECTS_JLD';
68513 --
68514 l_balance_type_code := 'A';
68515 l_segment := NULL;
68516 l_ccid := NULL;
68517 l_adr_transaction_coa_id := NULL;
68518 l_adr_accounting_coa_id := NULL;
68519 l_adr_flexfield_segment_code := NULL;
68520 l_adr_flex_value_set_id := NULL;
68521 l_adr_value_type_code := NULL;
68522 l_adr_value_combination_id := NULL;
68523 l_adr_value_segment_code := NULL;
68524
68525 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
68526 l_bflow_class_code := ''; -- 4219869 Business Flow
68527 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
68528 l_budgetary_control_flag := 'N';
68529
68530 l_bflow_applied_to_amt_idx := NULL; -- 5132302
68531 l_bflow_applied_to_amt := NULL; -- 5132302
68532 l_entered_amt_idx := NULL; -- 4262811
68533 l_accted_amt_idx := NULL; -- 4262811
68534 l_acc_rev_flag := NULL; -- 4262811
68535 l_accrual_line_num := NULL; -- 4262811
68536 l_tmp_amt := NULL; -- 4262811
68537 --
68538
68539 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
68540 l_balance_type_code <> 'B' THEN
68541 IF NVL(p_source_46,'
68542 ') = 'Revenue - UBR' AND
68543 NVL(p_source_48,'
68544 ') = 'N'
68545 THEN
68546
68547 --
68548 XLA_AE_LINES_PKG.SetNewLine;
68549
68553 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
68550 p_balance_type_code := l_balance_type_code;
68551 -- set the flag so later we will know whether the gain loss line needs to be created
68552
68554 p_actual_flag :='A';
68555 END IF;
68556
68557 --
68558 -- bulk performance
68559 --
68560 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
68561 p_header_num => 0); -- 4262811
68562 --
68563 -- set accounting line options
68564 --
68565 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
68566 p_natural_side_code => 'D'
68567 , p_gain_or_loss_flag => 'N'
68568 , p_gl_transfer_mode_code => 'S'
68569 , p_acct_entry_type_code => 'A'
68570 , p_switch_side_flag => 'Y'
68571 , p_merge_duplicate_code => 'N'
68572 );
68573 --
68574 l_acc_rev_natural_side_code := 'C'; -- 4262811
68575 --
68576 --
68577 -- set accounting line type info
68578 --
68579 xla_ae_lines_pkg.SetAcctLineType
68580 (p_component_type => l_component_type
68581 ,p_event_type_code => l_event_type_code
68582 ,p_line_definition_owner_code => l_line_definition_owner_code
68583 ,p_line_definition_code => l_line_definition_code
68584 ,p_accounting_line_code => l_component_code
68585 ,p_accounting_line_type_code => l_component_type_code
68586 ,p_accounting_line_appl_id => l_component_appl_id
68587 ,p_amb_context_code => l_amb_context_code
68588 ,p_entity_code => l_entity_code
68589 ,p_event_class_code => l_event_class_code);
68590 --
68591 -- set accounting class
68592 --
68593 xla_ae_lines_pkg.SetAcctClass(
68594 p_accounting_class_code => 'FEDERAL_UNBILLED_RECEIVABLE'
68595 , p_ae_header_id => l_ae_header_id
68596 );
68597
68598 --
68599 -- set rounding class
68600 --
68601 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
68602 'FEDERAL_UNBILLED_RECEIVABLE';
68603
68604 --
68605 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
68606 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
68607 --
68608 -- bulk performance
68609 --
68610 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
68611
68612 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
68613 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
68614
68615 -- 4955764
68616 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
68617 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
68618
68619 -- 4458381 Public Sector Enh
68620
68621 --
68622 -- set accounting attributes for the line type
68623 --
68624 l_entered_amt_idx := 4;
68625 l_accted_amt_idx := 7;
68626 l_bflow_applied_to_amt_idx := NULL; -- 5132302
68627 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
68628 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_49);
68629 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
68630 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_50);
68631 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
68632 l_rec_acct_attrs.array_char_value(3) := p_source_46;
68633 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
68634 l_rec_acct_attrs.array_num_value(4) := p_source_42;
68635 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
68636 l_rec_acct_attrs.array_char_value(5) := p_source_26;
68637 l_rec_acct_attrs.array_acct_attr_code(6) := 'GAIN_LOSS_REFERENCE';
68638 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_51);
68639 l_rec_acct_attrs.array_acct_attr_code(7) := 'LEDGER_AMOUNT';
68640 l_rec_acct_attrs.array_num_value(7) := p_source_43;
68641
68642 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
68643 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
68644
68645 ---------------------------------------------------------------------------------------------------------------
68646 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
68647 ---------------------------------------------------------------------------------------------------------------
68648 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
68649
68650 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
68651 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
68652
68653 IF xla_accounting_cache_pkg.GetValueChar
68654 (p_source_code => 'LEDGER_CATEGORY_CODE'
68655 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
68656 AND l_bflow_method_code = 'PRIOR_ENTRY'
68657 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
68658 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
68659 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
68660 )
68661 THEN
68662 xla_ae_lines_pkg.BflowUpgEntry
68663 (p_business_method_code => l_bflow_method_code
68664 ,p_business_class_code => l_bflow_class_code
68665 ,p_balance_type => l_balance_type_code);
68666 ELSE
68667 NULL;
68671 --
68668 -- No business flow processing for business flow method of NONE.
68669 END IF;
68670
68672 -- call analytical criteria
68673 --
68674
68675 --
68676 -- call description
68677 --
68678 -- No description or it is inherited.
68679 --
68680 -- call ADRs
68681 -- Bug 4922099
68682 --
68683 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
68684 (NVL(l_actual_upg_option, 'N') = 'O') OR
68685 (NVL(l_enc_upg_option, 'N') = 'O')
68686 )
68687 THEN
68688 NULL;
68689 --
68690 --
68691
68692 l_ccid := AcctDerRule_27(
68693 p_application_id => p_application_id
68694 , p_ae_header_id => l_ae_header_id
68695 , p_source_20 => p_source_20
68696 , x_transaction_coa_id => l_adr_transaction_coa_id
68697 , x_accounting_coa_id => l_adr_accounting_coa_id
68698 , x_value_type_code => l_adr_value_type_code
68699 , p_side => 'NA'
68700 );
68701
68702 xla_ae_lines_pkg.set_ccid(
68703 p_code_combination_id => l_ccid
68704 , p_value_type_code => l_adr_value_type_code
68705 , p_transaction_coa_id => l_adr_transaction_coa_id
68706 , p_accounting_coa_id => l_adr_accounting_coa_id
68707 , p_adr_code => 'UBR_RULE'
68708 , p_adr_type_code => 'S'
68709 , p_component_type => l_component_type
68710 , p_component_code => l_component_code
68711 , p_component_type_code => l_component_type_code
68712 , p_component_appl_id => l_component_appl_id
68713 , p_amb_context_code => l_amb_context_code
68714 , p_side => 'NA'
68715 );
68716
68717
68718 l_segment := AcctDerRule_3(
68719 p_application_id => p_application_id
68720 , p_ae_header_id => l_ae_header_id
68721 , x_transaction_coa_id => l_adr_transaction_coa_id
68722 , x_accounting_coa_id => l_adr_accounting_coa_id
68723 , x_flexfield_segment_code => l_adr_flexfield_segment_code
68724 , x_flex_value_set_id => l_adr_flex_value_set_id
68725 , x_value_type_code => l_adr_value_type_code
68726 , x_value_combination_id => l_adr_value_combination_id
68727 , x_value_segment_code => l_adr_value_segment_code
68728 , p_side => 'NA'
68729 , p_override_seg_flag => 'Y'
68730 );
68731
68732 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
68733
68734 xla_ae_lines_pkg.set_segment(
68735 p_to_segment_code => 'GL_ACCOUNT'
68736 , p_segment_value => l_segment
68737 , p_from_segment_code => l_adr_value_segment_code
68738 , p_from_combination_id => l_adr_value_combination_id
68739 , p_value_type_code => l_adr_value_type_code
68740 , p_transaction_coa_id => l_adr_transaction_coa_id
68741 , p_accounting_coa_id => l_adr_accounting_coa_id
68742 , p_flexfield_segment_code => l_adr_flexfield_segment_code
68743 , p_flex_value_set_id => l_adr_flex_value_set_id
68744 , p_adr_code => 'FV_425X01_PROJECTS'
68745 , p_adr_type_code => 'S'
68746 , p_component_type => l_component_type
68747 , p_component_code => l_component_code
68748 , p_component_type_code => l_component_type_code
68749 , p_component_appl_id => l_component_appl_id
68750 , p_amb_context_code => l_amb_context_code
68751 , p_entity_code => 'REVENUE'
68752 , p_event_class_code => 'REVENUE'
68753 , p_side => 'NA'
68754 );
68755
68756 END IF;
68757
68758 --
68759 --
68760 END IF;
68761 --
68762 -- Bug 4922099
68763 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
68764 (NVL(l_enc_upg_option, 'N') = 'O')
68765 ) AND
68766 (l_bflow_method_code = 'PRIOR_ENTRY')
68767 )
68768 THEN
68769 IF
68770 --
68771 1 = 2
68772 --
68773 THEN
68774 xla_accounting_err_pkg.build_message
68775 (p_appli_s_name => 'XLA'
68776 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
68777 ,p_token_1 => 'LINE_NUMBER'
68778 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
68779 ,p_token_2 => 'LINE_TYPE_NAME'
68780 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
68781 l_component_type
68782 ,l_component_code
68783 ,l_component_type_code
68784 ,l_component_appl_id
68785 ,l_amb_context_code
68786 ,l_entity_code
68787 ,l_event_class_code
68788 )
68789 ,p_token_3 => 'OWNER'
68790 ,p_value_3 => xla_lookups_pkg.get_meaning(
68794 ,p_token_4 => 'PRODUCT_NAME'
68791 p_lookup_type => 'XLA_OWNER_TYPE'
68792 ,p_lookup_code => l_component_type_code
68793 )
68795 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
68796 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
68797 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
68798 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
68799 ,p_ae_header_id => NULL
68800 );
68801
68802 IF (C_LEVEL_ERROR>= g_log_level) THEN
68803 trace
68804 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
68805 ,p_level => C_LEVEL_ERROR
68806 ,p_module => l_log_module);
68807 END IF;
68808 END IF;
68809 END IF;
68810 --
68811 --
68812 ------------------------------------------------------------------------------------------------
68813 -- 4219869 Business Flow
68814 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
68815 -- Prior Entry. Currently, the following code is always generated.
68816 ------------------------------------------------------------------------------------------------
68817 XLA_AE_LINES_PKG.ValidateCurrentLine;
68818
68819 ------------------------------------------------------------------------------------
68820 -- 4219869 Business Flow
68821 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
68822 ------------------------------------------------------------------------------------
68823 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
68824
68825 ----------------------------------------------------------------------------------
68826 -- 4219869 Business Flow
68827 -- Update journal entry status -- Need to generate this within IF <condition>
68828 ----------------------------------------------------------------------------------
68829 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
68830 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
68831 ,p_balance_type_code => l_balance_type_code
68832 );
68833
68834 -------------------------------------------------------------------------------------------
68835 -- 4262811 - Generate the Accrual Reversal lines
68836 -------------------------------------------------------------------------------------------
68837 BEGIN
68838 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
68839 (g_array_event(p_event_id).array_value_num('header_index'));
68840 IF l_acc_rev_flag IS NULL THEN
68841 l_acc_rev_flag := 'N';
68842 END IF;
68843 EXCEPTION
68844 WHEN OTHERS THEN
68845 l_acc_rev_flag := 'N';
68846 END;
68847 --
68848 IF (l_acc_rev_flag = 'Y') THEN
68849
68850 -- 4645092 ------------------------------------------------------------------------------
68851 -- To allow MPA report to determine if it should generate report process
68852 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
68853 ------------------------------------------------------------------------------------------
68854
68855 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
68856 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
68857
68858 --
68859 -- Update the line information that should be overwritten
68860 --
68861 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
68862 p_header_num => 1);
68863 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
68864
68865 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
68866
68867 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
68868 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
68869 END IF;
68870
68871 --
68872 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
68873 --
68874 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
68875 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
68876 ELSE
68877 ---------------------------------------------------------------------------------------------------
68878 -- 4262811a Switch Sign
68879 ---------------------------------------------------------------------------------------------------
68880 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
68881 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
68882 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68883 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
68884 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68885 -- 5132302
68886 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
68887 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68888
68889 END IF;
68890
68891 -- 4955764
68895
68892 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
68893 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
68894
68896 XLA_AE_LINES_PKG.ValidateCurrentLine;
68897 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
68898
68899 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
68900 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
68901 ,p_balance_type_code => l_balance_type_code);
68902
68903 END IF;
68904
68905 -----------------------------------------------------------------------------------------
68906 -- 4262811 Multiperiod Accounting
68907 -----------------------------------------------------------------------------------------
68908 -- No MPA option is assigned.
68909
68910
68911 END IF;
68912 END IF;
68913 --
68914
68915 --
68916 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68917 trace
68918 (p_msg => 'END of AcctLineType_138'
68919 ,p_level => C_LEVEL_PROCEDURE
68920 ,p_module => l_log_module);
68921 END IF;
68922 --
68923 EXCEPTION
68924 WHEN xla_exceptions_pkg.application_exception THEN
68925 RAISE;
68926 WHEN OTHERS THEN
68927 xla_exceptions_pkg.raise_message
68928 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_138');
68929 END AcctLineType_138;
68930 --
68931
68932 ---------------------------------------
68933 --
68934 -- PRIVATE FUNCTION
68935 -- AcctLineType_139
68936 --
68937 ---------------------------------------
68938 PROCEDURE AcctLineType_139 (
68939 p_application_id IN NUMBER
68940 ,p_event_id IN NUMBER
68941 ,p_calculate_acctd_flag IN VARCHAR2
68942 ,p_calculate_g_l_flag IN VARCHAR2
68943 ,p_actual_flag IN OUT VARCHAR2
68944 ,p_balance_type_code OUT VARCHAR2
68945 ,p_gain_or_loss_ref OUT VARCHAR2
68946
68947 --Unearned Revenue CCID
68948 , p_source_21 IN NUMBER
68949 --Entered Currency Code
68950 , p_source_26 IN VARCHAR2
68951 --Exchange Rate Date
68952 , p_source_28 IN DATE
68953 --Exchange Rate
68954 , p_source_29 IN NUMBER
68955 --Exchange Rate Type
68956 , p_source_30 IN VARCHAR2
68957 --Entered Amount
68958 , p_source_42 IN NUMBER
68959 --Accounted Amount
68960 , p_source_43 IN NUMBER
68961 --Revenue Distribution Type
68962 , p_source_46 IN VARCHAR2
68963 --Crediting Revenue Flag
68964 , p_source_48 IN VARCHAR2
68965 --Revenue First Distribution ID
68966 , p_source_49 IN NUMBER
68967 --Revenue Second Distribution ID
68968 , p_source_50 IN NUMBER
68969 --Event ID
68970 , p_source_51 IN NUMBER
68971 )
68972 IS
68973
68974 l_component_type VARCHAR2(80);
68975 l_component_code VARCHAR2(30);
68976 l_component_type_code VARCHAR2(1);
68977 l_component_appl_id INTEGER;
68978 l_amb_context_code VARCHAR2(30);
68979 l_entity_code VARCHAR2(30);
68980 l_event_class_code VARCHAR2(30);
68981 l_ae_header_id NUMBER;
68982 l_event_type_code VARCHAR2(30);
68983 l_line_definition_code VARCHAR2(30);
68984 l_line_definition_owner_code VARCHAR2(1);
68985 --
68986 -- adr variables
68987 l_segment VARCHAR2(30);
68988 l_ccid NUMBER;
68989 l_adr_transaction_coa_id NUMBER;
68990 l_adr_accounting_coa_id NUMBER;
68991 l_adr_flexfield_segment_code VARCHAR2(30);
68992 l_adr_flex_value_set_id NUMBER;
68993 l_adr_value_type_code VARCHAR2(30);
68994 l_adr_value_combination_id NUMBER;
68995 l_adr_value_segment_code VARCHAR2(30);
68996
68997 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
68998 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
68999 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
69000 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
69001
69002 -- 4262811 Variables ------------------------------------------------------------------------------------------
69003 l_entered_amt_idx NUMBER;
69004 l_accted_amt_idx NUMBER;
69005 l_acc_rev_flag VARCHAR2(1);
69006 l_accrual_line_num NUMBER;
69007 l_tmp_amt NUMBER;
69008 l_acc_rev_natural_side_code VARCHAR2(1);
69009
69010 l_num_entries NUMBER;
69011 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
69012 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
69013 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
69014 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
69015 l_recog_line_1 NUMBER;
69016 l_recog_line_2 NUMBER;
69017
69018 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
69019 l_bflow_applied_to_amt NUMBER; -- 5132302
69020 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
69021
69022 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
69023
69024 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
69025 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
69026
69027 ---------------------------------------------------------------------------------------------------------------
69028
69029
69030 --
69031 -- bulk performance
69032 --
69033 l_balance_type_code VARCHAR2(1);
69037 --
69034 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
69035 l_log_module VARCHAR2(240);
69036
69038 -- Upgrade strategy
69039 --
69040 l_actual_upg_option VARCHAR2(1);
69041 l_enc_upg_option VARCHAR2(1);
69042
69043 --
69044 BEGIN
69045 --
69046 IF g_log_enabled THEN
69047 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_139';
69048 END IF;
69049 --
69050 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69051
69052 trace
69053 (p_msg => 'BEGIN of AcctLineType_139'
69054 ,p_level => C_LEVEL_PROCEDURE
69055 ,p_module => l_log_module);
69056
69057 END IF;
69058 --
69059 l_component_type := 'AMB_JLT';
69060 l_component_code := 'PA_UER';
69061 l_component_type_code := 'S';
69062 l_component_appl_id := 275;
69063 l_amb_context_code := 'DEFAULT';
69064 l_entity_code := 'REVENUE';
69065 l_event_class_code := 'REVENUE';
69066 l_event_type_code := 'REVENUE_ALL';
69067 l_line_definition_owner_code := 'S';
69068 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
69069 --
69070 l_balance_type_code := 'A';
69071 l_segment := NULL;
69072 l_ccid := NULL;
69073 l_adr_transaction_coa_id := NULL;
69074 l_adr_accounting_coa_id := NULL;
69075 l_adr_flexfield_segment_code := NULL;
69076 l_adr_flex_value_set_id := NULL;
69077 l_adr_value_type_code := NULL;
69078 l_adr_value_combination_id := NULL;
69079 l_adr_value_segment_code := NULL;
69080
69081 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
69082 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
69083 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
69084 l_budgetary_control_flag := 'N';
69085
69086 l_bflow_applied_to_amt_idx := NULL; -- 5132302
69087 l_bflow_applied_to_amt := NULL; -- 5132302
69088 l_entered_amt_idx := NULL; -- 4262811
69089 l_accted_amt_idx := NULL; -- 4262811
69090 l_acc_rev_flag := NULL; -- 4262811
69091 l_accrual_line_num := NULL; -- 4262811
69092 l_tmp_amt := NULL; -- 4262811
69093 --
69094
69095 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
69096 l_balance_type_code <> 'B' THEN
69097 IF NVL(p_source_46,'
69098 ') = 'Revenue - UER' AND
69099 NVL(p_source_48,'
69100 ') = 'N'
69101 THEN
69102
69103 --
69104 XLA_AE_LINES_PKG.SetNewLine;
69105
69106 p_balance_type_code := l_balance_type_code;
69107 -- set the flag so later we will know whether the gain loss line needs to be created
69108
69109 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
69110 p_actual_flag :='A';
69111 END IF;
69112
69113 --
69114 -- bulk performance
69115 --
69116 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
69117 p_header_num => 0); -- 4262811
69118 --
69119 -- set accounting line options
69120 --
69121 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
69122 p_natural_side_code => 'D'
69123 , p_gain_or_loss_flag => 'N'
69124 , p_gl_transfer_mode_code => 'S'
69125 , p_acct_entry_type_code => 'A'
69126 , p_switch_side_flag => 'Y'
69127 , p_merge_duplicate_code => 'N'
69128 );
69129 --
69130 l_acc_rev_natural_side_code := 'C'; -- 4262811
69131 --
69132 --
69133 -- set accounting line type info
69134 --
69135 xla_ae_lines_pkg.SetAcctLineType
69136 (p_component_type => l_component_type
69137 ,p_event_type_code => l_event_type_code
69138 ,p_line_definition_owner_code => l_line_definition_owner_code
69139 ,p_line_definition_code => l_line_definition_code
69140 ,p_accounting_line_code => l_component_code
69141 ,p_accounting_line_type_code => l_component_type_code
69142 ,p_accounting_line_appl_id => l_component_appl_id
69143 ,p_amb_context_code => l_amb_context_code
69144 ,p_entity_code => l_entity_code
69145 ,p_event_class_code => l_event_class_code);
69146 --
69147 -- set accounting class
69148 --
69149 xla_ae_lines_pkg.SetAcctClass(
69150 p_accounting_class_code => 'UNEARNED_REVENUE'
69151 , p_ae_header_id => l_ae_header_id
69152 );
69153
69154 --
69155 -- set rounding class
69156 --
69157 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
69158 'UNEARNED_REVENUE';
69159
69160 --
69161 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
69162 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
69163 --
69164 -- bulk performance
69165 --
69166 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
69167
69168 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
69169 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
69170
69171 -- 4955764
69172 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
69173 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
69174
69175 -- 4458381 Public Sector Enh
69176
69177 --
69181 l_accted_amt_idx := 10;
69178 -- set accounting attributes for the line type
69179 --
69180 l_entered_amt_idx := 4;
69182 l_bflow_applied_to_amt_idx := NULL; -- 5132302
69183 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
69184 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_49);
69185 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
69186 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_50);
69187 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
69188 l_rec_acct_attrs.array_char_value(3) := p_source_46;
69189 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
69190 l_rec_acct_attrs.array_num_value(4) := p_source_42;
69191 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
69192 l_rec_acct_attrs.array_char_value(5) := p_source_26;
69193 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
69194 l_rec_acct_attrs.array_date_value(6) := p_source_28;
69195 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
69196 l_rec_acct_attrs.array_num_value(7) := p_source_29;
69197 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
69198 l_rec_acct_attrs.array_char_value(8) := p_source_30;
69199 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
69200 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_51);
69201 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
69202 l_rec_acct_attrs.array_num_value(10) := p_source_43;
69203
69204 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
69205 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
69206
69207 ---------------------------------------------------------------------------------------------------------------
69208 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
69209 ---------------------------------------------------------------------------------------------------------------
69210 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
69211
69212 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69213 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69214
69215 IF xla_accounting_cache_pkg.GetValueChar
69216 (p_source_code => 'LEDGER_CATEGORY_CODE'
69217 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
69218 AND l_bflow_method_code = 'PRIOR_ENTRY'
69219 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
69220 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
69221 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
69222 )
69223 THEN
69224 xla_ae_lines_pkg.BflowUpgEntry
69225 (p_business_method_code => l_bflow_method_code
69226 ,p_business_class_code => l_bflow_class_code
69227 ,p_balance_type => l_balance_type_code);
69228 ELSE
69229 NULL;
69230 -- No business flow processing for business flow method of NONE.
69231 END IF;
69232
69233 --
69234 -- call analytical criteria
69235 --
69236
69237 --
69238 -- call description
69239 --
69240 -- No description or it is inherited.
69241 --
69242 -- call ADRs
69243 -- Bug 4922099
69244 --
69245 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
69246 (NVL(l_actual_upg_option, 'N') = 'O') OR
69247 (NVL(l_enc_upg_option, 'N') = 'O')
69248 )
69249 THEN
69250 NULL;
69251 --
69252 --
69253
69254 l_ccid := AcctDerRule_28(
69255 p_application_id => p_application_id
69256 , p_ae_header_id => l_ae_header_id
69257 , p_source_21 => p_source_21
69258 , x_transaction_coa_id => l_adr_transaction_coa_id
69259 , x_accounting_coa_id => l_adr_accounting_coa_id
69260 , x_value_type_code => l_adr_value_type_code
69261 , p_side => 'NA'
69262 );
69263
69264 xla_ae_lines_pkg.set_ccid(
69265 p_code_combination_id => l_ccid
69266 , p_value_type_code => l_adr_value_type_code
69267 , p_transaction_coa_id => l_adr_transaction_coa_id
69268 , p_accounting_coa_id => l_adr_accounting_coa_id
69269 , p_adr_code => 'UER_RULE'
69270 , p_adr_type_code => 'S'
69271 , p_component_type => l_component_type
69272 , p_component_code => l_component_code
69273 , p_component_type_code => l_component_type_code
69274 , p_component_appl_id => l_component_appl_id
69275 , p_amb_context_code => l_amb_context_code
69276 , p_side => 'NA'
69277 );
69278
69279
69280 --
69281 --
69282 END IF;
69283 --
69284 -- Bug 4922099
69285 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
69286 (NVL(l_enc_upg_option, 'N') = 'O')
69287 ) AND
69288 (l_bflow_method_code = 'PRIOR_ENTRY')
69289 )
69290 THEN
69291 IF
69292 --
69293 1 = 2
69294 --
69295 THEN
69296 xla_accounting_err_pkg.build_message
69297 (p_appli_s_name => 'XLA'
69298 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
69299 ,p_token_1 => 'LINE_NUMBER'
69300 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
69301 ,p_token_2 => 'LINE_TYPE_NAME'
69305 ,l_component_type_code
69302 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
69303 l_component_type
69304 ,l_component_code
69306 ,l_component_appl_id
69307 ,l_amb_context_code
69308 ,l_entity_code
69309 ,l_event_class_code
69310 )
69311 ,p_token_3 => 'OWNER'
69312 ,p_value_3 => xla_lookups_pkg.get_meaning(
69313 p_lookup_type => 'XLA_OWNER_TYPE'
69314 ,p_lookup_code => l_component_type_code
69315 )
69316 ,p_token_4 => 'PRODUCT_NAME'
69317 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
69318 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
69319 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
69320 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
69321 ,p_ae_header_id => NULL
69322 );
69323
69324 IF (C_LEVEL_ERROR>= g_log_level) THEN
69325 trace
69326 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
69327 ,p_level => C_LEVEL_ERROR
69328 ,p_module => l_log_module);
69329 END IF;
69330 END IF;
69331 END IF;
69332 --
69333 --
69334 ------------------------------------------------------------------------------------------------
69335 -- 4219869 Business Flow
69336 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
69337 -- Prior Entry. Currently, the following code is always generated.
69338 ------------------------------------------------------------------------------------------------
69339 XLA_AE_LINES_PKG.ValidateCurrentLine;
69340
69341 ------------------------------------------------------------------------------------
69342 -- 4219869 Business Flow
69343 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
69344 ------------------------------------------------------------------------------------
69345 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
69346
69347 ----------------------------------------------------------------------------------
69348 -- 4219869 Business Flow
69349 -- Update journal entry status -- Need to generate this within IF <condition>
69350 ----------------------------------------------------------------------------------
69351 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
69352 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
69353 ,p_balance_type_code => l_balance_type_code
69354 );
69355
69356 -------------------------------------------------------------------------------------------
69357 -- 4262811 - Generate the Accrual Reversal lines
69358 -------------------------------------------------------------------------------------------
69359 BEGIN
69360 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
69361 (g_array_event(p_event_id).array_value_num('header_index'));
69362 IF l_acc_rev_flag IS NULL THEN
69363 l_acc_rev_flag := 'N';
69364 END IF;
69365 EXCEPTION
69366 WHEN OTHERS THEN
69367 l_acc_rev_flag := 'N';
69368 END;
69369 --
69370 IF (l_acc_rev_flag = 'Y') THEN
69371
69372 -- 4645092 ------------------------------------------------------------------------------
69373 -- To allow MPA report to determine if it should generate report process
69374 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
69375 ------------------------------------------------------------------------------------------
69376
69377 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
69378 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
69379
69380 --
69381 -- Update the line information that should be overwritten
69382 --
69383 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
69384 p_header_num => 1);
69385 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
69386
69387 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
69388
69389 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
69390 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
69391 END IF;
69392
69393 --
69394 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
69395 --
69396 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
69397 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
69398 ELSE
69399 ---------------------------------------------------------------------------------------------------
69403 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
69400 -- 4262811a Switch Sign
69401 ---------------------------------------------------------------------------------------------------
69402 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
69404 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69405 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
69406 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69407 -- 5132302
69408 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
69409 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69410
69411 END IF;
69412
69413 -- 4955764
69414 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
69415 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
69416
69417
69418 XLA_AE_LINES_PKG.ValidateCurrentLine;
69419 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
69420
69421 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
69422 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
69423 ,p_balance_type_code => l_balance_type_code);
69424
69425 END IF;
69426
69427 -----------------------------------------------------------------------------------------
69428 -- 4262811 Multiperiod Accounting
69429 -----------------------------------------------------------------------------------------
69430 -- No MPA option is assigned.
69431
69432
69433 END IF;
69434 END IF;
69435 --
69436
69437 --
69438 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69439 trace
69440 (p_msg => 'END of AcctLineType_139'
69441 ,p_level => C_LEVEL_PROCEDURE
69442 ,p_module => l_log_module);
69443 END IF;
69444 --
69445 EXCEPTION
69446 WHEN xla_exceptions_pkg.application_exception THEN
69447 RAISE;
69448 WHEN OTHERS THEN
69449 xla_exceptions_pkg.raise_message
69450 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_139');
69451 END AcctLineType_139;
69452 --
69453
69454 ---------------------------------------
69455 --
69456 -- PRIVATE FUNCTION
69457 -- AcctLineType_140
69458 --
69459 ---------------------------------------
69460 PROCEDURE AcctLineType_140 (
69461 p_application_id IN NUMBER
69462 ,p_event_id IN NUMBER
69463 ,p_calculate_acctd_flag IN VARCHAR2
69464 ,p_calculate_g_l_flag IN VARCHAR2
69465 ,p_actual_flag IN OUT VARCHAR2
69466 ,p_balance_type_code OUT VARCHAR2
69467 ,p_gain_or_loss_ref OUT VARCHAR2
69468
69469 --Unearned Revenue CCID
69470 , p_source_21 IN NUMBER
69471 --Actual Upgrade Credit Accounting Class
69472 , p_source_24 IN VARCHAR2
69473 --Entered Currency Code
69474 , p_source_26 IN VARCHAR2
69475 --Exchange Rate Date
69476 , p_source_28 IN DATE
69477 --Exchange Rate
69478 , p_source_29 IN NUMBER
69479 --Exchange Rate Type
69480 , p_source_30 IN VARCHAR2
69481 --Actual Upgrade Debit Accounting Class
69482 , p_source_31 IN VARCHAR2
69483 --Use Actuals Upgrade Attributes Flag
69484 , p_source_32 IN VARCHAR2
69485 --Entered Amount
69486 , p_source_42 IN NUMBER
69487 --Accounted Amount
69488 , p_source_43 IN NUMBER
69489 --Revenue Distribution Type
69490 , p_source_46 IN VARCHAR2
69491 --Crediting Revenue Flag
69492 , p_source_48 IN VARCHAR2
69493 --Revenue First Distribution ID
69494 , p_source_49 IN NUMBER
69495 --Revenue Second Distribution ID
69496 , p_source_50 IN NUMBER
69497 --Event ID
69498 , p_source_51 IN NUMBER
69499 --Actual Upgrade Credit CCID
69500 , p_source_64 IN NUMBER
69501 --Actual Upgrade Debit CCID
69502 , p_source_65 IN NUMBER
69503 --Application ID
69504 , p_source_66 IN NUMBER
69505 --Revenue Entity Code
69506 , p_source_67 IN VARCHAR2
69507 --Crediting Revenue First Distribution ID
69508 , p_source_68 IN NUMBER
69509 --Project ID
69510 , p_source_69 IN NUMBER
69511 --Crediting Revenue Second Distribution ID
69512 , p_source_70 IN NUMBER
69513 --Draft Revenue Number Credited
69514 , p_source_71 IN NUMBER
69515 )
69516 IS
69517
69518 l_component_type VARCHAR2(80);
69519 l_component_code VARCHAR2(30);
69520 l_component_type_code VARCHAR2(1);
69521 l_component_appl_id INTEGER;
69522 l_amb_context_code VARCHAR2(30);
69523 l_entity_code VARCHAR2(30);
69524 l_event_class_code VARCHAR2(30);
69525 l_ae_header_id NUMBER;
69526 l_event_type_code VARCHAR2(30);
69527 l_line_definition_code VARCHAR2(30);
69528 l_line_definition_owner_code VARCHAR2(1);
69529 --
69530 -- adr variables
69531 l_segment VARCHAR2(30);
69532 l_ccid NUMBER;
69533 l_adr_transaction_coa_id NUMBER;
69534 l_adr_accounting_coa_id NUMBER;
69535 l_adr_flexfield_segment_code VARCHAR2(30);
69536 l_adr_flex_value_set_id NUMBER;
69537 l_adr_value_type_code VARCHAR2(30);
69538 l_adr_value_combination_id NUMBER;
69539 l_adr_value_segment_code VARCHAR2(30);
69540
69541 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
69545
69542 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
69543 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
69544 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
69546 -- 4262811 Variables ------------------------------------------------------------------------------------------
69547 l_entered_amt_idx NUMBER;
69548 l_accted_amt_idx NUMBER;
69549 l_acc_rev_flag VARCHAR2(1);
69550 l_accrual_line_num NUMBER;
69551 l_tmp_amt NUMBER;
69552 l_acc_rev_natural_side_code VARCHAR2(1);
69553
69554 l_num_entries NUMBER;
69555 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
69556 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
69557 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
69558 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
69559 l_recog_line_1 NUMBER;
69560 l_recog_line_2 NUMBER;
69561
69562 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
69563 l_bflow_applied_to_amt NUMBER; -- 5132302
69564 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
69565
69566 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
69567
69568 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
69569 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
69570
69571 ---------------------------------------------------------------------------------------------------------------
69572
69573
69574 --
69575 -- bulk performance
69576 --
69577 l_balance_type_code VARCHAR2(1);
69578 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
69579 l_log_module VARCHAR2(240);
69580
69581 --
69582 -- Upgrade strategy
69583 --
69584 l_actual_upg_option VARCHAR2(1);
69585 l_enc_upg_option VARCHAR2(1);
69586
69587 --
69588 BEGIN
69589 --
69590 IF g_log_enabled THEN
69591 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_140';
69592 END IF;
69593 --
69594 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69595
69596 trace
69597 (p_msg => 'BEGIN of AcctLineType_140'
69598 ,p_level => C_LEVEL_PROCEDURE
69599 ,p_module => l_log_module);
69600
69601 END IF;
69602 --
69603 l_component_type := 'AMB_JLT';
69604 l_component_code := 'PA_UER_ADJ';
69605 l_component_type_code := 'S';
69606 l_component_appl_id := 275;
69607 l_amb_context_code := 'DEFAULT';
69608 l_entity_code := 'REVENUE';
69609 l_event_class_code := 'REVENUE_ADJ';
69610 l_event_type_code := 'REVENUE_ADJ_ALL';
69611 l_line_definition_owner_code := 'S';
69612 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
69613 --
69614 l_balance_type_code := 'A';
69615 l_segment := NULL;
69616 l_ccid := NULL;
69617 l_adr_transaction_coa_id := NULL;
69618 l_adr_accounting_coa_id := NULL;
69619 l_adr_flexfield_segment_code := NULL;
69620 l_adr_flex_value_set_id := NULL;
69621 l_adr_value_type_code := NULL;
69622 l_adr_value_combination_id := NULL;
69623 l_adr_value_segment_code := NULL;
69624
69625 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
69626 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
69627 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
69628 l_budgetary_control_flag := 'N';
69629
69630 l_bflow_applied_to_amt_idx := NULL; -- 5132302
69631 l_bflow_applied_to_amt := NULL; -- 5132302
69632 l_entered_amt_idx := NULL; -- 4262811
69633 l_accted_amt_idx := NULL; -- 4262811
69634 l_acc_rev_flag := NULL; -- 4262811
69635 l_accrual_line_num := NULL; -- 4262811
69636 l_tmp_amt := NULL; -- 4262811
69637 --
69638
69639 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
69640 l_balance_type_code <> 'B' THEN
69641 IF NVL(p_source_46,'
69642 ') = 'Revenue - UER' AND
69643 NVL(p_source_48,'
69644 ') = 'Y'
69645 THEN
69646
69647 --
69648 XLA_AE_LINES_PKG.SetNewLine;
69649
69650 p_balance_type_code := l_balance_type_code;
69651 -- set the flag so later we will know whether the gain loss line needs to be created
69652
69653 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
69654 p_actual_flag :='A';
69655 END IF;
69656
69657 --
69658 -- bulk performance
69659 --
69660 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
69661 p_header_num => 0); -- 4262811
69662 --
69663 -- set accounting line options
69664 --
69665 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
69666 p_natural_side_code => 'C'
69667 , p_gain_or_loss_flag => 'N'
69668 , p_gl_transfer_mode_code => 'S'
69669 , p_acct_entry_type_code => 'A'
69670 , p_switch_side_flag => 'Y'
69671 , p_merge_duplicate_code => 'N'
69672 );
69673 --
69674 l_acc_rev_natural_side_code := 'D'; -- 4262811
69675 --
69676 --
69677 -- set accounting line type info
69678 --
69679 xla_ae_lines_pkg.SetAcctLineType
69680 (p_component_type => l_component_type
69681 ,p_event_type_code => l_event_type_code
69685 ,p_accounting_line_type_code => l_component_type_code
69682 ,p_line_definition_owner_code => l_line_definition_owner_code
69683 ,p_line_definition_code => l_line_definition_code
69684 ,p_accounting_line_code => l_component_code
69686 ,p_accounting_line_appl_id => l_component_appl_id
69687 ,p_amb_context_code => l_amb_context_code
69688 ,p_entity_code => l_entity_code
69689 ,p_event_class_code => l_event_class_code);
69690 --
69691 -- set accounting class
69692 --
69693 xla_ae_lines_pkg.SetAcctClass(
69694 p_accounting_class_code => 'UNEARNED_REVENUE'
69695 , p_ae_header_id => l_ae_header_id
69696 );
69697
69698 --
69699 -- set rounding class
69700 --
69701 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
69702 'UNEARNED_REVENUE';
69703
69704 --
69705 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
69706 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
69707 --
69708 -- bulk performance
69709 --
69710 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
69711
69712 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
69713 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
69714
69715 -- 4955764
69716 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
69717 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
69718
69719 -- 4458381 Public Sector Enh
69720
69721 --
69722 -- set accounting attributes for the line type
69723 --
69724 l_entered_amt_idx := 28;
69725 l_accted_amt_idx := 34;
69726 l_bflow_applied_to_amt_idx := NULL; -- 5132302
69727 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACTUAL_UPG_CR_ACCT_CLASS';
69728 l_rec_acct_attrs.array_char_value(1) := p_source_24;
69729 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_CCID';
69730 l_rec_acct_attrs.array_num_value(2) := TO_NUMBER(p_source_64);
69731 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ENTERED_AMT';
69732 l_rec_acct_attrs.array_num_value(3) := p_source_42;
69733 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_CURR';
69734 l_rec_acct_attrs.array_char_value(4) := p_source_26;
69735 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_LEDGER_AMT';
69736 l_rec_acct_attrs.array_num_value(5) := p_source_43;
69737 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_XDATE';
69738 l_rec_acct_attrs.array_date_value(6) := p_source_28;
69739 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XRATE';
69740 l_rec_acct_attrs.array_num_value(7) := p_source_29;
69741 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE_TYPE';
69742 l_rec_acct_attrs.array_char_value(8) := p_source_30;
69743 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_DR_ACCT_CLASS';
69744 l_rec_acct_attrs.array_char_value(9) := p_source_31;
69745 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_CCID';
69746 l_rec_acct_attrs.array_num_value(10) := TO_NUMBER(p_source_65);
69747 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ENTERED_AMT';
69748 l_rec_acct_attrs.array_num_value(11) := p_source_42;
69749 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_CURR';
69750 l_rec_acct_attrs.array_char_value(12) := p_source_26;
69751 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_LEDGER_AMT';
69752 l_rec_acct_attrs.array_num_value(13) := p_source_43;
69753 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_XDATE';
69754 l_rec_acct_attrs.array_date_value(14) := p_source_28;
69755 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XRATE';
69756 l_rec_acct_attrs.array_num_value(15) := p_source_29;
69757 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE_TYPE';
69758 l_rec_acct_attrs.array_char_value(16) := p_source_30;
69759 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_OPTION';
69760 l_rec_acct_attrs.array_char_value(17) := p_source_32;
69761 l_rec_acct_attrs.array_acct_attr_code(18) := 'APPLIED_TO_APPLICATION_ID';
69762 l_rec_acct_attrs.array_num_value(18) := p_source_66;
69763 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_DISTRIBUTION_TYPE';
69764 l_rec_acct_attrs.array_char_value(19) := p_source_46;
69765 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_ENTITY_CODE';
69766 l_rec_acct_attrs.array_char_value(20) := p_source_67;
69767 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_FIRST_DIST_ID';
69768 l_rec_acct_attrs.array_num_value(21) := to_char(p_source_68);
69769 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
69770 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_69);
69771 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_SECOND_DIST_ID';
69772 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_70);
69773 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
69774 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_71);
69775 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
69776 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_49);
69777 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
69778 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_50);
69779 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
69780 l_rec_acct_attrs.array_char_value(27) := p_source_46;
69781 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
69782 l_rec_acct_attrs.array_num_value(28) := p_source_42;
69783 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
69787 l_rec_acct_attrs.array_acct_attr_code(31) := 'EXCHANGE_RATE';
69784 l_rec_acct_attrs.array_char_value(29) := p_source_26;
69785 l_rec_acct_attrs.array_acct_attr_code(30) := 'EXCHANGE_DATE';
69786 l_rec_acct_attrs.array_date_value(30) := p_source_28;
69788 l_rec_acct_attrs.array_num_value(31) := p_source_29;
69789 l_rec_acct_attrs.array_acct_attr_code(32) := 'EXCHANGE_RATE_TYPE';
69790 l_rec_acct_attrs.array_char_value(32) := p_source_30;
69791 l_rec_acct_attrs.array_acct_attr_code(33) := 'GAIN_LOSS_REFERENCE';
69792 l_rec_acct_attrs.array_num_value(33) := to_char(p_source_51);
69793 l_rec_acct_attrs.array_acct_attr_code(34) := 'LEDGER_AMOUNT';
69794 l_rec_acct_attrs.array_num_value(34) := p_source_43;
69795
69796 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
69797 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
69798
69799 ---------------------------------------------------------------------------------------------------------------
69800 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
69801 ---------------------------------------------------------------------------------------------------------------
69802 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
69803
69804 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69805 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69806
69807 IF xla_accounting_cache_pkg.GetValueChar
69808 (p_source_code => 'LEDGER_CATEGORY_CODE'
69809 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
69810 AND l_bflow_method_code = 'PRIOR_ENTRY'
69811 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
69812 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
69813 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
69814 )
69815 THEN
69816 xla_ae_lines_pkg.BflowUpgEntry
69817 (p_business_method_code => l_bflow_method_code
69818 ,p_business_class_code => l_bflow_class_code
69819 ,p_balance_type => l_balance_type_code);
69820 ELSE
69821 NULL;
69822 -- No business flow processing for business flow method of NONE.
69823 END IF;
69824
69825 --
69826 -- call analytical criteria
69827 --
69828
69829 --
69830 -- call description
69831 --
69832 -- No description or it is inherited.
69833 --
69834 -- call ADRs
69835 -- Bug 4922099
69836 --
69837 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
69838 (NVL(l_actual_upg_option, 'N') = 'O') OR
69839 (NVL(l_enc_upg_option, 'N') = 'O')
69840 )
69841 THEN
69842 NULL;
69843 --
69844 --
69845
69846 l_ccid := AcctDerRule_28(
69847 p_application_id => p_application_id
69848 , p_ae_header_id => l_ae_header_id
69849 , p_source_21 => p_source_21
69850 , x_transaction_coa_id => l_adr_transaction_coa_id
69851 , x_accounting_coa_id => l_adr_accounting_coa_id
69852 , x_value_type_code => l_adr_value_type_code
69853 , p_side => 'NA'
69854 );
69855
69856 xla_ae_lines_pkg.set_ccid(
69857 p_code_combination_id => l_ccid
69858 , p_value_type_code => l_adr_value_type_code
69859 , p_transaction_coa_id => l_adr_transaction_coa_id
69860 , p_accounting_coa_id => l_adr_accounting_coa_id
69861 , p_adr_code => 'UER_RULE'
69862 , p_adr_type_code => 'S'
69863 , p_component_type => l_component_type
69864 , p_component_code => l_component_code
69865 , p_component_type_code => l_component_type_code
69866 , p_component_appl_id => l_component_appl_id
69867 , p_amb_context_code => l_amb_context_code
69868 , p_side => 'NA'
69869 );
69870
69871
69872 --
69873 --
69874 END IF;
69875 --
69876 -- Bug 4922099
69877 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
69878 (NVL(l_enc_upg_option, 'N') = 'O')
69879 ) AND
69880 (l_bflow_method_code = 'PRIOR_ENTRY')
69881 )
69882 THEN
69883 IF
69884 --
69885 1 = 2
69886 --
69887 THEN
69888 xla_accounting_err_pkg.build_message
69889 (p_appli_s_name => 'XLA'
69890 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
69891 ,p_token_1 => 'LINE_NUMBER'
69892 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
69893 ,p_token_2 => 'LINE_TYPE_NAME'
69894 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
69895 l_component_type
69896 ,l_component_code
69897 ,l_component_type_code
69898 ,l_component_appl_id
69899 ,l_amb_context_code
69900 ,l_entity_code
69901 ,l_event_class_code
69902 )
69906 ,p_lookup_code => l_component_type_code
69903 ,p_token_3 => 'OWNER'
69904 ,p_value_3 => xla_lookups_pkg.get_meaning(
69905 p_lookup_type => 'XLA_OWNER_TYPE'
69907 )
69908 ,p_token_4 => 'PRODUCT_NAME'
69909 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
69910 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
69911 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
69912 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
69913 ,p_ae_header_id => NULL
69914 );
69915
69916 IF (C_LEVEL_ERROR>= g_log_level) THEN
69917 trace
69918 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
69919 ,p_level => C_LEVEL_ERROR
69920 ,p_module => l_log_module);
69921 END IF;
69922 END IF;
69923 END IF;
69924 --
69925 --
69926 ------------------------------------------------------------------------------------------------
69927 -- 4219869 Business Flow
69928 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
69929 -- Prior Entry. Currently, the following code is always generated.
69930 ------------------------------------------------------------------------------------------------
69931 XLA_AE_LINES_PKG.ValidateCurrentLine;
69932
69933 ------------------------------------------------------------------------------------
69934 -- 4219869 Business Flow
69935 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
69936 ------------------------------------------------------------------------------------
69937 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
69938
69939 ----------------------------------------------------------------------------------
69940 -- 4219869 Business Flow
69941 -- Update journal entry status -- Need to generate this within IF <condition>
69942 ----------------------------------------------------------------------------------
69943 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
69944 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
69945 ,p_balance_type_code => l_balance_type_code
69946 );
69947
69948 -------------------------------------------------------------------------------------------
69949 -- 4262811 - Generate the Accrual Reversal lines
69950 -------------------------------------------------------------------------------------------
69951 BEGIN
69952 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
69953 (g_array_event(p_event_id).array_value_num('header_index'));
69954 IF l_acc_rev_flag IS NULL THEN
69955 l_acc_rev_flag := 'N';
69956 END IF;
69957 EXCEPTION
69958 WHEN OTHERS THEN
69959 l_acc_rev_flag := 'N';
69960 END;
69961 --
69962 IF (l_acc_rev_flag = 'Y') THEN
69963
69964 -- 4645092 ------------------------------------------------------------------------------
69965 -- To allow MPA report to determine if it should generate report process
69966 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
69967 ------------------------------------------------------------------------------------------
69968
69969 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
69970 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
69971
69972 --
69973 -- Update the line information that should be overwritten
69974 --
69975 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
69976 p_header_num => 1);
69977 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
69978
69979 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
69980
69981 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
69982 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
69983 END IF;
69984
69985 --
69986 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
69987 --
69988 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
69989 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
69990 ELSE
69991 ---------------------------------------------------------------------------------------------------
69992 -- 4262811a Switch Sign
69993 ---------------------------------------------------------------------------------------------------
69994 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
69995 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
69996 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69997 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
69998 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69999 -- 5132302
70000 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
70004
70001 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70002
70003 END IF;
70005 -- 4955764
70006 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
70007 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
70008
70009
70010 XLA_AE_LINES_PKG.ValidateCurrentLine;
70011 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
70012
70013 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
70014 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
70015 ,p_balance_type_code => l_balance_type_code);
70016
70017 END IF;
70018
70019 -----------------------------------------------------------------------------------------
70020 -- 4262811 Multiperiod Accounting
70021 -----------------------------------------------------------------------------------------
70022 -- No MPA option is assigned.
70023
70024
70025 END IF;
70026 END IF;
70027 --
70028
70029 --
70030 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70031 trace
70032 (p_msg => 'END of AcctLineType_140'
70033 ,p_level => C_LEVEL_PROCEDURE
70034 ,p_module => l_log_module);
70035 END IF;
70036 --
70037 EXCEPTION
70038 WHEN xla_exceptions_pkg.application_exception THEN
70039 RAISE;
70040 WHEN OTHERS THEN
70041 xla_exceptions_pkg.raise_message
70042 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_140');
70043 END AcctLineType_140;
70044 --
70045
70046 ---------------------------------------
70047 --
70048 -- PRIVATE FUNCTION
70049 -- AcctLineType_141
70050 --
70051 ---------------------------------------
70052 PROCEDURE AcctLineType_141 (
70053 p_application_id IN NUMBER
70054 ,p_event_id IN NUMBER
70055 ,p_calculate_acctd_flag IN VARCHAR2
70056 ,p_calculate_g_l_flag IN VARCHAR2
70057 ,p_actual_flag IN OUT VARCHAR2
70058 ,p_balance_type_code OUT VARCHAR2
70059 ,p_gain_or_loss_ref OUT VARCHAR2
70060
70061 --Unearned Revenue CCID
70062 , p_source_21 IN NUMBER
70063 --Actual Upgrade Credit Accounting Class
70064 , p_source_24 IN VARCHAR2
70065 --Entered Currency Code
70066 , p_source_26 IN VARCHAR2
70067 --Exchange Rate Date
70068 , p_source_28 IN DATE
70069 --Exchange Rate
70070 , p_source_29 IN NUMBER
70071 --Exchange Rate Type
70072 , p_source_30 IN VARCHAR2
70073 --Actual Upgrade Debit Accounting Class
70074 , p_source_31 IN VARCHAR2
70075 --Use Actuals Upgrade Attributes Flag
70076 , p_source_32 IN VARCHAR2
70077 --Entered Amount
70078 , p_source_42 IN NUMBER
70079 --Accounted Amount
70080 , p_source_43 IN NUMBER
70081 --Revenue Distribution Type
70082 , p_source_46 IN VARCHAR2
70083 --Crediting Revenue Flag
70084 , p_source_48 IN VARCHAR2
70085 --Revenue First Distribution ID
70086 , p_source_49 IN NUMBER
70087 --Revenue Second Distribution ID
70088 , p_source_50 IN NUMBER
70089 --Event ID
70090 , p_source_51 IN NUMBER
70091 --Actual Upgrade Credit CCID
70092 , p_source_64 IN NUMBER
70093 --Actual Upgrade Debit CCID
70094 , p_source_65 IN NUMBER
70095 --Application ID
70096 , p_source_66 IN NUMBER
70097 --Revenue Entity Code
70098 , p_source_67 IN VARCHAR2
70099 --Crediting Revenue First Distribution ID
70100 , p_source_68 IN NUMBER
70101 --Project ID
70102 , p_source_69 IN NUMBER
70103 --Crediting Revenue Second Distribution ID
70104 , p_source_70 IN NUMBER
70105 --Draft Revenue Number Credited
70106 , p_source_71 IN NUMBER
70107 )
70108 IS
70109
70110 l_component_type VARCHAR2(80);
70111 l_component_code VARCHAR2(30);
70112 l_component_type_code VARCHAR2(1);
70113 l_component_appl_id INTEGER;
70114 l_amb_context_code VARCHAR2(30);
70115 l_entity_code VARCHAR2(30);
70116 l_event_class_code VARCHAR2(30);
70117 l_ae_header_id NUMBER;
70118 l_event_type_code VARCHAR2(30);
70119 l_line_definition_code VARCHAR2(30);
70120 l_line_definition_owner_code VARCHAR2(1);
70121 --
70122 -- adr variables
70123 l_segment VARCHAR2(30);
70124 l_ccid NUMBER;
70125 l_adr_transaction_coa_id NUMBER;
70126 l_adr_accounting_coa_id NUMBER;
70127 l_adr_flexfield_segment_code VARCHAR2(30);
70128 l_adr_flex_value_set_id NUMBER;
70129 l_adr_value_type_code VARCHAR2(30);
70130 l_adr_value_combination_id NUMBER;
70131 l_adr_value_segment_code VARCHAR2(30);
70132
70133 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
70134 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
70135 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
70136 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
70137
70138 -- 4262811 Variables ------------------------------------------------------------------------------------------
70139 l_entered_amt_idx NUMBER;
70140 l_accted_amt_idx NUMBER;
70141 l_acc_rev_flag VARCHAR2(1);
70142 l_accrual_line_num NUMBER;
70143 l_tmp_amt NUMBER;
70144 l_acc_rev_natural_side_code VARCHAR2(1);
70145
70146 l_num_entries NUMBER;
70147 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
70151 l_recog_line_1 NUMBER;
70148 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
70149 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
70150 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
70152 l_recog_line_2 NUMBER;
70153
70154 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
70155 l_bflow_applied_to_amt NUMBER; -- 5132302
70156 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
70157
70158 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
70159
70160 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
70161 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
70162
70163 ---------------------------------------------------------------------------------------------------------------
70164
70165
70166 --
70167 -- bulk performance
70168 --
70169 l_balance_type_code VARCHAR2(1);
70170 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
70171 l_log_module VARCHAR2(240);
70172
70173 --
70174 -- Upgrade strategy
70175 --
70176 l_actual_upg_option VARCHAR2(1);
70177 l_enc_upg_option VARCHAR2(1);
70178
70179 --
70180 BEGIN
70181 --
70182 IF g_log_enabled THEN
70183 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_141';
70184 END IF;
70185 --
70186 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70187
70188 trace
70189 (p_msg => 'BEGIN of AcctLineType_141'
70190 ,p_level => C_LEVEL_PROCEDURE
70191 ,p_module => l_log_module);
70192
70193 END IF;
70194 --
70195 l_component_type := 'AMB_JLT';
70196 l_component_code := 'PA_UER_ADJ_FED';
70197 l_component_type_code := 'S';
70198 l_component_appl_id := 275;
70199 l_amb_context_code := 'DEFAULT';
70200 l_entity_code := 'REVENUE';
70201 l_event_class_code := 'REVENUE_ADJ';
70202 l_event_type_code := 'REVENUE_ADJ_ALL';
70203 l_line_definition_owner_code := 'S';
70204 l_line_definition_code := 'FV_PROJECTS_JLD';
70205 --
70206 l_balance_type_code := 'A';
70207 l_segment := NULL;
70208 l_ccid := NULL;
70209 l_adr_transaction_coa_id := NULL;
70210 l_adr_accounting_coa_id := NULL;
70211 l_adr_flexfield_segment_code := NULL;
70212 l_adr_flex_value_set_id := NULL;
70213 l_adr_value_type_code := NULL;
70214 l_adr_value_combination_id := NULL;
70215 l_adr_value_segment_code := NULL;
70216
70217 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
70218 l_bflow_class_code := ''; -- 4219869 Business Flow
70219 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
70220 l_budgetary_control_flag := 'N';
70221
70222 l_bflow_applied_to_amt_idx := NULL; -- 5132302
70223 l_bflow_applied_to_amt := NULL; -- 5132302
70224 l_entered_amt_idx := NULL; -- 4262811
70225 l_accted_amt_idx := NULL; -- 4262811
70226 l_acc_rev_flag := NULL; -- 4262811
70227 l_accrual_line_num := NULL; -- 4262811
70228 l_tmp_amt := NULL; -- 4262811
70229 --
70230
70231 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
70232 l_balance_type_code <> 'B' THEN
70233 IF NVL(p_source_46,'
70234 ') = 'Revenue - UER' AND
70235 NVL(p_source_48,'
70236 ') = 'Y'
70237 THEN
70238
70239 --
70240 XLA_AE_LINES_PKG.SetNewLine;
70241
70242 p_balance_type_code := l_balance_type_code;
70243 -- set the flag so later we will know whether the gain loss line needs to be created
70244
70245 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
70246 p_actual_flag :='A';
70247 END IF;
70248
70249 --
70250 -- bulk performance
70251 --
70252 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
70253 p_header_num => 0); -- 4262811
70254 --
70255 -- set accounting line options
70256 --
70257 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
70258 p_natural_side_code => 'C'
70259 , p_gain_or_loss_flag => 'N'
70260 , p_gl_transfer_mode_code => 'S'
70261 , p_acct_entry_type_code => 'A'
70262 , p_switch_side_flag => 'Y'
70263 , p_merge_duplicate_code => 'N'
70264 );
70265 --
70266 l_acc_rev_natural_side_code := 'D'; -- 4262811
70267 --
70268 --
70269 -- set accounting line type info
70270 --
70271 xla_ae_lines_pkg.SetAcctLineType
70272 (p_component_type => l_component_type
70273 ,p_event_type_code => l_event_type_code
70274 ,p_line_definition_owner_code => l_line_definition_owner_code
70275 ,p_line_definition_code => l_line_definition_code
70276 ,p_accounting_line_code => l_component_code
70277 ,p_accounting_line_type_code => l_component_type_code
70278 ,p_accounting_line_appl_id => l_component_appl_id
70279 ,p_amb_context_code => l_amb_context_code
70280 ,p_entity_code => l_entity_code
70281 ,p_event_class_code => l_event_class_code);
70282 --
70283 -- set accounting class
70284 --
70285 xla_ae_lines_pkg.SetAcctClass(
70286 p_accounting_class_code => 'FEDERAL_UNEARNED_REVENUE_AD'
70287 , p_ae_header_id => l_ae_header_id
70288 );
70289
70293 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
70290 --
70291 -- set rounding class
70292 --
70294 'FEDERAL_UNEARNED_REVENUE_AD';
70295
70296 --
70297 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
70298 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
70299 --
70300 -- bulk performance
70301 --
70302 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
70303
70304 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
70305 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
70306
70307 -- 4955764
70308 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
70309 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
70310
70311 -- 4458381 Public Sector Enh
70312
70313 --
70314 -- set accounting attributes for the line type
70315 --
70316 l_entered_amt_idx := 28;
70317 l_accted_amt_idx := 31;
70318 l_bflow_applied_to_amt_idx := NULL; -- 5132302
70319 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACTUAL_UPG_CR_ACCT_CLASS';
70320 l_rec_acct_attrs.array_char_value(1) := p_source_24;
70321 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_CCID';
70322 l_rec_acct_attrs.array_num_value(2) := TO_NUMBER(p_source_64);
70323 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ENTERED_AMT';
70324 l_rec_acct_attrs.array_num_value(3) := p_source_42;
70325 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_CURR';
70326 l_rec_acct_attrs.array_char_value(4) := p_source_26;
70327 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_LEDGER_AMT';
70328 l_rec_acct_attrs.array_num_value(5) := p_source_43;
70329 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_XDATE';
70330 l_rec_acct_attrs.array_date_value(6) := p_source_28;
70331 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XRATE';
70332 l_rec_acct_attrs.array_num_value(7) := p_source_29;
70333 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE_TYPE';
70334 l_rec_acct_attrs.array_char_value(8) := p_source_30;
70335 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_DR_ACCT_CLASS';
70336 l_rec_acct_attrs.array_char_value(9) := p_source_31;
70337 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_CCID';
70338 l_rec_acct_attrs.array_num_value(10) := TO_NUMBER(p_source_65);
70339 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ENTERED_AMT';
70340 l_rec_acct_attrs.array_num_value(11) := p_source_42;
70341 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_CURR';
70342 l_rec_acct_attrs.array_char_value(12) := p_source_26;
70343 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_LEDGER_AMT';
70344 l_rec_acct_attrs.array_num_value(13) := p_source_43;
70345 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_XDATE';
70346 l_rec_acct_attrs.array_date_value(14) := p_source_28;
70347 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XRATE';
70348 l_rec_acct_attrs.array_num_value(15) := p_source_29;
70349 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE_TYPE';
70350 l_rec_acct_attrs.array_char_value(16) := p_source_30;
70351 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_OPTION';
70352 l_rec_acct_attrs.array_char_value(17) := p_source_32;
70353 l_rec_acct_attrs.array_acct_attr_code(18) := 'APPLIED_TO_APPLICATION_ID';
70354 l_rec_acct_attrs.array_num_value(18) := p_source_66;
70355 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_DISTRIBUTION_TYPE';
70356 l_rec_acct_attrs.array_char_value(19) := p_source_46;
70357 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_ENTITY_CODE';
70358 l_rec_acct_attrs.array_char_value(20) := p_source_67;
70359 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_FIRST_DIST_ID';
70360 l_rec_acct_attrs.array_num_value(21) := to_char(p_source_68);
70361 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
70362 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_69);
70363 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_SECOND_DIST_ID';
70364 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_70);
70365 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
70366 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_71);
70367 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
70368 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_49);
70369 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
70370 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_50);
70371 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
70372 l_rec_acct_attrs.array_char_value(27) := p_source_46;
70373 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
70374 l_rec_acct_attrs.array_num_value(28) := p_source_42;
70375 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
70376 l_rec_acct_attrs.array_char_value(29) := p_source_26;
70377 l_rec_acct_attrs.array_acct_attr_code(30) := 'GAIN_LOSS_REFERENCE';
70378 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_51);
70379 l_rec_acct_attrs.array_acct_attr_code(31) := 'LEDGER_AMOUNT';
70380 l_rec_acct_attrs.array_num_value(31) := p_source_43;
70381
70382 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
70383 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
70384
70385 ---------------------------------------------------------------------------------------------------------------
70386 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
70390 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
70387 ---------------------------------------------------------------------------------------------------------------
70388 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
70389
70391 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
70392
70393 IF xla_accounting_cache_pkg.GetValueChar
70394 (p_source_code => 'LEDGER_CATEGORY_CODE'
70395 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
70396 AND l_bflow_method_code = 'PRIOR_ENTRY'
70397 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
70398 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
70399 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
70400 )
70401 THEN
70402 xla_ae_lines_pkg.BflowUpgEntry
70403 (p_business_method_code => l_bflow_method_code
70404 ,p_business_class_code => l_bflow_class_code
70405 ,p_balance_type => l_balance_type_code);
70406 ELSE
70407 NULL;
70408 -- No business flow processing for business flow method of NONE.
70409 END IF;
70410
70411 --
70412 -- call analytical criteria
70413 --
70414
70415 --
70416 -- call description
70417 --
70418 -- No description or it is inherited.
70419 --
70420 -- call ADRs
70421 -- Bug 4922099
70422 --
70423 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
70424 (NVL(l_actual_upg_option, 'N') = 'O') OR
70425 (NVL(l_enc_upg_option, 'N') = 'O')
70426 )
70427 THEN
70428 NULL;
70429 --
70430 --
70431
70432 l_ccid := AcctDerRule_28(
70433 p_application_id => p_application_id
70434 , p_ae_header_id => l_ae_header_id
70435 , p_source_21 => p_source_21
70436 , x_transaction_coa_id => l_adr_transaction_coa_id
70437 , x_accounting_coa_id => l_adr_accounting_coa_id
70438 , x_value_type_code => l_adr_value_type_code
70439 , p_side => 'NA'
70440 );
70441
70442 xla_ae_lines_pkg.set_ccid(
70443 p_code_combination_id => l_ccid
70444 , p_value_type_code => l_adr_value_type_code
70445 , p_transaction_coa_id => l_adr_transaction_coa_id
70446 , p_accounting_coa_id => l_adr_accounting_coa_id
70447 , p_adr_code => 'UER_RULE'
70448 , p_adr_type_code => 'S'
70449 , p_component_type => l_component_type
70450 , p_component_code => l_component_code
70451 , p_component_type_code => l_component_type_code
70452 , p_component_appl_id => l_component_appl_id
70453 , p_amb_context_code => l_amb_context_code
70454 , p_side => 'NA'
70455 );
70456
70457
70458 l_segment := AcctDerRule_3(
70459 p_application_id => p_application_id
70460 , p_ae_header_id => l_ae_header_id
70461 , x_transaction_coa_id => l_adr_transaction_coa_id
70462 , x_accounting_coa_id => l_adr_accounting_coa_id
70463 , x_flexfield_segment_code => l_adr_flexfield_segment_code
70464 , x_flex_value_set_id => l_adr_flex_value_set_id
70465 , x_value_type_code => l_adr_value_type_code
70466 , x_value_combination_id => l_adr_value_combination_id
70467 , x_value_segment_code => l_adr_value_segment_code
70468 , p_side => 'NA'
70469 , p_override_seg_flag => 'Y'
70470 );
70471
70472 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
70473
70474 xla_ae_lines_pkg.set_segment(
70475 p_to_segment_code => 'GL_ACCOUNT'
70476 , p_segment_value => l_segment
70477 , p_from_segment_code => l_adr_value_segment_code
70478 , p_from_combination_id => l_adr_value_combination_id
70479 , p_value_type_code => l_adr_value_type_code
70480 , p_transaction_coa_id => l_adr_transaction_coa_id
70481 , p_accounting_coa_id => l_adr_accounting_coa_id
70482 , p_flexfield_segment_code => l_adr_flexfield_segment_code
70483 , p_flex_value_set_id => l_adr_flex_value_set_id
70484 , p_adr_code => 'FV_425X01_PROJECTS'
70485 , p_adr_type_code => 'S'
70486 , p_component_type => l_component_type
70487 , p_component_code => l_component_code
70488 , p_component_type_code => l_component_type_code
70489 , p_component_appl_id => l_component_appl_id
70490 , p_amb_context_code => l_amb_context_code
70491 , p_entity_code => 'REVENUE'
70492 , p_event_class_code => 'REVENUE_ADJ'
70493 , p_side => 'NA'
70494 );
70495
70496 END IF;
70497
70498 --
70499 --
70500 END IF;
70501 --
70502 -- Bug 4922099
70503 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
70504 (NVL(l_enc_upg_option, 'N') = 'O')
70505 ) AND
70506 (l_bflow_method_code = 'PRIOR_ENTRY')
70507 )
70508 THEN
70509 IF
70510 --
70511 1 = 2
70512 --
70513 THEN
70514 xla_accounting_err_pkg.build_message
70515 (p_appli_s_name => 'XLA'
70516 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
70517 ,p_token_1 => 'LINE_NUMBER'
70521 l_component_type
70518 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
70519 ,p_token_2 => 'LINE_TYPE_NAME'
70520 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
70522 ,l_component_code
70523 ,l_component_type_code
70524 ,l_component_appl_id
70525 ,l_amb_context_code
70526 ,l_entity_code
70527 ,l_event_class_code
70528 )
70529 ,p_token_3 => 'OWNER'
70530 ,p_value_3 => xla_lookups_pkg.get_meaning(
70531 p_lookup_type => 'XLA_OWNER_TYPE'
70532 ,p_lookup_code => l_component_type_code
70533 )
70534 ,p_token_4 => 'PRODUCT_NAME'
70535 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
70536 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
70537 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
70538 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
70539 ,p_ae_header_id => NULL
70540 );
70541
70542 IF (C_LEVEL_ERROR>= g_log_level) THEN
70543 trace
70544 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
70545 ,p_level => C_LEVEL_ERROR
70546 ,p_module => l_log_module);
70547 END IF;
70548 END IF;
70549 END IF;
70550 --
70551 --
70552 ------------------------------------------------------------------------------------------------
70553 -- 4219869 Business Flow
70554 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
70555 -- Prior Entry. Currently, the following code is always generated.
70556 ------------------------------------------------------------------------------------------------
70557 XLA_AE_LINES_PKG.ValidateCurrentLine;
70558
70559 ------------------------------------------------------------------------------------
70560 -- 4219869 Business Flow
70561 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
70562 ------------------------------------------------------------------------------------
70563 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
70564
70565 ----------------------------------------------------------------------------------
70566 -- 4219869 Business Flow
70567 -- Update journal entry status -- Need to generate this within IF <condition>
70568 ----------------------------------------------------------------------------------
70569 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
70570 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
70571 ,p_balance_type_code => l_balance_type_code
70572 );
70573
70574 -------------------------------------------------------------------------------------------
70575 -- 4262811 - Generate the Accrual Reversal lines
70576 -------------------------------------------------------------------------------------------
70577 BEGIN
70578 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
70579 (g_array_event(p_event_id).array_value_num('header_index'));
70580 IF l_acc_rev_flag IS NULL THEN
70581 l_acc_rev_flag := 'N';
70582 END IF;
70583 EXCEPTION
70584 WHEN OTHERS THEN
70585 l_acc_rev_flag := 'N';
70586 END;
70587 --
70588 IF (l_acc_rev_flag = 'Y') THEN
70589
70590 -- 4645092 ------------------------------------------------------------------------------
70591 -- To allow MPA report to determine if it should generate report process
70592 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
70593 ------------------------------------------------------------------------------------------
70594
70595 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
70596 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
70597
70598 --
70599 -- Update the line information that should be overwritten
70600 --
70601 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
70602 p_header_num => 1);
70603 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
70604
70605 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
70606
70607 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
70608 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
70609 END IF;
70610
70611 --
70612 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
70613 --
70614 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
70618 -- 4262811a Switch Sign
70615 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
70616 ELSE
70617 ---------------------------------------------------------------------------------------------------
70619 ---------------------------------------------------------------------------------------------------
70620 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
70621 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
70622 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70623 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
70624 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70625 -- 5132302
70626 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
70627 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70628
70629 END IF;
70630
70631 -- 4955764
70632 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
70633 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
70634
70635
70636 XLA_AE_LINES_PKG.ValidateCurrentLine;
70637 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
70638
70639 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
70640 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
70641 ,p_balance_type_code => l_balance_type_code);
70642
70643 END IF;
70644
70645 -----------------------------------------------------------------------------------------
70646 -- 4262811 Multiperiod Accounting
70647 -----------------------------------------------------------------------------------------
70648 -- No MPA option is assigned.
70649
70650
70651 END IF;
70652 END IF;
70653 --
70654
70655 --
70656 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70657 trace
70658 (p_msg => 'END of AcctLineType_141'
70659 ,p_level => C_LEVEL_PROCEDURE
70660 ,p_module => l_log_module);
70661 END IF;
70662 --
70663 EXCEPTION
70664 WHEN xla_exceptions_pkg.application_exception THEN
70665 RAISE;
70666 WHEN OTHERS THEN
70667 xla_exceptions_pkg.raise_message
70668 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_141');
70669 END AcctLineType_141;
70670 --
70671
70672 ---------------------------------------
70673 --
70674 -- PRIVATE FUNCTION
70675 -- AcctLineType_142
70676 --
70677 ---------------------------------------
70678 PROCEDURE AcctLineType_142 (
70679 p_application_id IN NUMBER
70680 ,p_event_id IN NUMBER
70681 ,p_calculate_acctd_flag IN VARCHAR2
70682 ,p_calculate_g_l_flag IN VARCHAR2
70683 ,p_actual_flag IN OUT VARCHAR2
70684 ,p_balance_type_code OUT VARCHAR2
70685 ,p_gain_or_loss_ref OUT VARCHAR2
70686
70687 --Unearned Revenue CCID
70688 , p_source_21 IN NUMBER
70689 --Entered Currency Code
70690 , p_source_26 IN VARCHAR2
70691 --Entered Amount
70692 , p_source_42 IN NUMBER
70693 --Accounted Amount
70694 , p_source_43 IN NUMBER
70695 --Revenue Distribution Type
70696 , p_source_46 IN VARCHAR2
70697 --Crediting Revenue Flag
70698 , p_source_48 IN VARCHAR2
70699 --Revenue First Distribution ID
70700 , p_source_49 IN NUMBER
70701 --Revenue Second Distribution ID
70702 , p_source_50 IN NUMBER
70703 --Event ID
70704 , p_source_51 IN NUMBER
70705 )
70706 IS
70707
70708 l_component_type VARCHAR2(80);
70709 l_component_code VARCHAR2(30);
70710 l_component_type_code VARCHAR2(1);
70711 l_component_appl_id INTEGER;
70712 l_amb_context_code VARCHAR2(30);
70713 l_entity_code VARCHAR2(30);
70714 l_event_class_code VARCHAR2(30);
70715 l_ae_header_id NUMBER;
70716 l_event_type_code VARCHAR2(30);
70717 l_line_definition_code VARCHAR2(30);
70718 l_line_definition_owner_code VARCHAR2(1);
70719 --
70720 -- adr variables
70721 l_segment VARCHAR2(30);
70722 l_ccid NUMBER;
70723 l_adr_transaction_coa_id NUMBER;
70724 l_adr_accounting_coa_id NUMBER;
70725 l_adr_flexfield_segment_code VARCHAR2(30);
70726 l_adr_flex_value_set_id NUMBER;
70727 l_adr_value_type_code VARCHAR2(30);
70728 l_adr_value_combination_id NUMBER;
70729 l_adr_value_segment_code VARCHAR2(30);
70730
70731 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
70732 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
70733 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
70734 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
70735
70736 -- 4262811 Variables ------------------------------------------------------------------------------------------
70737 l_entered_amt_idx NUMBER;
70738 l_accted_amt_idx NUMBER;
70739 l_acc_rev_flag VARCHAR2(1);
70740 l_accrual_line_num NUMBER;
70741 l_tmp_amt NUMBER;
70742 l_acc_rev_natural_side_code VARCHAR2(1);
70743
70744 l_num_entries NUMBER;
70745 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
70746 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
70747 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
70751
70748 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
70749 l_recog_line_1 NUMBER;
70750 l_recog_line_2 NUMBER;
70752 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
70753 l_bflow_applied_to_amt NUMBER; -- 5132302
70754 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
70755
70756 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
70757
70758 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
70759 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
70760
70761 ---------------------------------------------------------------------------------------------------------------
70762
70763
70764 --
70765 -- bulk performance
70766 --
70767 l_balance_type_code VARCHAR2(1);
70768 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
70769 l_log_module VARCHAR2(240);
70770
70771 --
70772 -- Upgrade strategy
70773 --
70774 l_actual_upg_option VARCHAR2(1);
70775 l_enc_upg_option VARCHAR2(1);
70776
70777 --
70778 BEGIN
70779 --
70780 IF g_log_enabled THEN
70781 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_142';
70782 END IF;
70783 --
70784 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70785
70786 trace
70787 (p_msg => 'BEGIN of AcctLineType_142'
70788 ,p_level => C_LEVEL_PROCEDURE
70789 ,p_module => l_log_module);
70790
70791 END IF;
70792 --
70793 l_component_type := 'AMB_JLT';
70794 l_component_code := 'PA_UER_FED';
70795 l_component_type_code := 'S';
70796 l_component_appl_id := 275;
70797 l_amb_context_code := 'DEFAULT';
70798 l_entity_code := 'REVENUE';
70799 l_event_class_code := 'REVENUE';
70800 l_event_type_code := 'REVENUE_ALL';
70801 l_line_definition_owner_code := 'S';
70802 l_line_definition_code := 'FV_PROJECTS_JLD';
70803 --
70804 l_balance_type_code := 'A';
70805 l_segment := NULL;
70806 l_ccid := NULL;
70807 l_adr_transaction_coa_id := NULL;
70808 l_adr_accounting_coa_id := NULL;
70809 l_adr_flexfield_segment_code := NULL;
70810 l_adr_flex_value_set_id := NULL;
70811 l_adr_value_type_code := NULL;
70812 l_adr_value_combination_id := NULL;
70813 l_adr_value_segment_code := NULL;
70814
70815 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
70816 l_bflow_class_code := ''; -- 4219869 Business Flow
70817 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
70818 l_budgetary_control_flag := 'N';
70819
70820 l_bflow_applied_to_amt_idx := NULL; -- 5132302
70821 l_bflow_applied_to_amt := NULL; -- 5132302
70822 l_entered_amt_idx := NULL; -- 4262811
70823 l_accted_amt_idx := NULL; -- 4262811
70824 l_acc_rev_flag := NULL; -- 4262811
70825 l_accrual_line_num := NULL; -- 4262811
70826 l_tmp_amt := NULL; -- 4262811
70827 --
70828
70829 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
70830 l_balance_type_code <> 'B' THEN
70831 IF NVL(p_source_46,'
70832 ') = 'Revenue - UER' AND
70833 NVL(p_source_48,'
70834 ') = 'N'
70835 THEN
70836
70837 --
70838 XLA_AE_LINES_PKG.SetNewLine;
70839
70840 p_balance_type_code := l_balance_type_code;
70841 -- set the flag so later we will know whether the gain loss line needs to be created
70842
70843 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
70844 p_actual_flag :='A';
70845 END IF;
70846
70847 --
70848 -- bulk performance
70849 --
70850 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
70851 p_header_num => 0); -- 4262811
70852 --
70853 -- set accounting line options
70854 --
70855 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
70856 p_natural_side_code => 'D'
70857 , p_gain_or_loss_flag => 'N'
70858 , p_gl_transfer_mode_code => 'S'
70859 , p_acct_entry_type_code => 'A'
70860 , p_switch_side_flag => 'Y'
70861 , p_merge_duplicate_code => 'N'
70862 );
70863 --
70864 l_acc_rev_natural_side_code := 'C'; -- 4262811
70865 --
70866 --
70867 -- set accounting line type info
70868 --
70869 xla_ae_lines_pkg.SetAcctLineType
70870 (p_component_type => l_component_type
70871 ,p_event_type_code => l_event_type_code
70872 ,p_line_definition_owner_code => l_line_definition_owner_code
70873 ,p_line_definition_code => l_line_definition_code
70874 ,p_accounting_line_code => l_component_code
70875 ,p_accounting_line_type_code => l_component_type_code
70876 ,p_accounting_line_appl_id => l_component_appl_id
70877 ,p_amb_context_code => l_amb_context_code
70878 ,p_entity_code => l_entity_code
70879 ,p_event_class_code => l_event_class_code);
70880 --
70881 -- set accounting class
70882 --
70883 xla_ae_lines_pkg.SetAcctClass(
70884 p_accounting_class_code => 'FEDERAL_UNEARNED_REVENUE'
70885 , p_ae_header_id => l_ae_header_id
70886 );
70887
70888 --
70889 -- set rounding class
70890 --
70891 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
70895 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
70892 'FEDERAL_UNEARNED_REVENUE';
70893
70894 --
70896 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
70897 --
70898 -- bulk performance
70899 --
70900 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
70901
70902 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
70903 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
70904
70905 -- 4955764
70906 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
70907 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
70908
70909 -- 4458381 Public Sector Enh
70910
70911 --
70912 -- set accounting attributes for the line type
70913 --
70914 l_entered_amt_idx := 4;
70915 l_accted_amt_idx := 7;
70916 l_bflow_applied_to_amt_idx := NULL; -- 5132302
70917 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
70918 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_49);
70919 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
70920 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_50);
70921 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
70922 l_rec_acct_attrs.array_char_value(3) := p_source_46;
70923 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
70924 l_rec_acct_attrs.array_num_value(4) := p_source_42;
70925 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
70926 l_rec_acct_attrs.array_char_value(5) := p_source_26;
70927 l_rec_acct_attrs.array_acct_attr_code(6) := 'GAIN_LOSS_REFERENCE';
70928 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_51);
70929 l_rec_acct_attrs.array_acct_attr_code(7) := 'LEDGER_AMOUNT';
70930 l_rec_acct_attrs.array_num_value(7) := p_source_43;
70931
70932 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
70933 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
70934
70935 ---------------------------------------------------------------------------------------------------------------
70936 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
70937 ---------------------------------------------------------------------------------------------------------------
70938 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
70939
70940 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
70941 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
70942
70943 IF xla_accounting_cache_pkg.GetValueChar
70944 (p_source_code => 'LEDGER_CATEGORY_CODE'
70945 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
70946 AND l_bflow_method_code = 'PRIOR_ENTRY'
70947 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
70948 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
70949 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
70950 )
70951 THEN
70952 xla_ae_lines_pkg.BflowUpgEntry
70953 (p_business_method_code => l_bflow_method_code
70954 ,p_business_class_code => l_bflow_class_code
70955 ,p_balance_type => l_balance_type_code);
70956 ELSE
70957 NULL;
70958 -- No business flow processing for business flow method of NONE.
70959 END IF;
70960
70961 --
70962 -- call analytical criteria
70963 --
70964
70965 --
70966 -- call description
70967 --
70968 -- No description or it is inherited.
70969 --
70970 -- call ADRs
70971 -- Bug 4922099
70972 --
70973 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
70974 (NVL(l_actual_upg_option, 'N') = 'O') OR
70975 (NVL(l_enc_upg_option, 'N') = 'O')
70976 )
70977 THEN
70978 NULL;
70979 --
70980 --
70981
70982 l_ccid := AcctDerRule_28(
70983 p_application_id => p_application_id
70984 , p_ae_header_id => l_ae_header_id
70985 , p_source_21 => p_source_21
70986 , x_transaction_coa_id => l_adr_transaction_coa_id
70987 , x_accounting_coa_id => l_adr_accounting_coa_id
70988 , x_value_type_code => l_adr_value_type_code
70989 , p_side => 'NA'
70990 );
70991
70992 xla_ae_lines_pkg.set_ccid(
70993 p_code_combination_id => l_ccid
70994 , p_value_type_code => l_adr_value_type_code
70995 , p_transaction_coa_id => l_adr_transaction_coa_id
70996 , p_accounting_coa_id => l_adr_accounting_coa_id
70997 , p_adr_code => 'UER_RULE'
70998 , p_adr_type_code => 'S'
70999 , p_component_type => l_component_type
71000 , p_component_code => l_component_code
71001 , p_component_type_code => l_component_type_code
71002 , p_component_appl_id => l_component_appl_id
71003 , p_amb_context_code => l_amb_context_code
71004 , p_side => 'NA'
71005 );
71006
71007
71008 l_segment := AcctDerRule_3(
71009 p_application_id => p_application_id
71010 , p_ae_header_id => l_ae_header_id
71011 , x_transaction_coa_id => l_adr_transaction_coa_id
71012 , x_accounting_coa_id => l_adr_accounting_coa_id
71013 , x_flexfield_segment_code => l_adr_flexfield_segment_code
71017 , x_value_segment_code => l_adr_value_segment_code
71014 , x_flex_value_set_id => l_adr_flex_value_set_id
71015 , x_value_type_code => l_adr_value_type_code
71016 , x_value_combination_id => l_adr_value_combination_id
71018 , p_side => 'NA'
71019 , p_override_seg_flag => 'Y'
71020 );
71021
71022 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
71023
71024 xla_ae_lines_pkg.set_segment(
71025 p_to_segment_code => 'GL_ACCOUNT'
71026 , p_segment_value => l_segment
71027 , p_from_segment_code => l_adr_value_segment_code
71028 , p_from_combination_id => l_adr_value_combination_id
71029 , p_value_type_code => l_adr_value_type_code
71030 , p_transaction_coa_id => l_adr_transaction_coa_id
71031 , p_accounting_coa_id => l_adr_accounting_coa_id
71032 , p_flexfield_segment_code => l_adr_flexfield_segment_code
71033 , p_flex_value_set_id => l_adr_flex_value_set_id
71034 , p_adr_code => 'FV_425X01_PROJECTS'
71035 , p_adr_type_code => 'S'
71036 , p_component_type => l_component_type
71037 , p_component_code => l_component_code
71038 , p_component_type_code => l_component_type_code
71039 , p_component_appl_id => l_component_appl_id
71040 , p_amb_context_code => l_amb_context_code
71041 , p_entity_code => 'REVENUE'
71042 , p_event_class_code => 'REVENUE'
71043 , p_side => 'NA'
71044 );
71045
71046 END IF;
71047
71048 --
71049 --
71050 END IF;
71051 --
71052 -- Bug 4922099
71053 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
71054 (NVL(l_enc_upg_option, 'N') = 'O')
71055 ) AND
71056 (l_bflow_method_code = 'PRIOR_ENTRY')
71057 )
71058 THEN
71059 IF
71060 --
71061 1 = 2
71062 --
71063 THEN
71064 xla_accounting_err_pkg.build_message
71065 (p_appli_s_name => 'XLA'
71066 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
71067 ,p_token_1 => 'LINE_NUMBER'
71068 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
71069 ,p_token_2 => 'LINE_TYPE_NAME'
71070 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
71071 l_component_type
71072 ,l_component_code
71073 ,l_component_type_code
71074 ,l_component_appl_id
71075 ,l_amb_context_code
71076 ,l_entity_code
71077 ,l_event_class_code
71078 )
71079 ,p_token_3 => 'OWNER'
71080 ,p_value_3 => xla_lookups_pkg.get_meaning(
71081 p_lookup_type => 'XLA_OWNER_TYPE'
71082 ,p_lookup_code => l_component_type_code
71083 )
71084 ,p_token_4 => 'PRODUCT_NAME'
71085 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
71086 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
71087 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
71088 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
71089 ,p_ae_header_id => NULL
71090 );
71091
71092 IF (C_LEVEL_ERROR>= g_log_level) THEN
71093 trace
71094 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
71095 ,p_level => C_LEVEL_ERROR
71096 ,p_module => l_log_module);
71097 END IF;
71098 END IF;
71099 END IF;
71100 --
71101 --
71102 ------------------------------------------------------------------------------------------------
71103 -- 4219869 Business Flow
71104 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
71105 -- Prior Entry. Currently, the following code is always generated.
71106 ------------------------------------------------------------------------------------------------
71107 XLA_AE_LINES_PKG.ValidateCurrentLine;
71108
71109 ------------------------------------------------------------------------------------
71110 -- 4219869 Business Flow
71111 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
71112 ------------------------------------------------------------------------------------
71113 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
71114
71115 ----------------------------------------------------------------------------------
71116 -- 4219869 Business Flow
71117 -- Update journal entry status -- Need to generate this within IF <condition>
71121 ,p_balance_type_code => l_balance_type_code
71118 ----------------------------------------------------------------------------------
71119 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
71120 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
71122 );
71123
71124 -------------------------------------------------------------------------------------------
71125 -- 4262811 - Generate the Accrual Reversal lines
71126 -------------------------------------------------------------------------------------------
71127 BEGIN
71128 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
71129 (g_array_event(p_event_id).array_value_num('header_index'));
71130 IF l_acc_rev_flag IS NULL THEN
71131 l_acc_rev_flag := 'N';
71132 END IF;
71133 EXCEPTION
71134 WHEN OTHERS THEN
71135 l_acc_rev_flag := 'N';
71136 END;
71137 --
71138 IF (l_acc_rev_flag = 'Y') THEN
71139
71140 -- 4645092 ------------------------------------------------------------------------------
71141 -- To allow MPA report to determine if it should generate report process
71142 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
71143 ------------------------------------------------------------------------------------------
71144
71145 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
71146 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
71147
71148 --
71149 -- Update the line information that should be overwritten
71150 --
71151 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
71152 p_header_num => 1);
71153 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
71154
71155 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
71156
71157 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
71158 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
71159 END IF;
71160
71161 --
71162 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
71163 --
71164 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
71165 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
71166 ELSE
71167 ---------------------------------------------------------------------------------------------------
71168 -- 4262811a Switch Sign
71169 ---------------------------------------------------------------------------------------------------
71170 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
71171 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
71172 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71173 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
71174 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71175 -- 5132302
71176 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
71177 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71178
71179 END IF;
71180
71181 -- 4955764
71182 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
71183 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
71184
71185
71186 XLA_AE_LINES_PKG.ValidateCurrentLine;
71187 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
71188
71189 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
71190 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
71191 ,p_balance_type_code => l_balance_type_code);
71192
71193 END IF;
71194
71195 -----------------------------------------------------------------------------------------
71196 -- 4262811 Multiperiod Accounting
71197 -----------------------------------------------------------------------------------------
71198 -- No MPA option is assigned.
71199
71200
71201 END IF;
71202 END IF;
71203 --
71204
71205 --
71206 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71207 trace
71208 (p_msg => 'END of AcctLineType_142'
71209 ,p_level => C_LEVEL_PROCEDURE
71210 ,p_module => l_log_module);
71211 END IF;
71212 --
71213 EXCEPTION
71214 WHEN xla_exceptions_pkg.application_exception THEN
71215 RAISE;
71216 WHEN OTHERS THEN
71217 xla_exceptions_pkg.raise_message
71218 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_142');
71219 END AcctLineType_142;
71220 --
71221
71222 ---------------------------------------
71223 --
71224 -- PRIVATE FUNCTION
71225 -- AcctLineType_143
71226 --
71227 ---------------------------------------
71228 PROCEDURE AcctLineType_143 (
71229 p_application_id IN NUMBER
71230 ,p_event_id IN NUMBER
71231 ,p_calculate_acctd_flag IN VARCHAR2
71232 ,p_calculate_g_l_flag IN VARCHAR2
71233 ,p_actual_flag IN OUT VARCHAR2
71234 ,p_balance_type_code OUT VARCHAR2
71235 ,p_gain_or_loss_ref OUT VARCHAR2
71236
71237 --Budget Code Combination ID
71238 , p_source_3 IN NUMBER
71239 --Reversing Line Flag
71240 , p_source_23 IN VARCHAR2
71241 --Entered Currency Code
71242 , p_source_26 IN VARCHAR2
71243 --Exchange Rate Date
71247 --Exchange Rate Type
71244 , p_source_28 IN DATE
71245 --Exchange Rate
71246 , p_source_29 IN NUMBER
71248 , p_source_30 IN VARCHAR2
71249 --Line Type
71250 , p_source_35 IN VARCHAR2
71251 , p_source_35_meaning IN VARCHAR2
71252 --Budget Amount Code
71253 , p_source_37 IN VARCHAR2
71254 --Project Type Class
71255 , p_source_38 IN VARCHAR2
71256 , p_source_38_meaning IN VARCHAR2
71257 --Project Budgetary Control Balance Type
71258 , p_source_39 IN VARCHAR2
71259 --Budget Line ID
71260 , p_source_40 IN NUMBER
71261 --Encumbrance Upgrade Credit Accounting Class
71262 , p_source_41 IN VARCHAR2
71263 --Entered Amount
71264 , p_source_42 IN NUMBER
71265 --Accounted Amount
71266 , p_source_43 IN NUMBER
71267 --Use Encumbrance Upgrade Attributes Flag
71268 , p_source_44 IN VARCHAR2
71269 --Upgrade Project Encumbrance Type ID
71270 , p_source_45 IN NUMBER
71271 )
71272 IS
71273
71274 l_component_type VARCHAR2(80);
71275 l_component_code VARCHAR2(30);
71276 l_component_type_code VARCHAR2(1);
71277 l_component_appl_id INTEGER;
71278 l_amb_context_code VARCHAR2(30);
71279 l_entity_code VARCHAR2(30);
71280 l_event_class_code VARCHAR2(30);
71281 l_ae_header_id NUMBER;
71282 l_event_type_code VARCHAR2(30);
71283 l_line_definition_code VARCHAR2(30);
71284 l_line_definition_owner_code VARCHAR2(1);
71285 --
71286 -- adr variables
71287 l_segment VARCHAR2(30);
71288 l_ccid NUMBER;
71289 l_adr_transaction_coa_id NUMBER;
71290 l_adr_accounting_coa_id NUMBER;
71291 l_adr_flexfield_segment_code VARCHAR2(30);
71292 l_adr_flex_value_set_id NUMBER;
71293 l_adr_value_type_code VARCHAR2(30);
71294 l_adr_value_combination_id NUMBER;
71295 l_adr_value_segment_code VARCHAR2(30);
71296
71297 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
71298 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
71299 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
71300 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
71301
71302 -- 4262811 Variables ------------------------------------------------------------------------------------------
71303 l_entered_amt_idx NUMBER;
71304 l_accted_amt_idx NUMBER;
71305 l_acc_rev_flag VARCHAR2(1);
71306 l_accrual_line_num NUMBER;
71307 l_tmp_amt NUMBER;
71308 l_acc_rev_natural_side_code VARCHAR2(1);
71309
71310 l_num_entries NUMBER;
71311 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
71312 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
71313 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
71314 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
71315 l_recog_line_1 NUMBER;
71316 l_recog_line_2 NUMBER;
71317
71318 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
71319 l_bflow_applied_to_amt NUMBER; -- 5132302
71320 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
71321
71322 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
71323
71324 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
71325 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
71326
71327 ---------------------------------------------------------------------------------------------------------------
71328
71329
71330 --
71331 -- bulk performance
71332 --
71333 l_balance_type_code VARCHAR2(1);
71334 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
71335 l_log_module VARCHAR2(240);
71336
71337 --
71338 -- Upgrade strategy
71339 --
71340 l_actual_upg_option VARCHAR2(1);
71341 l_enc_upg_option VARCHAR2(1);
71342
71343 --
71344 BEGIN
71345 --
71346 IF g_log_enabled THEN
71347 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_143';
71348 END IF;
71349 --
71350 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71351
71352 trace
71353 (p_msg => 'BEGIN of AcctLineType_143'
71354 ,p_level => C_LEVEL_PROCEDURE
71355 ,p_module => l_log_module);
71356
71357 END IF;
71358 --
71359 l_component_type := 'AMB_JLT';
71360 l_component_code := 'PA_UNF_CUST_ORD';
71361 l_component_type_code := 'S';
71362 l_component_appl_id := 275;
71363 l_amb_context_code := 'DEFAULT';
71364 l_entity_code := 'BUDGETS';
71365 l_event_class_code := 'BUDGET';
71366 l_event_type_code := 'BUDGET_ALL';
71367 l_line_definition_owner_code := 'S';
71368 l_line_definition_code := 'PROJECTS_BUD_SLA_JLD';
71369 --
71370 l_balance_type_code := 'A';
71371 l_segment := NULL;
71372 l_ccid := NULL;
71373 l_adr_transaction_coa_id := NULL;
71374 l_adr_accounting_coa_id := NULL;
71375 l_adr_flexfield_segment_code := NULL;
71376 l_adr_flex_value_set_id := NULL;
71377 l_adr_value_type_code := NULL;
71378 l_adr_value_combination_id := NULL;
71379 l_adr_value_segment_code := NULL;
71380
71381 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
71382 l_bflow_class_code := ''; -- 4219869 Business Flow
71383 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
71387 l_bflow_applied_to_amt := NULL; -- 5132302
71384 l_budgetary_control_flag := 'N';
71385
71386 l_bflow_applied_to_amt_idx := NULL; -- 5132302
71388 l_entered_amt_idx := NULL; -- 4262811
71389 l_accted_amt_idx := NULL; -- 4262811
71390 l_acc_rev_flag := NULL; -- 4262811
71391 l_accrual_line_num := NULL; -- 4262811
71392 l_tmp_amt := NULL; -- 4262811
71393 --
71394
71395 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
71396 l_balance_type_code <> 'B' THEN
71397 IF NVL(p_source_37,'
71398 ') = 'R' AND
71399 NVL(p_source_38,'
71400 ') = 'CONTRACT' AND
71401 NVL(p_source_39,'
71402 ') = 'B'
71403 THEN
71404
71405 --
71406 XLA_AE_LINES_PKG.SetNewLine;
71407
71408 p_balance_type_code := l_balance_type_code;
71409 -- set the flag so later we will know whether the gain loss line needs to be created
71410
71411 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
71412 p_actual_flag :='A';
71413 END IF;
71414
71415 --
71416 -- bulk performance
71417 --
71418 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
71419 p_header_num => 0); -- 4262811
71420 --
71421 -- set accounting line options
71422 --
71423 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
71424 p_natural_side_code => 'D'
71425 , p_gain_or_loss_flag => 'N'
71426 , p_gl_transfer_mode_code => 'S'
71427 , p_acct_entry_type_code => 'A'
71428 , p_switch_side_flag => 'Y'
71429 , p_merge_duplicate_code => 'N'
71430 );
71431 --
71432 l_acc_rev_natural_side_code := 'C'; -- 4262811
71433 --
71434 --
71435 -- set accounting line type info
71436 --
71437 xla_ae_lines_pkg.SetAcctLineType
71438 (p_component_type => l_component_type
71439 ,p_event_type_code => l_event_type_code
71440 ,p_line_definition_owner_code => l_line_definition_owner_code
71441 ,p_line_definition_code => l_line_definition_code
71442 ,p_accounting_line_code => l_component_code
71443 ,p_accounting_line_type_code => l_component_type_code
71444 ,p_accounting_line_appl_id => l_component_appl_id
71445 ,p_amb_context_code => l_amb_context_code
71446 ,p_entity_code => l_entity_code
71447 ,p_event_class_code => l_event_class_code);
71448 --
71449 -- set accounting class
71450 --
71451 xla_ae_lines_pkg.SetAcctClass(
71452 p_accounting_class_code => 'PA_BUDGET_EXECUTION_RESERVE_DR'
71453 , p_ae_header_id => l_ae_header_id
71454 );
71455
71456 --
71457 -- set rounding class
71458 --
71459 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
71460 'PA_BUDGET_EXECUTION_RESERVE_DR';
71461
71462 --
71463 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
71464 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
71465 --
71466 -- bulk performance
71467 --
71468 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
71469
71470 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
71471 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
71472
71473 -- 4955764
71474 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
71475 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
71476
71477 -- 4458381 Public Sector Enh
71478
71479 --
71480 -- set accounting attributes for the line type
71481 --
71482 l_entered_amt_idx := 10;
71483 l_accted_amt_idx := 15;
71484 l_bflow_applied_to_amt_idx := NULL; -- 5132302
71485 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
71486 l_rec_acct_attrs.array_char_value(1) := p_source_23;
71487 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_1';
71488 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_40);
71489 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
71490 l_rec_acct_attrs.array_char_value(3) := p_source_35;
71491 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENC_UPG_DR_ACCT_CLASS';
71492 l_rec_acct_attrs.array_char_value(4) := p_source_41;
71493 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_DR_CCID';
71494 l_rec_acct_attrs.array_num_value(5) := p_source_3;
71495 l_rec_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_DR_ENTERED_AMT';
71496 l_rec_acct_attrs.array_num_value(6) := p_source_42;
71497 l_rec_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_DR_ENTERED_CURR';
71498 l_rec_acct_attrs.array_char_value(7) := p_source_26;
71499 l_rec_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_DR_LEDGER_AMT';
71500 l_rec_acct_attrs.array_num_value(8) := p_source_43;
71501 l_rec_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_OPTION';
71502 l_rec_acct_attrs.array_char_value(9) := p_source_44;
71503 l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
71504 l_rec_acct_attrs.array_num_value(10) := p_source_42;
71505 l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
71506 l_rec_acct_attrs.array_char_value(11) := p_source_26;
71507 l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
71508 l_rec_acct_attrs.array_date_value(12) := p_source_28;
71509 l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
71513 l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
71510 l_rec_acct_attrs.array_num_value(13) := p_source_29;
71511 l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
71512 l_rec_acct_attrs.array_char_value(14) := p_source_30;
71514 l_rec_acct_attrs.array_num_value(15) := p_source_43;
71515 l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_ID1';
71516 l_rec_acct_attrs.array_num_value(16) := to_char(p_source_40);
71517 l_rec_acct_attrs.array_acct_attr_code(17) := 'REVERSED_DISTRIBUTION_TYPE';
71518 l_rec_acct_attrs.array_char_value(17) := p_source_35;
71519 l_rec_acct_attrs.array_acct_attr_code(18) := 'UPG_DR_ENC_TYPE_ID';
71520 l_rec_acct_attrs.array_num_value(18) := p_source_45;
71521
71522 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
71523 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
71524
71525 ---------------------------------------------------------------------------------------------------------------
71526 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
71527 ---------------------------------------------------------------------------------------------------------------
71528 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
71529
71530 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
71531 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
71532
71533 IF xla_accounting_cache_pkg.GetValueChar
71534 (p_source_code => 'LEDGER_CATEGORY_CODE'
71535 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
71536 AND l_bflow_method_code = 'PRIOR_ENTRY'
71537 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
71538 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
71539 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
71540 )
71541 THEN
71542 xla_ae_lines_pkg.BflowUpgEntry
71543 (p_business_method_code => l_bflow_method_code
71544 ,p_business_class_code => l_bflow_class_code
71545 ,p_balance_type => l_balance_type_code);
71546 ELSE
71547 NULL;
71548 -- No business flow processing for business flow method of NONE.
71549 END IF;
71550
71551 --
71552 -- call analytical criteria
71553 --
71554
71555 --
71556 -- call description
71557 --
71558 -- No description or it is inherited.
71559 --
71560 -- call ADRs
71561 -- Bug 4922099
71562 --
71563 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
71564 (NVL(l_actual_upg_option, 'N') = 'O') OR
71565 (NVL(l_enc_upg_option, 'N') = 'O')
71566 )
71567 THEN
71568 NULL;
71569 --
71570 --
71571
71572 l_ccid := AcctDerRule_11(
71573 p_application_id => p_application_id
71574 , p_ae_header_id => l_ae_header_id
71575 , p_source_3 => p_source_3
71576 , x_transaction_coa_id => l_adr_transaction_coa_id
71577 , x_accounting_coa_id => l_adr_accounting_coa_id
71578 , x_value_type_code => l_adr_value_type_code
71579 , p_side => 'NA'
71580 );
71581
71582 xla_ae_lines_pkg.set_ccid(
71583 p_code_combination_id => l_ccid
71584 , p_value_type_code => l_adr_value_type_code
71585 , p_transaction_coa_id => l_adr_transaction_coa_id
71586 , p_accounting_coa_id => l_adr_accounting_coa_id
71587 , p_adr_code => 'PA_BUDGET_ACCT_RULE'
71588 , p_adr_type_code => 'S'
71589 , p_component_type => l_component_type
71590 , p_component_code => l_component_code
71591 , p_component_type_code => l_component_type_code
71592 , p_component_appl_id => l_component_appl_id
71593 , p_amb_context_code => l_amb_context_code
71594 , p_side => 'NA'
71595 );
71596
71597
71598 l_segment := AcctDerRule_9(
71599 p_application_id => p_application_id
71600 , p_ae_header_id => l_ae_header_id
71601 , x_transaction_coa_id => l_adr_transaction_coa_id
71602 , x_accounting_coa_id => l_adr_accounting_coa_id
71603 , x_flexfield_segment_code => l_adr_flexfield_segment_code
71604 , x_flex_value_set_id => l_adr_flex_value_set_id
71605 , x_value_type_code => l_adr_value_type_code
71606 , x_value_combination_id => l_adr_value_combination_id
71607 , x_value_segment_code => l_adr_value_segment_code
71608 , p_side => 'NA'
71609 , p_override_seg_flag => 'Y'
71610 );
71611
71612 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
71613
71614 xla_ae_lines_pkg.set_segment(
71615 p_to_segment_code => 'GL_ACCOUNT'
71616 , p_segment_value => l_segment
71617 , p_from_segment_code => l_adr_value_segment_code
71618 , p_from_combination_id => l_adr_value_combination_id
71619 , p_value_type_code => l_adr_value_type_code
71620 , p_transaction_coa_id => l_adr_transaction_coa_id
71621 , p_accounting_coa_id => l_adr_accounting_coa_id
71622 , p_flexfield_segment_code => l_adr_flexfield_segment_code
71623 , p_flex_value_set_id => l_adr_flex_value_set_id
71624 , p_adr_code => 'PA_4221'
71625 , p_adr_type_code => 'S'
71626 , p_component_type => l_component_type
71627 , p_component_code => l_component_code
71631 , p_entity_code => 'BUDGETS'
71628 , p_component_type_code => l_component_type_code
71629 , p_component_appl_id => l_component_appl_id
71630 , p_amb_context_code => l_amb_context_code
71632 , p_event_class_code => 'BUDGET'
71633 , p_side => 'NA'
71634 );
71635
71636 END IF;
71637
71638 --
71639 --
71640 END IF;
71641 --
71642 -- Bug 4922099
71643 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
71644 (NVL(l_enc_upg_option, 'N') = 'O')
71645 ) AND
71646 (l_bflow_method_code = 'PRIOR_ENTRY')
71647 )
71648 THEN
71649 IF
71650 --
71651 1 = 2
71652 --
71653 THEN
71654 xla_accounting_err_pkg.build_message
71655 (p_appli_s_name => 'XLA'
71656 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
71657 ,p_token_1 => 'LINE_NUMBER'
71658 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
71659 ,p_token_2 => 'LINE_TYPE_NAME'
71660 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
71661 l_component_type
71662 ,l_component_code
71663 ,l_component_type_code
71664 ,l_component_appl_id
71665 ,l_amb_context_code
71666 ,l_entity_code
71667 ,l_event_class_code
71668 )
71669 ,p_token_3 => 'OWNER'
71670 ,p_value_3 => xla_lookups_pkg.get_meaning(
71671 p_lookup_type => 'XLA_OWNER_TYPE'
71672 ,p_lookup_code => l_component_type_code
71673 )
71674 ,p_token_4 => 'PRODUCT_NAME'
71675 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
71676 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
71677 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
71678 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
71679 ,p_ae_header_id => NULL
71680 );
71681
71682 IF (C_LEVEL_ERROR>= g_log_level) THEN
71683 trace
71684 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
71685 ,p_level => C_LEVEL_ERROR
71686 ,p_module => l_log_module);
71687 END IF;
71688 END IF;
71689 END IF;
71690 --
71691 --
71692 ------------------------------------------------------------------------------------------------
71693 -- 4219869 Business Flow
71694 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
71695 -- Prior Entry. Currently, the following code is always generated.
71696 ------------------------------------------------------------------------------------------------
71697 XLA_AE_LINES_PKG.ValidateCurrentLine;
71698
71699 ------------------------------------------------------------------------------------
71700 -- 4219869 Business Flow
71701 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
71702 ------------------------------------------------------------------------------------
71703 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
71704
71705 ----------------------------------------------------------------------------------
71706 -- 4219869 Business Flow
71707 -- Update journal entry status -- Need to generate this within IF <condition>
71708 ----------------------------------------------------------------------------------
71709 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
71710 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
71711 ,p_balance_type_code => l_balance_type_code
71712 );
71713
71714 -------------------------------------------------------------------------------------------
71715 -- 4262811 - Generate the Accrual Reversal lines
71716 -------------------------------------------------------------------------------------------
71717 BEGIN
71718 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
71719 (g_array_event(p_event_id).array_value_num('header_index'));
71720 IF l_acc_rev_flag IS NULL THEN
71721 l_acc_rev_flag := 'N';
71722 END IF;
71723 EXCEPTION
71724 WHEN OTHERS THEN
71725 l_acc_rev_flag := 'N';
71726 END;
71727 --
71728 IF (l_acc_rev_flag = 'Y') THEN
71729
71730 -- 4645092 ------------------------------------------------------------------------------
71731 -- To allow MPA report to determine if it should generate report process
71732 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
71733 ------------------------------------------------------------------------------------------
71737
71734
71735 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
71736 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
71738 --
71739 -- Update the line information that should be overwritten
71740 --
71741 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
71742 p_header_num => 1);
71743 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
71744
71745 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
71746
71747 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
71748 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
71749 END IF;
71750
71751 --
71752 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
71753 --
71754 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
71755 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
71756 ELSE
71757 ---------------------------------------------------------------------------------------------------
71758 -- 4262811a Switch Sign
71759 ---------------------------------------------------------------------------------------------------
71760 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
71761 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
71762 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71763 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
71764 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71765 -- 5132302
71766 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
71767 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71768
71769 END IF;
71770
71771 -- 4955764
71772 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
71773 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
71774
71775
71776 XLA_AE_LINES_PKG.ValidateCurrentLine;
71777 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
71778
71779 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
71780 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
71781 ,p_balance_type_code => l_balance_type_code);
71782
71783 END IF;
71784
71785 -----------------------------------------------------------------------------------------
71786 -- 4262811 Multiperiod Accounting
71787 -----------------------------------------------------------------------------------------
71788 -- No MPA option is assigned.
71789
71790
71791 END IF;
71792 END IF;
71793 --
71794
71795 --
71796 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71797 trace
71798 (p_msg => 'END of AcctLineType_143'
71799 ,p_level => C_LEVEL_PROCEDURE
71800 ,p_module => l_log_module);
71801 END IF;
71802 --
71803 EXCEPTION
71804 WHEN xla_exceptions_pkg.application_exception THEN
71805 RAISE;
71806 WHEN OTHERS THEN
71807 xla_exceptions_pkg.raise_message
71808 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_143');
71809 END AcctLineType_143;
71810 --
71811
71812 ---------------------------------------
71813 --
71814 -- PRIVATE FUNCTION
71815 -- AcctLineType_144
71816 --
71817 ---------------------------------------
71818 PROCEDURE AcctLineType_144 (
71819 p_application_id IN NUMBER
71820 ,p_event_id IN NUMBER
71821 ,p_calculate_acctd_flag IN VARCHAR2
71822 ,p_calculate_g_l_flag IN VARCHAR2
71823 ,p_actual_flag IN OUT VARCHAR2
71824 ,p_balance_type_code OUT VARCHAR2
71825 ,p_gain_or_loss_ref OUT VARCHAR2
71826
71827 --Budget Code Combination ID
71828 , p_source_3 IN NUMBER
71829 --Reversing Line Flag
71830 , p_source_23 IN VARCHAR2
71831 --Entered Currency Code
71832 , p_source_26 IN VARCHAR2
71833 --Line Type
71834 , p_source_35 IN VARCHAR2
71835 , p_source_35_meaning IN VARCHAR2
71836 --Budget Amount Code
71837 , p_source_37 IN VARCHAR2
71838 --Project Type Class
71839 , p_source_38 IN VARCHAR2
71840 , p_source_38_meaning IN VARCHAR2
71841 --Project Budgetary Control Balance Type
71842 , p_source_39 IN VARCHAR2
71843 --Budget Line ID
71844 , p_source_40 IN NUMBER
71845 --Encumbrance Upgrade Credit Accounting Class
71846 , p_source_41 IN VARCHAR2
71847 --Entered Amount
71848 , p_source_42 IN NUMBER
71849 --Accounted Amount
71850 , p_source_43 IN NUMBER
71851 --Use Encumbrance Upgrade Attributes Flag
71852 , p_source_44 IN VARCHAR2
71853 )
71854 IS
71855
71856 l_component_type VARCHAR2(80);
71857 l_component_code VARCHAR2(30);
71858 l_component_type_code VARCHAR2(1);
71859 l_component_appl_id INTEGER;
71860 l_amb_context_code VARCHAR2(30);
71861 l_entity_code VARCHAR2(30);
71862 l_event_class_code VARCHAR2(30);
71863 l_ae_header_id NUMBER;
71864 l_event_type_code VARCHAR2(30);
71865 l_line_definition_code VARCHAR2(30);
71866 l_line_definition_owner_code VARCHAR2(1);
71867 --
71871 l_adr_transaction_coa_id NUMBER;
71868 -- adr variables
71869 l_segment VARCHAR2(30);
71870 l_ccid NUMBER;
71872 l_adr_accounting_coa_id NUMBER;
71873 l_adr_flexfield_segment_code VARCHAR2(30);
71874 l_adr_flex_value_set_id NUMBER;
71875 l_adr_value_type_code VARCHAR2(30);
71876 l_adr_value_combination_id NUMBER;
71877 l_adr_value_segment_code VARCHAR2(30);
71878
71879 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
71880 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
71881 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
71882 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
71883
71884 -- 4262811 Variables ------------------------------------------------------------------------------------------
71885 l_entered_amt_idx NUMBER;
71886 l_accted_amt_idx NUMBER;
71887 l_acc_rev_flag VARCHAR2(1);
71888 l_accrual_line_num NUMBER;
71889 l_tmp_amt NUMBER;
71890 l_acc_rev_natural_side_code VARCHAR2(1);
71891
71892 l_num_entries NUMBER;
71893 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
71894 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
71895 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
71896 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
71897 l_recog_line_1 NUMBER;
71898 l_recog_line_2 NUMBER;
71899
71900 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
71901 l_bflow_applied_to_amt NUMBER; -- 5132302
71902 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
71903
71904 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
71905
71906 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
71907 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
71908
71909 ---------------------------------------------------------------------------------------------------------------
71910
71911
71912 --
71913 -- bulk performance
71914 --
71915 l_balance_type_code VARCHAR2(1);
71916 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
71917 l_log_module VARCHAR2(240);
71918
71919 --
71920 -- Upgrade strategy
71921 --
71922 l_actual_upg_option VARCHAR2(1);
71923 l_enc_upg_option VARCHAR2(1);
71924
71925 --
71926 BEGIN
71927 --
71928 IF g_log_enabled THEN
71929 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_144';
71930 END IF;
71931 --
71932 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71933
71934 trace
71935 (p_msg => 'BEGIN of AcctLineType_144'
71936 ,p_level => C_LEVEL_PROCEDURE
71937 ,p_module => l_log_module);
71938
71939 END IF;
71940 --
71941 l_component_type := 'AMB_JLT';
71942 l_component_code := 'PA_UNF_CUST_ORD_WADV';
71943 l_component_type_code := 'S';
71944 l_component_appl_id := 275;
71945 l_amb_context_code := 'DEFAULT';
71946 l_entity_code := 'BUDGETS';
71947 l_event_class_code := 'BUDGET';
71948 l_event_type_code := 'BUDGET_ALL';
71949 l_line_definition_owner_code := 'S';
71950 l_line_definition_code := 'PROJECTS_BUD_SLA_JLD';
71951 --
71952 l_balance_type_code := 'A';
71953 l_segment := NULL;
71954 l_ccid := NULL;
71955 l_adr_transaction_coa_id := NULL;
71956 l_adr_accounting_coa_id := NULL;
71957 l_adr_flexfield_segment_code := NULL;
71958 l_adr_flex_value_set_id := NULL;
71959 l_adr_value_type_code := NULL;
71960 l_adr_value_combination_id := NULL;
71961 l_adr_value_segment_code := NULL;
71962
71963 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
71964 l_bflow_class_code := ''; -- 4219869 Business Flow
71965 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
71966 l_budgetary_control_flag := 'N';
71967
71968 l_bflow_applied_to_amt_idx := NULL; -- 5132302
71969 l_bflow_applied_to_amt := NULL; -- 5132302
71970 l_entered_amt_idx := NULL; -- 4262811
71971 l_accted_amt_idx := NULL; -- 4262811
71972 l_acc_rev_flag := NULL; -- 4262811
71973 l_accrual_line_num := NULL; -- 4262811
71974 l_tmp_amt := NULL; -- 4262811
71975 --
71976
71977 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
71978 l_balance_type_code <> 'B' THEN
71979 IF NVL(p_source_37,'
71980 ') = 'R' AND
71981 NVL(p_source_38,'
71982 ') = 'CONTRACT' AND
71983 NVL(p_source_39,'
71984 ') = 'B'
71985 THEN
71986
71987 --
71988 XLA_AE_LINES_PKG.SetNewLine;
71989
71990 p_balance_type_code := l_balance_type_code;
71991 -- set the flag so later we will know whether the gain loss line needs to be created
71992
71993 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
71994 p_actual_flag :='A';
71995 END IF;
71996
71997 --
71998 -- bulk performance
71999 --
72000 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
72001 p_header_num => 0); -- 4262811
72002 --
72003 -- set accounting line options
72004 --
72005 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
72006 p_natural_side_code => 'D'
72007 , p_gain_or_loss_flag => 'N'
72011 , p_merge_duplicate_code => 'N'
72008 , p_gl_transfer_mode_code => 'S'
72009 , p_acct_entry_type_code => 'A'
72010 , p_switch_side_flag => 'Y'
72012 );
72013 --
72014 l_acc_rev_natural_side_code := 'C'; -- 4262811
72015 --
72016 --
72017 -- set accounting line type info
72018 --
72019 xla_ae_lines_pkg.SetAcctLineType
72020 (p_component_type => l_component_type
72021 ,p_event_type_code => l_event_type_code
72022 ,p_line_definition_owner_code => l_line_definition_owner_code
72023 ,p_line_definition_code => l_line_definition_code
72024 ,p_accounting_line_code => l_component_code
72025 ,p_accounting_line_type_code => l_component_type_code
72026 ,p_accounting_line_appl_id => l_component_appl_id
72027 ,p_amb_context_code => l_amb_context_code
72028 ,p_entity_code => l_entity_code
72029 ,p_event_class_code => l_event_class_code);
72030 --
72031 -- set accounting class
72032 --
72033 xla_ae_lines_pkg.SetAcctClass(
72034 p_accounting_class_code => 'PA_BUDGET_EXECUTION_RESERVE_DR'
72035 , p_ae_header_id => l_ae_header_id
72036 );
72037
72038 --
72039 -- set rounding class
72040 --
72041 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
72042 'PA_BUDGET_EXECUTION_RESERVE_DR';
72043
72044 --
72045 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
72046 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
72047 --
72048 -- bulk performance
72049 --
72050 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
72051
72052 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
72053 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
72054
72055 -- 4955764
72056 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
72057 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
72058
72059 -- 4458381 Public Sector Enh
72060
72061 --
72062 -- set accounting attributes for the line type
72063 --
72064
72065 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
72066 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
72067
72068 ---------------------------------------------------------------------------------------------------------------
72069 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
72070 ---------------------------------------------------------------------------------------------------------------
72071 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
72072
72073 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
72074 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
72075
72076 IF xla_accounting_cache_pkg.GetValueChar
72077 (p_source_code => 'LEDGER_CATEGORY_CODE'
72078 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
72079 AND l_bflow_method_code = 'PRIOR_ENTRY'
72080 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
72081 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
72082 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
72083 )
72084 THEN
72085 xla_ae_lines_pkg.BflowUpgEntry
72086 (p_business_method_code => l_bflow_method_code
72087 ,p_business_class_code => l_bflow_class_code
72088 ,p_balance_type => l_balance_type_code);
72089 ELSE
72090 NULL;
72091 -- No business flow processing for business flow method of NONE.
72092 END IF;
72093
72094 --
72095 -- call analytical criteria
72096 --
72097
72098 --
72099 -- call description
72100 --
72101 -- No description or it is inherited.
72102 --
72103 -- call ADRs
72104 -- Bug 4922099
72105 --
72106 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
72107 (NVL(l_actual_upg_option, 'N') = 'O') OR
72108 (NVL(l_enc_upg_option, 'N') = 'O')
72109 )
72110 THEN
72111 NULL;
72112 --
72113 --
72114
72115 l_ccid := AcctDerRule_11(
72116 p_application_id => p_application_id
72117 , p_ae_header_id => l_ae_header_id
72118 , p_source_3 => p_source_3
72119 , x_transaction_coa_id => l_adr_transaction_coa_id
72120 , x_accounting_coa_id => l_adr_accounting_coa_id
72121 , x_value_type_code => l_adr_value_type_code
72122 , p_side => 'NA'
72123 );
72124
72125 xla_ae_lines_pkg.set_ccid(
72126 p_code_combination_id => l_ccid
72127 , p_value_type_code => l_adr_value_type_code
72128 , p_transaction_coa_id => l_adr_transaction_coa_id
72129 , p_accounting_coa_id => l_adr_accounting_coa_id
72130 , p_adr_code => 'PA_BUDGET_ACCT_RULE'
72131 , p_adr_type_code => 'S'
72132 , p_component_type => l_component_type
72133 , p_component_code => l_component_code
72134 , p_component_type_code => l_component_type_code
72135 , p_component_appl_id => l_component_appl_id
72136 , p_amb_context_code => l_amb_context_code
72140
72137 , p_side => 'NA'
72138 );
72139
72141 l_segment := AcctDerRule_10(
72142 p_application_id => p_application_id
72143 , p_ae_header_id => l_ae_header_id
72144 , x_transaction_coa_id => l_adr_transaction_coa_id
72145 , x_accounting_coa_id => l_adr_accounting_coa_id
72146 , x_flexfield_segment_code => l_adr_flexfield_segment_code
72147 , x_flex_value_set_id => l_adr_flex_value_set_id
72148 , x_value_type_code => l_adr_value_type_code
72149 , x_value_combination_id => l_adr_value_combination_id
72150 , x_value_segment_code => l_adr_value_segment_code
72151 , p_side => 'NA'
72152 , p_override_seg_flag => 'Y'
72153 );
72154
72155 IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN -- 4465612
72156
72157 xla_ae_lines_pkg.set_segment(
72158 p_to_segment_code => 'GL_ACCOUNT'
72159 , p_segment_value => l_segment
72160 , p_from_segment_code => l_adr_value_segment_code
72161 , p_from_combination_id => l_adr_value_combination_id
72162 , p_value_type_code => l_adr_value_type_code
72163 , p_transaction_coa_id => l_adr_transaction_coa_id
72164 , p_accounting_coa_id => l_adr_accounting_coa_id
72165 , p_flexfield_segment_code => l_adr_flexfield_segment_code
72166 , p_flex_value_set_id => l_adr_flex_value_set_id
72167 , p_adr_code => 'PA_4222'
72168 , p_adr_type_code => 'S'
72169 , p_component_type => l_component_type
72170 , p_component_code => l_component_code
72171 , p_component_type_code => l_component_type_code
72172 , p_component_appl_id => l_component_appl_id
72173 , p_amb_context_code => l_amb_context_code
72174 , p_entity_code => 'BUDGETS'
72175 , p_event_class_code => 'BUDGET'
72176 , p_side => 'NA'
72177 );
72178
72179 END IF;
72180
72181 --
72182 --
72183 END IF;
72184 --
72185 -- Bug 4922099
72186 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
72187 (NVL(l_enc_upg_option, 'N') = 'O')
72188 ) AND
72189 (l_bflow_method_code = 'PRIOR_ENTRY')
72190 )
72191 THEN
72192 IF
72193 --
72194 1 = 2
72195 --
72196 THEN
72197 xla_accounting_err_pkg.build_message
72198 (p_appli_s_name => 'XLA'
72199 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
72200 ,p_token_1 => 'LINE_NUMBER'
72201 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
72202 ,p_token_2 => 'LINE_TYPE_NAME'
72203 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
72204 l_component_type
72205 ,l_component_code
72206 ,l_component_type_code
72207 ,l_component_appl_id
72208 ,l_amb_context_code
72209 ,l_entity_code
72210 ,l_event_class_code
72211 )
72212 ,p_token_3 => 'OWNER'
72213 ,p_value_3 => xla_lookups_pkg.get_meaning(
72214 p_lookup_type => 'XLA_OWNER_TYPE'
72215 ,p_lookup_code => l_component_type_code
72216 )
72217 ,p_token_4 => 'PRODUCT_NAME'
72218 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
72219 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
72220 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
72221 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
72222 ,p_ae_header_id => NULL
72223 );
72224
72225 IF (C_LEVEL_ERROR>= g_log_level) THEN
72226 trace
72227 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
72228 ,p_level => C_LEVEL_ERROR
72229 ,p_module => l_log_module);
72230 END IF;
72231 END IF;
72232 END IF;
72233 --
72234 --
72235 ------------------------------------------------------------------------------------------------
72236 -- 4219869 Business Flow
72237 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
72238 -- Prior Entry. Currently, the following code is always generated.
72239 ------------------------------------------------------------------------------------------------
72240 XLA_AE_LINES_PKG.ValidateCurrentLine;
72241
72242 ------------------------------------------------------------------------------------
72243 -- 4219869 Business Flow
72247
72244 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
72245 ------------------------------------------------------------------------------------
72246 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
72248 ----------------------------------------------------------------------------------
72249 -- 4219869 Business Flow
72250 -- Update journal entry status -- Need to generate this within IF <condition>
72251 ----------------------------------------------------------------------------------
72252 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
72253 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
72254 ,p_balance_type_code => l_balance_type_code
72255 );
72256
72257 -------------------------------------------------------------------------------------------
72258 -- 4262811 - Generate the Accrual Reversal lines
72259 -------------------------------------------------------------------------------------------
72260 BEGIN
72261 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
72262 (g_array_event(p_event_id).array_value_num('header_index'));
72263 IF l_acc_rev_flag IS NULL THEN
72264 l_acc_rev_flag := 'N';
72265 END IF;
72266 EXCEPTION
72267 WHEN OTHERS THEN
72268 l_acc_rev_flag := 'N';
72269 END;
72270 --
72271 IF (l_acc_rev_flag = 'Y') THEN
72272
72273 -- 4645092 ------------------------------------------------------------------------------
72274 -- To allow MPA report to determine if it should generate report process
72275 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
72276 ------------------------------------------------------------------------------------------
72277
72278 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
72279 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
72280
72281 --
72282 -- Update the line information that should be overwritten
72283 --
72284 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
72285 p_header_num => 1);
72286 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
72287
72288 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
72289
72290 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
72291 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
72292 END IF;
72293
72294 --
72295 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
72296 --
72297 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
72298 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
72299 ELSE
72300 ---------------------------------------------------------------------------------------------------
72301 -- 4262811a Switch Sign
72302 ---------------------------------------------------------------------------------------------------
72303 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
72304 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
72305 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72306 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
72307 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72308 -- 5132302
72309 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
72310 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72311
72312 END IF;
72313
72314 -- 4955764
72315 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
72316 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
72317
72318
72319 XLA_AE_LINES_PKG.ValidateCurrentLine;
72320 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
72321
72322 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
72323 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
72324 ,p_balance_type_code => l_balance_type_code);
72325
72326 END IF;
72327
72328 -----------------------------------------------------------------------------------------
72329 -- 4262811 Multiperiod Accounting
72330 -----------------------------------------------------------------------------------------
72331 -- No MPA option is assigned.
72332
72333
72334 END IF;
72335 END IF;
72336 --
72337
72338 --
72339 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72340 trace
72341 (p_msg => 'END of AcctLineType_144'
72342 ,p_level => C_LEVEL_PROCEDURE
72343 ,p_module => l_log_module);
72344 END IF;
72345 --
72346 EXCEPTION
72347 WHEN xla_exceptions_pkg.application_exception THEN
72348 RAISE;
72349 WHEN OTHERS THEN
72350 xla_exceptions_pkg.raise_message
72351 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_144');
72352 END AcctLineType_144;
72353 --
72354
72355 ---------------------------------------
72356 --
72357 -- PRIVATE FUNCTION
72358 -- AcctLineType_145
72359 --
72360 ---------------------------------------
72361 PROCEDURE AcctLineType_145 (
72362 p_application_id IN NUMBER
72363 ,p_event_id IN NUMBER
72364 ,p_calculate_acctd_flag IN VARCHAR2
72368 ,p_gain_or_loss_ref OUT VARCHAR2
72365 ,p_calculate_g_l_flag IN VARCHAR2
72366 ,p_actual_flag IN OUT VARCHAR2
72367 ,p_balance_type_code OUT VARCHAR2
72369
72370 --Revenue CCID
72371 , p_source_19 IN NUMBER
72372 --Entered Currency Code
72373 , p_source_26 IN VARCHAR2
72374 --Exchange Rate Date
72375 , p_source_28 IN DATE
72376 --Exchange Rate
72377 , p_source_29 IN NUMBER
72378 --Exchange Rate Type
72379 , p_source_30 IN VARCHAR2
72380 --Entered Amount
72381 , p_source_42 IN NUMBER
72382 --Accounted Amount
72383 , p_source_43 IN NUMBER
72384 --Revenue Distribution Type
72385 , p_source_46 IN VARCHAR2
72386 --System Linkage Function
72387 , p_source_47 IN VARCHAR2
72388 --Crediting Revenue Flag
72389 , p_source_48 IN VARCHAR2
72390 --Revenue First Distribution ID
72391 , p_source_49 IN NUMBER
72392 --Revenue Second Distribution ID
72393 , p_source_50 IN NUMBER
72394 --Event ID
72395 , p_source_51 IN NUMBER
72396 )
72397 IS
72398
72399 l_component_type VARCHAR2(80);
72400 l_component_code VARCHAR2(30);
72401 l_component_type_code VARCHAR2(1);
72402 l_component_appl_id INTEGER;
72403 l_amb_context_code VARCHAR2(30);
72404 l_entity_code VARCHAR2(30);
72405 l_event_class_code VARCHAR2(30);
72406 l_ae_header_id NUMBER;
72407 l_event_type_code VARCHAR2(30);
72408 l_line_definition_code VARCHAR2(30);
72409 l_line_definition_owner_code VARCHAR2(1);
72410 --
72411 -- adr variables
72412 l_segment VARCHAR2(30);
72413 l_ccid NUMBER;
72414 l_adr_transaction_coa_id NUMBER;
72415 l_adr_accounting_coa_id NUMBER;
72416 l_adr_flexfield_segment_code VARCHAR2(30);
72417 l_adr_flex_value_set_id NUMBER;
72418 l_adr_value_type_code VARCHAR2(30);
72419 l_adr_value_combination_id NUMBER;
72420 l_adr_value_segment_code VARCHAR2(30);
72421
72422 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
72423 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
72424 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
72425 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
72426
72427 -- 4262811 Variables ------------------------------------------------------------------------------------------
72428 l_entered_amt_idx NUMBER;
72429 l_accted_amt_idx NUMBER;
72430 l_acc_rev_flag VARCHAR2(1);
72431 l_accrual_line_num NUMBER;
72432 l_tmp_amt NUMBER;
72433 l_acc_rev_natural_side_code VARCHAR2(1);
72434
72435 l_num_entries NUMBER;
72436 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
72437 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
72438 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
72439 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
72440 l_recog_line_1 NUMBER;
72441 l_recog_line_2 NUMBER;
72442
72443 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
72444 l_bflow_applied_to_amt NUMBER; -- 5132302
72445 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
72446
72447 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
72448
72449 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
72450 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
72451
72452 ---------------------------------------------------------------------------------------------------------------
72453
72454
72455 --
72456 -- bulk performance
72457 --
72458 l_balance_type_code VARCHAR2(1);
72459 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
72460 l_log_module VARCHAR2(240);
72461
72462 --
72463 -- Upgrade strategy
72464 --
72465 l_actual_upg_option VARCHAR2(1);
72466 l_enc_upg_option VARCHAR2(1);
72467
72468 --
72469 BEGIN
72470 --
72471 IF g_log_enabled THEN
72472 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_145';
72473 END IF;
72474 --
72475 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72476
72477 trace
72478 (p_msg => 'BEGIN of AcctLineType_145'
72479 ,p_level => C_LEVEL_PROCEDURE
72480 ,p_module => l_log_module);
72481
72482 END IF;
72483 --
72484 l_component_type := 'AMB_JLT';
72485 l_component_code := 'PA_USG_REV';
72486 l_component_type_code := 'S';
72487 l_component_appl_id := 275;
72488 l_amb_context_code := 'DEFAULT';
72489 l_entity_code := 'REVENUE';
72490 l_event_class_code := 'REVENUE';
72491 l_event_type_code := 'REVENUE_ALL';
72492 l_line_definition_owner_code := 'S';
72493 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
72494 --
72495 l_balance_type_code := 'A';
72496 l_segment := NULL;
72497 l_ccid := NULL;
72498 l_adr_transaction_coa_id := NULL;
72499 l_adr_accounting_coa_id := NULL;
72500 l_adr_flexfield_segment_code := NULL;
72501 l_adr_flex_value_set_id := NULL;
72502 l_adr_value_type_code := NULL;
72503 l_adr_value_combination_id := NULL;
72504 l_adr_value_segment_code := NULL;
72505
72506 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
72510
72507 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
72508 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
72509 l_budgetary_control_flag := 'N';
72511 l_bflow_applied_to_amt_idx := NULL; -- 5132302
72512 l_bflow_applied_to_amt := NULL; -- 5132302
72513 l_entered_amt_idx := NULL; -- 4262811
72514 l_accted_amt_idx := NULL; -- 4262811
72515 l_acc_rev_flag := NULL; -- 4262811
72516 l_accrual_line_num := NULL; -- 4262811
72517 l_tmp_amt := NULL; -- 4262811
72518 --
72519
72520 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
72521 l_balance_type_code <> 'B' THEN
72522 IF NVL(p_source_46,'
72523 ') = 'Revenue - Normal Revenue' AND
72524 NVL(p_source_47,'
72525 ') = 'USG' AND
72526 NVL(p_source_48,'
72527 ') = 'N'
72528 THEN
72529
72530 --
72531 XLA_AE_LINES_PKG.SetNewLine;
72532
72533 p_balance_type_code := l_balance_type_code;
72534 -- set the flag so later we will know whether the gain loss line needs to be created
72535
72536 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
72537 p_actual_flag :='A';
72538 END IF;
72539
72540 --
72541 -- bulk performance
72542 --
72543 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
72544 p_header_num => 0); -- 4262811
72545 --
72546 -- set accounting line options
72547 --
72548 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
72549 p_natural_side_code => 'C'
72550 , p_gain_or_loss_flag => 'N'
72551 , p_gl_transfer_mode_code => 'S'
72552 , p_acct_entry_type_code => 'A'
72553 , p_switch_side_flag => 'Y'
72554 , p_merge_duplicate_code => 'N'
72555 );
72556 --
72557 l_acc_rev_natural_side_code := 'D'; -- 4262811
72558 --
72559 --
72560 -- set accounting line type info
72561 --
72562 xla_ae_lines_pkg.SetAcctLineType
72563 (p_component_type => l_component_type
72564 ,p_event_type_code => l_event_type_code
72565 ,p_line_definition_owner_code => l_line_definition_owner_code
72566 ,p_line_definition_code => l_line_definition_code
72567 ,p_accounting_line_code => l_component_code
72568 ,p_accounting_line_type_code => l_component_type_code
72569 ,p_accounting_line_appl_id => l_component_appl_id
72570 ,p_amb_context_code => l_amb_context_code
72571 ,p_entity_code => l_entity_code
72572 ,p_event_class_code => l_event_class_code);
72573 --
72574 -- set accounting class
72575 --
72576 xla_ae_lines_pkg.SetAcctClass(
72577 p_accounting_class_code => 'REVENUE'
72578 , p_ae_header_id => l_ae_header_id
72579 );
72580
72581 --
72582 -- set rounding class
72583 --
72584 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
72585 'REVENUE';
72586
72587 --
72588 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
72589 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
72590 --
72591 -- bulk performance
72592 --
72593 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
72594
72595 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
72596 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
72597
72598 -- 4955764
72599 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
72600 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
72601
72602 -- 4458381 Public Sector Enh
72603
72604 --
72605 -- set accounting attributes for the line type
72606 --
72607 l_entered_amt_idx := 4;
72608 l_accted_amt_idx := 10;
72609 l_bflow_applied_to_amt_idx := NULL; -- 5132302
72610 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
72611 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_49);
72612 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
72613 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_50);
72614 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
72615 l_rec_acct_attrs.array_char_value(3) := p_source_46;
72616 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
72617 l_rec_acct_attrs.array_num_value(4) := p_source_42;
72618 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
72619 l_rec_acct_attrs.array_char_value(5) := p_source_26;
72620 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
72621 l_rec_acct_attrs.array_date_value(6) := p_source_28;
72622 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
72623 l_rec_acct_attrs.array_num_value(7) := p_source_29;
72624 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
72625 l_rec_acct_attrs.array_char_value(8) := p_source_30;
72626 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
72627 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_51);
72628 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
72629 l_rec_acct_attrs.array_num_value(10) := p_source_43;
72630
72631 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
72632 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
72633
72637 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
72634 ---------------------------------------------------------------------------------------------------------------
72635 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
72636 ---------------------------------------------------------------------------------------------------------------
72638
72639 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
72640 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
72641
72642 IF xla_accounting_cache_pkg.GetValueChar
72643 (p_source_code => 'LEDGER_CATEGORY_CODE'
72644 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
72645 AND l_bflow_method_code = 'PRIOR_ENTRY'
72646 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
72647 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
72648 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
72649 )
72650 THEN
72651 xla_ae_lines_pkg.BflowUpgEntry
72652 (p_business_method_code => l_bflow_method_code
72653 ,p_business_class_code => l_bflow_class_code
72654 ,p_balance_type => l_balance_type_code);
72655 ELSE
72656 NULL;
72657 -- No business flow processing for business flow method of NONE.
72658 END IF;
72659
72660 --
72661 -- call analytical criteria
72662 --
72663
72664 --
72665 -- call description
72666 --
72667 -- No description or it is inherited.
72668 --
72669 -- call ADRs
72670 -- Bug 4922099
72671 --
72672 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
72673 (NVL(l_actual_upg_option, 'N') = 'O') OR
72674 (NVL(l_enc_upg_option, 'N') = 'O')
72675 )
72676 THEN
72677 NULL;
72678 --
72679 --
72680
72681 l_ccid := AcctDerRule_26(
72682 p_application_id => p_application_id
72683 , p_ae_header_id => l_ae_header_id
72684 , p_source_19 => p_source_19
72685 , x_transaction_coa_id => l_adr_transaction_coa_id
72686 , x_accounting_coa_id => l_adr_accounting_coa_id
72687 , x_value_type_code => l_adr_value_type_code
72688 , p_side => 'NA'
72689 );
72690
72691 xla_ae_lines_pkg.set_ccid(
72692 p_code_combination_id => l_ccid
72693 , p_value_type_code => l_adr_value_type_code
72694 , p_transaction_coa_id => l_adr_transaction_coa_id
72695 , p_accounting_coa_id => l_adr_accounting_coa_id
72696 , p_adr_code => 'REVENUE_RULE'
72697 , p_adr_type_code => 'S'
72698 , p_component_type => l_component_type
72699 , p_component_code => l_component_code
72700 , p_component_type_code => l_component_type_code
72701 , p_component_appl_id => l_component_appl_id
72702 , p_amb_context_code => l_amb_context_code
72703 , p_side => 'NA'
72704 );
72705
72706
72707 --
72708 --
72709 END IF;
72710 --
72711 -- Bug 4922099
72712 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
72713 (NVL(l_enc_upg_option, 'N') = 'O')
72714 ) AND
72715 (l_bflow_method_code = 'PRIOR_ENTRY')
72716 )
72717 THEN
72718 IF
72719 --
72720 1 = 2
72721 --
72722 THEN
72723 xla_accounting_err_pkg.build_message
72724 (p_appli_s_name => 'XLA'
72725 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
72726 ,p_token_1 => 'LINE_NUMBER'
72727 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
72728 ,p_token_2 => 'LINE_TYPE_NAME'
72729 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
72730 l_component_type
72731 ,l_component_code
72732 ,l_component_type_code
72733 ,l_component_appl_id
72734 ,l_amb_context_code
72735 ,l_entity_code
72736 ,l_event_class_code
72737 )
72738 ,p_token_3 => 'OWNER'
72739 ,p_value_3 => xla_lookups_pkg.get_meaning(
72740 p_lookup_type => 'XLA_OWNER_TYPE'
72741 ,p_lookup_code => l_component_type_code
72742 )
72743 ,p_token_4 => 'PRODUCT_NAME'
72744 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
72745 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
72746 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
72750
72747 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
72748 ,p_ae_header_id => NULL
72749 );
72751 IF (C_LEVEL_ERROR>= g_log_level) THEN
72752 trace
72753 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
72754 ,p_level => C_LEVEL_ERROR
72755 ,p_module => l_log_module);
72756 END IF;
72757 END IF;
72758 END IF;
72759 --
72760 --
72761 ------------------------------------------------------------------------------------------------
72762 -- 4219869 Business Flow
72763 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
72764 -- Prior Entry. Currently, the following code is always generated.
72765 ------------------------------------------------------------------------------------------------
72766 XLA_AE_LINES_PKG.ValidateCurrentLine;
72767
72768 ------------------------------------------------------------------------------------
72769 -- 4219869 Business Flow
72770 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
72771 ------------------------------------------------------------------------------------
72772 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
72773
72774 ----------------------------------------------------------------------------------
72775 -- 4219869 Business Flow
72776 -- Update journal entry status -- Need to generate this within IF <condition>
72777 ----------------------------------------------------------------------------------
72778 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
72779 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
72780 ,p_balance_type_code => l_balance_type_code
72781 );
72782
72783 -------------------------------------------------------------------------------------------
72784 -- 4262811 - Generate the Accrual Reversal lines
72785 -------------------------------------------------------------------------------------------
72786 BEGIN
72787 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
72788 (g_array_event(p_event_id).array_value_num('header_index'));
72789 IF l_acc_rev_flag IS NULL THEN
72790 l_acc_rev_flag := 'N';
72791 END IF;
72792 EXCEPTION
72793 WHEN OTHERS THEN
72794 l_acc_rev_flag := 'N';
72795 END;
72796 --
72797 IF (l_acc_rev_flag = 'Y') THEN
72798
72799 -- 4645092 ------------------------------------------------------------------------------
72800 -- To allow MPA report to determine if it should generate report process
72801 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
72802 ------------------------------------------------------------------------------------------
72803
72804 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
72805 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
72806
72807 --
72808 -- Update the line information that should be overwritten
72809 --
72810 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
72811 p_header_num => 1);
72812 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
72813
72814 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
72815
72816 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
72817 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
72818 END IF;
72819
72820 --
72821 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
72822 --
72823 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
72824 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
72825 ELSE
72826 ---------------------------------------------------------------------------------------------------
72827 -- 4262811a Switch Sign
72828 ---------------------------------------------------------------------------------------------------
72829 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
72830 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
72831 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72832 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
72833 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72834 -- 5132302
72835 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
72836 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72837
72838 END IF;
72839
72840 -- 4955764
72841 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
72842 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
72843
72844
72845 XLA_AE_LINES_PKG.ValidateCurrentLine;
72846 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
72847
72848 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
72849 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
72850 ,p_balance_type_code => l_balance_type_code);
72851
72852 END IF;
72853
72854 -----------------------------------------------------------------------------------------
72858
72855 -- 4262811 Multiperiod Accounting
72856 -----------------------------------------------------------------------------------------
72857 -- No MPA option is assigned.
72859
72860 END IF;
72861 END IF;
72862 --
72863
72864 --
72865 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72866 trace
72867 (p_msg => 'END of AcctLineType_145'
72868 ,p_level => C_LEVEL_PROCEDURE
72869 ,p_module => l_log_module);
72870 END IF;
72871 --
72872 EXCEPTION
72873 WHEN xla_exceptions_pkg.application_exception THEN
72874 RAISE;
72875 WHEN OTHERS THEN
72876 xla_exceptions_pkg.raise_message
72877 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_145');
72878 END AcctLineType_145;
72879 --
72880
72881 ---------------------------------------
72882 --
72883 -- PRIVATE FUNCTION
72884 -- AcctLineType_146
72885 --
72886 ---------------------------------------
72887 PROCEDURE AcctLineType_146 (
72888 p_application_id IN NUMBER
72889 ,p_event_id IN NUMBER
72890 ,p_calculate_acctd_flag IN VARCHAR2
72891 ,p_calculate_g_l_flag IN VARCHAR2
72892 ,p_actual_flag IN OUT VARCHAR2
72893 ,p_balance_type_code OUT VARCHAR2
72894 ,p_gain_or_loss_ref OUT VARCHAR2
72895
72896 --Revenue CCID
72897 , p_source_19 IN NUMBER
72898 --Entered Currency Code
72899 , p_source_26 IN VARCHAR2
72900 --Exchange Rate Date
72901 , p_source_28 IN DATE
72902 --Exchange Rate
72903 , p_source_29 IN NUMBER
72904 --Exchange Rate Type
72905 , p_source_30 IN VARCHAR2
72906 --Entered Amount
72907 , p_source_42 IN NUMBER
72908 --Accounted Amount
72909 , p_source_43 IN NUMBER
72910 --Revenue Distribution Type
72911 , p_source_46 IN VARCHAR2
72912 --System Linkage Function
72913 , p_source_47 IN VARCHAR2
72914 --Crediting Revenue Flag
72915 , p_source_48 IN VARCHAR2
72916 --Revenue First Distribution ID
72917 , p_source_49 IN NUMBER
72918 --Revenue Second Distribution ID
72919 , p_source_50 IN NUMBER
72920 --Event ID
72921 , p_source_51 IN NUMBER
72922 )
72923 IS
72924
72925 l_component_type VARCHAR2(80);
72926 l_component_code VARCHAR2(30);
72927 l_component_type_code VARCHAR2(1);
72928 l_component_appl_id INTEGER;
72929 l_amb_context_code VARCHAR2(30);
72930 l_entity_code VARCHAR2(30);
72931 l_event_class_code VARCHAR2(30);
72932 l_ae_header_id NUMBER;
72933 l_event_type_code VARCHAR2(30);
72934 l_line_definition_code VARCHAR2(30);
72935 l_line_definition_owner_code VARCHAR2(1);
72936 --
72937 -- adr variables
72938 l_segment VARCHAR2(30);
72939 l_ccid NUMBER;
72940 l_adr_transaction_coa_id NUMBER;
72941 l_adr_accounting_coa_id NUMBER;
72942 l_adr_flexfield_segment_code VARCHAR2(30);
72943 l_adr_flex_value_set_id NUMBER;
72944 l_adr_value_type_code VARCHAR2(30);
72945 l_adr_value_combination_id NUMBER;
72946 l_adr_value_segment_code VARCHAR2(30);
72947
72948 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
72949 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
72950 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
72951 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
72952
72953 -- 4262811 Variables ------------------------------------------------------------------------------------------
72954 l_entered_amt_idx NUMBER;
72955 l_accted_amt_idx NUMBER;
72956 l_acc_rev_flag VARCHAR2(1);
72957 l_accrual_line_num NUMBER;
72958 l_tmp_amt NUMBER;
72959 l_acc_rev_natural_side_code VARCHAR2(1);
72960
72961 l_num_entries NUMBER;
72962 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
72963 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
72964 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
72965 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
72966 l_recog_line_1 NUMBER;
72967 l_recog_line_2 NUMBER;
72968
72969 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
72970 l_bflow_applied_to_amt NUMBER; -- 5132302
72971 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
72972
72973 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
72974
72975 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
72976 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
72977
72978 ---------------------------------------------------------------------------------------------------------------
72979
72980
72981 --
72982 -- bulk performance
72983 --
72984 l_balance_type_code VARCHAR2(1);
72985 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
72986 l_log_module VARCHAR2(240);
72987
72988 --
72989 -- Upgrade strategy
72990 --
72991 l_actual_upg_option VARCHAR2(1);
72992 l_enc_upg_option VARCHAR2(1);
72993
72994 --
72995 BEGIN
72996 --
72997 IF g_log_enabled THEN
72998 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_146';
72999 END IF;
73000 --
73001 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73002
73003 trace
73004 (p_msg => 'BEGIN of AcctLineType_146'
73005 ,p_level => C_LEVEL_PROCEDURE
73009 --
73006 ,p_module => l_log_module);
73007
73008 END IF;
73010 l_component_type := 'AMB_JLT';
73011 l_component_code := 'PA_VI_REV';
73012 l_component_type_code := 'S';
73013 l_component_appl_id := 275;
73014 l_amb_context_code := 'DEFAULT';
73015 l_entity_code := 'REVENUE';
73016 l_event_class_code := 'REVENUE';
73017 l_event_type_code := 'REVENUE_ALL';
73018 l_line_definition_owner_code := 'S';
73019 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
73020 --
73021 l_balance_type_code := 'A';
73022 l_segment := NULL;
73023 l_ccid := NULL;
73024 l_adr_transaction_coa_id := NULL;
73025 l_adr_accounting_coa_id := NULL;
73026 l_adr_flexfield_segment_code := NULL;
73027 l_adr_flex_value_set_id := NULL;
73028 l_adr_value_type_code := NULL;
73029 l_adr_value_combination_id := NULL;
73030 l_adr_value_segment_code := NULL;
73031
73032 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
73033 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
73034 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
73035 l_budgetary_control_flag := 'N';
73036
73037 l_bflow_applied_to_amt_idx := NULL; -- 5132302
73038 l_bflow_applied_to_amt := NULL; -- 5132302
73039 l_entered_amt_idx := NULL; -- 4262811
73040 l_accted_amt_idx := NULL; -- 4262811
73041 l_acc_rev_flag := NULL; -- 4262811
73042 l_accrual_line_num := NULL; -- 4262811
73043 l_tmp_amt := NULL; -- 4262811
73044 --
73045
73046 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
73047 l_balance_type_code <> 'B' THEN
73048 IF NVL(p_source_46,'
73049 ') = 'Revenue - Normal Revenue' AND
73050 NVL(p_source_47,'
73051 ') = 'VI' AND
73052 NVL(p_source_48,'
73053 ') = 'N'
73054 THEN
73055
73056 --
73057 XLA_AE_LINES_PKG.SetNewLine;
73058
73059 p_balance_type_code := l_balance_type_code;
73060 -- set the flag so later we will know whether the gain loss line needs to be created
73061
73062 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
73063 p_actual_flag :='A';
73064 END IF;
73065
73066 --
73067 -- bulk performance
73068 --
73069 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
73070 p_header_num => 0); -- 4262811
73071 --
73072 -- set accounting line options
73073 --
73074 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
73075 p_natural_side_code => 'C'
73076 , p_gain_or_loss_flag => 'N'
73077 , p_gl_transfer_mode_code => 'S'
73078 , p_acct_entry_type_code => 'A'
73079 , p_switch_side_flag => 'Y'
73080 , p_merge_duplicate_code => 'N'
73081 );
73082 --
73083 l_acc_rev_natural_side_code := 'D'; -- 4262811
73084 --
73085 --
73086 -- set accounting line type info
73087 --
73088 xla_ae_lines_pkg.SetAcctLineType
73089 (p_component_type => l_component_type
73090 ,p_event_type_code => l_event_type_code
73091 ,p_line_definition_owner_code => l_line_definition_owner_code
73092 ,p_line_definition_code => l_line_definition_code
73093 ,p_accounting_line_code => l_component_code
73094 ,p_accounting_line_type_code => l_component_type_code
73095 ,p_accounting_line_appl_id => l_component_appl_id
73096 ,p_amb_context_code => l_amb_context_code
73097 ,p_entity_code => l_entity_code
73098 ,p_event_class_code => l_event_class_code);
73099 --
73100 -- set accounting class
73101 --
73102 xla_ae_lines_pkg.SetAcctClass(
73103 p_accounting_class_code => 'REVENUE'
73104 , p_ae_header_id => l_ae_header_id
73105 );
73106
73107 --
73108 -- set rounding class
73109 --
73110 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
73111 'REVENUE';
73112
73113 --
73114 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
73115 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
73116 --
73117 -- bulk performance
73118 --
73119 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
73120
73121 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
73122 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
73123
73124 -- 4955764
73125 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
73126 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
73127
73128 -- 4458381 Public Sector Enh
73129
73130 --
73131 -- set accounting attributes for the line type
73132 --
73133 l_entered_amt_idx := 4;
73134 l_accted_amt_idx := 10;
73135 l_bflow_applied_to_amt_idx := NULL; -- 5132302
73136 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
73137 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_49);
73138 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
73139 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_50);
73140 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
73141 l_rec_acct_attrs.array_char_value(3) := p_source_46;
73145 l_rec_acct_attrs.array_char_value(5) := p_source_26;
73142 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
73143 l_rec_acct_attrs.array_num_value(4) := p_source_42;
73144 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
73146 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
73147 l_rec_acct_attrs.array_date_value(6) := p_source_28;
73148 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
73149 l_rec_acct_attrs.array_num_value(7) := p_source_29;
73150 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
73151 l_rec_acct_attrs.array_char_value(8) := p_source_30;
73152 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
73153 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_51);
73154 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
73155 l_rec_acct_attrs.array_num_value(10) := p_source_43;
73156
73157 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
73158 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
73159
73160 ---------------------------------------------------------------------------------------------------------------
73161 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
73162 ---------------------------------------------------------------------------------------------------------------
73163 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
73164
73165 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
73166 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
73167
73168 IF xla_accounting_cache_pkg.GetValueChar
73169 (p_source_code => 'LEDGER_CATEGORY_CODE'
73170 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
73171 AND l_bflow_method_code = 'PRIOR_ENTRY'
73172 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
73173 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
73174 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
73175 )
73176 THEN
73177 xla_ae_lines_pkg.BflowUpgEntry
73178 (p_business_method_code => l_bflow_method_code
73179 ,p_business_class_code => l_bflow_class_code
73180 ,p_balance_type => l_balance_type_code);
73181 ELSE
73182 NULL;
73183 -- No business flow processing for business flow method of NONE.
73184 END IF;
73185
73186 --
73187 -- call analytical criteria
73188 --
73189
73190 --
73191 -- call description
73192 --
73193 -- No description or it is inherited.
73194 --
73195 -- call ADRs
73196 -- Bug 4922099
73197 --
73198 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
73199 (NVL(l_actual_upg_option, 'N') = 'O') OR
73200 (NVL(l_enc_upg_option, 'N') = 'O')
73201 )
73202 THEN
73203 NULL;
73204 --
73205 --
73206
73207 l_ccid := AcctDerRule_26(
73208 p_application_id => p_application_id
73209 , p_ae_header_id => l_ae_header_id
73210 , p_source_19 => p_source_19
73211 , x_transaction_coa_id => l_adr_transaction_coa_id
73212 , x_accounting_coa_id => l_adr_accounting_coa_id
73213 , x_value_type_code => l_adr_value_type_code
73214 , p_side => 'NA'
73215 );
73216
73217 xla_ae_lines_pkg.set_ccid(
73218 p_code_combination_id => l_ccid
73219 , p_value_type_code => l_adr_value_type_code
73220 , p_transaction_coa_id => l_adr_transaction_coa_id
73221 , p_accounting_coa_id => l_adr_accounting_coa_id
73222 , p_adr_code => 'REVENUE_RULE'
73223 , p_adr_type_code => 'S'
73224 , p_component_type => l_component_type
73225 , p_component_code => l_component_code
73226 , p_component_type_code => l_component_type_code
73227 , p_component_appl_id => l_component_appl_id
73228 , p_amb_context_code => l_amb_context_code
73229 , p_side => 'NA'
73230 );
73231
73232
73233 --
73234 --
73235 END IF;
73236 --
73237 -- Bug 4922099
73238 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
73239 (NVL(l_enc_upg_option, 'N') = 'O')
73240 ) AND
73241 (l_bflow_method_code = 'PRIOR_ENTRY')
73242 )
73243 THEN
73244 IF
73245 --
73246 1 = 2
73247 --
73248 THEN
73249 xla_accounting_err_pkg.build_message
73250 (p_appli_s_name => 'XLA'
73251 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
73252 ,p_token_1 => 'LINE_NUMBER'
73253 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
73254 ,p_token_2 => 'LINE_TYPE_NAME'
73255 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
73256 l_component_type
73257 ,l_component_code
73258 ,l_component_type_code
73259 ,l_component_appl_id
73260 ,l_amb_context_code
73264 ,p_token_3 => 'OWNER'
73261 ,l_entity_code
73262 ,l_event_class_code
73263 )
73265 ,p_value_3 => xla_lookups_pkg.get_meaning(
73266 p_lookup_type => 'XLA_OWNER_TYPE'
73267 ,p_lookup_code => l_component_type_code
73268 )
73269 ,p_token_4 => 'PRODUCT_NAME'
73270 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
73271 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
73272 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
73273 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
73274 ,p_ae_header_id => NULL
73275 );
73276
73277 IF (C_LEVEL_ERROR>= g_log_level) THEN
73278 trace
73279 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
73280 ,p_level => C_LEVEL_ERROR
73281 ,p_module => l_log_module);
73282 END IF;
73283 END IF;
73284 END IF;
73285 --
73286 --
73287 ------------------------------------------------------------------------------------------------
73288 -- 4219869 Business Flow
73289 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
73290 -- Prior Entry. Currently, the following code is always generated.
73291 ------------------------------------------------------------------------------------------------
73292 XLA_AE_LINES_PKG.ValidateCurrentLine;
73293
73294 ------------------------------------------------------------------------------------
73295 -- 4219869 Business Flow
73296 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
73297 ------------------------------------------------------------------------------------
73298 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
73299
73300 ----------------------------------------------------------------------------------
73301 -- 4219869 Business Flow
73302 -- Update journal entry status -- Need to generate this within IF <condition>
73303 ----------------------------------------------------------------------------------
73304 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
73305 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
73306 ,p_balance_type_code => l_balance_type_code
73307 );
73308
73309 -------------------------------------------------------------------------------------------
73310 -- 4262811 - Generate the Accrual Reversal lines
73311 -------------------------------------------------------------------------------------------
73312 BEGIN
73313 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
73314 (g_array_event(p_event_id).array_value_num('header_index'));
73315 IF l_acc_rev_flag IS NULL THEN
73316 l_acc_rev_flag := 'N';
73317 END IF;
73318 EXCEPTION
73319 WHEN OTHERS THEN
73320 l_acc_rev_flag := 'N';
73321 END;
73322 --
73323 IF (l_acc_rev_flag = 'Y') THEN
73324
73325 -- 4645092 ------------------------------------------------------------------------------
73326 -- To allow MPA report to determine if it should generate report process
73327 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
73328 ------------------------------------------------------------------------------------------
73329
73330 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
73331 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
73332
73333 --
73334 -- Update the line information that should be overwritten
73335 --
73336 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
73337 p_header_num => 1);
73338 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
73339
73340 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
73341
73342 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
73343 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
73344 END IF;
73345
73346 --
73347 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
73348 --
73349 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
73350 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
73351 ELSE
73352 ---------------------------------------------------------------------------------------------------
73353 -- 4262811a Switch Sign
73354 ---------------------------------------------------------------------------------------------------
73355 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
73356 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
73357 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73358 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
73362 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73359 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73360 -- 5132302
73361 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
73363
73364 END IF;
73365
73366 -- 4955764
73367 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
73368 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
73369
73370
73371 XLA_AE_LINES_PKG.ValidateCurrentLine;
73372 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
73373
73374 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
73375 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
73376 ,p_balance_type_code => l_balance_type_code);
73377
73378 END IF;
73379
73380 -----------------------------------------------------------------------------------------
73381 -- 4262811 Multiperiod Accounting
73382 -----------------------------------------------------------------------------------------
73383 -- No MPA option is assigned.
73384
73385
73386 END IF;
73387 END IF;
73388 --
73389
73390 --
73391 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73392 trace
73393 (p_msg => 'END of AcctLineType_146'
73394 ,p_level => C_LEVEL_PROCEDURE
73395 ,p_module => l_log_module);
73396 END IF;
73397 --
73398 EXCEPTION
73399 WHEN xla_exceptions_pkg.application_exception THEN
73400 RAISE;
73401 WHEN OTHERS THEN
73402 xla_exceptions_pkg.raise_message
73403 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_146');
73404 END AcctLineType_146;
73405 --
73406
73407 ---------------------------------------
73408 --
73409 -- PRIVATE FUNCTION
73410 -- AcctLineType_147
73411 --
73412 ---------------------------------------
73413 PROCEDURE AcctLineType_147 (
73414 p_application_id IN NUMBER
73415 ,p_event_id IN NUMBER
73416 ,p_calculate_acctd_flag IN VARCHAR2
73417 ,p_calculate_g_l_flag IN VARCHAR2
73418 ,p_actual_flag IN OUT VARCHAR2
73419 ,p_balance_type_code OUT VARCHAR2
73420 ,p_gain_or_loss_ref OUT VARCHAR2
73421
73422 --Revenue CCID
73423 , p_source_19 IN NUMBER
73424 --Entered Currency Code
73425 , p_source_26 IN VARCHAR2
73426 --Exchange Rate Date
73427 , p_source_28 IN DATE
73428 --Exchange Rate
73429 , p_source_29 IN NUMBER
73430 --Exchange Rate Type
73431 , p_source_30 IN VARCHAR2
73432 --Entered Amount
73433 , p_source_42 IN NUMBER
73434 --Accounted Amount
73435 , p_source_43 IN NUMBER
73436 --Revenue Distribution Type
73437 , p_source_46 IN VARCHAR2
73438 --System Linkage Function
73439 , p_source_47 IN VARCHAR2
73440 --Crediting Revenue Flag
73441 , p_source_48 IN VARCHAR2
73442 --Revenue First Distribution ID
73443 , p_source_49 IN NUMBER
73444 --Revenue Second Distribution ID
73445 , p_source_50 IN NUMBER
73446 --Event ID
73447 , p_source_51 IN NUMBER
73448 )
73449 IS
73450
73451 l_component_type VARCHAR2(80);
73452 l_component_code VARCHAR2(30);
73453 l_component_type_code VARCHAR2(1);
73454 l_component_appl_id INTEGER;
73455 l_amb_context_code VARCHAR2(30);
73456 l_entity_code VARCHAR2(30);
73457 l_event_class_code VARCHAR2(30);
73458 l_ae_header_id NUMBER;
73459 l_event_type_code VARCHAR2(30);
73460 l_line_definition_code VARCHAR2(30);
73461 l_line_definition_owner_code VARCHAR2(1);
73462 --
73463 -- adr variables
73464 l_segment VARCHAR2(30);
73465 l_ccid NUMBER;
73466 l_adr_transaction_coa_id NUMBER;
73467 l_adr_accounting_coa_id NUMBER;
73468 l_adr_flexfield_segment_code VARCHAR2(30);
73469 l_adr_flex_value_set_id NUMBER;
73470 l_adr_value_type_code VARCHAR2(30);
73471 l_adr_value_combination_id NUMBER;
73472 l_adr_value_segment_code VARCHAR2(30);
73473
73474 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
73475 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
73476 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
73477 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
73478
73479 -- 4262811 Variables ------------------------------------------------------------------------------------------
73480 l_entered_amt_idx NUMBER;
73481 l_accted_amt_idx NUMBER;
73482 l_acc_rev_flag VARCHAR2(1);
73483 l_accrual_line_num NUMBER;
73484 l_tmp_amt NUMBER;
73485 l_acc_rev_natural_side_code VARCHAR2(1);
73486
73487 l_num_entries NUMBER;
73488 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
73489 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
73490 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
73491 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
73492 l_recog_line_1 NUMBER;
73493 l_recog_line_2 NUMBER;
73494
73495 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
73496 l_bflow_applied_to_amt NUMBER; -- 5132302
73497 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
73498
73502 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
73499 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
73500
73501 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
73503
73504 ---------------------------------------------------------------------------------------------------------------
73505
73506
73507 --
73508 -- bulk performance
73509 --
73510 l_balance_type_code VARCHAR2(1);
73511 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
73512 l_log_module VARCHAR2(240);
73513
73514 --
73515 -- Upgrade strategy
73516 --
73517 l_actual_upg_option VARCHAR2(1);
73518 l_enc_upg_option VARCHAR2(1);
73519
73520 --
73521 BEGIN
73522 --
73523 IF g_log_enabled THEN
73524 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_147';
73525 END IF;
73526 --
73527 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73528
73529 trace
73530 (p_msg => 'BEGIN of AcctLineType_147'
73531 ,p_level => C_LEVEL_PROCEDURE
73532 ,p_module => l_log_module);
73533
73534 END IF;
73535 --
73536 l_component_type := 'AMB_JLT';
73537 l_component_code := 'PA_WIP_REV';
73538 l_component_type_code := 'S';
73539 l_component_appl_id := 275;
73540 l_amb_context_code := 'DEFAULT';
73541 l_entity_code := 'REVENUE';
73542 l_event_class_code := 'REVENUE';
73543 l_event_type_code := 'REVENUE_ALL';
73544 l_line_definition_owner_code := 'S';
73545 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
73546 --
73547 l_balance_type_code := 'A';
73548 l_segment := NULL;
73549 l_ccid := NULL;
73550 l_adr_transaction_coa_id := NULL;
73551 l_adr_accounting_coa_id := NULL;
73552 l_adr_flexfield_segment_code := NULL;
73553 l_adr_flex_value_set_id := NULL;
73554 l_adr_value_type_code := NULL;
73555 l_adr_value_combination_id := NULL;
73556 l_adr_value_segment_code := NULL;
73557
73558 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
73559 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
73560 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
73561 l_budgetary_control_flag := 'N';
73562
73563 l_bflow_applied_to_amt_idx := NULL; -- 5132302
73564 l_bflow_applied_to_amt := NULL; -- 5132302
73565 l_entered_amt_idx := NULL; -- 4262811
73566 l_accted_amt_idx := NULL; -- 4262811
73567 l_acc_rev_flag := NULL; -- 4262811
73568 l_accrual_line_num := NULL; -- 4262811
73569 l_tmp_amt := NULL; -- 4262811
73570 --
73571
73572 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
73573 l_balance_type_code <> 'B' THEN
73574 IF NVL(p_source_46,'
73575 ') = 'Revenue - Normal Revenue' AND
73576 NVL(p_source_47,'
73577 ') = 'WIP' AND
73578 NVL(p_source_48,'
73579 ') = 'N'
73580 THEN
73581
73582 --
73583 XLA_AE_LINES_PKG.SetNewLine;
73584
73585 p_balance_type_code := l_balance_type_code;
73586 -- set the flag so later we will know whether the gain loss line needs to be created
73587
73588 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
73589 p_actual_flag :='A';
73590 END IF;
73591
73592 --
73593 -- bulk performance
73594 --
73595 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
73596 p_header_num => 0); -- 4262811
73597 --
73598 -- set accounting line options
73599 --
73600 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
73601 p_natural_side_code => 'C'
73602 , p_gain_or_loss_flag => 'N'
73603 , p_gl_transfer_mode_code => 'S'
73604 , p_acct_entry_type_code => 'A'
73605 , p_switch_side_flag => 'Y'
73606 , p_merge_duplicate_code => 'N'
73607 );
73608 --
73609 l_acc_rev_natural_side_code := 'D'; -- 4262811
73610 --
73611 --
73612 -- set accounting line type info
73613 --
73614 xla_ae_lines_pkg.SetAcctLineType
73615 (p_component_type => l_component_type
73616 ,p_event_type_code => l_event_type_code
73617 ,p_line_definition_owner_code => l_line_definition_owner_code
73618 ,p_line_definition_code => l_line_definition_code
73619 ,p_accounting_line_code => l_component_code
73620 ,p_accounting_line_type_code => l_component_type_code
73621 ,p_accounting_line_appl_id => l_component_appl_id
73622 ,p_amb_context_code => l_amb_context_code
73623 ,p_entity_code => l_entity_code
73624 ,p_event_class_code => l_event_class_code);
73625 --
73626 -- set accounting class
73627 --
73628 xla_ae_lines_pkg.SetAcctClass(
73629 p_accounting_class_code => 'REVENUE'
73630 , p_ae_header_id => l_ae_header_id
73631 );
73632
73633 --
73634 -- set rounding class
73635 --
73636 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
73637 'REVENUE';
73638
73639 --
73640 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
73641 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
73642 --
73643 -- bulk performance
73644 --
73648 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
73645 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
73646
73647 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
73649
73650 -- 4955764
73651 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
73652 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
73653
73654 -- 4458381 Public Sector Enh
73655
73656 --
73657 -- set accounting attributes for the line type
73658 --
73659 l_entered_amt_idx := 4;
73660 l_accted_amt_idx := 10;
73661 l_bflow_applied_to_amt_idx := NULL; -- 5132302
73662 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
73663 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_49);
73664 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
73665 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_50);
73666 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
73667 l_rec_acct_attrs.array_char_value(3) := p_source_46;
73668 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
73669 l_rec_acct_attrs.array_num_value(4) := p_source_42;
73670 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
73671 l_rec_acct_attrs.array_char_value(5) := p_source_26;
73672 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
73673 l_rec_acct_attrs.array_date_value(6) := p_source_28;
73674 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
73675 l_rec_acct_attrs.array_num_value(7) := p_source_29;
73676 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
73677 l_rec_acct_attrs.array_char_value(8) := p_source_30;
73678 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
73679 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_51);
73680 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
73681 l_rec_acct_attrs.array_num_value(10) := p_source_43;
73682
73683 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
73684 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
73685
73686 ---------------------------------------------------------------------------------------------------------------
73687 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
73688 ---------------------------------------------------------------------------------------------------------------
73689 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
73690
73691 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
73692 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
73693
73694 IF xla_accounting_cache_pkg.GetValueChar
73695 (p_source_code => 'LEDGER_CATEGORY_CODE'
73696 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
73697 AND l_bflow_method_code = 'PRIOR_ENTRY'
73698 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
73699 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
73700 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
73701 )
73702 THEN
73703 xla_ae_lines_pkg.BflowUpgEntry
73704 (p_business_method_code => l_bflow_method_code
73705 ,p_business_class_code => l_bflow_class_code
73706 ,p_balance_type => l_balance_type_code);
73707 ELSE
73708 NULL;
73709 -- No business flow processing for business flow method of NONE.
73710 END IF;
73711
73712 --
73713 -- call analytical criteria
73714 --
73715
73716 --
73717 -- call description
73718 --
73719 -- No description or it is inherited.
73720 --
73721 -- call ADRs
73722 -- Bug 4922099
73723 --
73724 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
73725 (NVL(l_actual_upg_option, 'N') = 'O') OR
73726 (NVL(l_enc_upg_option, 'N') = 'O')
73727 )
73728 THEN
73729 NULL;
73730 --
73731 --
73732
73733 l_ccid := AcctDerRule_26(
73734 p_application_id => p_application_id
73735 , p_ae_header_id => l_ae_header_id
73736 , p_source_19 => p_source_19
73737 , x_transaction_coa_id => l_adr_transaction_coa_id
73738 , x_accounting_coa_id => l_adr_accounting_coa_id
73739 , x_value_type_code => l_adr_value_type_code
73740 , p_side => 'NA'
73741 );
73742
73743 xla_ae_lines_pkg.set_ccid(
73744 p_code_combination_id => l_ccid
73745 , p_value_type_code => l_adr_value_type_code
73746 , p_transaction_coa_id => l_adr_transaction_coa_id
73747 , p_accounting_coa_id => l_adr_accounting_coa_id
73748 , p_adr_code => 'REVENUE_RULE'
73749 , p_adr_type_code => 'S'
73750 , p_component_type => l_component_type
73751 , p_component_code => l_component_code
73752 , p_component_type_code => l_component_type_code
73753 , p_component_appl_id => l_component_appl_id
73754 , p_amb_context_code => l_amb_context_code
73755 , p_side => 'NA'
73756 );
73757
73758
73759 --
73760 --
73761 END IF;
73762 --
73763 -- Bug 4922099
73764 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
73765 (NVL(l_enc_upg_option, 'N') = 'O')
73766 ) AND
73767 (l_bflow_method_code = 'PRIOR_ENTRY')
73768 )
73769 THEN
73770 IF
73774 THEN
73771 --
73772 1 = 2
73773 --
73775 xla_accounting_err_pkg.build_message
73776 (p_appli_s_name => 'XLA'
73777 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
73778 ,p_token_1 => 'LINE_NUMBER'
73779 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
73780 ,p_token_2 => 'LINE_TYPE_NAME'
73781 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
73782 l_component_type
73783 ,l_component_code
73784 ,l_component_type_code
73785 ,l_component_appl_id
73786 ,l_amb_context_code
73787 ,l_entity_code
73788 ,l_event_class_code
73789 )
73790 ,p_token_3 => 'OWNER'
73791 ,p_value_3 => xla_lookups_pkg.get_meaning(
73792 p_lookup_type => 'XLA_OWNER_TYPE'
73793 ,p_lookup_code => l_component_type_code
73794 )
73795 ,p_token_4 => 'PRODUCT_NAME'
73796 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
73797 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
73798 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
73799 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
73800 ,p_ae_header_id => NULL
73801 );
73802
73803 IF (C_LEVEL_ERROR>= g_log_level) THEN
73804 trace
73805 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
73806 ,p_level => C_LEVEL_ERROR
73807 ,p_module => l_log_module);
73808 END IF;
73809 END IF;
73810 END IF;
73811 --
73812 --
73813 ------------------------------------------------------------------------------------------------
73814 -- 4219869 Business Flow
73815 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
73816 -- Prior Entry. Currently, the following code is always generated.
73817 ------------------------------------------------------------------------------------------------
73818 XLA_AE_LINES_PKG.ValidateCurrentLine;
73819
73820 ------------------------------------------------------------------------------------
73821 -- 4219869 Business Flow
73822 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
73823 ------------------------------------------------------------------------------------
73824 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
73825
73826 ----------------------------------------------------------------------------------
73827 -- 4219869 Business Flow
73828 -- Update journal entry status -- Need to generate this within IF <condition>
73829 ----------------------------------------------------------------------------------
73830 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
73831 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
73832 ,p_balance_type_code => l_balance_type_code
73833 );
73834
73835 -------------------------------------------------------------------------------------------
73836 -- 4262811 - Generate the Accrual Reversal lines
73837 -------------------------------------------------------------------------------------------
73838 BEGIN
73839 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
73840 (g_array_event(p_event_id).array_value_num('header_index'));
73841 IF l_acc_rev_flag IS NULL THEN
73842 l_acc_rev_flag := 'N';
73843 END IF;
73844 EXCEPTION
73845 WHEN OTHERS THEN
73846 l_acc_rev_flag := 'N';
73847 END;
73848 --
73849 IF (l_acc_rev_flag = 'Y') THEN
73850
73851 -- 4645092 ------------------------------------------------------------------------------
73852 -- To allow MPA report to determine if it should generate report process
73853 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
73854 ------------------------------------------------------------------------------------------
73855
73856 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
73857 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
73858
73859 --
73860 -- Update the line information that should be overwritten
73861 --
73862 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
73863 p_header_num => 1);
73864 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
73865
73866 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
73867
73868 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
73872 --
73869 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
73870 END IF;
73871
73873 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
73874 --
73875 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
73876 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
73877 ELSE
73878 ---------------------------------------------------------------------------------------------------
73879 -- 4262811a Switch Sign
73880 ---------------------------------------------------------------------------------------------------
73881 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
73882 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
73883 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73884 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
73885 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73886 -- 5132302
73887 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
73888 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73889
73890 END IF;
73891
73892 -- 4955764
73893 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
73894 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
73895
73896
73897 XLA_AE_LINES_PKG.ValidateCurrentLine;
73898 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
73899
73900 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
73901 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
73902 ,p_balance_type_code => l_balance_type_code);
73903
73904 END IF;
73905
73906 -----------------------------------------------------------------------------------------
73907 -- 4262811 Multiperiod Accounting
73908 -----------------------------------------------------------------------------------------
73909 -- No MPA option is assigned.
73910
73911
73912 END IF;
73913 END IF;
73914 --
73915
73916 --
73917 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73918 trace
73919 (p_msg => 'END of AcctLineType_147'
73920 ,p_level => C_LEVEL_PROCEDURE
73921 ,p_module => l_log_module);
73922 END IF;
73923 --
73924 EXCEPTION
73925 WHEN xla_exceptions_pkg.application_exception THEN
73926 RAISE;
73927 WHEN OTHERS THEN
73928 xla_exceptions_pkg.raise_message
73929 (p_location => 'XLA_00275_AAD_S_000015_PKG.AcctLineType_147');
73930 END AcctLineType_147;
73931 --
73932
73933 ---------------------------------------
73934 --
73935 -- PRIVATE PROCEDURE
73936 -- insert_sources_148
73937 --
73938 ----------------------------------------
73939 --
73940 PROCEDURE insert_sources_148(
73941 p_target_ledger_id IN NUMBER
73942 , p_language IN VARCHAR2
73943 , p_sla_ledger_id IN NUMBER
73944 , p_pad_start_date IN DATE
73945 , p_pad_end_date IN DATE
73946 )
73947 IS
73948
73949 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BORROWED_AND_LENT_ADJ_ALL';
73950 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BORROWED_AND_LENT_ADJ';
73951 p_apps_owner VARCHAR2(30);
73952 l_log_module VARCHAR2(240);
73953 BEGIN
73954 IF g_log_enabled THEN
73955 l_log_module := C_DEFAULT_MODULE||'.insert_sources_148';
73956 END IF;
73957 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73958
73959 trace
73960 (p_msg => 'BEGIN of insert_sources_148'
73961 ,p_level => C_LEVEL_PROCEDURE
73962 ,p_module => l_log_module);
73963
73964 END IF;
73965
73966 -- select APPS owner
73967 SELECT oracle_username
73968 INTO p_apps_owner
73969 FROM fnd_oracle_userid
73970 WHERE read_only_flag = 'U'
73971 ;
73972
73973 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
73974 trace
73975 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
73976 ' - p_language = '||p_language||
73977 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
73978 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
73979 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
73980 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
73981 ,p_level => C_LEVEL_STATEMENT
73982 ,p_module => l_log_module);
73983 END IF;
73984
73985
73986 --
73987 INSERT INTO xla_diag_sources --hdr2
73988 (
73989 event_id
73990 , ledger_id
73991 , sla_ledger_id
73992 , description_language
73993 , object_name
73994 , object_type_code
73995 , line_number
73996 , source_application_id
73997 , source_type_code
73998 , source_code
73999 , source_value
74000 , source_meaning
74001 , created_by
74002 , creation_date
74003 , last_update_date
74004 , last_updated_by
74005 , last_update_login
74006 , program_update_date
74007 , program_application_id
74008 , program_id
74012 event_id
74009 , request_id
74010 )
74011 SELECT
74013 , p_target_ledger_id
74014 , p_sla_ledger_id
74015 , p_language
74016 , object_name
74017 , object_type_code
74018 , line_number
74019 , source_application_id
74020 , source_type_code
74021 , source_code
74022 , SUBSTR(source_value ,1,1996)
74023 , SUBSTR(source_meaning ,1,200)
74024 , xla_environment_pkg.g_Usr_Id
74025 , TRUNC(SYSDATE)
74026 , TRUNC(SYSDATE)
74027 , xla_environment_pkg.g_Usr_Id
74028 , xla_environment_pkg.g_Login_Id
74029 , TRUNC(SYSDATE)
74030 , xla_environment_pkg.g_Prog_Appl_Id
74031 , xla_environment_pkg.g_Prog_Id
74032 , xla_environment_pkg.g_Req_Id
74033 FROM (
74034 SELECT xet.event_id event_id
74035 , 0 line_number
74036 , CASE r
74037 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
74038 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
74039 WHEN 3 THEN 'PA_XLA_EXP_HEADER_V'
74040
74041 ELSE null
74042 END object_name
74043 , CASE r
74044 WHEN 1 THEN 'HEADER'
74045 WHEN 2 THEN 'HEADER'
74046 WHEN 3 THEN 'HEADER'
74047
74048 ELSE null
74049 END object_type_code
74050 , CASE r
74051 WHEN 1 THEN '275'
74052 WHEN 2 THEN '275'
74053 WHEN 3 THEN '275'
74054
74055 ELSE null
74056 END source_application_id
74057 , 'S' source_type_code
74058 , CASE r
74059 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
74060 WHEN 2 THEN 'TP_AMT_TYPE_CODE'
74061 WHEN 3 THEN 'GL_DATE'
74062
74063 ELSE null
74064 END source_code
74065 , CASE r
74066 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
74067 WHEN 2 THEN TO_CHAR(h2.TP_AMT_TYPE_CODE)
74068 WHEN 3 THEN TO_CHAR(h2.GL_DATE)
74069
74070 ELSE null
74071 END source_value
74072 , CASE r
74073 WHEN 2 THEN fvl73.meaning
74074
74075 ELSE null
74076 END source_meaning
74077 FROM xla_events_gt xet
74078 , PA_XLA_EXP_HEADER_V h2
74079 , fnd_lookup_values fvl73
74080 ,(select rownum r from all_objects where rownum <= 3 and owner = p_apps_owner)
74081 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
74082 AND xet.event_class_code = C_EVENT_CLASS_CODE
74083 AND h2.event_id = xet.event_id
74084 AND fvl73.lookup_type(+) = 'TP_AMOUNT_TYPE'
74085 AND fvl73.lookup_code(+) = h2.TP_AMT_TYPE_CODE
74086 AND fvl73.view_application_id(+) = 275
74087 AND fvl73.language(+) = USERENV('LANG')
74088
74089 )
74090 ;
74091 --
74092 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74093
74094 trace
74095 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
74096 ,p_level => C_LEVEL_STATEMENT
74097 ,p_module => l_log_module);
74098
74099 END IF;
74100 --
74101
74102
74103
74104 --
74105 INSERT INTO xla_diag_sources --line2
74106 (
74107 event_id
74108 , ledger_id
74109 , sla_ledger_id
74110 , description_language
74111 , object_name
74112 , object_type_code
74113 , line_number
74114 , source_application_id
74115 , source_type_code
74116 , source_code
74117 , source_value
74118 , source_meaning
74119 , created_by
74120 , creation_date
74121 , last_update_date
74122 , last_updated_by
74123 , last_update_login
74124 , program_update_date
74125 , program_application_id
74126 , program_id
74127 , request_id
74128 )
74129 SELECT event_id
74130 , p_target_ledger_id
74131 , p_sla_ledger_id
74132 , p_language
74133 , object_name
74134 , object_type_code
74135 , line_number
74136 , source_application_id
74137 , source_type_code
74138 , source_code
74139 , SUBSTR(source_value,1,1996)
74140 , SUBSTR(source_meaning ,1,200)
74141 , xla_environment_pkg.g_Usr_Id
74142 , TRUNC(SYSDATE)
74143 , TRUNC(SYSDATE)
74144 , xla_environment_pkg.g_Usr_Id
74145 , xla_environment_pkg.g_Login_Id
74146 , TRUNC(SYSDATE)
74147 , xla_environment_pkg.g_Prog_Appl_Id
74148 , xla_environment_pkg.g_Prog_Id
74149 , xla_environment_pkg.g_Req_Id
74150 FROM (
74151 SELECT xet.event_id event_id
74152 , l1.line_number line_number
74153 , CASE r
74154 WHEN 1 THEN 'PA_XLA_CCDL_LINES_V'
74155 WHEN 2 THEN 'PA_XLA_CCDL_LINES_V'
74156 WHEN 3 THEN 'PA_XLA_CCDL_LINES_V'
74157 WHEN 4 THEN 'PA_XLA_CCDL_LINES_V'
74158 WHEN 5 THEN 'PA_XLA_CCDL_LINES_V'
74159 WHEN 6 THEN 'PA_XLA_CCDL_LINES_V'
74160 WHEN 7 THEN 'PA_XLA_CCDL_LINES_V'
74161 WHEN 8 THEN 'PA_XLA_CCDL_LINES_V'
74162 WHEN 9 THEN 'PA_XLA_CCDL_LINES_V'
74166 WHEN 13 THEN 'PA_XLA_CCDL_LINES_V'
74163 WHEN 10 THEN 'PA_XLA_CCDL_LINES_V'
74164 WHEN 11 THEN 'PA_XLA_CCDL_LINES_V'
74165 WHEN 12 THEN 'PA_XLA_CCDL_LINES_V'
74167 WHEN 14 THEN 'PA_XLA_CCDL_LINES_V'
74168 WHEN 15 THEN 'PA_XLA_CCDL_LINES_V'
74169 WHEN 16 THEN 'PA_XLA_CCDL_LINES_V'
74170 WHEN 17 THEN 'PA_XLA_CCDL_LINES_V'
74171 WHEN 18 THEN 'PA_XLA_CCDL_LINES_V'
74172
74173 ELSE null
74174 END object_name
74175 , CASE r
74176 WHEN 1 THEN 'LINE'
74177 WHEN 2 THEN 'LINE'
74178 WHEN 3 THEN 'LINE'
74179 WHEN 4 THEN 'LINE'
74180 WHEN 5 THEN 'LINE'
74181 WHEN 6 THEN 'LINE'
74182 WHEN 7 THEN 'LINE'
74183 WHEN 8 THEN 'LINE'
74184 WHEN 9 THEN 'LINE'
74185 WHEN 10 THEN 'LINE'
74186 WHEN 11 THEN 'LINE'
74187 WHEN 12 THEN 'LINE'
74188 WHEN 13 THEN 'LINE'
74189 WHEN 14 THEN 'LINE'
74190 WHEN 15 THEN 'LINE'
74191 WHEN 16 THEN 'LINE'
74192 WHEN 17 THEN 'LINE'
74193 WHEN 18 THEN 'LINE'
74194
74195 ELSE null
74196 END object_type_code
74197 , CASE r
74198 WHEN 1 THEN '275'
74199 WHEN 2 THEN '275'
74200 WHEN 3 THEN '275'
74201 WHEN 4 THEN '275'
74202 WHEN 5 THEN '275'
74203 WHEN 6 THEN '275'
74204 WHEN 7 THEN '275'
74205 WHEN 8 THEN '275'
74206 WHEN 9 THEN '275'
74207 WHEN 10 THEN '275'
74208 WHEN 11 THEN '275'
74209 WHEN 12 THEN '275'
74210 WHEN 13 THEN '275'
74211 WHEN 14 THEN '275'
74212 WHEN 15 THEN '275'
74213 WHEN 16 THEN '275'
74214 WHEN 17 THEN '275'
74215 WHEN 18 THEN '275'
74216
74217 ELSE null
74218 END source_application_id
74219 , 'S' source_type_code
74220 , CASE r
74221 WHEN 1 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
74222 WHEN 2 THEN 'PROVIDER_CCID'
74223 WHEN 3 THEN 'ADJ_PROVIDER_CCID'
74224 WHEN 4 THEN 'ADJ_RECEIVER_CCID'
74225 WHEN 5 THEN 'RECEIVER_CCID'
74226 WHEN 6 THEN 'REVERSING_LINE_FLAG'
74227 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
74228 WHEN 8 THEN 'ENTERED_CURRENCY_CODE'
74229 WHEN 9 THEN 'EXCHANGE_RATE_DATE'
74230 WHEN 10 THEN 'EXCHANGE_RATE'
74231 WHEN 11 THEN 'EXCHANGE_RATE_TYPE'
74232 WHEN 12 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
74233 WHEN 13 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
74234 WHEN 14 THEN 'LINE_NUMBER'
74235 WHEN 15 THEN 'LINE_TYPE'
74236 WHEN 16 THEN 'LINE_NUM_REVERSED'
74237 WHEN 17 THEN 'ENTERED_AMOUNT'
74238 WHEN 18 THEN 'ACCT_AMOUNT'
74239
74240 ELSE null
74241 END source_code
74242 , CASE r
74243 WHEN 1 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
74244 WHEN 2 THEN TO_CHAR(l1.PROVIDER_CCID)
74245 WHEN 3 THEN TO_CHAR(l1.ADJ_PROVIDER_CCID)
74246 WHEN 4 THEN TO_CHAR(l1.ADJ_RECEIVER_CCID)
74247 WHEN 5 THEN TO_CHAR(l1.RECEIVER_CCID)
74248 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
74249 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
74250 WHEN 8 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
74251 WHEN 9 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
74252 WHEN 10 THEN TO_CHAR(l1.EXCHANGE_RATE)
74253 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
74254 WHEN 12 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
74255 WHEN 13 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
74256 WHEN 14 THEN TO_CHAR(l1.LINE_NUMBER)
74257 WHEN 15 THEN TO_CHAR(l1.LINE_TYPE)
74258 WHEN 16 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
74259 WHEN 17 THEN TO_CHAR(l1.ENTERED_AMOUNT)
74260 WHEN 18 THEN TO_CHAR(l1.ACCT_AMOUNT)
74261
74262 ELSE null
74263 END source_value
74264 , CASE r
74265 WHEN 1 THEN XLA_00275_AAD_S_000015_PKG.GetMeaning(
74266 103371
74267 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
74268 ,'ALLOW_OVERRIDE_CCID_FLAG'
74269 ,'S'
74270 ,275)
74271 WHEN 15 THEN fvl35.meaning
74272
74273 ELSE null
74274 END source_meaning
74275 FROM xla_events_gt xet
74276 , PA_XLA_CCDL_LINES_V l1
74277 , fnd_lookup_values fvl35
74278 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
74279 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
74280 AND xet.event_class_code = C_EVENT_CLASS_CODE
74281 AND l1.event_id = xet.event_id
74282 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
74283 AND fvl35.lookup_code(+) = l1.LINE_TYPE
74284 AND fvl35.view_application_id(+) = 275
74288 ;
74285 AND fvl35.language(+) = USERENV('LANG')
74286
74287 )
74289 --
74290 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74291
74292 trace
74293 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
74294 ,p_level => C_LEVEL_STATEMENT
74295 ,p_module => l_log_module);
74296
74297 END IF;
74298
74299
74300 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74301 trace
74302 (p_msg => 'END of insert_sources_148'
74303 ,p_level => C_LEVEL_PROCEDURE
74304 ,p_module => l_log_module);
74305 END IF;
74306 EXCEPTION
74307 WHEN xla_exceptions_pkg.application_exception THEN
74308 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
74309 trace
74310 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
74311 ,p_level => C_LEVEL_EXCEPTION
74312 ,p_module => l_log_module);
74313 END IF;
74314 RAISE;
74315 WHEN OTHERS THEN
74316 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
74317 trace
74318 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
74319 ,p_level => C_LEVEL_EXCEPTION
74320 ,p_module => l_log_module);
74321 END IF;
74322 xla_exceptions_pkg.raise_message
74323 (p_location => 'XLA_00275_AAD_S_000015_PKG.insert_sources_148');
74324 END insert_sources_148;
74325 --
74326
74327 ---------------------------------------
74328 --
74329 -- PRIVATE FUNCTION
74330 -- EventClass_148
74331 --
74332 ----------------------------------------
74333 --
74334 FUNCTION EventClass_148
74335 (p_application_id IN NUMBER
74336 ,p_base_ledger_id IN NUMBER
74337 ,p_target_ledger_id IN NUMBER
74338 ,p_language IN VARCHAR2
74339 ,p_currency_code IN VARCHAR2
74340 ,p_sla_ledger_id IN NUMBER
74341 ,p_pad_start_date IN DATE
74342 ,p_pad_end_date IN DATE
74343 ,p_primary_ledger_id IN NUMBER)
74344 RETURN BOOLEAN IS
74345 --
74346 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BORROWED_AND_LENT_ADJ_ALL';
74347 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BORROWED_AND_LENT_ADJ';
74348
74349 l_calculate_acctd_flag VARCHAR2(1) :='N';
74350 l_calculate_g_l_flag VARCHAR2(1) :='N';
74351 --
74352 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74353 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74354 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
74355 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
74356 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74357 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
74358 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
74359 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74360 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
74361 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
74362 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74363 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74364 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74365 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74366 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
74367 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
74368 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
74369 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
74370 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
74371 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
74372 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
74373 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
74374 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
74375 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
74376
74377 l_event_id NUMBER;
74378 l_previous_event_id NUMBER;
74379 l_first_event_id NUMBER;
74380 l_last_event_id NUMBER;
74381
74382 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
74383 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
74384 --
74385 --
74386 l_result BOOLEAN := TRUE;
74387 l_rows NUMBER := 1000;
74388 l_event_type_name VARCHAR2(80) := 'All';
74389 l_event_class_name VARCHAR2(80) := 'Borrowed and Lent Adjustment';
74390 l_description VARCHAR2(4000);
74391 l_transaction_reversal NUMBER;
74392 l_ae_header_id NUMBER;
74393 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
74394 l_log_module VARCHAR2(240);
74395 --
74396 l_acct_reversal_source VARCHAR2(30);
74397 l_trx_reversal_source VARCHAR2(30);
74398
74399 l_continue_with_lines BOOLEAN := TRUE;
74400 --
74401 l_acc_rev_gl_date_source DATE; -- 4262811
74402 --
74403 type t_array_event_id is table of number index by binary_integer;
74404
74405 l_rec_array_event t_rec_array_event;
74406 l_null_rec_array_event t_rec_array_event;
74407 l_array_ae_header_id xla_number_array_type;
74408 l_actual_flag VARCHAR2(1) := NULL;
74409 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
74413 --
74410 l_balance_type_code VARCHAR2(1) :=NULL;
74411 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
74412
74414 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
74415 --
74416
74417 TYPE t_array_source_33 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
74418 TYPE t_array_source_73 IS TABLE OF PA_XLA_EXP_HEADER_V.TP_AMT_TYPE_CODE%TYPE INDEX BY BINARY_INTEGER;
74419 TYPE t_array_source_75 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
74420
74421 TYPE t_array_source_5 IS TABLE OF PA_XLA_CCDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
74422 TYPE t_array_source_9 IS TABLE OF PA_XLA_CCDL_LINES_V.PROVIDER_CCID%TYPE INDEX BY BINARY_INTEGER;
74423 TYPE t_array_source_10 IS TABLE OF PA_XLA_CCDL_LINES_V.ADJ_PROVIDER_CCID%TYPE INDEX BY BINARY_INTEGER;
74424 TYPE t_array_source_11 IS TABLE OF PA_XLA_CCDL_LINES_V.ADJ_RECEIVER_CCID%TYPE INDEX BY BINARY_INTEGER;
74425 TYPE t_array_source_16 IS TABLE OF PA_XLA_CCDL_LINES_V.RECEIVER_CCID%TYPE INDEX BY BINARY_INTEGER;
74426 TYPE t_array_source_23 IS TABLE OF PA_XLA_CCDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
74427 TYPE t_array_source_24 IS TABLE OF PA_XLA_CCDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
74428 TYPE t_array_source_26 IS TABLE OF PA_XLA_CCDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
74429 TYPE t_array_source_28 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
74430 TYPE t_array_source_29 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
74431 TYPE t_array_source_30 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
74432 TYPE t_array_source_31 IS TABLE OF PA_XLA_CCDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
74433 TYPE t_array_source_32 IS TABLE OF PA_XLA_CCDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
74434 TYPE t_array_source_34 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
74435 TYPE t_array_source_35 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
74436 TYPE t_array_source_36 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
74437 TYPE t_array_source_42 IS TABLE OF PA_XLA_CCDL_LINES_V.ENTERED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
74438 TYPE t_array_source_43 IS TABLE OF PA_XLA_CCDL_LINES_V.ACCT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
74439
74440 l_array_source_33 t_array_source_33;
74441 l_array_source_73 t_array_source_73;
74442 l_array_source_73_meaning t_array_lookup_meaning;
74443 l_array_source_75 t_array_source_75;
74444
74445 l_array_source_5 t_array_source_5;
74446 l_array_source_9 t_array_source_9;
74447 l_array_source_10 t_array_source_10;
74448 l_array_source_11 t_array_source_11;
74449 l_array_source_16 t_array_source_16;
74450 l_array_source_23 t_array_source_23;
74451 l_array_source_24 t_array_source_24;
74452 l_array_source_26 t_array_source_26;
74453 l_array_source_28 t_array_source_28;
74454 l_array_source_29 t_array_source_29;
74455 l_array_source_30 t_array_source_30;
74456 l_array_source_31 t_array_source_31;
74457 l_array_source_32 t_array_source_32;
74458 l_array_source_34 t_array_source_34;
74459 l_array_source_35 t_array_source_35;
74460 l_array_source_35_meaning t_array_lookup_meaning;
74461 l_array_source_36 t_array_source_36;
74462 l_array_source_42 t_array_source_42;
74463 l_array_source_43 t_array_source_43;
74464
74465 --
74466 CURSOR header_cur
74467 IS
74468 SELECT /*+ leading(xet) cardinality(xet,1) */
74469 -- Event Class Code: BORROWED_AND_LENT_ADJ
74470 xet.entity_id
74471 ,xet.legal_entity_id
74472 ,xet.entity_code
74473 ,xet.transaction_number
74474 ,xet.event_id
74475 ,xet.event_class_code
74476 ,xet.event_type_code
74477 ,xet.event_number
74478 ,xet.event_date
74479 ,xet.transaction_date
74480 ,xet.reference_num_1
74481 ,xet.reference_num_2
74482 ,xet.reference_num_3
74483 ,xet.reference_num_4
74484 ,xet.reference_char_1
74485 ,xet.reference_char_2
74486 ,xet.reference_char_3
74487 ,xet.reference_char_4
74488 ,xet.reference_date_1
74489 ,xet.reference_date_2
74490 ,xet.reference_date_3
74491 ,xet.reference_date_4
74492 ,xet.event_created_by
74493 ,xet.budgetary_control_flag
74494 , h2.EXPENDITURE_ITEM_ID source_33
74495 , h2.TP_AMT_TYPE_CODE source_73
74496 , fvl73.meaning source_73_meaning
74497 , h2.GL_DATE source_75
74498 FROM xla_events_gt xet
74499 , PA_XLA_EXP_HEADER_V h2
74500 , fnd_lookup_values fvl73
74501 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
74502 and xet.event_class_code = C_EVENT_CLASS_CODE
74503 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
74504 AND fvl73.lookup_type(+) = 'TP_AMOUNT_TYPE'
74505 AND fvl73.lookup_code(+) = h2.TP_AMT_TYPE_CODE
74506 AND fvl73.view_application_id(+) = 275
74507 AND fvl73.language(+) = USERENV('LANG')
74508
74509 ORDER BY event_id
74510 ;
74511
74512
74513 --
74514 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
74515 IS
74516 SELECT /*+ leading(xet) cardinality(xet,1) */
74517 -- Event Class Code: BORROWED_AND_LENT_ADJ
74518 xet.entity_id
74519 ,xet.legal_entity_id
74520 ,xet.entity_code
74521 ,xet.transaction_number
74522 ,xet.event_id
74523 ,xet.event_class_code
74524 ,xet.event_type_code
74525 ,xet.event_number
74526 ,xet.event_date
74527 ,xet.transaction_date
74528 ,xet.reference_num_1
74529 ,xet.reference_num_2
74530 ,xet.reference_num_3
74531 ,xet.reference_num_4
74532 ,xet.reference_char_1
74533 ,xet.reference_char_2
74534 ,xet.reference_char_3
74538 ,xet.reference_date_3
74535 ,xet.reference_char_4
74536 ,xet.reference_date_1
74537 ,xet.reference_date_2
74539 ,xet.reference_date_4
74540 ,xet.event_created_by
74541 ,xet.budgetary_control_flag
74542 , l1.LINE_NUMBER
74543 , l1.ALLOW_OVERRIDE_CCID_FLAG source_5
74544 , l1.PROVIDER_CCID source_9
74545 , l1.ADJ_PROVIDER_CCID source_10
74546 , l1.ADJ_RECEIVER_CCID source_11
74547 , l1.RECEIVER_CCID source_16
74548 , l1.REVERSING_LINE_FLAG source_23
74549 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_24
74550 , l1.ENTERED_CURRENCY_CODE source_26
74551 , l1.EXCHANGE_RATE_DATE source_28
74552 , l1.EXCHANGE_RATE source_29
74553 , l1.EXCHANGE_RATE_TYPE source_30
74554 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_31
74555 , l1.USE_ACT_UPG_ATTRIB_FLAG source_32
74556 , l1.LINE_NUMBER source_34
74557 , l1.LINE_TYPE source_35
74558 , fvl35.meaning source_35_meaning
74559 , l1.LINE_NUM_REVERSED source_36
74560 , l1.ENTERED_AMOUNT source_42
74561 , l1.ACCT_AMOUNT source_43
74562 FROM xla_events_gt xet
74563 , PA_XLA_CCDL_LINES_V l1
74564 , fnd_lookup_values fvl35
74565 WHERE xet.event_id between x_first_event_id and x_last_event_id
74566 and xet.event_date between p_pad_start_date and p_pad_end_date
74567 and xet.event_class_code = C_EVENT_CLASS_CODE
74568 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
74569 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
74570 AND fvl35.lookup_code(+) = l1.LINE_TYPE
74571 AND fvl35.view_application_id(+) = 275
74572 AND fvl35.language(+) = USERENV('LANG')
74573 ;
74574
74575 --
74576 BEGIN
74577 IF g_log_enabled THEN
74578 l_log_module := C_DEFAULT_MODULE||'.EventClass_148';
74579 END IF;
74580 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74581 trace
74582 (p_msg => 'BEGIN of EventClass_148'
74583 ,p_level => C_LEVEL_PROCEDURE
74584 ,p_module => l_log_module);
74585 END IF;
74586
74587 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74588 trace
74589 (p_msg => 'p_application_id = '||p_application_id||
74590 ' - p_base_ledger_id = '||p_base_ledger_id||
74591 ' - p_target_ledger_id = '||p_target_ledger_id||
74592 ' - p_language = '||p_language||
74593 ' - p_currency_code = '||p_currency_code||
74594 ' - p_sla_ledger_id = '||p_sla_ledger_id
74595 ,p_level => C_LEVEL_STATEMENT
74596 ,p_module => l_log_module);
74597 END IF;
74598 --
74599 -- initialze arrays
74600 --
74601 g_array_event.DELETE;
74602 l_rec_array_event := l_null_rec_array_event;
74603 --
74604 --------------------------------------
74605 -- 4262811 Initialze MPA Line Number
74606 --------------------------------------
74607 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
74608
74609 --
74610
74611 --
74612 OPEN header_cur;
74613 --
74614 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74615 trace
74616 (p_msg => 'SQL - FETCH header_cur'
74617 ,p_level => C_LEVEL_STATEMENT
74618 ,p_module => l_log_module);
74619 END IF;
74620 --
74621 LOOP
74622 FETCH header_cur BULK COLLECT INTO
74623 l_array_entity_id
74624 , l_array_legal_entity_id
74625 , l_array_entity_code
74626 , l_array_transaction_num
74627 , l_array_event_id
74628 , l_array_class_code
74629 , l_array_event_type
74630 , l_array_event_number
74631 , l_array_event_date
74632 , l_array_transaction_date
74633 , l_array_reference_num_1
74634 , l_array_reference_num_2
74635 , l_array_reference_num_3
74636 , l_array_reference_num_4
74637 , l_array_reference_char_1
74638 , l_array_reference_char_2
74639 , l_array_reference_char_3
74640 , l_array_reference_char_4
74641 , l_array_reference_date_1
74642 , l_array_reference_date_2
74643 , l_array_reference_date_3
74644 , l_array_reference_date_4
74645 , l_array_event_created_by
74646 , l_array_budgetary_control_flag
74647 , l_array_source_33
74648 , l_array_source_73
74649 , l_array_source_73_meaning
74650 , l_array_source_75
74651 LIMIT l_rows;
74652 --
74653 IF (C_LEVEL_EVENT >= g_log_level) THEN
74654 trace
74655 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
74656 ,p_level => C_LEVEL_EVENT
74657 ,p_module => l_log_module);
74658 END IF;
74659 --
74660 EXIT WHEN l_array_entity_id.COUNT = 0;
74661
74662 -- initialize arrays
74663 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
74664 XLA_AE_LINES_PKG.g_rec_lines := NULL;
74665
74666 --
74667 -- Bug 4458708
74668 --
74669 XLA_AE_LINES_PKG.g_LineNumber := 0;
74670
74671
74672 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
74673 g_last_hdr_idx := l_array_event_id.LAST;
74674 --
74675 -- loop for the headers. Each iteration is for each header extract row
74676 -- fetched in header cursor
74677 --
74678 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
74679
74680 --
74681 -- set event info as cache for other routines to refer event attributes
74682 --
74683 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
74684 (p_application_id => p_application_id
74685 ,p_primary_ledger_id => p_primary_ledger_id
74686 ,p_base_ledger_id => p_base_ledger_id
74687 ,p_target_ledger_id => p_target_ledger_id
74688 ,p_entity_id => l_array_entity_id(hdr_idx)
74692 ,p_event_id => l_array_event_id(hdr_idx)
74689 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
74690 ,p_entity_code => l_array_entity_code(hdr_idx)
74691 ,p_transaction_num => l_array_transaction_num(hdr_idx)
74693 ,p_event_class_code => l_array_class_code(hdr_idx)
74694 ,p_event_type_code => l_array_event_type(hdr_idx)
74695 ,p_event_number => l_array_event_number(hdr_idx)
74696 ,p_event_date => l_array_event_date(hdr_idx)
74697 ,p_transaction_date => l_array_transaction_date(hdr_idx)
74698 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
74699 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
74700 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
74701 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
74702 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
74703 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
74704 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
74705 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
74706 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
74707 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
74708 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
74709 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
74710 ,p_event_created_by => l_array_event_created_by(hdr_idx)
74711 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
74712
74713 --
74714 -- set the status of entry to C_VALID (0)
74715 --
74716 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
74717
74718 --
74719 -- initialize a row for ae header
74720 --
74721 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
74722
74723 l_event_id := l_array_event_id(hdr_idx);
74724
74725 --
74726 -- storing the hdr_idx for event. May be used by line cursor.
74727 --
74728 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
74729
74730 --
74731 -- store sources from header extract. This can be improved to
74732 -- store only those sources from header extract that may be used in lines
74733 --
74734
74735 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
74736 g_array_event(l_event_id).array_value_char('source_73') := l_array_source_73(hdr_idx);
74737 g_array_event(l_event_id).array_value_char('source_73_meaning') := l_array_source_73_meaning(hdr_idx);
74738 g_array_event(l_event_id).array_value_date('source_75') := l_array_source_75(hdr_idx);
74739
74740 --
74741 -- initilaize the status of ae headers for diffrent balance types
74742 -- the status is initialised to C_NOT_CREATED (2)
74743 --
74744 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
74745 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
74746 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
74747
74748 --
74749 -- call api to validate and store accounting attributes for header
74750 --
74751
74752 ------------------------------------------------------------
74753 -- Accrual Reversal : to get date for Standard Source (NONE)
74754 ------------------------------------------------------------
74755 l_acc_rev_gl_date_source := NULL;
74756
74757 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
74758 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_75');
74759
74760
74761 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
74762
74763 XLA_AE_HEADER_PKG.SetJeCategoryName;
74764
74765 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
74766 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
74767 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
74768 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
74769 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
74770
74771
74772 -- No header level analytical criteria
74773
74774 --
74775 --accounting attribute enhancement, bug 3612931
74776 --
74777 l_trx_reversal_source := SUBSTR(NULL, 1,30);
74778
74779 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
74780 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
74781
74782 xla_accounting_err_pkg.build_message
74783 (p_appli_s_name => 'XLA'
74784 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
74785 ,p_token_1 => 'ACCT_ATTR_NAME'
74786 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
74787 ,p_token_2 => 'PRODUCT_NAME'
74788 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
74789 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
74790 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
74791 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
74792
74793 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
74794 --
74795 -- following sets the accounting attributes needed to reverse
74796 -- accounting for a distributeion
74797 --
74798 xla_ae_lines_pkg.SetTrxReversalAttrs
74799 (p_event_id => l_event_id
74800 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
74801 ,p_trx_reversal_source => l_trx_reversal_source);
74802
74803 END IF;
74804
74805
74806 ----------------------------------------------------------------
74810 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
74807 -- 4262811 - update the header statuses to invalid in need be
74808 ----------------------------------------------------------------
74809 --
74811
74812
74813 -----------------------------------------------
74814 -- No accrual reversal for the event class/type
74815 -----------------------------------------------
74816 ----------------------------------------------------------------
74817
74818 --
74819 -- this ends the header loop iteration for one bulk fetch
74820 --
74821 END LOOP;
74822
74823 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
74824 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
74825
74826 --
74827 -- insert dummy rows into lines gt table that were created due to
74828 -- transaction reversals
74829 --
74830 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
74831 l_result := XLA_AE_LINES_PKG.InsertLines;
74832 END IF;
74833
74834 --
74835 -- reset the temp_line_num for each set of events fetched from header
74836 -- cursor rather than doing it for each new event in line cursor
74837 -- Bug 3939231
74838 --
74839 xla_ae_lines_pkg.g_temp_line_num := 0;
74840
74841
74842
74843 --
74844 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
74845 --
74846 --
74847 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74848
74849 trace
74850 (p_msg => 'SQL - FETCH line_cur'
74851 ,p_level => C_LEVEL_STATEMENT
74852 ,p_module => l_log_module);
74853
74854 END IF;
74855 --
74856 --
74857 LOOP
74858 --
74859 FETCH line_cur BULK COLLECT INTO
74860 l_array_entity_id
74861 , l_array_legal_entity_id
74862 , l_array_entity_code
74863 , l_array_transaction_num
74864 , l_array_event_id
74865 , l_array_class_code
74866 , l_array_event_type
74867 , l_array_event_number
74868 , l_array_event_date
74869 , l_array_transaction_date
74870 , l_array_reference_num_1
74871 , l_array_reference_num_2
74872 , l_array_reference_num_3
74873 , l_array_reference_num_4
74874 , l_array_reference_char_1
74875 , l_array_reference_char_2
74876 , l_array_reference_char_3
74877 , l_array_reference_char_4
74878 , l_array_reference_date_1
74879 , l_array_reference_date_2
74880 , l_array_reference_date_3
74881 , l_array_reference_date_4
74882 , l_array_event_created_by
74883 , l_array_budgetary_control_flag
74884 , l_array_extract_line_num
74885 , l_array_source_5
74886 , l_array_source_9
74887 , l_array_source_10
74888 , l_array_source_11
74889 , l_array_source_16
74890 , l_array_source_23
74891 , l_array_source_24
74892 , l_array_source_26
74893 , l_array_source_28
74894 , l_array_source_29
74895 , l_array_source_30
74896 , l_array_source_31
74897 , l_array_source_32
74898 , l_array_source_34
74899 , l_array_source_35
74900 , l_array_source_35_meaning
74901 , l_array_source_36
74902 , l_array_source_42
74903 , l_array_source_43
74904 LIMIT l_rows;
74905
74906 --
74907 IF (C_LEVEL_EVENT >= g_log_level) THEN
74908 trace
74909 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
74910 ,p_level => C_LEVEL_EVENT
74911 ,p_module => l_log_module);
74912 END IF;
74913 --
74914 EXIT WHEN l_array_entity_id.count = 0;
74915
74916 XLA_AE_LINES_PKG.g_rec_lines := null;
74917
74918 --
74919 -- Bug 4458708
74920 --
74921 XLA_AE_LINES_PKG.g_LineNumber := 0;
74922 --
74923 --
74924
74925 FOR Idx IN 1..l_array_event_id.count LOOP
74926 --
74927 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
74928 --
74929 l_event_id := l_array_event_id(idx); -- 5648433
74930
74931 --
74932 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
74933 --
74934
74935 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
74936 (g_array_event(l_event_id).array_value_num('header_index'))
74937 ,'N'
74938 ) <> 'Y'
74939 THEN
74940 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74941 trace
74942 (p_msg => 'Trancaction revesal option is not Y '
74943 ,p_level => C_LEVEL_STATEMENT
74944 ,p_module => l_log_module);
74945 END IF;
74946
74947 --
74948 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
74949 --
74950 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
74951 --
74952 -- set event info as cache for other routines to refer event attributes
74953 --
74954
74955 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
74956 l_previous_event_id := l_event_id;
74957
74958 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
74959 (p_application_id => p_application_id
74960 ,p_primary_ledger_id => p_primary_ledger_id
74961 ,p_base_ledger_id => p_base_ledger_id
74962 ,p_target_ledger_id => p_target_ledger_id
74963 ,p_entity_id => l_array_entity_id(Idx)
74964 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
74965 ,p_entity_code => l_array_entity_code(Idx)
74966 ,p_transaction_num => l_array_transaction_num(Idx)
74970 ,p_event_number => l_array_event_number(Idx)
74967 ,p_event_id => l_array_event_id(Idx)
74968 ,p_event_class_code => l_array_class_code(Idx)
74969 ,p_event_type_code => l_array_event_type(Idx)
74971 ,p_event_date => l_array_event_date(Idx)
74972 ,p_transaction_date => l_array_transaction_date(Idx)
74973 ,p_reference_num_1 => l_array_reference_num_1(Idx)
74974 ,p_reference_num_2 => l_array_reference_num_2(Idx)
74975 ,p_reference_num_3 => l_array_reference_num_3(Idx)
74976 ,p_reference_num_4 => l_array_reference_num_4(Idx)
74977 ,p_reference_char_1 => l_array_reference_char_1(Idx)
74978 ,p_reference_char_2 => l_array_reference_char_2(Idx)
74979 ,p_reference_char_3 => l_array_reference_char_3(Idx)
74980 ,p_reference_char_4 => l_array_reference_char_4(Idx)
74981 ,p_reference_date_1 => l_array_reference_date_1(Idx)
74982 ,p_reference_date_2 => l_array_reference_date_2(Idx)
74983 ,p_reference_date_3 => l_array_reference_date_3(Idx)
74984 ,p_reference_date_4 => l_array_reference_date_4(Idx)
74985 ,p_event_created_by => l_array_event_created_by(Idx)
74986 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
74987 --
74988 END IF;
74989
74990
74991
74992 --
74993 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
74994
74995 l_acct_reversal_source := SUBSTR(l_array_source_23(Idx), 1,30);
74996
74997 IF l_continue_with_lines THEN
74998 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
74999 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
75000
75001 xla_accounting_err_pkg.build_message
75002 (p_appli_s_name => 'XLA'
75003 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
75004 ,p_token_1 => 'LINE_NUMBER'
75005 ,p_value_1 => l_array_extract_line_num(Idx)
75006 ,p_token_2 => 'PRODUCT_NAME'
75007 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
75008 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
75009 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
75010 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
75011
75012 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
75013 --
75014 -- following sets the accounting attributes needed to reverse
75015 -- accounting for a distributeion
75016 --
75017
75018 --
75019 -- 5217187
75020 --
75021 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
75022 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
75023 g_array_event(l_event_id).array_value_num('header_index'));
75024 --
75025 --
75026
75027 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
75028 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_23(Idx);
75029 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
75030 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_24(Idx);
75031 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
75032 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_9(Idx));
75033 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
75034 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_42(Idx);
75035 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
75036 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_26(Idx);
75037 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
75038 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_43(Idx);
75039 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
75040 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_28(Idx);
75041 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
75042 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_29(Idx);
75043 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
75044 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_30(Idx);
75045 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
75046 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_31(Idx);
75047 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
75048 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_16(Idx));
75049 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
75050 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_42(Idx);
75051 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
75052 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_26(Idx);
75053 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
75054 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_43(Idx);
75055 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
75056 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_28(Idx);
75057 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
75058 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_29(Idx);
75059 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
75060 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_30(Idx);
75061 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
75062 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_32(Idx);
75066 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_34(Idx);
75063 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
75064 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_33');
75065 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
75067 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
75068 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_35(Idx);
75069 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
75070 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_33');
75071 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
75072 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_36(Idx);
75073 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
75074 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_35(Idx);
75075
75076
75077 xla_ae_lines_pkg.SetAcctReversalAttrs
75078 (p_event_id => l_event_id
75079 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
75080 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75081 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
75082 END IF;
75083
75084 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
75085 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
75086
75087 --
75088 AcctLineType_63 (
75089 p_application_id => p_application_id
75090 ,p_event_id => l_event_id
75091 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75092 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75093 ,p_actual_flag => l_actual_flag
75094 ,p_balance_type_code => l_balance_type_code
75095 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75096
75097 , p_source_5 => l_array_source_5(Idx)
75098 , p_source_9 => l_array_source_9(Idx)
75099 , p_source_10 => l_array_source_10(Idx)
75100 , p_source_16 => l_array_source_16(Idx)
75101 , p_source_23 => l_array_source_23(Idx)
75102 , p_source_24 => l_array_source_24(Idx)
75103 , p_source_26 => l_array_source_26(Idx)
75104 , p_source_28 => l_array_source_28(Idx)
75105 , p_source_29 => l_array_source_29(Idx)
75106 , p_source_30 => l_array_source_30(Idx)
75107 , p_source_31 => l_array_source_31(Idx)
75108 , p_source_32 => l_array_source_32(Idx)
75109 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
75110 , p_source_34 => l_array_source_34(Idx)
75111 , p_source_35 => l_array_source_35(Idx)
75112 , p_source_35_meaning => l_array_source_35_meaning(Idx)
75113 , p_source_36 => l_array_source_36(Idx)
75114 , p_source_42 => l_array_source_42(Idx)
75115 , p_source_43 => l_array_source_43(Idx)
75116 , p_source_73 => g_array_event(l_event_id).array_value_char('source_73')
75117 , p_source_73_meaning => g_array_event(l_event_id).array_value_char('source_73_meaning')
75118 );
75119 If(l_balance_type_code = 'A') THEN
75120 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75121 END IF;
75122
75123 --
75124
75125
75126 --
75127 AcctLineType_65 (
75128 p_application_id => p_application_id
75129 ,p_event_id => l_event_id
75130 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75131 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75132 ,p_actual_flag => l_actual_flag
75133 ,p_balance_type_code => l_balance_type_code
75134 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75135
75136 , p_source_5 => l_array_source_5(Idx)
75137 , p_source_9 => l_array_source_9(Idx)
75138 , p_source_10 => l_array_source_10(Idx)
75139 , p_source_16 => l_array_source_16(Idx)
75140 , p_source_23 => l_array_source_23(Idx)
75141 , p_source_24 => l_array_source_24(Idx)
75142 , p_source_26 => l_array_source_26(Idx)
75143 , p_source_28 => l_array_source_28(Idx)
75144 , p_source_29 => l_array_source_29(Idx)
75145 , p_source_30 => l_array_source_30(Idx)
75146 , p_source_31 => l_array_source_31(Idx)
75147 , p_source_32 => l_array_source_32(Idx)
75148 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
75149 , p_source_34 => l_array_source_34(Idx)
75150 , p_source_35 => l_array_source_35(Idx)
75151 , p_source_35_meaning => l_array_source_35_meaning(Idx)
75152 , p_source_36 => l_array_source_36(Idx)
75153 , p_source_42 => l_array_source_42(Idx)
75154 , p_source_43 => l_array_source_43(Idx)
75155 , p_source_73 => g_array_event(l_event_id).array_value_char('source_73')
75156 , p_source_73_meaning => g_array_event(l_event_id).array_value_char('source_73_meaning')
75157 );
75158 If(l_balance_type_code = 'A') THEN
75159 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75160 END IF;
75161
75162 --
75163
75164
75165 --
75166 AcctLineType_119 (
75167 p_application_id => p_application_id
75168 ,p_event_id => l_event_id
75169 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75170 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75171 ,p_actual_flag => l_actual_flag
75172 ,p_balance_type_code => l_balance_type_code
75173 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75174
75175 , p_source_5 => l_array_source_5(Idx)
75176 , p_source_9 => l_array_source_9(Idx)
75177 , p_source_11 => l_array_source_11(Idx)
75178 , p_source_16 => l_array_source_16(Idx)
75179 , p_source_23 => l_array_source_23(Idx)
75180 , p_source_24 => l_array_source_24(Idx)
75181 , p_source_26 => l_array_source_26(Idx)
75182 , p_source_28 => l_array_source_28(Idx)
75183 , p_source_29 => l_array_source_29(Idx)
75184 , p_source_30 => l_array_source_30(Idx)
75185 , p_source_31 => l_array_source_31(Idx)
75186 , p_source_32 => l_array_source_32(Idx)
75187 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
75188 , p_source_34 => l_array_source_34(Idx)
75189 , p_source_35 => l_array_source_35(Idx)
75190 , p_source_35_meaning => l_array_source_35_meaning(Idx)
75194 , p_source_73 => g_array_event(l_event_id).array_value_char('source_73')
75191 , p_source_36 => l_array_source_36(Idx)
75192 , p_source_42 => l_array_source_42(Idx)
75193 , p_source_43 => l_array_source_43(Idx)
75195 , p_source_73_meaning => g_array_event(l_event_id).array_value_char('source_73_meaning')
75196 );
75197 If(l_balance_type_code = 'A') THEN
75198 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75199 END IF;
75200
75201 --
75202
75203
75204 --
75205 AcctLineType_121 (
75206 p_application_id => p_application_id
75207 ,p_event_id => l_event_id
75208 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75209 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75210 ,p_actual_flag => l_actual_flag
75211 ,p_balance_type_code => l_balance_type_code
75212 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75213
75214 , p_source_5 => l_array_source_5(Idx)
75215 , p_source_9 => l_array_source_9(Idx)
75216 , p_source_11 => l_array_source_11(Idx)
75217 , p_source_16 => l_array_source_16(Idx)
75218 , p_source_23 => l_array_source_23(Idx)
75219 , p_source_24 => l_array_source_24(Idx)
75220 , p_source_26 => l_array_source_26(Idx)
75221 , p_source_28 => l_array_source_28(Idx)
75222 , p_source_29 => l_array_source_29(Idx)
75223 , p_source_30 => l_array_source_30(Idx)
75224 , p_source_31 => l_array_source_31(Idx)
75225 , p_source_32 => l_array_source_32(Idx)
75226 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
75227 , p_source_34 => l_array_source_34(Idx)
75228 , p_source_35 => l_array_source_35(Idx)
75229 , p_source_35_meaning => l_array_source_35_meaning(Idx)
75230 , p_source_36 => l_array_source_36(Idx)
75231 , p_source_42 => l_array_source_42(Idx)
75232 , p_source_43 => l_array_source_43(Idx)
75233 , p_source_73 => g_array_event(l_event_id).array_value_char('source_73')
75234 , p_source_73_meaning => g_array_event(l_event_id).array_value_char('source_73_meaning')
75235 );
75236 If(l_balance_type_code = 'A') THEN
75237 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75238 END IF;
75239
75240 --
75241
75242 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
75243 -- or secondary ledger that has different currency with primary
75244 -- or alc that is calculated by sla
75245 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
75246 (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'))
75247
75248 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
75249 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
75250 AND (l_actual_flag = 'A')) THEN
75251 XLA_AE_LINES_PKG.CreateGainOrLossLines(
75252 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
75253 ,p_application_id => p_application_id
75254 ,p_amb_context_code => 'DEFAULT'
75255 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
75256 ,p_event_class_code => C_EVENT_CLASS_CODE
75257 ,p_event_type_code => C_EVENT_TYPE_CODE
75258
75259 ,p_gain_ccid => -1
75260 ,p_loss_ccid => -1
75261
75262 ,p_actual_flag => l_actual_flag
75263 ,p_enc_flag => null
75264 ,p_actual_g_l_ref => l_actual_gain_loss_ref
75265 ,p_enc_g_l_ref => null
75266 );
75267 END IF;
75268 END IF;
75269 END IF;
75270
75271 ELSE
75272 --
75273 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
75274 --
75275 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75276 trace
75277 (p_msg => 'Trancaction revesal option is Y'
75278 ,p_level => C_LEVEL_STATEMENT
75279 ,p_module => l_log_module);
75280 END IF;
75281 END IF;
75282
75283 END LOOP;
75284 l_result := XLA_AE_LINES_PKG.InsertLines ;
75285 end loop;
75286 close line_cur;
75287
75288
75289 --
75290 -- insert headers into xla_ae_headers_gt table
75291 --
75292 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
75293
75294 -- insert into errors table here.
75295
75296 END LOOP;
75297
75298 --
75299 -- 4865292
75300 --
75301 -- Compare g_hdr_extract_count with event count in
75302 -- CreateHeadersAndLines.
75303 --
75304 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
75305
75306 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75307 trace (p_msg => '# rows extracted from header extract objects '
75308 || ' (running total): '
75309 || g_hdr_extract_count
75310 ,p_level => C_LEVEL_STATEMENT
75311 ,p_module => l_log_module);
75312 END IF;
75313
75314 CLOSE header_cur;
75315 --
75316
75317 --
75318 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75319 trace
75320 (p_msg => 'END of EventClass_148'
75321 ,p_level => C_LEVEL_PROCEDURE
75322 ,p_module => l_log_module);
75323 END IF;
75324 --
75325 RETURN l_result;
75326 EXCEPTION
75327 WHEN xla_exceptions_pkg.application_exception THEN
75328
75329 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
75330
75331
75332 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
75333
75334 RAISE;
75335 WHEN OTHERS THEN
75336 xla_exceptions_pkg.raise_message
75337 (p_location => 'XLA_00275_AAD_S_000015_PKG.EventClass_148');
75338 END EventClass_148;
75339 --
75340
75341 ---------------------------------------
75342 --
75346 ----------------------------------------
75343 -- PRIVATE PROCEDURE
75344 -- insert_sources_149
75345 --
75347 --
75348 PROCEDURE insert_sources_149(
75349 p_target_ledger_id IN NUMBER
75350 , p_language IN VARCHAR2
75351 , p_sla_ledger_id IN NUMBER
75352 , p_pad_start_date IN DATE
75353 , p_pad_end_date IN DATE
75354 )
75355 IS
75356
75357 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BORROWED_AND_LENT_ALL';
75358 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BORROWED_AND_LENT';
75359 p_apps_owner VARCHAR2(30);
75360 l_log_module VARCHAR2(240);
75361 BEGIN
75362 IF g_log_enabled THEN
75363 l_log_module := C_DEFAULT_MODULE||'.insert_sources_149';
75364 END IF;
75365 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75366
75367 trace
75368 (p_msg => 'BEGIN of insert_sources_149'
75369 ,p_level => C_LEVEL_PROCEDURE
75370 ,p_module => l_log_module);
75371
75372 END IF;
75373
75374 -- select APPS owner
75375 SELECT oracle_username
75376 INTO p_apps_owner
75377 FROM fnd_oracle_userid
75378 WHERE read_only_flag = 'U'
75379 ;
75380
75381 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75382 trace
75383 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
75384 ' - p_language = '||p_language||
75385 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
75386 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
75387 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
75388 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
75389 ,p_level => C_LEVEL_STATEMENT
75390 ,p_module => l_log_module);
75391 END IF;
75392
75393
75394 --
75395 INSERT INTO xla_diag_sources --hdr2
75396 (
75397 event_id
75398 , ledger_id
75399 , sla_ledger_id
75400 , description_language
75401 , object_name
75402 , object_type_code
75403 , line_number
75404 , source_application_id
75405 , source_type_code
75406 , source_code
75407 , source_value
75408 , source_meaning
75409 , created_by
75410 , creation_date
75411 , last_update_date
75412 , last_updated_by
75413 , last_update_login
75414 , program_update_date
75415 , program_application_id
75416 , program_id
75417 , request_id
75418 )
75419 SELECT
75420 event_id
75421 , p_target_ledger_id
75422 , p_sla_ledger_id
75423 , p_language
75424 , object_name
75425 , object_type_code
75426 , line_number
75427 , source_application_id
75428 , source_type_code
75429 , source_code
75430 , SUBSTR(source_value ,1,1996)
75431 , SUBSTR(source_meaning ,1,200)
75432 , xla_environment_pkg.g_Usr_Id
75433 , TRUNC(SYSDATE)
75434 , TRUNC(SYSDATE)
75435 , xla_environment_pkg.g_Usr_Id
75436 , xla_environment_pkg.g_Login_Id
75437 , TRUNC(SYSDATE)
75438 , xla_environment_pkg.g_Prog_Appl_Id
75439 , xla_environment_pkg.g_Prog_Id
75440 , xla_environment_pkg.g_Req_Id
75441 FROM (
75442 SELECT xet.event_id event_id
75443 , 0 line_number
75444 , CASE r
75445 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
75446 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
75447 WHEN 3 THEN 'PA_XLA_EXP_HEADER_V'
75448
75449 ELSE null
75450 END object_name
75451 , CASE r
75452 WHEN 1 THEN 'HEADER'
75453 WHEN 2 THEN 'HEADER'
75454 WHEN 3 THEN 'HEADER'
75455
75456 ELSE null
75457 END object_type_code
75458 , CASE r
75459 WHEN 1 THEN '275'
75460 WHEN 2 THEN '275'
75461 WHEN 3 THEN '275'
75462
75463 ELSE null
75464 END source_application_id
75465 , 'S' source_type_code
75466 , CASE r
75467 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
75468 WHEN 2 THEN 'TP_AMT_TYPE_CODE'
75469 WHEN 3 THEN 'GL_DATE'
75470
75471 ELSE null
75472 END source_code
75473 , CASE r
75474 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
75475 WHEN 2 THEN TO_CHAR(h2.TP_AMT_TYPE_CODE)
75476 WHEN 3 THEN TO_CHAR(h2.GL_DATE)
75477
75478 ELSE null
75479 END source_value
75480 , CASE r
75481 WHEN 2 THEN fvl73.meaning
75482
75483 ELSE null
75484 END source_meaning
75485 FROM xla_events_gt xet
75486 , PA_XLA_EXP_HEADER_V h2
75487 , fnd_lookup_values fvl73
75488 ,(select rownum r from all_objects where rownum <= 3 and owner = p_apps_owner)
75489 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
75490 AND xet.event_class_code = C_EVENT_CLASS_CODE
75491 AND h2.event_id = xet.event_id
75492 AND fvl73.lookup_type(+) = 'TP_AMOUNT_TYPE'
75496
75493 AND fvl73.lookup_code(+) = h2.TP_AMT_TYPE_CODE
75494 AND fvl73.view_application_id(+) = 275
75495 AND fvl73.language(+) = USERENV('LANG')
75497 )
75498 ;
75499 --
75500 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75501
75502 trace
75503 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
75504 ,p_level => C_LEVEL_STATEMENT
75505 ,p_module => l_log_module);
75506
75507 END IF;
75508 --
75509
75510
75511
75512 --
75513 INSERT INTO xla_diag_sources --line2
75514 (
75515 event_id
75516 , ledger_id
75517 , sla_ledger_id
75518 , description_language
75519 , object_name
75520 , object_type_code
75521 , line_number
75522 , source_application_id
75523 , source_type_code
75524 , source_code
75525 , source_value
75526 , source_meaning
75527 , created_by
75528 , creation_date
75529 , last_update_date
75530 , last_updated_by
75531 , last_update_login
75532 , program_update_date
75533 , program_application_id
75534 , program_id
75535 , request_id
75536 )
75537 SELECT event_id
75538 , p_target_ledger_id
75539 , p_sla_ledger_id
75540 , p_language
75541 , object_name
75542 , object_type_code
75543 , line_number
75544 , source_application_id
75545 , source_type_code
75546 , source_code
75547 , SUBSTR(source_value,1,1996)
75548 , SUBSTR(source_meaning ,1,200)
75549 , xla_environment_pkg.g_Usr_Id
75550 , TRUNC(SYSDATE)
75551 , TRUNC(SYSDATE)
75552 , xla_environment_pkg.g_Usr_Id
75553 , xla_environment_pkg.g_Login_Id
75554 , TRUNC(SYSDATE)
75555 , xla_environment_pkg.g_Prog_Appl_Id
75556 , xla_environment_pkg.g_Prog_Id
75557 , xla_environment_pkg.g_Req_Id
75558 FROM (
75559 SELECT xet.event_id event_id
75560 , l1.line_number line_number
75561 , CASE r
75562 WHEN 1 THEN 'PA_XLA_CCDL_LINES_V'
75563 WHEN 2 THEN 'PA_XLA_CCDL_LINES_V'
75564 WHEN 3 THEN 'PA_XLA_CCDL_LINES_V'
75565 WHEN 4 THEN 'PA_XLA_CCDL_LINES_V'
75566 WHEN 5 THEN 'PA_XLA_CCDL_LINES_V'
75567 WHEN 6 THEN 'PA_XLA_CCDL_LINES_V'
75568 WHEN 7 THEN 'PA_XLA_CCDL_LINES_V'
75569 WHEN 8 THEN 'PA_XLA_CCDL_LINES_V'
75570 WHEN 9 THEN 'PA_XLA_CCDL_LINES_V'
75571 WHEN 10 THEN 'PA_XLA_CCDL_LINES_V'
75572 WHEN 11 THEN 'PA_XLA_CCDL_LINES_V'
75573 WHEN 12 THEN 'PA_XLA_CCDL_LINES_V'
75574 WHEN 13 THEN 'PA_XLA_CCDL_LINES_V'
75575 WHEN 14 THEN 'PA_XLA_CCDL_LINES_V'
75576 WHEN 15 THEN 'PA_XLA_CCDL_LINES_V'
75577 WHEN 16 THEN 'PA_XLA_CCDL_LINES_V'
75578 WHEN 17 THEN 'PA_XLA_CCDL_LINES_V'
75579 WHEN 18 THEN 'PA_XLA_CCDL_LINES_V'
75580
75581 ELSE null
75582 END object_name
75583 , CASE r
75584 WHEN 1 THEN 'LINE'
75585 WHEN 2 THEN 'LINE'
75586 WHEN 3 THEN 'LINE'
75587 WHEN 4 THEN 'LINE'
75588 WHEN 5 THEN 'LINE'
75589 WHEN 6 THEN 'LINE'
75590 WHEN 7 THEN 'LINE'
75591 WHEN 8 THEN 'LINE'
75592 WHEN 9 THEN 'LINE'
75593 WHEN 10 THEN 'LINE'
75594 WHEN 11 THEN 'LINE'
75595 WHEN 12 THEN 'LINE'
75596 WHEN 13 THEN 'LINE'
75597 WHEN 14 THEN 'LINE'
75598 WHEN 15 THEN 'LINE'
75599 WHEN 16 THEN 'LINE'
75600 WHEN 17 THEN 'LINE'
75601 WHEN 18 THEN 'LINE'
75602
75603 ELSE null
75604 END object_type_code
75605 , CASE r
75606 WHEN 1 THEN '275'
75607 WHEN 2 THEN '275'
75608 WHEN 3 THEN '275'
75609 WHEN 4 THEN '275'
75610 WHEN 5 THEN '275'
75611 WHEN 6 THEN '275'
75612 WHEN 7 THEN '275'
75613 WHEN 8 THEN '275'
75614 WHEN 9 THEN '275'
75615 WHEN 10 THEN '275'
75616 WHEN 11 THEN '275'
75617 WHEN 12 THEN '275'
75618 WHEN 13 THEN '275'
75619 WHEN 14 THEN '275'
75620 WHEN 15 THEN '275'
75621 WHEN 16 THEN '275'
75622 WHEN 17 THEN '275'
75623 WHEN 18 THEN '275'
75624
75625 ELSE null
75626 END source_application_id
75627 , 'S' source_type_code
75628 , CASE r
75629 WHEN 1 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
75630 WHEN 2 THEN 'PROVIDER_CCID'
75631 WHEN 3 THEN 'ADJ_PROVIDER_CCID'
75632 WHEN 4 THEN 'ADJ_RECEIVER_CCID'
75633 WHEN 5 THEN 'RECEIVER_CCID'
75634 WHEN 6 THEN 'REVERSING_LINE_FLAG'
75635 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
75636 WHEN 8 THEN 'ENTERED_CURRENCY_CODE'
75637 WHEN 9 THEN 'EXCHANGE_RATE_DATE'
75638 WHEN 10 THEN 'EXCHANGE_RATE'
75639 WHEN 11 THEN 'EXCHANGE_RATE_TYPE'
75640 WHEN 12 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
75644 WHEN 16 THEN 'LINE_NUM_REVERSED'
75641 WHEN 13 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
75642 WHEN 14 THEN 'LINE_NUMBER'
75643 WHEN 15 THEN 'LINE_TYPE'
75645 WHEN 17 THEN 'ENTERED_AMOUNT'
75646 WHEN 18 THEN 'ACCT_AMOUNT'
75647
75648 ELSE null
75649 END source_code
75650 , CASE r
75651 WHEN 1 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
75652 WHEN 2 THEN TO_CHAR(l1.PROVIDER_CCID)
75653 WHEN 3 THEN TO_CHAR(l1.ADJ_PROVIDER_CCID)
75654 WHEN 4 THEN TO_CHAR(l1.ADJ_RECEIVER_CCID)
75655 WHEN 5 THEN TO_CHAR(l1.RECEIVER_CCID)
75656 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
75657 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
75658 WHEN 8 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
75659 WHEN 9 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
75660 WHEN 10 THEN TO_CHAR(l1.EXCHANGE_RATE)
75661 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
75662 WHEN 12 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
75663 WHEN 13 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
75664 WHEN 14 THEN TO_CHAR(l1.LINE_NUMBER)
75665 WHEN 15 THEN TO_CHAR(l1.LINE_TYPE)
75666 WHEN 16 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
75667 WHEN 17 THEN TO_CHAR(l1.ENTERED_AMOUNT)
75668 WHEN 18 THEN TO_CHAR(l1.ACCT_AMOUNT)
75669
75670 ELSE null
75671 END source_value
75672 , CASE r
75673 WHEN 1 THEN XLA_00275_AAD_S_000015_PKG.GetMeaning(
75674 103371
75675 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
75676 ,'ALLOW_OVERRIDE_CCID_FLAG'
75677 ,'S'
75678 ,275)
75679 WHEN 15 THEN fvl35.meaning
75680
75681 ELSE null
75682 END source_meaning
75683 FROM xla_events_gt xet
75684 , PA_XLA_CCDL_LINES_V l1
75685 , fnd_lookup_values fvl35
75686 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
75687 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
75688 AND xet.event_class_code = C_EVENT_CLASS_CODE
75689 AND l1.event_id = xet.event_id
75690 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
75691 AND fvl35.lookup_code(+) = l1.LINE_TYPE
75692 AND fvl35.view_application_id(+) = 275
75693 AND fvl35.language(+) = USERENV('LANG')
75694
75695 )
75696 ;
75697 --
75698 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75699
75700 trace
75701 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
75702 ,p_level => C_LEVEL_STATEMENT
75703 ,p_module => l_log_module);
75704
75705 END IF;
75706
75707
75708 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75709 trace
75710 (p_msg => 'END of insert_sources_149'
75711 ,p_level => C_LEVEL_PROCEDURE
75712 ,p_module => l_log_module);
75713 END IF;
75714 EXCEPTION
75715 WHEN xla_exceptions_pkg.application_exception THEN
75716 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
75717 trace
75718 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
75719 ,p_level => C_LEVEL_EXCEPTION
75720 ,p_module => l_log_module);
75721 END IF;
75722 RAISE;
75723 WHEN OTHERS THEN
75724 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
75725 trace
75726 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
75727 ,p_level => C_LEVEL_EXCEPTION
75728 ,p_module => l_log_module);
75729 END IF;
75730 xla_exceptions_pkg.raise_message
75731 (p_location => 'XLA_00275_AAD_S_000015_PKG.insert_sources_149');
75732 END insert_sources_149;
75733 --
75734
75735 ---------------------------------------
75736 --
75737 -- PRIVATE FUNCTION
75738 -- EventClass_149
75739 --
75740 ----------------------------------------
75741 --
75742 FUNCTION EventClass_149
75743 (p_application_id IN NUMBER
75744 ,p_base_ledger_id IN NUMBER
75745 ,p_target_ledger_id IN NUMBER
75746 ,p_language IN VARCHAR2
75747 ,p_currency_code IN VARCHAR2
75748 ,p_sla_ledger_id IN NUMBER
75749 ,p_pad_start_date IN DATE
75750 ,p_pad_end_date IN DATE
75751 ,p_primary_ledger_id IN NUMBER)
75752 RETURN BOOLEAN IS
75753 --
75754 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BORROWED_AND_LENT_ALL';
75755 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BORROWED_AND_LENT';
75756
75757 l_calculate_acctd_flag VARCHAR2(1) :='N';
75758 l_calculate_g_l_flag VARCHAR2(1) :='N';
75759 --
75760 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
75761 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
75762 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
75763 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
75764 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
75765 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
75766 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
75767 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
75768 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
75772 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
75769 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
75770 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
75771 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
75773 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
75774 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
75775 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
75776 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
75777 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
75778 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
75779 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
75780 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
75781 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
75782 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
75783 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
75784
75785 l_event_id NUMBER;
75786 l_previous_event_id NUMBER;
75787 l_first_event_id NUMBER;
75788 l_last_event_id NUMBER;
75789
75790 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
75791 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
75792 --
75793 --
75794 l_result BOOLEAN := TRUE;
75795 l_rows NUMBER := 1000;
75796 l_event_type_name VARCHAR2(80) := 'All';
75797 l_event_class_name VARCHAR2(80) := 'Borrowed and Lent';
75798 l_description VARCHAR2(4000);
75799 l_transaction_reversal NUMBER;
75800 l_ae_header_id NUMBER;
75801 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
75802 l_log_module VARCHAR2(240);
75803 --
75804 l_acct_reversal_source VARCHAR2(30);
75805 l_trx_reversal_source VARCHAR2(30);
75806
75807 l_continue_with_lines BOOLEAN := TRUE;
75808 --
75809 l_acc_rev_gl_date_source DATE; -- 4262811
75810 --
75811 type t_array_event_id is table of number index by binary_integer;
75812
75813 l_rec_array_event t_rec_array_event;
75814 l_null_rec_array_event t_rec_array_event;
75815 l_array_ae_header_id xla_number_array_type;
75816 l_actual_flag VARCHAR2(1) := NULL;
75817 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
75818 l_balance_type_code VARCHAR2(1) :=NULL;
75819 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
75820
75821 --
75822 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
75823 --
75824
75825 TYPE t_array_source_33 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
75826 TYPE t_array_source_73 IS TABLE OF PA_XLA_EXP_HEADER_V.TP_AMT_TYPE_CODE%TYPE INDEX BY BINARY_INTEGER;
75827 TYPE t_array_source_75 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
75828
75829 TYPE t_array_source_5 IS TABLE OF PA_XLA_CCDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
75830 TYPE t_array_source_9 IS TABLE OF PA_XLA_CCDL_LINES_V.PROVIDER_CCID%TYPE INDEX BY BINARY_INTEGER;
75831 TYPE t_array_source_10 IS TABLE OF PA_XLA_CCDL_LINES_V.ADJ_PROVIDER_CCID%TYPE INDEX BY BINARY_INTEGER;
75832 TYPE t_array_source_11 IS TABLE OF PA_XLA_CCDL_LINES_V.ADJ_RECEIVER_CCID%TYPE INDEX BY BINARY_INTEGER;
75833 TYPE t_array_source_16 IS TABLE OF PA_XLA_CCDL_LINES_V.RECEIVER_CCID%TYPE INDEX BY BINARY_INTEGER;
75834 TYPE t_array_source_23 IS TABLE OF PA_XLA_CCDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
75835 TYPE t_array_source_24 IS TABLE OF PA_XLA_CCDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
75836 TYPE t_array_source_26 IS TABLE OF PA_XLA_CCDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
75837 TYPE t_array_source_28 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
75838 TYPE t_array_source_29 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
75839 TYPE t_array_source_30 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
75840 TYPE t_array_source_31 IS TABLE OF PA_XLA_CCDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
75841 TYPE t_array_source_32 IS TABLE OF PA_XLA_CCDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
75842 TYPE t_array_source_34 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
75843 TYPE t_array_source_35 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
75844 TYPE t_array_source_36 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
75845 TYPE t_array_source_42 IS TABLE OF PA_XLA_CCDL_LINES_V.ENTERED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
75846 TYPE t_array_source_43 IS TABLE OF PA_XLA_CCDL_LINES_V.ACCT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
75847
75848 l_array_source_33 t_array_source_33;
75849 l_array_source_73 t_array_source_73;
75850 l_array_source_73_meaning t_array_lookup_meaning;
75851 l_array_source_75 t_array_source_75;
75852
75853 l_array_source_5 t_array_source_5;
75854 l_array_source_9 t_array_source_9;
75855 l_array_source_10 t_array_source_10;
75856 l_array_source_11 t_array_source_11;
75857 l_array_source_16 t_array_source_16;
75858 l_array_source_23 t_array_source_23;
75859 l_array_source_24 t_array_source_24;
75860 l_array_source_26 t_array_source_26;
75861 l_array_source_28 t_array_source_28;
75862 l_array_source_29 t_array_source_29;
75863 l_array_source_30 t_array_source_30;
75864 l_array_source_31 t_array_source_31;
75865 l_array_source_32 t_array_source_32;
75866 l_array_source_34 t_array_source_34;
75870 l_array_source_42 t_array_source_42;
75867 l_array_source_35 t_array_source_35;
75868 l_array_source_35_meaning t_array_lookup_meaning;
75869 l_array_source_36 t_array_source_36;
75871 l_array_source_43 t_array_source_43;
75872
75873 --
75874 CURSOR header_cur
75875 IS
75876 SELECT /*+ leading(xet) cardinality(xet,1) */
75877 -- Event Class Code: BORROWED_AND_LENT
75878 xet.entity_id
75879 ,xet.legal_entity_id
75880 ,xet.entity_code
75881 ,xet.transaction_number
75882 ,xet.event_id
75883 ,xet.event_class_code
75884 ,xet.event_type_code
75885 ,xet.event_number
75886 ,xet.event_date
75887 ,xet.transaction_date
75888 ,xet.reference_num_1
75889 ,xet.reference_num_2
75890 ,xet.reference_num_3
75891 ,xet.reference_num_4
75892 ,xet.reference_char_1
75893 ,xet.reference_char_2
75894 ,xet.reference_char_3
75895 ,xet.reference_char_4
75896 ,xet.reference_date_1
75897 ,xet.reference_date_2
75898 ,xet.reference_date_3
75899 ,xet.reference_date_4
75900 ,xet.event_created_by
75901 ,xet.budgetary_control_flag
75902 , h2.EXPENDITURE_ITEM_ID source_33
75903 , h2.TP_AMT_TYPE_CODE source_73
75904 , fvl73.meaning source_73_meaning
75905 , h2.GL_DATE source_75
75906 FROM xla_events_gt xet
75907 , PA_XLA_EXP_HEADER_V h2
75908 , fnd_lookup_values fvl73
75909 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
75910 and xet.event_class_code = C_EVENT_CLASS_CODE
75911 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
75912 AND fvl73.lookup_type(+) = 'TP_AMOUNT_TYPE'
75913 AND fvl73.lookup_code(+) = h2.TP_AMT_TYPE_CODE
75914 AND fvl73.view_application_id(+) = 275
75915 AND fvl73.language(+) = USERENV('LANG')
75916
75917 ORDER BY event_id
75918 ;
75919
75920
75921 --
75922 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
75923 IS
75924 SELECT /*+ leading(xet) cardinality(xet,1) */
75925 -- Event Class Code: BORROWED_AND_LENT
75926 xet.entity_id
75927 ,xet.legal_entity_id
75928 ,xet.entity_code
75929 ,xet.transaction_number
75930 ,xet.event_id
75931 ,xet.event_class_code
75932 ,xet.event_type_code
75933 ,xet.event_number
75934 ,xet.event_date
75935 ,xet.transaction_date
75936 ,xet.reference_num_1
75937 ,xet.reference_num_2
75938 ,xet.reference_num_3
75939 ,xet.reference_num_4
75940 ,xet.reference_char_1
75941 ,xet.reference_char_2
75942 ,xet.reference_char_3
75943 ,xet.reference_char_4
75944 ,xet.reference_date_1
75945 ,xet.reference_date_2
75946 ,xet.reference_date_3
75947 ,xet.reference_date_4
75948 ,xet.event_created_by
75949 ,xet.budgetary_control_flag
75950 , l1.LINE_NUMBER
75951 , l1.ALLOW_OVERRIDE_CCID_FLAG source_5
75952 , l1.PROVIDER_CCID source_9
75953 , l1.ADJ_PROVIDER_CCID source_10
75954 , l1.ADJ_RECEIVER_CCID source_11
75955 , l1.RECEIVER_CCID source_16
75956 , l1.REVERSING_LINE_FLAG source_23
75957 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_24
75958 , l1.ENTERED_CURRENCY_CODE source_26
75959 , l1.EXCHANGE_RATE_DATE source_28
75960 , l1.EXCHANGE_RATE source_29
75961 , l1.EXCHANGE_RATE_TYPE source_30
75962 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_31
75963 , l1.USE_ACT_UPG_ATTRIB_FLAG source_32
75964 , l1.LINE_NUMBER source_34
75965 , l1.LINE_TYPE source_35
75966 , fvl35.meaning source_35_meaning
75967 , l1.LINE_NUM_REVERSED source_36
75968 , l1.ENTERED_AMOUNT source_42
75969 , l1.ACCT_AMOUNT source_43
75970 FROM xla_events_gt xet
75971 , PA_XLA_CCDL_LINES_V l1
75972 , fnd_lookup_values fvl35
75973 WHERE xet.event_id between x_first_event_id and x_last_event_id
75974 and xet.event_date between p_pad_start_date and p_pad_end_date
75975 and xet.event_class_code = C_EVENT_CLASS_CODE
75976 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
75977 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
75978 AND fvl35.lookup_code(+) = l1.LINE_TYPE
75979 AND fvl35.view_application_id(+) = 275
75980 AND fvl35.language(+) = USERENV('LANG')
75981 ;
75982
75983 --
75984 BEGIN
75985 IF g_log_enabled THEN
75986 l_log_module := C_DEFAULT_MODULE||'.EventClass_149';
75987 END IF;
75988 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75989 trace
75990 (p_msg => 'BEGIN of EventClass_149'
75991 ,p_level => C_LEVEL_PROCEDURE
75992 ,p_module => l_log_module);
75993 END IF;
75994
75995 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75996 trace
75997 (p_msg => 'p_application_id = '||p_application_id||
75998 ' - p_base_ledger_id = '||p_base_ledger_id||
75999 ' - p_target_ledger_id = '||p_target_ledger_id||
76000 ' - p_language = '||p_language||
76001 ' - p_currency_code = '||p_currency_code||
76002 ' - p_sla_ledger_id = '||p_sla_ledger_id
76003 ,p_level => C_LEVEL_STATEMENT
76004 ,p_module => l_log_module);
76005 END IF;
76006 --
76007 -- initialze arrays
76008 --
76009 g_array_event.DELETE;
76010 l_rec_array_event := l_null_rec_array_event;
76011 --
76012 --------------------------------------
76013 -- 4262811 Initialze MPA Line Number
76014 --------------------------------------
76015 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
76016
76017 --
76018
76019 --
76020 OPEN header_cur;
76021 --
76022 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76023 trace
76024 (p_msg => 'SQL - FETCH header_cur'
76028 --
76025 ,p_level => C_LEVEL_STATEMENT
76026 ,p_module => l_log_module);
76027 END IF;
76029 LOOP
76030 FETCH header_cur BULK COLLECT INTO
76031 l_array_entity_id
76032 , l_array_legal_entity_id
76033 , l_array_entity_code
76034 , l_array_transaction_num
76035 , l_array_event_id
76036 , l_array_class_code
76037 , l_array_event_type
76038 , l_array_event_number
76039 , l_array_event_date
76040 , l_array_transaction_date
76041 , l_array_reference_num_1
76042 , l_array_reference_num_2
76043 , l_array_reference_num_3
76044 , l_array_reference_num_4
76045 , l_array_reference_char_1
76046 , l_array_reference_char_2
76047 , l_array_reference_char_3
76048 , l_array_reference_char_4
76049 , l_array_reference_date_1
76050 , l_array_reference_date_2
76051 , l_array_reference_date_3
76052 , l_array_reference_date_4
76053 , l_array_event_created_by
76054 , l_array_budgetary_control_flag
76055 , l_array_source_33
76056 , l_array_source_73
76057 , l_array_source_73_meaning
76058 , l_array_source_75
76059 LIMIT l_rows;
76060 --
76061 IF (C_LEVEL_EVENT >= g_log_level) THEN
76062 trace
76063 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
76064 ,p_level => C_LEVEL_EVENT
76065 ,p_module => l_log_module);
76066 END IF;
76067 --
76068 EXIT WHEN l_array_entity_id.COUNT = 0;
76069
76070 -- initialize arrays
76071 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
76072 XLA_AE_LINES_PKG.g_rec_lines := NULL;
76073
76074 --
76075 -- Bug 4458708
76076 --
76077 XLA_AE_LINES_PKG.g_LineNumber := 0;
76078
76079
76080 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
76081 g_last_hdr_idx := l_array_event_id.LAST;
76082 --
76083 -- loop for the headers. Each iteration is for each header extract row
76084 -- fetched in header cursor
76085 --
76086 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
76087
76088 --
76089 -- set event info as cache for other routines to refer event attributes
76090 --
76091 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
76092 (p_application_id => p_application_id
76093 ,p_primary_ledger_id => p_primary_ledger_id
76094 ,p_base_ledger_id => p_base_ledger_id
76095 ,p_target_ledger_id => p_target_ledger_id
76096 ,p_entity_id => l_array_entity_id(hdr_idx)
76097 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
76098 ,p_entity_code => l_array_entity_code(hdr_idx)
76099 ,p_transaction_num => l_array_transaction_num(hdr_idx)
76100 ,p_event_id => l_array_event_id(hdr_idx)
76101 ,p_event_class_code => l_array_class_code(hdr_idx)
76102 ,p_event_type_code => l_array_event_type(hdr_idx)
76103 ,p_event_number => l_array_event_number(hdr_idx)
76104 ,p_event_date => l_array_event_date(hdr_idx)
76105 ,p_transaction_date => l_array_transaction_date(hdr_idx)
76106 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
76107 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
76108 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
76109 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
76110 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
76111 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
76112 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
76113 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
76114 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
76115 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
76116 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
76117 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
76118 ,p_event_created_by => l_array_event_created_by(hdr_idx)
76119 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
76120
76121 --
76122 -- set the status of entry to C_VALID (0)
76123 --
76124 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
76125
76126 --
76127 -- initialize a row for ae header
76128 --
76129 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
76130
76131 l_event_id := l_array_event_id(hdr_idx);
76132
76133 --
76134 -- storing the hdr_idx for event. May be used by line cursor.
76135 --
76136 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
76137
76138 --
76139 -- store sources from header extract. This can be improved to
76140 -- store only those sources from header extract that may be used in lines
76141 --
76142
76143 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
76144 g_array_event(l_event_id).array_value_char('source_73') := l_array_source_73(hdr_idx);
76145 g_array_event(l_event_id).array_value_char('source_73_meaning') := l_array_source_73_meaning(hdr_idx);
76146 g_array_event(l_event_id).array_value_date('source_75') := l_array_source_75(hdr_idx);
76147
76148 --
76149 -- initilaize the status of ae headers for diffrent balance types
76150 -- the status is initialised to C_NOT_CREATED (2)
76151 --
76152 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
76153 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
76154 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
76155
76156 --
76157 -- call api to validate and store accounting attributes for header
76158 --
76159
76163 l_acc_rev_gl_date_source := NULL;
76160 ------------------------------------------------------------
76161 -- Accrual Reversal : to get date for Standard Source (NONE)
76162 ------------------------------------------------------------
76164
76165 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
76166 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_75');
76167
76168
76169 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
76170
76171 XLA_AE_HEADER_PKG.SetJeCategoryName;
76172
76173 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
76174 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
76175 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
76176 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
76177 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
76178
76179
76180 -- No header level analytical criteria
76181
76182 --
76183 --accounting attribute enhancement, bug 3612931
76184 --
76185 l_trx_reversal_source := SUBSTR(NULL, 1,30);
76186
76187 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
76188 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
76189
76190 xla_accounting_err_pkg.build_message
76191 (p_appli_s_name => 'XLA'
76192 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
76193 ,p_token_1 => 'ACCT_ATTR_NAME'
76194 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
76195 ,p_token_2 => 'PRODUCT_NAME'
76196 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
76197 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
76198 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
76199 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
76200
76201 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
76202 --
76203 -- following sets the accounting attributes needed to reverse
76204 -- accounting for a distributeion
76205 --
76206 xla_ae_lines_pkg.SetTrxReversalAttrs
76207 (p_event_id => l_event_id
76208 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
76209 ,p_trx_reversal_source => l_trx_reversal_source);
76210
76211 END IF;
76212
76213
76214 ----------------------------------------------------------------
76215 -- 4262811 - update the header statuses to invalid in need be
76216 ----------------------------------------------------------------
76217 --
76218 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
76219
76220
76221 -----------------------------------------------
76222 -- No accrual reversal for the event class/type
76223 -----------------------------------------------
76224 ----------------------------------------------------------------
76225
76226 --
76227 -- this ends the header loop iteration for one bulk fetch
76228 --
76229 END LOOP;
76230
76231 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
76232 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
76233
76234 --
76235 -- insert dummy rows into lines gt table that were created due to
76236 -- transaction reversals
76237 --
76238 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
76239 l_result := XLA_AE_LINES_PKG.InsertLines;
76240 END IF;
76241
76242 --
76243 -- reset the temp_line_num for each set of events fetched from header
76244 -- cursor rather than doing it for each new event in line cursor
76245 -- Bug 3939231
76246 --
76247 xla_ae_lines_pkg.g_temp_line_num := 0;
76248
76249
76250
76251 --
76252 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
76253 --
76254 --
76255 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76256
76257 trace
76258 (p_msg => 'SQL - FETCH line_cur'
76259 ,p_level => C_LEVEL_STATEMENT
76260 ,p_module => l_log_module);
76261
76262 END IF;
76263 --
76264 --
76265 LOOP
76266 --
76267 FETCH line_cur BULK COLLECT INTO
76268 l_array_entity_id
76269 , l_array_legal_entity_id
76270 , l_array_entity_code
76271 , l_array_transaction_num
76272 , l_array_event_id
76273 , l_array_class_code
76274 , l_array_event_type
76275 , l_array_event_number
76276 , l_array_event_date
76277 , l_array_transaction_date
76278 , l_array_reference_num_1
76279 , l_array_reference_num_2
76280 , l_array_reference_num_3
76281 , l_array_reference_num_4
76282 , l_array_reference_char_1
76283 , l_array_reference_char_2
76284 , l_array_reference_char_3
76285 , l_array_reference_char_4
76286 , l_array_reference_date_1
76287 , l_array_reference_date_2
76288 , l_array_reference_date_3
76289 , l_array_reference_date_4
76290 , l_array_event_created_by
76291 , l_array_budgetary_control_flag
76292 , l_array_extract_line_num
76293 , l_array_source_5
76294 , l_array_source_9
76295 , l_array_source_10
76296 , l_array_source_11
76297 , l_array_source_16
76298 , l_array_source_23
76299 , l_array_source_24
76300 , l_array_source_26
76301 , l_array_source_28
76302 , l_array_source_29
76303 , l_array_source_30
76304 , l_array_source_31
76305 , l_array_source_32
76309 , l_array_source_36
76306 , l_array_source_34
76307 , l_array_source_35
76308 , l_array_source_35_meaning
76310 , l_array_source_42
76311 , l_array_source_43
76312 LIMIT l_rows;
76313
76314 --
76315 IF (C_LEVEL_EVENT >= g_log_level) THEN
76316 trace
76317 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
76318 ,p_level => C_LEVEL_EVENT
76319 ,p_module => l_log_module);
76320 END IF;
76321 --
76322 EXIT WHEN l_array_entity_id.count = 0;
76323
76324 XLA_AE_LINES_PKG.g_rec_lines := null;
76325
76326 --
76327 -- Bug 4458708
76328 --
76329 XLA_AE_LINES_PKG.g_LineNumber := 0;
76330 --
76331 --
76332
76333 FOR Idx IN 1..l_array_event_id.count LOOP
76334 --
76335 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
76336 --
76337 l_event_id := l_array_event_id(idx); -- 5648433
76338
76339 --
76340 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
76341 --
76342
76343 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
76344 (g_array_event(l_event_id).array_value_num('header_index'))
76345 ,'N'
76346 ) <> 'Y'
76347 THEN
76348 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76349 trace
76350 (p_msg => 'Trancaction revesal option is not Y '
76351 ,p_level => C_LEVEL_STATEMENT
76352 ,p_module => l_log_module);
76353 END IF;
76354
76355 --
76356 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
76357 --
76358 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
76359 --
76360 -- set event info as cache for other routines to refer event attributes
76361 --
76362
76363 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
76364 l_previous_event_id := l_event_id;
76365
76366 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
76367 (p_application_id => p_application_id
76368 ,p_primary_ledger_id => p_primary_ledger_id
76369 ,p_base_ledger_id => p_base_ledger_id
76370 ,p_target_ledger_id => p_target_ledger_id
76371 ,p_entity_id => l_array_entity_id(Idx)
76372 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
76373 ,p_entity_code => l_array_entity_code(Idx)
76374 ,p_transaction_num => l_array_transaction_num(Idx)
76375 ,p_event_id => l_array_event_id(Idx)
76376 ,p_event_class_code => l_array_class_code(Idx)
76377 ,p_event_type_code => l_array_event_type(Idx)
76378 ,p_event_number => l_array_event_number(Idx)
76379 ,p_event_date => l_array_event_date(Idx)
76380 ,p_transaction_date => l_array_transaction_date(Idx)
76381 ,p_reference_num_1 => l_array_reference_num_1(Idx)
76382 ,p_reference_num_2 => l_array_reference_num_2(Idx)
76383 ,p_reference_num_3 => l_array_reference_num_3(Idx)
76384 ,p_reference_num_4 => l_array_reference_num_4(Idx)
76385 ,p_reference_char_1 => l_array_reference_char_1(Idx)
76386 ,p_reference_char_2 => l_array_reference_char_2(Idx)
76387 ,p_reference_char_3 => l_array_reference_char_3(Idx)
76388 ,p_reference_char_4 => l_array_reference_char_4(Idx)
76389 ,p_reference_date_1 => l_array_reference_date_1(Idx)
76390 ,p_reference_date_2 => l_array_reference_date_2(Idx)
76391 ,p_reference_date_3 => l_array_reference_date_3(Idx)
76392 ,p_reference_date_4 => l_array_reference_date_4(Idx)
76393 ,p_event_created_by => l_array_event_created_by(Idx)
76394 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
76395 --
76396 END IF;
76397
76398
76399
76400 --
76401 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
76402
76403 l_acct_reversal_source := SUBSTR(l_array_source_23(Idx), 1,30);
76404
76405 IF l_continue_with_lines THEN
76406 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
76407 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
76408
76409 xla_accounting_err_pkg.build_message
76410 (p_appli_s_name => 'XLA'
76411 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
76412 ,p_token_1 => 'LINE_NUMBER'
76413 ,p_value_1 => l_array_extract_line_num(Idx)
76414 ,p_token_2 => 'PRODUCT_NAME'
76415 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
76416 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
76417 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
76418 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
76419
76420 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
76421 --
76422 -- following sets the accounting attributes needed to reverse
76423 -- accounting for a distributeion
76424 --
76425
76426 --
76427 -- 5217187
76428 --
76429 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
76430 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
76431 g_array_event(l_event_id).array_value_num('header_index'));
76432 --
76433 --
76434
76435 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
76439 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
76436 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_23(Idx);
76437 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
76438 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_24(Idx);
76440 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_9(Idx));
76441 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
76442 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_42(Idx);
76443 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
76444 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_26(Idx);
76445 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
76446 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_43(Idx);
76447 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
76448 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_28(Idx);
76449 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
76450 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_29(Idx);
76451 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
76452 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_30(Idx);
76453 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
76454 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_31(Idx);
76455 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
76456 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_16(Idx));
76457 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
76458 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_42(Idx);
76459 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
76460 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_26(Idx);
76461 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
76462 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_43(Idx);
76463 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
76464 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_28(Idx);
76465 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
76466 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_29(Idx);
76467 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
76468 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_30(Idx);
76469 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
76470 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_32(Idx);
76471 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
76472 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_33');
76473 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
76474 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_34(Idx);
76475 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
76476 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_35(Idx);
76477 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
76478 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_33');
76479 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
76480 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_36(Idx);
76481 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
76482 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_35(Idx);
76483
76484
76485 xla_ae_lines_pkg.SetAcctReversalAttrs
76486 (p_event_id => l_event_id
76487 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
76488 ,p_calculate_acctd_flag => l_calculate_acctd_flag
76489 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
76490 END IF;
76491
76492 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
76493 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
76494
76495 --
76496 AcctLineType_62 (
76497 p_application_id => p_application_id
76498 ,p_event_id => l_event_id
76499 ,p_calculate_acctd_flag => l_calculate_acctd_flag
76500 ,p_calculate_g_l_flag => l_calculate_g_l_flag
76501 ,p_actual_flag => l_actual_flag
76502 ,p_balance_type_code => l_balance_type_code
76503 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
76504
76505 , p_source_5 => l_array_source_5(Idx)
76506 , p_source_9 => l_array_source_9(Idx)
76507 , p_source_10 => l_array_source_10(Idx)
76508 , p_source_16 => l_array_source_16(Idx)
76509 , p_source_23 => l_array_source_23(Idx)
76510 , p_source_24 => l_array_source_24(Idx)
76511 , p_source_26 => l_array_source_26(Idx)
76512 , p_source_28 => l_array_source_28(Idx)
76513 , p_source_29 => l_array_source_29(Idx)
76514 , p_source_30 => l_array_source_30(Idx)
76515 , p_source_31 => l_array_source_31(Idx)
76516 , p_source_32 => l_array_source_32(Idx)
76517 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
76518 , p_source_34 => l_array_source_34(Idx)
76519 , p_source_35 => l_array_source_35(Idx)
76520 , p_source_35_meaning => l_array_source_35_meaning(Idx)
76521 , p_source_36 => l_array_source_36(Idx)
76522 , p_source_42 => l_array_source_42(Idx)
76523 , p_source_43 => l_array_source_43(Idx)
76524 , p_source_73 => g_array_event(l_event_id).array_value_char('source_73')
76525 , p_source_73_meaning => g_array_event(l_event_id).array_value_char('source_73_meaning')
76526 );
76527 If(l_balance_type_code = 'A') THEN
76528 l_actual_gain_loss_ref := l_gain_or_loss_ref;
76529 END IF;
76530
76531 --
76532
76533
76534 --
76535 AcctLineType_64 (
76536 p_application_id => p_application_id
76537 ,p_event_id => l_event_id
76541 ,p_balance_type_code => l_balance_type_code
76538 ,p_calculate_acctd_flag => l_calculate_acctd_flag
76539 ,p_calculate_g_l_flag => l_calculate_g_l_flag
76540 ,p_actual_flag => l_actual_flag
76542 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
76543
76544 , p_source_5 => l_array_source_5(Idx)
76545 , p_source_9 => l_array_source_9(Idx)
76546 , p_source_10 => l_array_source_10(Idx)
76547 , p_source_16 => l_array_source_16(Idx)
76548 , p_source_23 => l_array_source_23(Idx)
76549 , p_source_24 => l_array_source_24(Idx)
76550 , p_source_26 => l_array_source_26(Idx)
76551 , p_source_28 => l_array_source_28(Idx)
76552 , p_source_29 => l_array_source_29(Idx)
76553 , p_source_30 => l_array_source_30(Idx)
76554 , p_source_31 => l_array_source_31(Idx)
76555 , p_source_32 => l_array_source_32(Idx)
76556 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
76557 , p_source_34 => l_array_source_34(Idx)
76558 , p_source_35 => l_array_source_35(Idx)
76559 , p_source_35_meaning => l_array_source_35_meaning(Idx)
76560 , p_source_36 => l_array_source_36(Idx)
76561 , p_source_42 => l_array_source_42(Idx)
76562 , p_source_43 => l_array_source_43(Idx)
76563 , p_source_73 => g_array_event(l_event_id).array_value_char('source_73')
76564 , p_source_73_meaning => g_array_event(l_event_id).array_value_char('source_73_meaning')
76565 );
76566 If(l_balance_type_code = 'A') THEN
76567 l_actual_gain_loss_ref := l_gain_or_loss_ref;
76568 END IF;
76569
76570 --
76571
76572
76573 --
76574 AcctLineType_118 (
76575 p_application_id => p_application_id
76576 ,p_event_id => l_event_id
76577 ,p_calculate_acctd_flag => l_calculate_acctd_flag
76578 ,p_calculate_g_l_flag => l_calculate_g_l_flag
76579 ,p_actual_flag => l_actual_flag
76580 ,p_balance_type_code => l_balance_type_code
76581 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
76582
76583 , p_source_5 => l_array_source_5(Idx)
76584 , p_source_9 => l_array_source_9(Idx)
76585 , p_source_11 => l_array_source_11(Idx)
76586 , p_source_16 => l_array_source_16(Idx)
76587 , p_source_23 => l_array_source_23(Idx)
76588 , p_source_24 => l_array_source_24(Idx)
76589 , p_source_26 => l_array_source_26(Idx)
76590 , p_source_28 => l_array_source_28(Idx)
76591 , p_source_29 => l_array_source_29(Idx)
76592 , p_source_30 => l_array_source_30(Idx)
76593 , p_source_31 => l_array_source_31(Idx)
76594 , p_source_32 => l_array_source_32(Idx)
76595 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
76596 , p_source_34 => l_array_source_34(Idx)
76597 , p_source_35 => l_array_source_35(Idx)
76598 , p_source_35_meaning => l_array_source_35_meaning(Idx)
76599 , p_source_36 => l_array_source_36(Idx)
76600 , p_source_42 => l_array_source_42(Idx)
76601 , p_source_43 => l_array_source_43(Idx)
76602 , p_source_73 => g_array_event(l_event_id).array_value_char('source_73')
76603 , p_source_73_meaning => g_array_event(l_event_id).array_value_char('source_73_meaning')
76604 );
76605 If(l_balance_type_code = 'A') THEN
76606 l_actual_gain_loss_ref := l_gain_or_loss_ref;
76607 END IF;
76608
76609 --
76610
76611
76612 --
76613 AcctLineType_120 (
76614 p_application_id => p_application_id
76615 ,p_event_id => l_event_id
76616 ,p_calculate_acctd_flag => l_calculate_acctd_flag
76617 ,p_calculate_g_l_flag => l_calculate_g_l_flag
76618 ,p_actual_flag => l_actual_flag
76619 ,p_balance_type_code => l_balance_type_code
76620 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
76621
76622 , p_source_5 => l_array_source_5(Idx)
76623 , p_source_9 => l_array_source_9(Idx)
76624 , p_source_11 => l_array_source_11(Idx)
76625 , p_source_16 => l_array_source_16(Idx)
76626 , p_source_23 => l_array_source_23(Idx)
76627 , p_source_24 => l_array_source_24(Idx)
76628 , p_source_26 => l_array_source_26(Idx)
76629 , p_source_28 => l_array_source_28(Idx)
76630 , p_source_29 => l_array_source_29(Idx)
76631 , p_source_30 => l_array_source_30(Idx)
76632 , p_source_31 => l_array_source_31(Idx)
76633 , p_source_32 => l_array_source_32(Idx)
76634 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
76635 , p_source_34 => l_array_source_34(Idx)
76636 , p_source_35 => l_array_source_35(Idx)
76637 , p_source_35_meaning => l_array_source_35_meaning(Idx)
76638 , p_source_36 => l_array_source_36(Idx)
76639 , p_source_42 => l_array_source_42(Idx)
76640 , p_source_43 => l_array_source_43(Idx)
76641 , p_source_73 => g_array_event(l_event_id).array_value_char('source_73')
76642 , p_source_73_meaning => g_array_event(l_event_id).array_value_char('source_73_meaning')
76643 );
76644 If(l_balance_type_code = 'A') THEN
76645 l_actual_gain_loss_ref := l_gain_or_loss_ref;
76646 END IF;
76647
76648 --
76649
76650 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
76651 -- or secondary ledger that has different currency with primary
76652 -- or alc that is calculated by sla
76653 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
76654 (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'))
76655
76656 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
76657 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
76658 AND (l_actual_flag = 'A')) THEN
76659 XLA_AE_LINES_PKG.CreateGainOrLossLines(
76660 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
76661 ,p_application_id => p_application_id
76662 ,p_amb_context_code => 'DEFAULT'
76663 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
76664 ,p_event_class_code => C_EVENT_CLASS_CODE
76665 ,p_event_type_code => C_EVENT_TYPE_CODE
76669
76666
76667 ,p_gain_ccid => -1
76668 ,p_loss_ccid => -1
76670 ,p_actual_flag => l_actual_flag
76671 ,p_enc_flag => null
76672 ,p_actual_g_l_ref => l_actual_gain_loss_ref
76673 ,p_enc_g_l_ref => null
76674 );
76675 END IF;
76676 END IF;
76677 END IF;
76678
76679 ELSE
76680 --
76681 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
76682 --
76683 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76684 trace
76685 (p_msg => 'Trancaction revesal option is Y'
76686 ,p_level => C_LEVEL_STATEMENT
76687 ,p_module => l_log_module);
76688 END IF;
76689 END IF;
76690
76691 END LOOP;
76692 l_result := XLA_AE_LINES_PKG.InsertLines ;
76693 end loop;
76694 close line_cur;
76695
76696
76697 --
76698 -- insert headers into xla_ae_headers_gt table
76699 --
76700 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
76701
76702 -- insert into errors table here.
76703
76704 END LOOP;
76705
76706 --
76707 -- 4865292
76708 --
76709 -- Compare g_hdr_extract_count with event count in
76710 -- CreateHeadersAndLines.
76711 --
76712 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
76713
76714 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76715 trace (p_msg => '# rows extracted from header extract objects '
76716 || ' (running total): '
76717 || g_hdr_extract_count
76718 ,p_level => C_LEVEL_STATEMENT
76719 ,p_module => l_log_module);
76720 END IF;
76721
76722 CLOSE header_cur;
76723 --
76724
76725 --
76726 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76727 trace
76728 (p_msg => 'END of EventClass_149'
76729 ,p_level => C_LEVEL_PROCEDURE
76730 ,p_module => l_log_module);
76731 END IF;
76732 --
76733 RETURN l_result;
76734 EXCEPTION
76735 WHEN xla_exceptions_pkg.application_exception THEN
76736
76737 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
76738
76739
76740 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
76741
76742 RAISE;
76743 WHEN OTHERS THEN
76744 xla_exceptions_pkg.raise_message
76745 (p_location => 'XLA_00275_AAD_S_000015_PKG.EventClass_149');
76746 END EventClass_149;
76747 --
76748
76749 ---------------------------------------
76750 --
76751 -- PRIVATE PROCEDURE
76752 -- insert_sources_150
76753 --
76754 ----------------------------------------
76755 --
76756 PROCEDURE insert_sources_150(
76757 p_target_ledger_id IN NUMBER
76758 , p_language IN VARCHAR2
76759 , p_sla_ledger_id IN NUMBER
76760 , p_pad_start_date IN DATE
76761 , p_pad_end_date IN DATE
76762 )
76763 IS
76764
76765 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BUDGET_ALL';
76766 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BUDGET';
76767 p_apps_owner VARCHAR2(30);
76768 l_log_module VARCHAR2(240);
76769 BEGIN
76770 IF g_log_enabled THEN
76771 l_log_module := C_DEFAULT_MODULE||'.insert_sources_150';
76772 END IF;
76773 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76774
76775 trace
76776 (p_msg => 'BEGIN of insert_sources_150'
76777 ,p_level => C_LEVEL_PROCEDURE
76778 ,p_module => l_log_module);
76779
76780 END IF;
76781
76782 -- select APPS owner
76783 SELECT oracle_username
76784 INTO p_apps_owner
76785 FROM fnd_oracle_userid
76786 WHERE read_only_flag = 'U'
76787 ;
76788
76789 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76790 trace
76791 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
76792 ' - p_language = '||p_language||
76793 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
76794 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
76795 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
76796 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
76797 ,p_level => C_LEVEL_STATEMENT
76798 ,p_module => l_log_module);
76799 END IF;
76800
76801
76802 --
76803 INSERT INTO xla_diag_sources --hdr2
76804 (
76805 event_id
76806 , ledger_id
76807 , sla_ledger_id
76808 , description_language
76809 , object_name
76810 , object_type_code
76811 , line_number
76812 , source_application_id
76813 , source_type_code
76814 , source_code
76815 , source_value
76816 , source_meaning
76817 , created_by
76818 , creation_date
76819 , last_update_date
76820 , last_updated_by
76821 , last_update_login
76822 , program_update_date
76823 , program_application_id
76824 , program_id
76825 , request_id
76826 )
76827 SELECT
76828 event_id
76829 , p_target_ledger_id
76830 , p_sla_ledger_id
76831 , p_language
76832 , object_name
76833 , object_type_code
76834 , line_number
76835 , source_application_id
76836 , source_type_code
76837 , source_code
76838 , SUBSTR(source_value ,1,1996)
76839 , SUBSTR(source_meaning ,1,200)
76840 , xla_environment_pkg.g_Usr_Id
76844 , xla_environment_pkg.g_Login_Id
76841 , TRUNC(SYSDATE)
76842 , TRUNC(SYSDATE)
76843 , xla_environment_pkg.g_Usr_Id
76845 , TRUNC(SYSDATE)
76846 , xla_environment_pkg.g_Prog_Appl_Id
76847 , xla_environment_pkg.g_Prog_Id
76848 , xla_environment_pkg.g_Req_Id
76849 FROM (
76850 SELECT xet.event_id event_id
76851 , 0 line_number
76852 , CASE r
76853 WHEN 1 THEN 'PA_XLA_BC_BUDGET_HEADER_V'
76854 WHEN 2 THEN 'PA_XLA_PROJECT_REF_V'
76855 WHEN 3 THEN 'PA_XLA_BC_BUDGET_HEADER_V'
76856 WHEN 4 THEN 'PA_XLA_BC_BUDGET_HEADER_V'
76857 WHEN 5 THEN 'PA_XLA_BC_BUDGET_HEADER_V'
76858
76859 ELSE null
76860 END object_name
76861 , CASE r
76862 WHEN 1 THEN 'HEADER'
76863 WHEN 2 THEN 'HEADER'
76864 WHEN 3 THEN 'HEADER'
76865 WHEN 4 THEN 'HEADER'
76866 WHEN 5 THEN 'HEADER'
76867
76868 ELSE null
76869 END object_type_code
76870 , CASE r
76871 WHEN 1 THEN '275'
76872 WHEN 2 THEN '275'
76873 WHEN 3 THEN '275'
76874 WHEN 4 THEN '275'
76875 WHEN 5 THEN '275'
76876
76877 ELSE null
76878 END source_application_id
76879 , 'S' source_type_code
76880 , CASE r
76881 WHEN 1 THEN 'BUDGET_AMOUNT_CODE'
76882 WHEN 2 THEN 'PROJECT_TYPE_CLASS_CODE'
76883 WHEN 3 THEN 'BC_BALANCE_TYPE'
76884 WHEN 4 THEN 'GL_DATE'
76885 WHEN 5 THEN 'GL_BUDGET_VERSION_ID'
76886
76887 ELSE null
76888 END source_code
76889 , CASE r
76890 WHEN 1 THEN TO_CHAR(h1.BUDGET_AMOUNT_CODE)
76891 WHEN 2 THEN TO_CHAR(h3.PROJECT_TYPE_CLASS_CODE)
76892 WHEN 3 THEN TO_CHAR(h1.BC_BALANCE_TYPE)
76893 WHEN 4 THEN TO_CHAR(h1.GL_DATE)
76894 WHEN 5 THEN TO_CHAR(h1.GL_BUDGET_VERSION_ID)
76895
76896 ELSE null
76897 END source_value
76898 , CASE r
76899 WHEN 2 THEN fvl38.meaning
76900
76901 ELSE null
76902 END source_meaning
76903 FROM xla_events_gt xet
76904 , PA_XLA_BC_BUDGET_HEADER_V h1
76905 , PA_XLA_PROJECT_REF_V h3
76906 , fnd_lookup_values fvl38
76907 ,(select rownum r from all_objects where rownum <= 5 and owner = p_apps_owner)
76908 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
76909 AND xet.event_class_code = C_EVENT_CLASS_CODE
76910 AND h1.event_id = xet.event_id
76911 AND h3.project_id=h1.project_id AND fvl38.lookup_type(+) = 'PROJECT TYPE CLASS'
76912 AND fvl38.lookup_code(+) = h3.PROJECT_TYPE_CLASS_CODE
76913 AND fvl38.view_application_id(+) = 275
76914 AND fvl38.language(+) = USERENV('LANG')
76915
76916 )
76917 ;
76918 --
76919 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76920
76921 trace
76922 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
76923 ,p_level => C_LEVEL_STATEMENT
76924 ,p_module => l_log_module);
76925
76926 END IF;
76927 --
76928
76929
76930
76931 --
76932 INSERT INTO xla_diag_sources --line2
76933 (
76934 event_id
76935 , ledger_id
76936 , sla_ledger_id
76937 , description_language
76938 , object_name
76939 , object_type_code
76940 , line_number
76941 , source_application_id
76942 , source_type_code
76943 , source_code
76944 , source_value
76945 , source_meaning
76946 , created_by
76947 , creation_date
76948 , last_update_date
76949 , last_updated_by
76950 , last_update_login
76951 , program_update_date
76952 , program_application_id
76953 , program_id
76954 , request_id
76955 )
76956 SELECT event_id
76957 , p_target_ledger_id
76958 , p_sla_ledger_id
76959 , p_language
76960 , object_name
76961 , object_type_code
76962 , line_number
76963 , source_application_id
76964 , source_type_code
76965 , source_code
76966 , SUBSTR(source_value,1,1996)
76967 , SUBSTR(source_meaning ,1,200)
76968 , xla_environment_pkg.g_Usr_Id
76969 , TRUNC(SYSDATE)
76970 , TRUNC(SYSDATE)
76971 , xla_environment_pkg.g_Usr_Id
76972 , xla_environment_pkg.g_Login_Id
76973 , TRUNC(SYSDATE)
76974 , xla_environment_pkg.g_Prog_Appl_Id
76975 , xla_environment_pkg.g_Prog_Id
76976 , xla_environment_pkg.g_Req_Id
76977 FROM (
76978 SELECT xet.event_id event_id
76979 , l2.line_number line_number
76980 , CASE r
76981 WHEN 1 THEN 'PA_XLA_BC_BUDGET_LINES_V'
76982 WHEN 2 THEN 'PA_XLA_BC_BUDGET_LINES_V'
76983 WHEN 3 THEN 'PA_XLA_BC_BUDGET_LINES_V'
76984 WHEN 4 THEN 'PA_XLA_BC_BUDGET_LINES_V'
76985 WHEN 5 THEN 'PA_XLA_BC_BUDGET_LINES_V'
76986 WHEN 6 THEN 'PA_XLA_BC_BUDGET_LINES_V'
76987 WHEN 7 THEN 'PA_XLA_BC_BUDGET_LINES_V'
76991 WHEN 11 THEN 'PA_XLA_BC_BUDGET_LINES_V'
76988 WHEN 8 THEN 'PA_XLA_BC_BUDGET_LINES_V'
76989 WHEN 9 THEN 'PA_XLA_BC_BUDGET_LINES_V'
76990 WHEN 10 THEN 'PA_XLA_BC_BUDGET_LINES_V'
76992 WHEN 12 THEN 'PA_XLA_BC_BUDGET_LINES_V'
76993 WHEN 13 THEN 'PA_XLA_BC_BUDGET_LINES_V'
76994
76995 ELSE null
76996 END object_name
76997 , CASE r
76998 WHEN 1 THEN 'LINE'
76999 WHEN 2 THEN 'LINE'
77000 WHEN 3 THEN 'LINE'
77001 WHEN 4 THEN 'LINE'
77002 WHEN 5 THEN 'LINE'
77003 WHEN 6 THEN 'LINE'
77004 WHEN 7 THEN 'LINE'
77005 WHEN 8 THEN 'LINE'
77006 WHEN 9 THEN 'LINE'
77007 WHEN 10 THEN 'LINE'
77008 WHEN 11 THEN 'LINE'
77009 WHEN 12 THEN 'LINE'
77010 WHEN 13 THEN 'LINE'
77011
77012 ELSE null
77013 END object_type_code
77014 , CASE r
77015 WHEN 1 THEN '275'
77016 WHEN 2 THEN '275'
77017 WHEN 3 THEN '275'
77018 WHEN 4 THEN '275'
77019 WHEN 5 THEN '275'
77020 WHEN 6 THEN '275'
77021 WHEN 7 THEN '275'
77022 WHEN 8 THEN '275'
77023 WHEN 9 THEN '275'
77024 WHEN 10 THEN '275'
77025 WHEN 11 THEN '275'
77026 WHEN 12 THEN '275'
77027 WHEN 13 THEN '275'
77028
77029 ELSE null
77030 END source_application_id
77031 , 'S' source_type_code
77032 , CASE r
77033 WHEN 1 THEN 'BUDGET_CCID'
77034 WHEN 2 THEN 'REVERSING_LINE_FLAG'
77035 WHEN 3 THEN 'ENTERED_CURRENCY_CODE'
77036 WHEN 4 THEN 'EXCHANGE_RATE_DATE'
77037 WHEN 5 THEN 'EXCHANGE_RATE'
77038 WHEN 6 THEN 'EXCHANGE_RATE_TYPE'
77039 WHEN 7 THEN 'LINE_TYPE'
77040 WHEN 8 THEN 'BUDGET_LINE_ID'
77041 WHEN 9 THEN 'ENC_UPG_DR_ACCT_CLASS'
77042 WHEN 10 THEN 'ENTERED_AMOUNT'
77043 WHEN 11 THEN 'ACCT_AMOUNT'
77044 WHEN 12 THEN 'USE_ENC_UPG_ATTRIB_FLAG'
77045 WHEN 13 THEN 'ENC_UPG_ENC_TYPE_ID'
77046
77047 ELSE null
77048 END source_code
77049 , CASE r
77050 WHEN 1 THEN TO_CHAR(l2.BUDGET_CCID)
77051 WHEN 2 THEN TO_CHAR(l2.REVERSING_LINE_FLAG)
77052 WHEN 3 THEN TO_CHAR(l2.ENTERED_CURRENCY_CODE)
77053 WHEN 4 THEN TO_CHAR(l2.EXCHANGE_RATE_DATE)
77054 WHEN 5 THEN TO_CHAR(l2.EXCHANGE_RATE)
77055 WHEN 6 THEN TO_CHAR(l2.EXCHANGE_RATE_TYPE)
77056 WHEN 7 THEN TO_CHAR(l2.LINE_TYPE)
77057 WHEN 8 THEN TO_CHAR(l2.BUDGET_LINE_ID)
77058 WHEN 9 THEN TO_CHAR(l2.ENC_UPG_DR_ACCT_CLASS)
77059 WHEN 10 THEN TO_CHAR(l2.ENTERED_AMOUNT)
77060 WHEN 11 THEN TO_CHAR(l2.ACCT_AMOUNT)
77061 WHEN 12 THEN TO_CHAR(l2.USE_ENC_UPG_ATTRIB_FLAG)
77062 WHEN 13 THEN TO_CHAR(l2.ENC_UPG_ENC_TYPE_ID)
77063
77064 ELSE null
77065 END source_value
77066 , CASE r
77067 WHEN 7 THEN fvl35.meaning
77068
77069 ELSE null
77070 END source_meaning
77071 FROM xla_events_gt xet
77072 , PA_XLA_BC_BUDGET_LINES_V l2
77073 , fnd_lookup_values fvl35
77074 , (select rownum r from all_objects where rownum <= 13 and owner = p_apps_owner)
77075 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
77076 AND xet.event_class_code = C_EVENT_CLASS_CODE
77077 AND l2.event_id = xet.event_id
77078 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
77079 AND fvl35.lookup_code(+) = l2.LINE_TYPE
77080 AND fvl35.view_application_id(+) = 275
77081 AND fvl35.language(+) = USERENV('LANG')
77082
77083 )
77084 ;
77085 --
77086 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77087
77088 trace
77089 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
77090 ,p_level => C_LEVEL_STATEMENT
77091 ,p_module => l_log_module);
77092
77093 END IF;
77094
77095
77096 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77097 trace
77098 (p_msg => 'END of insert_sources_150'
77099 ,p_level => C_LEVEL_PROCEDURE
77100 ,p_module => l_log_module);
77101 END IF;
77102 EXCEPTION
77103 WHEN xla_exceptions_pkg.application_exception THEN
77104 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
77105 trace
77106 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
77107 ,p_level => C_LEVEL_EXCEPTION
77108 ,p_module => l_log_module);
77109 END IF;
77110 RAISE;
77111 WHEN OTHERS THEN
77112 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
77113 trace
77114 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
77115 ,p_level => C_LEVEL_EXCEPTION
77116 ,p_module => l_log_module);
77117 END IF;
77118 xla_exceptions_pkg.raise_message
77119 (p_location => 'XLA_00275_AAD_S_000015_PKG.insert_sources_150');
77123 ---------------------------------------
77120 END insert_sources_150;
77121 --
77122
77124 --
77125 -- PRIVATE FUNCTION
77126 -- EventClass_150
77127 --
77128 ----------------------------------------
77129 --
77130 FUNCTION EventClass_150
77131 (p_application_id IN NUMBER
77132 ,p_base_ledger_id IN NUMBER
77133 ,p_target_ledger_id IN NUMBER
77134 ,p_language IN VARCHAR2
77135 ,p_currency_code IN VARCHAR2
77136 ,p_sla_ledger_id IN NUMBER
77137 ,p_pad_start_date IN DATE
77138 ,p_pad_end_date IN DATE
77139 ,p_primary_ledger_id IN NUMBER)
77140 RETURN BOOLEAN IS
77141 --
77142 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BUDGET_ALL';
77143 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BUDGET';
77144
77145 l_calculate_acctd_flag VARCHAR2(1) :='N';
77146 l_calculate_g_l_flag VARCHAR2(1) :='N';
77147 --
77148 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77149 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77150 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
77151 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
77152 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77153 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
77154 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
77155 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77156 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
77157 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
77158 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77159 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77160 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77161 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77162 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
77163 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
77164 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
77165 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
77166 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
77167 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
77168 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
77169 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
77170 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
77171 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
77172
77173 l_event_id NUMBER;
77174 l_previous_event_id NUMBER;
77175 l_first_event_id NUMBER;
77176 l_last_event_id NUMBER;
77177
77178 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
77179 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
77180 --
77181 --
77182 l_result BOOLEAN := TRUE;
77183 l_rows NUMBER := 1000;
77184 l_event_type_name VARCHAR2(80) := 'All';
77185 l_event_class_name VARCHAR2(80) := 'Budget';
77186 l_description VARCHAR2(4000);
77187 l_transaction_reversal NUMBER;
77188 l_ae_header_id NUMBER;
77189 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
77190 l_log_module VARCHAR2(240);
77191 --
77192 l_acct_reversal_source VARCHAR2(30);
77193 l_trx_reversal_source VARCHAR2(30);
77194
77195 l_continue_with_lines BOOLEAN := TRUE;
77196 --
77197 l_acc_rev_gl_date_source DATE; -- 4262811
77198 --
77199 type t_array_event_id is table of number index by binary_integer;
77200
77201 l_rec_array_event t_rec_array_event;
77202 l_null_rec_array_event t_rec_array_event;
77203 l_array_ae_header_id xla_number_array_type;
77204 l_actual_flag VARCHAR2(1) := NULL;
77205 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
77206 l_balance_type_code VARCHAR2(1) :=NULL;
77207 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
77208
77209 --
77210 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
77211 --
77212
77213 TYPE t_array_source_37 IS TABLE OF PA_XLA_BC_BUDGET_HEADER_V.BUDGET_AMOUNT_CODE%TYPE INDEX BY BINARY_INTEGER;
77214 TYPE t_array_source_38 IS TABLE OF PA_XLA_PROJECT_REF_V.PROJECT_TYPE_CLASS_CODE%TYPE INDEX BY BINARY_INTEGER;
77215 TYPE t_array_source_39 IS TABLE OF PA_XLA_BC_BUDGET_HEADER_V.BC_BALANCE_TYPE%TYPE INDEX BY BINARY_INTEGER;
77216 TYPE t_array_source_75 IS TABLE OF PA_XLA_BC_BUDGET_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
77217 TYPE t_array_source_76 IS TABLE OF PA_XLA_BC_BUDGET_HEADER_V.GL_BUDGET_VERSION_ID%TYPE INDEX BY BINARY_INTEGER;
77218
77219 TYPE t_array_source_3 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.BUDGET_CCID%TYPE INDEX BY BINARY_INTEGER;
77220 TYPE t_array_source_23 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
77221 TYPE t_array_source_26 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
77222 TYPE t_array_source_28 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
77223 TYPE t_array_source_29 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
77224 TYPE t_array_source_30 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
77225 TYPE t_array_source_35 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
77229 TYPE t_array_source_43 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.ACCT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
77226 TYPE t_array_source_40 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.BUDGET_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
77227 TYPE t_array_source_41 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.ENC_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
77228 TYPE t_array_source_42 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.ENTERED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
77230 TYPE t_array_source_44 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
77231 TYPE t_array_source_45 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.ENC_UPG_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
77232
77233 l_array_source_37 t_array_source_37;
77234 l_array_source_38 t_array_source_38;
77235 l_array_source_38_meaning t_array_lookup_meaning;
77236 l_array_source_39 t_array_source_39;
77237 l_array_source_75 t_array_source_75;
77238 l_array_source_76 t_array_source_76;
77239
77240 l_array_source_3 t_array_source_3;
77241 l_array_source_23 t_array_source_23;
77242 l_array_source_26 t_array_source_26;
77243 l_array_source_28 t_array_source_28;
77244 l_array_source_29 t_array_source_29;
77245 l_array_source_30 t_array_source_30;
77246 l_array_source_35 t_array_source_35;
77247 l_array_source_35_meaning t_array_lookup_meaning;
77248 l_array_source_40 t_array_source_40;
77249 l_array_source_41 t_array_source_41;
77250 l_array_source_42 t_array_source_42;
77251 l_array_source_43 t_array_source_43;
77252 l_array_source_44 t_array_source_44;
77253 l_array_source_45 t_array_source_45;
77254
77255 --
77256 CURSOR header_cur
77257 IS
77258 SELECT /*+ leading(xet) cardinality(xet,1) */
77259 -- Event Class Code: BUDGET
77260 xet.entity_id
77261 ,xet.legal_entity_id
77262 ,xet.entity_code
77263 ,xet.transaction_number
77264 ,xet.event_id
77265 ,xet.event_class_code
77266 ,xet.event_type_code
77267 ,xet.event_number
77268 ,xet.event_date
77269 ,xet.transaction_date
77270 ,xet.reference_num_1
77271 ,xet.reference_num_2
77272 ,xet.reference_num_3
77273 ,xet.reference_num_4
77274 ,xet.reference_char_1
77275 ,xet.reference_char_2
77276 ,xet.reference_char_3
77277 ,xet.reference_char_4
77278 ,xet.reference_date_1
77279 ,xet.reference_date_2
77280 ,xet.reference_date_3
77281 ,xet.reference_date_4
77282 ,xet.event_created_by
77283 ,xet.budgetary_control_flag
77284 , h1.BUDGET_AMOUNT_CODE source_37
77285 , h3.PROJECT_TYPE_CLASS_CODE source_38
77286 , fvl38.meaning source_38_meaning
77287 , h1.BC_BALANCE_TYPE source_39
77288 , h1.GL_DATE source_75
77289 , h1.GL_BUDGET_VERSION_ID source_76
77290 FROM xla_events_gt xet
77291 , PA_XLA_BC_BUDGET_HEADER_V h1
77292 , PA_XLA_PROJECT_REF_V h3
77293 , fnd_lookup_values fvl38
77294 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
77295 and xet.event_class_code = C_EVENT_CLASS_CODE
77296 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
77297 AND h3.PROJECT_ID=h1.PROJECT_ID AND fvl38.lookup_type(+) = 'PROJECT TYPE CLASS'
77298 AND fvl38.lookup_code(+) = h3.PROJECT_TYPE_CLASS_CODE
77299 AND fvl38.view_application_id(+) = 275
77300 AND fvl38.language(+) = USERENV('LANG')
77301
77302 ORDER BY event_id
77303 ;
77304
77305
77306 --
77307 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
77308 IS
77309 SELECT /*+ leading(xet) cardinality(xet,1) */
77310 -- Event Class Code: BUDGET
77311 xet.entity_id
77312 ,xet.legal_entity_id
77313 ,xet.entity_code
77314 ,xet.transaction_number
77315 ,xet.event_id
77316 ,xet.event_class_code
77317 ,xet.event_type_code
77318 ,xet.event_number
77319 ,xet.event_date
77320 ,xet.transaction_date
77321 ,xet.reference_num_1
77322 ,xet.reference_num_2
77323 ,xet.reference_num_3
77324 ,xet.reference_num_4
77325 ,xet.reference_char_1
77326 ,xet.reference_char_2
77327 ,xet.reference_char_3
77328 ,xet.reference_char_4
77329 ,xet.reference_date_1
77330 ,xet.reference_date_2
77331 ,xet.reference_date_3
77332 ,xet.reference_date_4
77333 ,xet.event_created_by
77334 ,xet.budgetary_control_flag
77335 , l2.LINE_NUMBER
77336 , l2.BUDGET_CCID source_3
77337 , l2.REVERSING_LINE_FLAG source_23
77338 , l2.ENTERED_CURRENCY_CODE source_26
77339 , l2.EXCHANGE_RATE_DATE source_28
77340 , l2.EXCHANGE_RATE source_29
77341 , l2.EXCHANGE_RATE_TYPE source_30
77342 , l2.LINE_TYPE source_35
77343 , fvl35.meaning source_35_meaning
77344 , l2.BUDGET_LINE_ID source_40
77345 , l2.ENC_UPG_DR_ACCT_CLASS source_41
77346 , l2.ENTERED_AMOUNT source_42
77347 , l2.ACCT_AMOUNT source_43
77348 , l2.USE_ENC_UPG_ATTRIB_FLAG source_44
77349 , l2.ENC_UPG_ENC_TYPE_ID source_45
77350 FROM xla_events_gt xet
77351 , PA_XLA_BC_BUDGET_LINES_V l2
77352 , fnd_lookup_values fvl35
77353 WHERE xet.event_id between x_first_event_id and x_last_event_id
77354 and xet.event_date between p_pad_start_date and p_pad_end_date
77355 and xet.event_class_code = C_EVENT_CLASS_CODE
77356 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
77357 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
77358 AND fvl35.lookup_code(+) = l2.LINE_TYPE
77359 AND fvl35.view_application_id(+) = 275
77360 AND fvl35.language(+) = USERENV('LANG')
77361 ;
77362
77363 --
77364 BEGIN
77365 IF g_log_enabled THEN
77366 l_log_module := C_DEFAULT_MODULE||'.EventClass_150';
77367 END IF;
77371 ,p_level => C_LEVEL_PROCEDURE
77368 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77369 trace
77370 (p_msg => 'BEGIN of EventClass_150'
77372 ,p_module => l_log_module);
77373 END IF;
77374
77375 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77376 trace
77377 (p_msg => 'p_application_id = '||p_application_id||
77378 ' - p_base_ledger_id = '||p_base_ledger_id||
77379 ' - p_target_ledger_id = '||p_target_ledger_id||
77380 ' - p_language = '||p_language||
77381 ' - p_currency_code = '||p_currency_code||
77382 ' - p_sla_ledger_id = '||p_sla_ledger_id
77383 ,p_level => C_LEVEL_STATEMENT
77384 ,p_module => l_log_module);
77385 END IF;
77386 --
77387 -- initialze arrays
77388 --
77389 g_array_event.DELETE;
77390 l_rec_array_event := l_null_rec_array_event;
77391 --
77392 --------------------------------------
77393 -- 4262811 Initialze MPA Line Number
77394 --------------------------------------
77395 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
77396
77397 --
77398
77399 --
77400 OPEN header_cur;
77401 --
77402 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77403 trace
77404 (p_msg => 'SQL - FETCH header_cur'
77405 ,p_level => C_LEVEL_STATEMENT
77406 ,p_module => l_log_module);
77407 END IF;
77408 --
77409 LOOP
77410 FETCH header_cur BULK COLLECT INTO
77411 l_array_entity_id
77412 , l_array_legal_entity_id
77413 , l_array_entity_code
77414 , l_array_transaction_num
77415 , l_array_event_id
77416 , l_array_class_code
77417 , l_array_event_type
77418 , l_array_event_number
77419 , l_array_event_date
77420 , l_array_transaction_date
77421 , l_array_reference_num_1
77422 , l_array_reference_num_2
77423 , l_array_reference_num_3
77424 , l_array_reference_num_4
77425 , l_array_reference_char_1
77426 , l_array_reference_char_2
77427 , l_array_reference_char_3
77428 , l_array_reference_char_4
77429 , l_array_reference_date_1
77430 , l_array_reference_date_2
77431 , l_array_reference_date_3
77432 , l_array_reference_date_4
77433 , l_array_event_created_by
77434 , l_array_budgetary_control_flag
77435 , l_array_source_37
77436 , l_array_source_38
77437 , l_array_source_38_meaning
77438 , l_array_source_39
77439 , l_array_source_75
77440 , l_array_source_76
77441 LIMIT l_rows;
77442 --
77443 IF (C_LEVEL_EVENT >= g_log_level) THEN
77444 trace
77445 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
77446 ,p_level => C_LEVEL_EVENT
77447 ,p_module => l_log_module);
77448 END IF;
77449 --
77450 EXIT WHEN l_array_entity_id.COUNT = 0;
77451
77452 -- initialize arrays
77453 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
77454 XLA_AE_LINES_PKG.g_rec_lines := NULL;
77455
77456 --
77457 -- Bug 4458708
77458 --
77459 XLA_AE_LINES_PKG.g_LineNumber := 0;
77460
77461
77462 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
77463 g_last_hdr_idx := l_array_event_id.LAST;
77464 --
77465 -- loop for the headers. Each iteration is for each header extract row
77466 -- fetched in header cursor
77467 --
77468 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
77469
77470 --
77471 -- set event info as cache for other routines to refer event attributes
77472 --
77473 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
77474 (p_application_id => p_application_id
77475 ,p_primary_ledger_id => p_primary_ledger_id
77476 ,p_base_ledger_id => p_base_ledger_id
77477 ,p_target_ledger_id => p_target_ledger_id
77478 ,p_entity_id => l_array_entity_id(hdr_idx)
77479 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
77480 ,p_entity_code => l_array_entity_code(hdr_idx)
77481 ,p_transaction_num => l_array_transaction_num(hdr_idx)
77482 ,p_event_id => l_array_event_id(hdr_idx)
77483 ,p_event_class_code => l_array_class_code(hdr_idx)
77484 ,p_event_type_code => l_array_event_type(hdr_idx)
77485 ,p_event_number => l_array_event_number(hdr_idx)
77486 ,p_event_date => l_array_event_date(hdr_idx)
77487 ,p_transaction_date => l_array_transaction_date(hdr_idx)
77488 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
77489 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
77490 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
77491 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
77492 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
77493 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
77494 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
77495 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
77496 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
77497 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
77498 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
77499 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
77500 ,p_event_created_by => l_array_event_created_by(hdr_idx)
77501 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
77502
77503 --
77504 -- set the status of entry to C_VALID (0)
77505 --
77506 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
77507
77508 --
77509 -- initialize a row for ae header
77510 --
77514
77511 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
77512
77513 l_event_id := l_array_event_id(hdr_idx);
77515 --
77516 -- storing the hdr_idx for event. May be used by line cursor.
77517 --
77518 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
77519
77520 --
77521 -- store sources from header extract. This can be improved to
77522 -- store only those sources from header extract that may be used in lines
77523 --
77524
77525 g_array_event(l_event_id).array_value_char('source_37') := l_array_source_37(hdr_idx);
77526 g_array_event(l_event_id).array_value_char('source_38') := l_array_source_38(hdr_idx);
77527 g_array_event(l_event_id).array_value_char('source_38_meaning') := l_array_source_38_meaning(hdr_idx);
77528 g_array_event(l_event_id).array_value_char('source_39') := l_array_source_39(hdr_idx);
77529 g_array_event(l_event_id).array_value_date('source_75') := l_array_source_75(hdr_idx);
77530 g_array_event(l_event_id).array_value_num('source_76') := l_array_source_76(hdr_idx);
77531
77532 --
77533 -- initilaize the status of ae headers for diffrent balance types
77534 -- the status is initialised to C_NOT_CREATED (2)
77535 --
77536 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
77537 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
77538 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
77539
77540 --
77541 -- call api to validate and store accounting attributes for header
77542 --
77543
77544 ------------------------------------------------------------
77545 -- Accrual Reversal : to get date for Standard Source (NONE)
77546 ------------------------------------------------------------
77547 l_acc_rev_gl_date_source := NULL;
77548
77549 l_rec_acct_attrs.array_acct_attr_code(1) := 'BUDGET_VERSION_ID';
77550 l_rec_acct_attrs.array_num_value(1) := g_array_event(l_event_id).array_value_num('source_76');
77551 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_DATE';
77552 l_rec_acct_attrs.array_date_value(2) := g_array_event(l_event_id).array_value_date('source_75');
77553
77554
77555 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
77556
77557 XLA_AE_HEADER_PKG.SetJeCategoryName;
77558
77559 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
77560 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
77561 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
77562 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
77563 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
77564
77565
77566 -- No header level analytical criteria
77567
77568 --
77569 --accounting attribute enhancement, bug 3612931
77570 --
77571 l_trx_reversal_source := SUBSTR(NULL, 1,30);
77572
77573 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
77574 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
77575
77576 xla_accounting_err_pkg.build_message
77577 (p_appli_s_name => 'XLA'
77578 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
77579 ,p_token_1 => 'ACCT_ATTR_NAME'
77580 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
77581 ,p_token_2 => 'PRODUCT_NAME'
77582 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
77583 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
77584 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
77585 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
77586
77587 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
77588 --
77589 -- following sets the accounting attributes needed to reverse
77590 -- accounting for a distributeion
77591 --
77592 xla_ae_lines_pkg.SetTrxReversalAttrs
77593 (p_event_id => l_event_id
77594 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
77595 ,p_trx_reversal_source => l_trx_reversal_source);
77596
77597 END IF;
77598
77599
77600 ----------------------------------------------------------------
77601 -- 4262811 - update the header statuses to invalid in need be
77602 ----------------------------------------------------------------
77603 --
77604 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
77605
77606
77607 -----------------------------------------------
77608 -- No accrual reversal for the event class/type
77609 -----------------------------------------------
77610 ----------------------------------------------------------------
77611
77612 --
77613 -- this ends the header loop iteration for one bulk fetch
77614 --
77615 END LOOP;
77616
77617 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
77618 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
77619
77620 --
77621 -- insert dummy rows into lines gt table that were created due to
77622 -- transaction reversals
77623 --
77624 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
77625 l_result := XLA_AE_LINES_PKG.InsertLines;
77626 END IF;
77627
77628 --
77629 -- reset the temp_line_num for each set of events fetched from header
77630 -- cursor rather than doing it for each new event in line cursor
77631 -- Bug 3939231
77632 --
77633 xla_ae_lines_pkg.g_temp_line_num := 0;
77634
77635
77636
77637 --
77638 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
77639 --
77640 --
77644 (p_msg => 'SQL - FETCH line_cur'
77641 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77642
77643 trace
77645 ,p_level => C_LEVEL_STATEMENT
77646 ,p_module => l_log_module);
77647
77648 END IF;
77649 --
77650 --
77651 LOOP
77652 --
77653 FETCH line_cur BULK COLLECT INTO
77654 l_array_entity_id
77655 , l_array_legal_entity_id
77656 , l_array_entity_code
77657 , l_array_transaction_num
77658 , l_array_event_id
77659 , l_array_class_code
77660 , l_array_event_type
77661 , l_array_event_number
77662 , l_array_event_date
77663 , l_array_transaction_date
77664 , l_array_reference_num_1
77665 , l_array_reference_num_2
77666 , l_array_reference_num_3
77667 , l_array_reference_num_4
77668 , l_array_reference_char_1
77669 , l_array_reference_char_2
77670 , l_array_reference_char_3
77671 , l_array_reference_char_4
77672 , l_array_reference_date_1
77673 , l_array_reference_date_2
77674 , l_array_reference_date_3
77675 , l_array_reference_date_4
77676 , l_array_event_created_by
77677 , l_array_budgetary_control_flag
77678 , l_array_extract_line_num
77679 , l_array_source_3
77680 , l_array_source_23
77681 , l_array_source_26
77682 , l_array_source_28
77683 , l_array_source_29
77684 , l_array_source_30
77685 , l_array_source_35
77686 , l_array_source_35_meaning
77687 , l_array_source_40
77688 , l_array_source_41
77689 , l_array_source_42
77690 , l_array_source_43
77691 , l_array_source_44
77692 , l_array_source_45
77693 LIMIT l_rows;
77694
77695 --
77696 IF (C_LEVEL_EVENT >= g_log_level) THEN
77697 trace
77698 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
77699 ,p_level => C_LEVEL_EVENT
77700 ,p_module => l_log_module);
77701 END IF;
77702 --
77703 EXIT WHEN l_array_entity_id.count = 0;
77704
77705 XLA_AE_LINES_PKG.g_rec_lines := null;
77706
77707 --
77708 -- Bug 4458708
77709 --
77710 XLA_AE_LINES_PKG.g_LineNumber := 0;
77711 --
77712 --
77713
77714 FOR Idx IN 1..l_array_event_id.count LOOP
77715 --
77716 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
77717 --
77718 l_event_id := l_array_event_id(idx); -- 5648433
77719
77720 --
77721 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
77722 --
77723
77724 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
77725 (g_array_event(l_event_id).array_value_num('header_index'))
77726 ,'N'
77727 ) <> 'Y'
77728 THEN
77729 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77730 trace
77731 (p_msg => 'Trancaction revesal option is not Y '
77732 ,p_level => C_LEVEL_STATEMENT
77733 ,p_module => l_log_module);
77734 END IF;
77735
77736 --
77737 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
77738 --
77739 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
77740 --
77741 -- set event info as cache for other routines to refer event attributes
77742 --
77743
77744 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
77745 l_previous_event_id := l_event_id;
77746
77747 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
77748 (p_application_id => p_application_id
77749 ,p_primary_ledger_id => p_primary_ledger_id
77750 ,p_base_ledger_id => p_base_ledger_id
77751 ,p_target_ledger_id => p_target_ledger_id
77752 ,p_entity_id => l_array_entity_id(Idx)
77753 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
77754 ,p_entity_code => l_array_entity_code(Idx)
77755 ,p_transaction_num => l_array_transaction_num(Idx)
77756 ,p_event_id => l_array_event_id(Idx)
77757 ,p_event_class_code => l_array_class_code(Idx)
77758 ,p_event_type_code => l_array_event_type(Idx)
77759 ,p_event_number => l_array_event_number(Idx)
77760 ,p_event_date => l_array_event_date(Idx)
77761 ,p_transaction_date => l_array_transaction_date(Idx)
77762 ,p_reference_num_1 => l_array_reference_num_1(Idx)
77763 ,p_reference_num_2 => l_array_reference_num_2(Idx)
77764 ,p_reference_num_3 => l_array_reference_num_3(Idx)
77765 ,p_reference_num_4 => l_array_reference_num_4(Idx)
77766 ,p_reference_char_1 => l_array_reference_char_1(Idx)
77767 ,p_reference_char_2 => l_array_reference_char_2(Idx)
77768 ,p_reference_char_3 => l_array_reference_char_3(Idx)
77769 ,p_reference_char_4 => l_array_reference_char_4(Idx)
77770 ,p_reference_date_1 => l_array_reference_date_1(Idx)
77771 ,p_reference_date_2 => l_array_reference_date_2(Idx)
77772 ,p_reference_date_3 => l_array_reference_date_3(Idx)
77773 ,p_reference_date_4 => l_array_reference_date_4(Idx)
77774 ,p_event_created_by => l_array_event_created_by(Idx)
77775 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
77776 --
77777 END IF;
77778
77779
77780
77781 --
77782 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
77783
77784 l_acct_reversal_source := SUBSTR(l_array_source_23(Idx), 1,30);
77785
77786 IF l_continue_with_lines THEN
77790 xla_accounting_err_pkg.build_message
77787 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
77788 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
77789
77791 (p_appli_s_name => 'XLA'
77792 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
77793 ,p_token_1 => 'LINE_NUMBER'
77794 ,p_value_1 => l_array_extract_line_num(Idx)
77795 ,p_token_2 => 'PRODUCT_NAME'
77796 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
77797 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
77798 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
77799 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
77800
77801 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
77802 --
77803 -- following sets the accounting attributes needed to reverse
77804 -- accounting for a distributeion
77805 --
77806
77807 --
77808 -- 5217187
77809 --
77810 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
77811 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
77812 g_array_event(l_event_id).array_value_num('header_index'));
77813 --
77814 --
77815
77816 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
77817 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_23(Idx);
77818 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
77819 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_40(Idx);
77820 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
77821 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_35(Idx);
77822 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_DR_ACCT_CLASS';
77823 l_rec_rev_acct_attrs.array_char_value(5) := l_array_source_41(Idx);
77824 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_DR_CCID';
77825 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_3(Idx);
77826 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_DR_ENTERED_AMT';
77827 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_42(Idx);
77828 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_DR_ENTERED_CURR';
77829 l_rec_rev_acct_attrs.array_char_value(8) := l_array_source_26(Idx);
77830 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_LEDGER_AMT';
77831 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_43(Idx);
77832 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_OPTION';
77833 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_44(Idx);
77834 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'REVERSED_DISTRIBUTION_ID1';
77835 l_rec_rev_acct_attrs.array_num_value(11) := l_array_source_40(Idx);
77836 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'REVERSED_DISTRIBUTION_TYPE';
77837 l_rec_rev_acct_attrs.array_char_value(12) := l_array_source_35(Idx);
77838 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'UPG_DR_ENC_TYPE_ID';
77839 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_45(Idx);
77840
77841
77842 xla_ae_lines_pkg.SetAcctReversalAttrs
77843 (p_event_id => l_event_id
77844 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
77845 ,p_calculate_acctd_flag => l_calculate_acctd_flag
77846 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
77847 END IF;
77848
77849 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
77850 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
77851
77852 --
77853 AcctLineType_33 (
77854 p_application_id => p_application_id
77855 ,p_event_id => l_event_id
77856 ,p_calculate_acctd_flag => l_calculate_acctd_flag
77857 ,p_calculate_g_l_flag => l_calculate_g_l_flag
77858 ,p_actual_flag => l_actual_flag
77859 ,p_balance_type_code => l_balance_type_code
77860 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
77861
77862 , p_source_3 => l_array_source_3(Idx)
77863 , p_source_23 => l_array_source_23(Idx)
77864 , p_source_26 => l_array_source_26(Idx)
77865 , p_source_28 => l_array_source_28(Idx)
77866 , p_source_29 => l_array_source_29(Idx)
77867 , p_source_30 => l_array_source_30(Idx)
77868 , p_source_35 => l_array_source_35(Idx)
77869 , p_source_35_meaning => l_array_source_35_meaning(Idx)
77870 , p_source_37 => g_array_event(l_event_id).array_value_char('source_37')
77871 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
77872 , p_source_38_meaning => g_array_event(l_event_id).array_value_char('source_38_meaning')
77873 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
77874 , p_source_40 => l_array_source_40(Idx)
77875 , p_source_41 => l_array_source_41(Idx)
77876 , p_source_42 => l_array_source_42(Idx)
77877 , p_source_43 => l_array_source_43(Idx)
77878 , p_source_44 => l_array_source_44(Idx)
77879 , p_source_45 => l_array_source_45(Idx)
77880 );
77881 If(l_balance_type_code = 'A') THEN
77882 l_actual_gain_loss_ref := l_gain_or_loss_ref;
77883 END IF;
77884
77885 --
77886
77887
77888 --
77889 AcctLineType_34 (
77890 p_application_id => p_application_id
77891 ,p_event_id => l_event_id
77892 ,p_calculate_acctd_flag => l_calculate_acctd_flag
77893 ,p_calculate_g_l_flag => l_calculate_g_l_flag
77894 ,p_actual_flag => l_actual_flag
77895 ,p_balance_type_code => l_balance_type_code
77896 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
77897
77898 , p_source_3 => l_array_source_3(Idx)
77899 , p_source_23 => l_array_source_23(Idx)
77900 , p_source_26 => l_array_source_26(Idx)
77901 , p_source_35 => l_array_source_35(Idx)
77905 , p_source_38_meaning => g_array_event(l_event_id).array_value_char('source_38_meaning')
77902 , p_source_35_meaning => l_array_source_35_meaning(Idx)
77903 , p_source_37 => g_array_event(l_event_id).array_value_char('source_37')
77904 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
77906 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
77907 , p_source_40 => l_array_source_40(Idx)
77908 , p_source_41 => l_array_source_41(Idx)
77909 , p_source_42 => l_array_source_42(Idx)
77910 , p_source_43 => l_array_source_43(Idx)
77911 , p_source_44 => l_array_source_44(Idx)
77912 );
77913 If(l_balance_type_code = 'A') THEN
77914 l_actual_gain_loss_ref := l_gain_or_loss_ref;
77915 END IF;
77916
77917 --
77918
77919
77920 --
77921 AcctLineType_143 (
77922 p_application_id => p_application_id
77923 ,p_event_id => l_event_id
77924 ,p_calculate_acctd_flag => l_calculate_acctd_flag
77925 ,p_calculate_g_l_flag => l_calculate_g_l_flag
77926 ,p_actual_flag => l_actual_flag
77927 ,p_balance_type_code => l_balance_type_code
77928 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
77929
77930 , p_source_3 => l_array_source_3(Idx)
77931 , p_source_23 => l_array_source_23(Idx)
77932 , p_source_26 => l_array_source_26(Idx)
77933 , p_source_28 => l_array_source_28(Idx)
77934 , p_source_29 => l_array_source_29(Idx)
77935 , p_source_30 => l_array_source_30(Idx)
77936 , p_source_35 => l_array_source_35(Idx)
77937 , p_source_35_meaning => l_array_source_35_meaning(Idx)
77938 , p_source_37 => g_array_event(l_event_id).array_value_char('source_37')
77939 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
77940 , p_source_38_meaning => g_array_event(l_event_id).array_value_char('source_38_meaning')
77941 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
77942 , p_source_40 => l_array_source_40(Idx)
77943 , p_source_41 => l_array_source_41(Idx)
77944 , p_source_42 => l_array_source_42(Idx)
77945 , p_source_43 => l_array_source_43(Idx)
77946 , p_source_44 => l_array_source_44(Idx)
77947 , p_source_45 => l_array_source_45(Idx)
77948 );
77949 If(l_balance_type_code = 'A') THEN
77950 l_actual_gain_loss_ref := l_gain_or_loss_ref;
77951 END IF;
77952
77953 --
77954
77955
77956 --
77957 AcctLineType_144 (
77958 p_application_id => p_application_id
77959 ,p_event_id => l_event_id
77960 ,p_calculate_acctd_flag => l_calculate_acctd_flag
77961 ,p_calculate_g_l_flag => l_calculate_g_l_flag
77962 ,p_actual_flag => l_actual_flag
77963 ,p_balance_type_code => l_balance_type_code
77964 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
77965
77966 , p_source_3 => l_array_source_3(Idx)
77967 , p_source_23 => l_array_source_23(Idx)
77968 , p_source_26 => l_array_source_26(Idx)
77969 , p_source_35 => l_array_source_35(Idx)
77970 , p_source_35_meaning => l_array_source_35_meaning(Idx)
77971 , p_source_37 => g_array_event(l_event_id).array_value_char('source_37')
77972 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
77973 , p_source_38_meaning => g_array_event(l_event_id).array_value_char('source_38_meaning')
77974 , p_source_39 => g_array_event(l_event_id).array_value_char('source_39')
77975 , p_source_40 => l_array_source_40(Idx)
77976 , p_source_41 => l_array_source_41(Idx)
77977 , p_source_42 => l_array_source_42(Idx)
77978 , p_source_43 => l_array_source_43(Idx)
77979 , p_source_44 => l_array_source_44(Idx)
77980 );
77981 If(l_balance_type_code = 'A') THEN
77982 l_actual_gain_loss_ref := l_gain_or_loss_ref;
77983 END IF;
77984
77985 --
77986
77987 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
77988 -- or secondary ledger that has different currency with primary
77989 -- or alc that is calculated by sla
77990 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
77991 (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'))
77992
77993 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
77994 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
77995 AND (l_actual_flag = 'A')) THEN
77996 XLA_AE_LINES_PKG.CreateGainOrLossLines(
77997 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
77998 ,p_application_id => p_application_id
77999 ,p_amb_context_code => 'DEFAULT'
78000 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
78001 ,p_event_class_code => C_EVENT_CLASS_CODE
78002 ,p_event_type_code => C_EVENT_TYPE_CODE
78003
78004 ,p_gain_ccid => -1
78005 ,p_loss_ccid => -1
78006
78007 ,p_actual_flag => l_actual_flag
78008 ,p_enc_flag => null
78009 ,p_actual_g_l_ref => l_actual_gain_loss_ref
78010 ,p_enc_g_l_ref => null
78011 );
78012 END IF;
78013 END IF;
78014 END IF;
78015
78016 ELSE
78017 --
78018 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
78019 --
78020 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78021 trace
78022 (p_msg => 'Trancaction revesal option is Y'
78023 ,p_level => C_LEVEL_STATEMENT
78024 ,p_module => l_log_module);
78025 END IF;
78026 END IF;
78027
78028 END LOOP;
78029 l_result := XLA_AE_LINES_PKG.InsertLines ;
78030 end loop;
78031 close line_cur;
78032
78033
78034 --
78035 -- insert headers into xla_ae_headers_gt table
78036 --
78037 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
78038
78042
78039 -- insert into errors table here.
78040
78041 END LOOP;
78043 --
78044 -- 4865292
78045 --
78046 -- Compare g_hdr_extract_count with event count in
78047 -- CreateHeadersAndLines.
78048 --
78049 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
78050
78051 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78052 trace (p_msg => '# rows extracted from header extract objects '
78053 || ' (running total): '
78054 || g_hdr_extract_count
78055 ,p_level => C_LEVEL_STATEMENT
78056 ,p_module => l_log_module);
78057 END IF;
78058
78059 CLOSE header_cur;
78060 --
78061
78062 --
78063 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78064 trace
78065 (p_msg => 'END of EventClass_150'
78066 ,p_level => C_LEVEL_PROCEDURE
78067 ,p_module => l_log_module);
78068 END IF;
78069 --
78070 RETURN l_result;
78071 EXCEPTION
78072 WHEN xla_exceptions_pkg.application_exception THEN
78073
78074 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
78075
78076
78077 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
78078
78079 RAISE;
78080 WHEN OTHERS THEN
78081 xla_exceptions_pkg.raise_message
78082 (p_location => 'XLA_00275_AAD_S_000015_PKG.EventClass_150');
78083 END EventClass_150;
78084 --
78085
78086 ---------------------------------------
78087 --
78088 -- PRIVATE PROCEDURE
78089 -- insert_sources_151
78090 --
78091 ----------------------------------------
78092 --
78093 PROCEDURE insert_sources_151(
78094 p_target_ledger_id IN NUMBER
78095 , p_language IN VARCHAR2
78096 , p_sla_ledger_id IN NUMBER
78097 , p_pad_start_date IN DATE
78098 , p_pad_end_date IN DATE
78099 )
78100 IS
78101
78102 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BURDEN_COST_ADJ_ALL';
78103 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BURDEN_COST_ADJ';
78104 p_apps_owner VARCHAR2(30);
78105 l_log_module VARCHAR2(240);
78106 BEGIN
78107 IF g_log_enabled THEN
78108 l_log_module := C_DEFAULT_MODULE||'.insert_sources_151';
78109 END IF;
78110 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78111
78112 trace
78113 (p_msg => 'BEGIN of insert_sources_151'
78114 ,p_level => C_LEVEL_PROCEDURE
78115 ,p_module => l_log_module);
78116
78117 END IF;
78118
78119 -- select APPS owner
78120 SELECT oracle_username
78121 INTO p_apps_owner
78122 FROM fnd_oracle_userid
78123 WHERE read_only_flag = 'U'
78124 ;
78125
78126 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78127 trace
78128 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
78129 ' - p_language = '||p_language||
78130 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
78131 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
78132 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
78133 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
78134 ,p_level => C_LEVEL_STATEMENT
78135 ,p_module => l_log_module);
78136 END IF;
78137
78138
78139 --
78140 INSERT INTO xla_diag_sources --hdr2
78141 (
78142 event_id
78143 , ledger_id
78144 , sla_ledger_id
78145 , description_language
78146 , object_name
78147 , object_type_code
78148 , line_number
78149 , source_application_id
78150 , source_type_code
78151 , source_code
78152 , source_value
78153 , source_meaning
78154 , created_by
78155 , creation_date
78156 , last_update_date
78157 , last_updated_by
78158 , last_update_login
78159 , program_update_date
78160 , program_application_id
78161 , program_id
78162 , request_id
78163 )
78164 SELECT
78165 event_id
78166 , p_target_ledger_id
78167 , p_sla_ledger_id
78168 , p_language
78169 , object_name
78170 , object_type_code
78171 , line_number
78172 , source_application_id
78173 , source_type_code
78174 , source_code
78175 , SUBSTR(source_value ,1,1996)
78176 , SUBSTR(source_meaning ,1,200)
78177 , xla_environment_pkg.g_Usr_Id
78178 , TRUNC(SYSDATE)
78179 , TRUNC(SYSDATE)
78180 , xla_environment_pkg.g_Usr_Id
78181 , xla_environment_pkg.g_Login_Id
78182 , TRUNC(SYSDATE)
78183 , xla_environment_pkg.g_Prog_Appl_Id
78184 , xla_environment_pkg.g_Prog_Id
78185 , xla_environment_pkg.g_Req_Id
78186 FROM (
78187 SELECT xet.event_id event_id
78188 , 0 line_number
78189 , CASE r
78190 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
78191 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
78192
78193 ELSE null
78194 END object_name
78195 , CASE r
78196 WHEN 1 THEN 'HEADER'
78197 WHEN 2 THEN 'HEADER'
78198
78199 ELSE null
78200 END object_type_code
78201 , CASE r
78202 WHEN 1 THEN '275'
78203 WHEN 2 THEN '275'
78204
78205 ELSE null
78209 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
78206 END source_application_id
78207 , 'S' source_type_code
78208 , CASE r
78210 WHEN 2 THEN 'GL_DATE'
78211
78212 ELSE null
78213 END source_code
78214 , CASE r
78215 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
78216 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
78217
78218 ELSE null
78219 END source_value
78220 , null source_meaning
78221 FROM xla_events_gt xet
78222 , PA_XLA_EXP_HEADER_V h2
78223 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
78224 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
78225 AND xet.event_class_code = C_EVENT_CLASS_CODE
78226 AND h2.event_id = xet.event_id
78227
78228 )
78229 ;
78230 --
78231 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78232
78233 trace
78234 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
78235 ,p_level => C_LEVEL_STATEMENT
78236 ,p_module => l_log_module);
78237
78238 END IF;
78239 --
78240
78241
78242
78243 --
78244 INSERT INTO xla_diag_sources --line2
78245 (
78246 event_id
78247 , ledger_id
78248 , sla_ledger_id
78249 , description_language
78250 , object_name
78251 , object_type_code
78252 , line_number
78253 , source_application_id
78254 , source_type_code
78255 , source_code
78256 , source_value
78257 , source_meaning
78258 , created_by
78259 , creation_date
78260 , last_update_date
78261 , last_updated_by
78262 , last_update_login
78263 , program_update_date
78264 , program_application_id
78265 , program_id
78266 , request_id
78267 )
78268 SELECT event_id
78269 , p_target_ledger_id
78270 , p_sla_ledger_id
78271 , p_language
78272 , object_name
78273 , object_type_code
78274 , line_number
78275 , source_application_id
78276 , source_type_code
78277 , source_code
78278 , SUBSTR(source_value,1,1996)
78279 , SUBSTR(source_meaning ,1,200)
78280 , xla_environment_pkg.g_Usr_Id
78281 , TRUNC(SYSDATE)
78282 , TRUNC(SYSDATE)
78283 , xla_environment_pkg.g_Usr_Id
78284 , xla_environment_pkg.g_Login_Id
78285 , TRUNC(SYSDATE)
78286 , xla_environment_pkg.g_Prog_Appl_Id
78287 , xla_environment_pkg.g_Prog_Id
78288 , xla_environment_pkg.g_Req_Id
78289 FROM (
78290 SELECT xet.event_id event_id
78291 , l1.line_number line_number
78292 , CASE r
78293 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
78294 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
78295 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
78296 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
78297 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
78298 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
78299 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
78300 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
78301 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
78302 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
78303 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
78304 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
78305 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
78306 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
78307 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
78308 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
78309 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
78310 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
78311 WHEN 19 THEN 'PA_XLA_CDL_LINES_V'
78312 WHEN 20 THEN 'PA_XLA_CDL_LINES_V'
78313 WHEN 21 THEN 'PA_XLA_CDL_LINES_V'
78314 WHEN 22 THEN 'PA_XLA_CDL_LINES_V'
78315 WHEN 23 THEN 'PA_XLA_CDL_LINES_V'
78316 WHEN 24 THEN 'PA_XLA_CDL_LINES_V'
78317 WHEN 25 THEN 'PA_XLA_CDL_LINES_V'
78318 WHEN 26 THEN 'PA_XLA_CDL_LINES_V'
78319 WHEN 27 THEN 'PA_XLA_CDL_LINES_V'
78320 WHEN 28 THEN 'PA_XLA_CDL_LINES_V'
78321 WHEN 29 THEN 'PA_XLA_CDL_LINES_V'
78322 WHEN 30 THEN 'PA_XLA_CDL_LINES_V'
78323 WHEN 31 THEN 'PA_XLA_CDL_LINES_V'
78324
78325 ELSE null
78326 END object_name
78327 , CASE r
78328 WHEN 1 THEN 'LINE'
78329 WHEN 2 THEN 'LINE'
78330 WHEN 3 THEN 'LINE'
78331 WHEN 4 THEN 'LINE'
78332 WHEN 5 THEN 'LINE'
78333 WHEN 6 THEN 'LINE'
78334 WHEN 7 THEN 'LINE'
78335 WHEN 8 THEN 'LINE'
78336 WHEN 9 THEN 'LINE'
78337 WHEN 10 THEN 'LINE'
78338 WHEN 11 THEN 'LINE'
78339 WHEN 12 THEN 'LINE'
78340 WHEN 13 THEN 'LINE'
78341 WHEN 14 THEN 'LINE'
78342 WHEN 15 THEN 'LINE'
78343 WHEN 16 THEN 'LINE'
78344 WHEN 17 THEN 'LINE'
78345 WHEN 18 THEN 'LINE'
78346 WHEN 19 THEN 'LINE'
78347 WHEN 20 THEN 'LINE'
78348 WHEN 21 THEN 'LINE'
78349 WHEN 22 THEN 'LINE'
78353 WHEN 26 THEN 'LINE'
78350 WHEN 23 THEN 'LINE'
78351 WHEN 24 THEN 'LINE'
78352 WHEN 25 THEN 'LINE'
78354 WHEN 27 THEN 'LINE'
78355 WHEN 28 THEN 'LINE'
78356 WHEN 29 THEN 'LINE'
78357 WHEN 30 THEN 'LINE'
78358 WHEN 31 THEN 'LINE'
78359
78360 ELSE null
78361 END object_type_code
78362 , CASE r
78363 WHEN 1 THEN '275'
78364 WHEN 2 THEN '275'
78365 WHEN 3 THEN '275'
78366 WHEN 4 THEN '275'
78367 WHEN 5 THEN '275'
78368 WHEN 6 THEN '275'
78369 WHEN 7 THEN '275'
78370 WHEN 8 THEN '275'
78371 WHEN 9 THEN '275'
78372 WHEN 10 THEN '275'
78373 WHEN 11 THEN '275'
78374 WHEN 12 THEN '275'
78375 WHEN 13 THEN '275'
78376 WHEN 14 THEN '275'
78377 WHEN 15 THEN '275'
78378 WHEN 16 THEN '275'
78379 WHEN 17 THEN '275'
78380 WHEN 18 THEN '275'
78381 WHEN 19 THEN '275'
78382 WHEN 20 THEN '275'
78383 WHEN 21 THEN '275'
78384 WHEN 22 THEN '275'
78385 WHEN 23 THEN '275'
78386 WHEN 24 THEN '275'
78387 WHEN 25 THEN '275'
78388 WHEN 26 THEN '275'
78389 WHEN 27 THEN '275'
78390 WHEN 28 THEN '275'
78391 WHEN 29 THEN '275'
78392 WHEN 30 THEN '275'
78393 WHEN 31 THEN '275'
78394
78395 ELSE null
78396 END source_application_id
78397 , 'S' source_type_code
78398 , CASE r
78399 WHEN 1 THEN 'BUDGET_CCID'
78400 WHEN 2 THEN 'COST_CCID'
78401 WHEN 3 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
78402 WHEN 4 THEN 'ADJ_COST_CCID'
78403 WHEN 5 THEN 'COST_CLEARING_CCID'
78404 WHEN 6 THEN 'ADJ_COST_CLEARING_CCID'
78405 WHEN 7 THEN 'REVERSING_LINE_FLAG'
78406 WHEN 8 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
78407 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
78408 WHEN 10 THEN 'EXCHANGE_RATE_DATE'
78409 WHEN 11 THEN 'EXCHANGE_RATE'
78410 WHEN 12 THEN 'EXCHANGE_RATE_TYPE'
78411 WHEN 13 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
78412 WHEN 14 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
78413 WHEN 15 THEN 'LINE_NUMBER'
78414 WHEN 16 THEN 'LINE_TYPE'
78415 WHEN 17 THEN 'LINE_NUM_REVERSED'
78416 WHEN 18 THEN 'ENC_UPG_DR_ACCT_CLASS'
78417 WHEN 19 THEN 'USE_ENC_UPG_ATTRIB_FLAG'
78418 WHEN 20 THEN 'ENTERED_BURDENED_COST'
78419 WHEN 21 THEN 'ACCT_BURDENED_COST'
78420 WHEN 22 THEN 'ENCUMBRANCE_AMOUNT'
78421 WHEN 23 THEN 'PA_APPLICATION_ID'
78422 WHEN 24 THEN 'PA_DISTRIBUTION_TYPE'
78423 WHEN 25 THEN 'PA_ENTITY_CODE'
78424 WHEN 26 THEN 'PA_FIRST_DIST_ID'
78425 WHEN 27 THEN 'PA_FIRST_SYS_TRANS_ID'
78426 WHEN 28 THEN 'PA_SECOND_DIST_ID'
78427 WHEN 29 THEN 'ENC_UPG_CR_ACCT_CLASS'
78428 WHEN 30 THEN 'ENCUMBRANCE_TYPE_ID'
78429 WHEN 31 THEN 'PROJ_ENCUMBRANCE_TYPE_ID'
78430
78431 ELSE null
78432 END source_code
78433 , CASE r
78434 WHEN 1 THEN TO_CHAR(l1.BUDGET_CCID)
78435 WHEN 2 THEN TO_CHAR(l1.COST_CCID)
78436 WHEN 3 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
78437 WHEN 4 THEN TO_CHAR(l1.ADJ_COST_CCID)
78438 WHEN 5 THEN TO_CHAR(l1.COST_CLEARING_CCID)
78439 WHEN 6 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
78440 WHEN 7 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
78441 WHEN 8 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
78442 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
78443 WHEN 10 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
78444 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE)
78445 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
78446 WHEN 13 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
78447 WHEN 14 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
78448 WHEN 15 THEN TO_CHAR(l1.LINE_NUMBER)
78449 WHEN 16 THEN TO_CHAR(l1.LINE_TYPE)
78450 WHEN 17 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
78451 WHEN 18 THEN TO_CHAR(l1.ENC_UPG_DR_ACCT_CLASS)
78452 WHEN 19 THEN TO_CHAR(l1.USE_ENC_UPG_ATTRIB_FLAG)
78453 WHEN 20 THEN TO_CHAR(l1.ENTERED_BURDENED_COST)
78454 WHEN 21 THEN TO_CHAR(l1.ACCT_BURDENED_COST)
78455 WHEN 22 THEN TO_CHAR(l1.ENCUMBRANCE_AMOUNT)
78456 WHEN 23 THEN TO_CHAR(l1.PA_APPLICATION_ID)
78457 WHEN 24 THEN TO_CHAR(l1.PA_DISTRIBUTION_TYPE)
78458 WHEN 25 THEN TO_CHAR(l1.PA_ENTITY_CODE)
78459 WHEN 26 THEN TO_CHAR(l1.PA_FIRST_DIST_ID)
78460 WHEN 27 THEN TO_CHAR(l1.PA_FIRST_SYS_TRANS_ID)
78461 WHEN 28 THEN TO_CHAR(l1.PA_SECOND_DIST_ID)
78462 WHEN 29 THEN TO_CHAR(l1.ENC_UPG_CR_ACCT_CLASS)
78463 WHEN 30 THEN TO_CHAR(l1.ENCUMBRANCE_TYPE_ID)
78464 WHEN 31 THEN TO_CHAR(l1.PROJ_ENCUMBRANCE_TYPE_ID)
78465
78466 ELSE null
78467 END source_value
78471 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
78468 , CASE r
78469 WHEN 3 THEN XLA_00275_AAD_S_000015_PKG.GetMeaning(
78470 103371
78472 ,'ALLOW_OVERRIDE_CCID_FLAG'
78473 ,'S'
78474 ,275)
78475 WHEN 16 THEN fvl35.meaning
78476
78477 ELSE null
78478 END source_meaning
78479 FROM xla_events_gt xet
78480 , PA_XLA_CDL_LINES_V l1
78481 , fnd_lookup_values fvl35
78482 , (select rownum r from all_objects where rownum <= 31 and owner = p_apps_owner)
78483 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
78484 AND xet.event_class_code = C_EVENT_CLASS_CODE
78485 AND l1.event_id = xet.event_id
78486 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
78487 AND fvl35.lookup_code(+) = l1.LINE_TYPE
78488 AND fvl35.view_application_id(+) = 275
78489 AND fvl35.language(+) = USERENV('LANG')
78490
78491 )
78492 ;
78493 --
78494 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78495
78496 trace
78497 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
78498 ,p_level => C_LEVEL_STATEMENT
78499 ,p_module => l_log_module);
78500
78501 END IF;
78502
78503
78504 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78505 trace
78506 (p_msg => 'END of insert_sources_151'
78507 ,p_level => C_LEVEL_PROCEDURE
78508 ,p_module => l_log_module);
78509 END IF;
78510 EXCEPTION
78511 WHEN xla_exceptions_pkg.application_exception THEN
78512 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
78513 trace
78514 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
78515 ,p_level => C_LEVEL_EXCEPTION
78516 ,p_module => l_log_module);
78517 END IF;
78518 RAISE;
78519 WHEN OTHERS THEN
78520 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
78521 trace
78522 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
78523 ,p_level => C_LEVEL_EXCEPTION
78524 ,p_module => l_log_module);
78525 END IF;
78526 xla_exceptions_pkg.raise_message
78527 (p_location => 'XLA_00275_AAD_S_000015_PKG.insert_sources_151');
78528 END insert_sources_151;
78529 --
78530
78531 ---------------------------------------
78532 --
78533 -- PRIVATE FUNCTION
78534 -- EventClass_151
78535 --
78536 ----------------------------------------
78537 --
78538 FUNCTION EventClass_151
78539 (p_application_id IN NUMBER
78540 ,p_base_ledger_id IN NUMBER
78541 ,p_target_ledger_id IN NUMBER
78542 ,p_language IN VARCHAR2
78543 ,p_currency_code IN VARCHAR2
78544 ,p_sla_ledger_id IN NUMBER
78545 ,p_pad_start_date IN DATE
78546 ,p_pad_end_date IN DATE
78547 ,p_primary_ledger_id IN NUMBER)
78548 RETURN BOOLEAN IS
78549 --
78550 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BURDEN_COST_ADJ_ALL';
78551 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BURDEN_COST_ADJ';
78552
78553 l_calculate_acctd_flag VARCHAR2(1) :='N';
78554 l_calculate_g_l_flag VARCHAR2(1) :='N';
78555 --
78556 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
78557 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
78558 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
78559 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
78560 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
78561 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
78562 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
78563 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
78564 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
78565 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
78566 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
78567 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
78568 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
78569 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
78570 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
78571 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
78572 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
78573 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
78574 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
78575 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
78576 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
78577 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
78578 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
78579 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
78580
78581 l_event_id NUMBER;
78582 l_previous_event_id NUMBER;
78583 l_first_event_id NUMBER;
78584 l_last_event_id NUMBER;
78585
78586 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
78587 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
78588 --
78589 --
78590 l_result BOOLEAN := TRUE;
78591 l_rows NUMBER := 1000;
78595 l_transaction_reversal NUMBER;
78592 l_event_type_name VARCHAR2(80) := 'All';
78593 l_event_class_name VARCHAR2(80) := 'Burden Cost Adjustments';
78594 l_description VARCHAR2(4000);
78596 l_ae_header_id NUMBER;
78597 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
78598 l_log_module VARCHAR2(240);
78599 --
78600 l_acct_reversal_source VARCHAR2(30);
78601 l_trx_reversal_source VARCHAR2(30);
78602
78603 l_continue_with_lines BOOLEAN := TRUE;
78604 --
78605 l_acc_rev_gl_date_source DATE; -- 4262811
78606 --
78607 type t_array_event_id is table of number index by binary_integer;
78608
78609 l_rec_array_event t_rec_array_event;
78610 l_null_rec_array_event t_rec_array_event;
78611 l_array_ae_header_id xla_number_array_type;
78612 l_actual_flag VARCHAR2(1) := NULL;
78613 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
78614 l_balance_type_code VARCHAR2(1) :=NULL;
78615 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
78616
78617 --
78618 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
78619 --
78620
78621 TYPE t_array_source_33 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
78622 TYPE t_array_source_75 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
78623
78624 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.BUDGET_CCID%TYPE INDEX BY BINARY_INTEGER;
78625 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
78626 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
78627 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
78628 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
78629 TYPE t_array_source_8 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
78630 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
78631 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
78632 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
78633 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
78634 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
78635 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
78636 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
78637 TYPE t_array_source_32 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
78638 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
78639 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
78640 TYPE t_array_source_36 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
78641 TYPE t_array_source_41 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
78642 TYPE t_array_source_44 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
78643 TYPE t_array_source_52 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_BURDENED_COST%TYPE INDEX BY BINARY_INTEGER;
78644 TYPE t_array_source_53 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_BURDENED_COST%TYPE INDEX BY BINARY_INTEGER;
78645 TYPE t_array_source_54 IS TABLE OF PA_XLA_CDL_LINES_V.ENCUMBRANCE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
78646 TYPE t_array_source_55 IS TABLE OF PA_XLA_CDL_LINES_V.PA_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
78647 TYPE t_array_source_56 IS TABLE OF PA_XLA_CDL_LINES_V.PA_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
78648 TYPE t_array_source_57 IS TABLE OF PA_XLA_CDL_LINES_V.PA_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
78649 TYPE t_array_source_58 IS TABLE OF PA_XLA_CDL_LINES_V.PA_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
78650 TYPE t_array_source_59 IS TABLE OF PA_XLA_CDL_LINES_V.PA_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
78651 TYPE t_array_source_60 IS TABLE OF PA_XLA_CDL_LINES_V.PA_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
78652 TYPE t_array_source_61 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
78653 TYPE t_array_source_62 IS TABLE OF PA_XLA_CDL_LINES_V.ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
78654 TYPE t_array_source_63 IS TABLE OF PA_XLA_CDL_LINES_V.PROJ_ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
78655
78656 l_array_source_33 t_array_source_33;
78657 l_array_source_75 t_array_source_75;
78658
78659 l_array_source_3 t_array_source_3;
78660 l_array_source_4 t_array_source_4;
78661 l_array_source_5 t_array_source_5;
78662 l_array_source_6 t_array_source_6;
78663 l_array_source_7 t_array_source_7;
78664 l_array_source_8 t_array_source_8;
78665 l_array_source_23 t_array_source_23;
78666 l_array_source_24 t_array_source_24;
78667 l_array_source_26 t_array_source_26;
78668 l_array_source_28 t_array_source_28;
78669 l_array_source_29 t_array_source_29;
78670 l_array_source_30 t_array_source_30;
78671 l_array_source_31 t_array_source_31;
78672 l_array_source_32 t_array_source_32;
78673 l_array_source_34 t_array_source_34;
78674 l_array_source_35 t_array_source_35;
78675 l_array_source_35_meaning t_array_lookup_meaning;
78676 l_array_source_36 t_array_source_36;
78677 l_array_source_41 t_array_source_41;
78678 l_array_source_44 t_array_source_44;
78679 l_array_source_52 t_array_source_52;
78680 l_array_source_53 t_array_source_53;
78681 l_array_source_54 t_array_source_54;
78682 l_array_source_55 t_array_source_55;
78683 l_array_source_56 t_array_source_56;
78684 l_array_source_57 t_array_source_57;
78685 l_array_source_58 t_array_source_58;
78689 l_array_source_62 t_array_source_62;
78686 l_array_source_59 t_array_source_59;
78687 l_array_source_60 t_array_source_60;
78688 l_array_source_61 t_array_source_61;
78690 l_array_source_63 t_array_source_63;
78691
78692 --
78693 CURSOR header_cur
78694 IS
78695 SELECT /*+ leading(xet) cardinality(xet,1) */
78696 -- Event Class Code: BURDEN_COST_ADJ
78697 xet.entity_id
78698 ,xet.legal_entity_id
78699 ,xet.entity_code
78700 ,xet.transaction_number
78701 ,xet.event_id
78702 ,xet.event_class_code
78703 ,xet.event_type_code
78704 ,xet.event_number
78705 ,xet.event_date
78706 ,xet.transaction_date
78707 ,xet.reference_num_1
78708 ,xet.reference_num_2
78709 ,xet.reference_num_3
78710 ,xet.reference_num_4
78711 ,xet.reference_char_1
78712 ,xet.reference_char_2
78713 ,xet.reference_char_3
78714 ,xet.reference_char_4
78715 ,xet.reference_date_1
78716 ,xet.reference_date_2
78717 ,xet.reference_date_3
78718 ,xet.reference_date_4
78719 ,xet.event_created_by
78720 ,xet.budgetary_control_flag
78721 , h2.EXPENDITURE_ITEM_ID source_33
78722 , h2.GL_DATE source_75
78723 FROM xla_events_gt xet
78724 , PA_XLA_EXP_HEADER_V h2
78725 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
78726 and xet.event_class_code = C_EVENT_CLASS_CODE
78727 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
78728
78729 ORDER BY event_id
78730 ;
78731
78732
78733 --
78734 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
78735 IS
78736 SELECT /*+ leading(xet) cardinality(xet,1) */
78737 -- Event Class Code: BURDEN_COST_ADJ
78738 xet.entity_id
78739 ,xet.legal_entity_id
78740 ,xet.entity_code
78741 ,xet.transaction_number
78742 ,xet.event_id
78743 ,xet.event_class_code
78744 ,xet.event_type_code
78745 ,xet.event_number
78746 ,xet.event_date
78747 ,xet.transaction_date
78748 ,xet.reference_num_1
78749 ,xet.reference_num_2
78750 ,xet.reference_num_3
78751 ,xet.reference_num_4
78752 ,xet.reference_char_1
78753 ,xet.reference_char_2
78754 ,xet.reference_char_3
78755 ,xet.reference_char_4
78756 ,xet.reference_date_1
78757 ,xet.reference_date_2
78758 ,xet.reference_date_3
78759 ,xet.reference_date_4
78760 ,xet.event_created_by
78761 ,xet.budgetary_control_flag
78762 , l1.LINE_NUMBER
78763 , l1.BUDGET_CCID source_3
78764 , l1.COST_CCID source_4
78765 , l1.ALLOW_OVERRIDE_CCID_FLAG source_5
78766 , l1.ADJ_COST_CCID source_6
78767 , l1.COST_CLEARING_CCID source_7
78768 , l1.ADJ_COST_CLEARING_CCID source_8
78769 , l1.REVERSING_LINE_FLAG source_23
78770 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_24
78771 , l1.ENTERED_CURRENCY_CODE source_26
78772 , l1.EXCHANGE_RATE_DATE source_28
78773 , l1.EXCHANGE_RATE source_29
78774 , l1.EXCHANGE_RATE_TYPE source_30
78775 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_31
78776 , l1.USE_ACT_UPG_ATTRIB_FLAG source_32
78777 , l1.LINE_NUMBER source_34
78778 , l1.LINE_TYPE source_35
78779 , fvl35.meaning source_35_meaning
78780 , l1.LINE_NUM_REVERSED source_36
78781 , l1.ENC_UPG_DR_ACCT_CLASS source_41
78782 , l1.USE_ENC_UPG_ATTRIB_FLAG source_44
78783 , l1.ENTERED_BURDENED_COST source_52
78784 , l1.ACCT_BURDENED_COST source_53
78785 , l1.ENCUMBRANCE_AMOUNT source_54
78786 , l1.PA_APPLICATION_ID source_55
78787 , l1.PA_DISTRIBUTION_TYPE source_56
78788 , l1.PA_ENTITY_CODE source_57
78789 , l1.PA_FIRST_DIST_ID source_58
78790 , l1.PA_FIRST_SYS_TRANS_ID source_59
78791 , l1.PA_SECOND_DIST_ID source_60
78792 , l1.ENC_UPG_CR_ACCT_CLASS source_61
78793 , l1.ENCUMBRANCE_TYPE_ID source_62
78794 , l1.PROJ_ENCUMBRANCE_TYPE_ID source_63
78795 FROM xla_events_gt xet
78796 , PA_XLA_CDL_LINES_V l1
78797 , fnd_lookup_values fvl35
78798 WHERE xet.event_id between x_first_event_id and x_last_event_id
78799 and xet.event_date between p_pad_start_date and p_pad_end_date
78800 and xet.event_class_code = C_EVENT_CLASS_CODE
78801 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
78802 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
78803 AND fvl35.lookup_code(+) = l1.LINE_TYPE
78804 AND fvl35.view_application_id(+) = 275
78805 AND fvl35.language(+) = USERENV('LANG')
78806 ;
78807
78808 --
78809 BEGIN
78810 IF g_log_enabled THEN
78811 l_log_module := C_DEFAULT_MODULE||'.EventClass_151';
78812 END IF;
78813 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78814 trace
78815 (p_msg => 'BEGIN of EventClass_151'
78816 ,p_level => C_LEVEL_PROCEDURE
78817 ,p_module => l_log_module);
78818 END IF;
78819
78820 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78821 trace
78822 (p_msg => 'p_application_id = '||p_application_id||
78823 ' - p_base_ledger_id = '||p_base_ledger_id||
78824 ' - p_target_ledger_id = '||p_target_ledger_id||
78825 ' - p_language = '||p_language||
78826 ' - p_currency_code = '||p_currency_code||
78827 ' - p_sla_ledger_id = '||p_sla_ledger_id
78828 ,p_level => C_LEVEL_STATEMENT
78829 ,p_module => l_log_module);
78830 END IF;
78831 --
78832 -- initialze arrays
78833 --
78834 g_array_event.DELETE;
78835 l_rec_array_event := l_null_rec_array_event;
78836 --
78837 --------------------------------------
78838 -- 4262811 Initialze MPA Line Number
78839 --------------------------------------
78843
78840 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
78841
78842 --
78844 --
78845 OPEN header_cur;
78846 --
78847 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78848 trace
78849 (p_msg => 'SQL - FETCH header_cur'
78850 ,p_level => C_LEVEL_STATEMENT
78851 ,p_module => l_log_module);
78852 END IF;
78853 --
78854 LOOP
78855 FETCH header_cur BULK COLLECT INTO
78856 l_array_entity_id
78857 , l_array_legal_entity_id
78858 , l_array_entity_code
78859 , l_array_transaction_num
78860 , l_array_event_id
78861 , l_array_class_code
78862 , l_array_event_type
78863 , l_array_event_number
78864 , l_array_event_date
78865 , l_array_transaction_date
78866 , l_array_reference_num_1
78867 , l_array_reference_num_2
78868 , l_array_reference_num_3
78869 , l_array_reference_num_4
78870 , l_array_reference_char_1
78871 , l_array_reference_char_2
78872 , l_array_reference_char_3
78873 , l_array_reference_char_4
78874 , l_array_reference_date_1
78875 , l_array_reference_date_2
78876 , l_array_reference_date_3
78877 , l_array_reference_date_4
78878 , l_array_event_created_by
78879 , l_array_budgetary_control_flag
78880 , l_array_source_33
78881 , l_array_source_75
78882 LIMIT l_rows;
78883 --
78884 IF (C_LEVEL_EVENT >= g_log_level) THEN
78885 trace
78886 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
78887 ,p_level => C_LEVEL_EVENT
78888 ,p_module => l_log_module);
78889 END IF;
78890 --
78891 EXIT WHEN l_array_entity_id.COUNT = 0;
78892
78893 -- initialize arrays
78894 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
78895 XLA_AE_LINES_PKG.g_rec_lines := NULL;
78896
78897 --
78898 -- Bug 4458708
78899 --
78900 XLA_AE_LINES_PKG.g_LineNumber := 0;
78901
78902
78903 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
78904 g_last_hdr_idx := l_array_event_id.LAST;
78905 --
78906 -- loop for the headers. Each iteration is for each header extract row
78907 -- fetched in header cursor
78908 --
78909 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
78910
78911 --
78912 -- set event info as cache for other routines to refer event attributes
78913 --
78914 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
78915 (p_application_id => p_application_id
78916 ,p_primary_ledger_id => p_primary_ledger_id
78917 ,p_base_ledger_id => p_base_ledger_id
78918 ,p_target_ledger_id => p_target_ledger_id
78919 ,p_entity_id => l_array_entity_id(hdr_idx)
78920 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
78921 ,p_entity_code => l_array_entity_code(hdr_idx)
78922 ,p_transaction_num => l_array_transaction_num(hdr_idx)
78923 ,p_event_id => l_array_event_id(hdr_idx)
78924 ,p_event_class_code => l_array_class_code(hdr_idx)
78925 ,p_event_type_code => l_array_event_type(hdr_idx)
78926 ,p_event_number => l_array_event_number(hdr_idx)
78927 ,p_event_date => l_array_event_date(hdr_idx)
78928 ,p_transaction_date => l_array_transaction_date(hdr_idx)
78929 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
78930 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
78931 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
78932 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
78933 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
78934 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
78935 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
78936 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
78937 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
78938 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
78939 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
78940 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
78941 ,p_event_created_by => l_array_event_created_by(hdr_idx)
78942 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
78943
78944 --
78945 -- set the status of entry to C_VALID (0)
78946 --
78947 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
78948
78949 --
78950 -- initialize a row for ae header
78951 --
78952 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
78953
78954 l_event_id := l_array_event_id(hdr_idx);
78955
78956 --
78957 -- storing the hdr_idx for event. May be used by line cursor.
78958 --
78959 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
78960
78961 --
78962 -- store sources from header extract. This can be improved to
78963 -- store only those sources from header extract that may be used in lines
78964 --
78965
78966 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
78967 g_array_event(l_event_id).array_value_date('source_75') := l_array_source_75(hdr_idx);
78968
78969 --
78970 -- initilaize the status of ae headers for diffrent balance types
78971 -- the status is initialised to C_NOT_CREATED (2)
78972 --
78973 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
78974 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
78975 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
78976
78977 --
78978 -- call api to validate and store accounting attributes for header
78979 --
78980
78984 l_acc_rev_gl_date_source := NULL;
78981 ------------------------------------------------------------
78982 -- Accrual Reversal : to get date for Standard Source (NONE)
78983 ------------------------------------------------------------
78985
78986 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
78987 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_75');
78988
78989
78990 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
78991
78992 XLA_AE_HEADER_PKG.SetJeCategoryName;
78993
78994 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
78995 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
78996 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
78997 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
78998 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
78999
79000
79001 -- No header level analytical criteria
79002
79003 --
79004 --accounting attribute enhancement, bug 3612931
79005 --
79006 l_trx_reversal_source := SUBSTR(NULL, 1,30);
79007
79008 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
79009 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
79010
79011 xla_accounting_err_pkg.build_message
79012 (p_appli_s_name => 'XLA'
79013 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
79014 ,p_token_1 => 'ACCT_ATTR_NAME'
79015 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
79016 ,p_token_2 => 'PRODUCT_NAME'
79017 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
79018 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
79019 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
79020 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
79021
79022 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
79023 --
79024 -- following sets the accounting attributes needed to reverse
79025 -- accounting for a distributeion
79026 --
79027 xla_ae_lines_pkg.SetTrxReversalAttrs
79028 (p_event_id => l_event_id
79029 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
79030 ,p_trx_reversal_source => l_trx_reversal_source);
79031
79032 END IF;
79033
79034
79035 ----------------------------------------------------------------
79036 -- 4262811 - update the header statuses to invalid in need be
79037 ----------------------------------------------------------------
79038 --
79039 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
79040
79041
79042 -----------------------------------------------
79043 -- No accrual reversal for the event class/type
79044 -----------------------------------------------
79045 ----------------------------------------------------------------
79046
79047 --
79048 -- this ends the header loop iteration for one bulk fetch
79049 --
79050 END LOOP;
79051
79052 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
79053 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
79054
79055 --
79056 -- insert dummy rows into lines gt table that were created due to
79057 -- transaction reversals
79058 --
79059 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
79060 l_result := XLA_AE_LINES_PKG.InsertLines;
79061 END IF;
79062
79063 --
79064 -- reset the temp_line_num for each set of events fetched from header
79065 -- cursor rather than doing it for each new event in line cursor
79066 -- Bug 3939231
79067 --
79068 xla_ae_lines_pkg.g_temp_line_num := 0;
79069
79070
79071
79072 --
79073 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
79074 --
79075 --
79076 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
79077
79078 trace
79079 (p_msg => 'SQL - FETCH line_cur'
79080 ,p_level => C_LEVEL_STATEMENT
79081 ,p_module => l_log_module);
79082
79083 END IF;
79084 --
79085 --
79086 LOOP
79087 --
79088 FETCH line_cur BULK COLLECT INTO
79089 l_array_entity_id
79090 , l_array_legal_entity_id
79091 , l_array_entity_code
79092 , l_array_transaction_num
79093 , l_array_event_id
79094 , l_array_class_code
79095 , l_array_event_type
79096 , l_array_event_number
79097 , l_array_event_date
79098 , l_array_transaction_date
79099 , l_array_reference_num_1
79100 , l_array_reference_num_2
79101 , l_array_reference_num_3
79102 , l_array_reference_num_4
79103 , l_array_reference_char_1
79104 , l_array_reference_char_2
79105 , l_array_reference_char_3
79106 , l_array_reference_char_4
79107 , l_array_reference_date_1
79108 , l_array_reference_date_2
79109 , l_array_reference_date_3
79110 , l_array_reference_date_4
79111 , l_array_event_created_by
79112 , l_array_budgetary_control_flag
79113 , l_array_extract_line_num
79114 , l_array_source_3
79115 , l_array_source_4
79116 , l_array_source_5
79117 , l_array_source_6
79118 , l_array_source_7
79119 , l_array_source_8
79120 , l_array_source_23
79121 , l_array_source_24
79122 , l_array_source_26
79123 , l_array_source_28
79124 , l_array_source_29
79125 , l_array_source_30
79126 , l_array_source_31
79130 , l_array_source_35_meaning
79127 , l_array_source_32
79128 , l_array_source_34
79129 , l_array_source_35
79131 , l_array_source_36
79132 , l_array_source_41
79133 , l_array_source_44
79134 , l_array_source_52
79135 , l_array_source_53
79136 , l_array_source_54
79137 , l_array_source_55
79138 , l_array_source_56
79139 , l_array_source_57
79140 , l_array_source_58
79141 , l_array_source_59
79142 , l_array_source_60
79143 , l_array_source_61
79144 , l_array_source_62
79145 , l_array_source_63
79146 LIMIT l_rows;
79147
79148 --
79149 IF (C_LEVEL_EVENT >= g_log_level) THEN
79150 trace
79151 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
79152 ,p_level => C_LEVEL_EVENT
79153 ,p_module => l_log_module);
79154 END IF;
79155 --
79156 EXIT WHEN l_array_entity_id.count = 0;
79157
79158 XLA_AE_LINES_PKG.g_rec_lines := null;
79159
79160 --
79161 -- Bug 4458708
79162 --
79163 XLA_AE_LINES_PKG.g_LineNumber := 0;
79164 --
79165 --
79166
79167 FOR Idx IN 1..l_array_event_id.count LOOP
79168 --
79169 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
79170 --
79171 l_event_id := l_array_event_id(idx); -- 5648433
79172
79173 --
79174 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
79175 --
79176
79177 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
79178 (g_array_event(l_event_id).array_value_num('header_index'))
79179 ,'N'
79180 ) <> 'Y'
79181 THEN
79182 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
79183 trace
79184 (p_msg => 'Trancaction revesal option is not Y '
79185 ,p_level => C_LEVEL_STATEMENT
79186 ,p_module => l_log_module);
79187 END IF;
79188
79189 --
79190 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
79191 --
79192 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
79193 --
79194 -- set event info as cache for other routines to refer event attributes
79195 --
79196
79197 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
79198 l_previous_event_id := l_event_id;
79199
79200 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
79201 (p_application_id => p_application_id
79202 ,p_primary_ledger_id => p_primary_ledger_id
79203 ,p_base_ledger_id => p_base_ledger_id
79204 ,p_target_ledger_id => p_target_ledger_id
79205 ,p_entity_id => l_array_entity_id(Idx)
79206 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
79207 ,p_entity_code => l_array_entity_code(Idx)
79208 ,p_transaction_num => l_array_transaction_num(Idx)
79209 ,p_event_id => l_array_event_id(Idx)
79210 ,p_event_class_code => l_array_class_code(Idx)
79211 ,p_event_type_code => l_array_event_type(Idx)
79212 ,p_event_number => l_array_event_number(Idx)
79213 ,p_event_date => l_array_event_date(Idx)
79214 ,p_transaction_date => l_array_transaction_date(Idx)
79215 ,p_reference_num_1 => l_array_reference_num_1(Idx)
79216 ,p_reference_num_2 => l_array_reference_num_2(Idx)
79217 ,p_reference_num_3 => l_array_reference_num_3(Idx)
79218 ,p_reference_num_4 => l_array_reference_num_4(Idx)
79219 ,p_reference_char_1 => l_array_reference_char_1(Idx)
79220 ,p_reference_char_2 => l_array_reference_char_2(Idx)
79221 ,p_reference_char_3 => l_array_reference_char_3(Idx)
79222 ,p_reference_char_4 => l_array_reference_char_4(Idx)
79223 ,p_reference_date_1 => l_array_reference_date_1(Idx)
79224 ,p_reference_date_2 => l_array_reference_date_2(Idx)
79225 ,p_reference_date_3 => l_array_reference_date_3(Idx)
79226 ,p_reference_date_4 => l_array_reference_date_4(Idx)
79227 ,p_event_created_by => l_array_event_created_by(Idx)
79228 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
79229 --
79230 END IF;
79231
79232
79233
79234 --
79235 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
79236
79237 l_acct_reversal_source := SUBSTR(l_array_source_23(Idx), 1,30);
79238
79239 IF l_continue_with_lines THEN
79240 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
79241 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
79242
79243 xla_accounting_err_pkg.build_message
79244 (p_appli_s_name => 'XLA'
79245 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
79246 ,p_token_1 => 'LINE_NUMBER'
79247 ,p_value_1 => l_array_extract_line_num(Idx)
79248 ,p_token_2 => 'PRODUCT_NAME'
79249 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
79250 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
79251 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
79252 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
79253
79254 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
79255 --
79256 -- following sets the accounting attributes needed to reverse
79257 -- accounting for a distributeion
79258 --
79259
79260 --
79261 -- 5217187
79262 --
79266 --
79263 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
79264 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
79265 g_array_event(l_event_id).array_value_num('header_index'));
79267 --
79268
79269 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
79270 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_23(Idx);
79271 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
79272 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_24(Idx);
79273 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
79274 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_7(Idx));
79275 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
79276 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_52(Idx);
79277 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
79278 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_26(Idx);
79279 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
79280 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_53(Idx);
79281 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
79282 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_28(Idx);
79283 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
79284 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_29(Idx);
79285 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
79286 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_30(Idx);
79287 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
79288 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_31(Idx);
79289 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
79290 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_4(Idx));
79291 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
79292 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_52(Idx);
79293 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
79294 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_26(Idx);
79295 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
79296 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_53(Idx);
79297 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
79298 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_28(Idx);
79299 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
79300 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_29(Idx);
79301 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
79302 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_30(Idx);
79303 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
79304 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_32(Idx);
79305 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
79306 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_33');
79307 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
79308 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_34(Idx);
79309 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
79310 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_35(Idx);
79311 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_CR_ACCT_CLASS';
79312 l_rec_rev_acct_attrs.array_char_value(23) := l_array_source_41(Idx);
79313 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_CR_CCID';
79314 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_3(Idx);
79315 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_CR_ENTERED_AMT';
79316 l_rec_rev_acct_attrs.array_num_value(25) := l_array_source_54(Idx);
79317 l_rec_rev_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_CR_ENTERED_CURR';
79318 l_rec_rev_acct_attrs.array_char_value(26) := l_array_source_26(Idx);
79319 l_rec_rev_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_CR_LEDGER_AMT';
79320 l_rec_rev_acct_attrs.array_num_value(27) := l_array_source_54(Idx);
79321 l_rec_rev_acct_attrs.array_acct_attr_code(28) := 'ENC_UPG_DR_ACCT_CLASS';
79322 l_rec_rev_acct_attrs.array_char_value(28) := l_array_source_61(Idx);
79323 l_rec_rev_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_CCID';
79324 l_rec_rev_acct_attrs.array_num_value(29) := l_array_source_3(Idx);
79325 l_rec_rev_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_ENTERED_AMT';
79326 l_rec_rev_acct_attrs.array_num_value(30) := l_array_source_54(Idx);
79327 l_rec_rev_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_CURR';
79328 l_rec_rev_acct_attrs.array_char_value(31) := l_array_source_26(Idx);
79329 l_rec_rev_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_LEDGER_AMT';
79330 l_rec_rev_acct_attrs.array_num_value(32) := l_array_source_54(Idx);
79331 l_rec_rev_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_OPTION';
79332 l_rec_rev_acct_attrs.array_char_value(33) := l_array_source_44(Idx);
79333 l_rec_rev_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_ID1';
79334 l_rec_rev_acct_attrs.array_num_value(34) := g_array_event(l_event_id).array_value_num('source_33');
79335 l_rec_rev_acct_attrs.array_acct_attr_code(35) := 'REVERSED_DISTRIBUTION_ID2';
79336 l_rec_rev_acct_attrs.array_num_value(35) := l_array_source_36(Idx);
79337 l_rec_rev_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_TYPE';
79338 l_rec_rev_acct_attrs.array_char_value(36) := l_array_source_35(Idx);
79339 l_rec_rev_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
79340 l_rec_rev_acct_attrs.array_num_value(37) := l_array_source_62(Idx);
79344
79341 l_rec_rev_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
79342 l_rec_rev_acct_attrs.array_num_value(38) := l_array_source_63(Idx);
79343
79345 xla_ae_lines_pkg.SetAcctReversalAttrs
79346 (p_event_id => l_event_id
79347 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
79348 ,p_calculate_acctd_flag => l_calculate_acctd_flag
79349 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
79350 END IF;
79351
79352 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
79353 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
79354
79355 --
79356 AcctLineType_37 (
79357 p_application_id => p_application_id
79358 ,p_event_id => l_event_id
79359 ,p_calculate_acctd_flag => l_calculate_acctd_flag
79360 ,p_calculate_g_l_flag => l_calculate_g_l_flag
79361 ,p_actual_flag => l_actual_flag
79362 ,p_balance_type_code => l_balance_type_code
79363 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
79364
79365 , p_source_3 => l_array_source_3(Idx)
79366 , p_source_4 => l_array_source_4(Idx)
79367 , p_source_5 => l_array_source_5(Idx)
79368 , p_source_6 => l_array_source_6(Idx)
79369 , p_source_7 => l_array_source_7(Idx)
79370 , p_source_23 => l_array_source_23(Idx)
79371 , p_source_24 => l_array_source_24(Idx)
79372 , p_source_26 => l_array_source_26(Idx)
79373 , p_source_28 => l_array_source_28(Idx)
79374 , p_source_29 => l_array_source_29(Idx)
79375 , p_source_30 => l_array_source_30(Idx)
79376 , p_source_31 => l_array_source_31(Idx)
79377 , p_source_32 => l_array_source_32(Idx)
79378 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
79379 , p_source_34 => l_array_source_34(Idx)
79380 , p_source_35 => l_array_source_35(Idx)
79381 , p_source_35_meaning => l_array_source_35_meaning(Idx)
79382 , p_source_36 => l_array_source_36(Idx)
79383 , p_source_41 => l_array_source_41(Idx)
79384 , p_source_44 => l_array_source_44(Idx)
79385 , p_source_52 => l_array_source_52(Idx)
79386 , p_source_53 => l_array_source_53(Idx)
79387 , p_source_54 => l_array_source_54(Idx)
79388 , p_source_55 => l_array_source_55(Idx)
79389 , p_source_56 => l_array_source_56(Idx)
79390 , p_source_57 => l_array_source_57(Idx)
79391 , p_source_58 => l_array_source_58(Idx)
79392 , p_source_59 => l_array_source_59(Idx)
79393 , p_source_60 => l_array_source_60(Idx)
79394 , p_source_61 => l_array_source_61(Idx)
79395 , p_source_62 => l_array_source_62(Idx)
79396 , p_source_63 => l_array_source_63(Idx)
79397 );
79398 If(l_balance_type_code = 'A') THEN
79399 l_actual_gain_loss_ref := l_gain_or_loss_ref;
79400 END IF;
79401
79402 --
79403
79404
79405 --
79406 AcctLineType_38 (
79407 p_application_id => p_application_id
79408 ,p_event_id => l_event_id
79409 ,p_calculate_acctd_flag => l_calculate_acctd_flag
79410 ,p_calculate_g_l_flag => l_calculate_g_l_flag
79411 ,p_actual_flag => l_actual_flag
79412 ,p_balance_type_code => l_balance_type_code
79413 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
79414
79415 , p_source_3 => l_array_source_3(Idx)
79416 , p_source_4 => l_array_source_4(Idx)
79417 , p_source_5 => l_array_source_5(Idx)
79418 , p_source_7 => l_array_source_7(Idx)
79419 , p_source_8 => l_array_source_8(Idx)
79420 , p_source_23 => l_array_source_23(Idx)
79421 , p_source_24 => l_array_source_24(Idx)
79422 , p_source_26 => l_array_source_26(Idx)
79423 , p_source_28 => l_array_source_28(Idx)
79424 , p_source_29 => l_array_source_29(Idx)
79425 , p_source_30 => l_array_source_30(Idx)
79426 , p_source_31 => l_array_source_31(Idx)
79427 , p_source_32 => l_array_source_32(Idx)
79428 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
79429 , p_source_34 => l_array_source_34(Idx)
79430 , p_source_35 => l_array_source_35(Idx)
79431 , p_source_35_meaning => l_array_source_35_meaning(Idx)
79432 , p_source_36 => l_array_source_36(Idx)
79433 , p_source_41 => l_array_source_41(Idx)
79434 , p_source_44 => l_array_source_44(Idx)
79435 , p_source_52 => l_array_source_52(Idx)
79436 , p_source_53 => l_array_source_53(Idx)
79437 , p_source_54 => l_array_source_54(Idx)
79438 , p_source_55 => l_array_source_55(Idx)
79439 , p_source_56 => l_array_source_56(Idx)
79440 , p_source_57 => l_array_source_57(Idx)
79441 , p_source_58 => l_array_source_58(Idx)
79442 , p_source_59 => l_array_source_59(Idx)
79443 , p_source_60 => l_array_source_60(Idx)
79444 , p_source_61 => l_array_source_61(Idx)
79445 , p_source_62 => l_array_source_62(Idx)
79446 , p_source_63 => l_array_source_63(Idx)
79447 );
79448 If(l_balance_type_code = 'A') THEN
79449 l_actual_gain_loss_ref := l_gain_or_loss_ref;
79450 END IF;
79451
79452 --
79453
79454
79455 --
79456 AcctLineType_39 (
79457 p_application_id => p_application_id
79458 ,p_event_id => l_event_id
79459 ,p_calculate_acctd_flag => l_calculate_acctd_flag
79460 ,p_calculate_g_l_flag => l_calculate_g_l_flag
79461 ,p_actual_flag => l_actual_flag
79462 ,p_balance_type_code => l_balance_type_code
79463 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
79464
79465 , p_source_3 => l_array_source_3(Idx)
79466 , p_source_4 => l_array_source_4(Idx)
79467 , p_source_5 => l_array_source_5(Idx)
79468 , p_source_7 => l_array_source_7(Idx)
79469 , p_source_8 => l_array_source_8(Idx)
79470 , p_source_23 => l_array_source_23(Idx)
79471 , p_source_24 => l_array_source_24(Idx)
79472 , p_source_26 => l_array_source_26(Idx)
79473 , p_source_28 => l_array_source_28(Idx)
79474 , p_source_29 => l_array_source_29(Idx)
79475 , p_source_30 => l_array_source_30(Idx)
79476 , p_source_31 => l_array_source_31(Idx)
79477 , p_source_32 => l_array_source_32(Idx)
79478 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
79479 , p_source_34 => l_array_source_34(Idx)
79483 , p_source_41 => l_array_source_41(Idx)
79480 , p_source_35 => l_array_source_35(Idx)
79481 , p_source_35_meaning => l_array_source_35_meaning(Idx)
79482 , p_source_36 => l_array_source_36(Idx)
79484 , p_source_44 => l_array_source_44(Idx)
79485 , p_source_52 => l_array_source_52(Idx)
79486 , p_source_53 => l_array_source_53(Idx)
79487 , p_source_54 => l_array_source_54(Idx)
79488 , p_source_55 => l_array_source_55(Idx)
79489 , p_source_56 => l_array_source_56(Idx)
79490 , p_source_57 => l_array_source_57(Idx)
79491 , p_source_58 => l_array_source_58(Idx)
79492 , p_source_59 => l_array_source_59(Idx)
79493 , p_source_60 => l_array_source_60(Idx)
79494 , p_source_61 => l_array_source_61(Idx)
79495 , p_source_62 => l_array_source_62(Idx)
79496 , p_source_63 => l_array_source_63(Idx)
79497 );
79498 If(l_balance_type_code = 'A') THEN
79499 l_actual_gain_loss_ref := l_gain_or_loss_ref;
79500 END IF;
79501
79502 --
79503
79504
79505 --
79506 AcctLineType_40 (
79507 p_application_id => p_application_id
79508 ,p_event_id => l_event_id
79509 ,p_calculate_acctd_flag => l_calculate_acctd_flag
79510 ,p_calculate_g_l_flag => l_calculate_g_l_flag
79511 ,p_actual_flag => l_actual_flag
79512 ,p_balance_type_code => l_balance_type_code
79513 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
79514
79515 , p_source_3 => l_array_source_3(Idx)
79516 , p_source_4 => l_array_source_4(Idx)
79517 , p_source_5 => l_array_source_5(Idx)
79518 , p_source_6 => l_array_source_6(Idx)
79519 , p_source_7 => l_array_source_7(Idx)
79520 , p_source_23 => l_array_source_23(Idx)
79521 , p_source_24 => l_array_source_24(Idx)
79522 , p_source_26 => l_array_source_26(Idx)
79523 , p_source_28 => l_array_source_28(Idx)
79524 , p_source_29 => l_array_source_29(Idx)
79525 , p_source_30 => l_array_source_30(Idx)
79526 , p_source_31 => l_array_source_31(Idx)
79527 , p_source_32 => l_array_source_32(Idx)
79528 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
79529 , p_source_34 => l_array_source_34(Idx)
79530 , p_source_35 => l_array_source_35(Idx)
79531 , p_source_35_meaning => l_array_source_35_meaning(Idx)
79532 , p_source_36 => l_array_source_36(Idx)
79533 , p_source_41 => l_array_source_41(Idx)
79534 , p_source_44 => l_array_source_44(Idx)
79535 , p_source_52 => l_array_source_52(Idx)
79536 , p_source_53 => l_array_source_53(Idx)
79537 , p_source_54 => l_array_source_54(Idx)
79538 , p_source_55 => l_array_source_55(Idx)
79539 , p_source_56 => l_array_source_56(Idx)
79540 , p_source_57 => l_array_source_57(Idx)
79541 , p_source_58 => l_array_source_58(Idx)
79542 , p_source_59 => l_array_source_59(Idx)
79543 , p_source_60 => l_array_source_60(Idx)
79544 , p_source_61 => l_array_source_61(Idx)
79545 , p_source_62 => l_array_source_62(Idx)
79546 , p_source_63 => l_array_source_63(Idx)
79547 );
79548 If(l_balance_type_code = 'A') THEN
79549 l_actual_gain_loss_ref := l_gain_or_loss_ref;
79550 END IF;
79551
79552 --
79553
79554 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
79555 -- or secondary ledger that has different currency with primary
79556 -- or alc that is calculated by sla
79557 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
79558 (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'))
79559
79560 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
79561 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
79562 AND (l_actual_flag = 'A')) THEN
79563 XLA_AE_LINES_PKG.CreateGainOrLossLines(
79564 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
79565 ,p_application_id => p_application_id
79566 ,p_amb_context_code => 'DEFAULT'
79567 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
79568 ,p_event_class_code => C_EVENT_CLASS_CODE
79569 ,p_event_type_code => C_EVENT_TYPE_CODE
79570
79571 ,p_gain_ccid => -1
79572 ,p_loss_ccid => -1
79573
79574 ,p_actual_flag => l_actual_flag
79575 ,p_enc_flag => null
79576 ,p_actual_g_l_ref => l_actual_gain_loss_ref
79577 ,p_enc_g_l_ref => null
79578 );
79579 END IF;
79580 END IF;
79581 END IF;
79582
79583 ELSE
79584 --
79585 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
79586 --
79587 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
79588 trace
79589 (p_msg => 'Trancaction revesal option is Y'
79590 ,p_level => C_LEVEL_STATEMENT
79591 ,p_module => l_log_module);
79592 END IF;
79593 END IF;
79594
79595 END LOOP;
79596 l_result := XLA_AE_LINES_PKG.InsertLines ;
79597 end loop;
79598 close line_cur;
79599
79600
79601 --
79602 -- insert headers into xla_ae_headers_gt table
79603 --
79604 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
79605
79606 -- insert into errors table here.
79607
79608 END LOOP;
79609
79610 --
79611 -- 4865292
79612 --
79613 -- Compare g_hdr_extract_count with event count in
79614 -- CreateHeadersAndLines.
79615 --
79616 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
79617
79618 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
79619 trace (p_msg => '# rows extracted from header extract objects '
79620 || ' (running total): '
79621 || g_hdr_extract_count
79622 ,p_level => C_LEVEL_STATEMENT
79626 CLOSE header_cur;
79623 ,p_module => l_log_module);
79624 END IF;
79625
79627 --
79628
79629 --
79630 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79631 trace
79632 (p_msg => 'END of EventClass_151'
79633 ,p_level => C_LEVEL_PROCEDURE
79634 ,p_module => l_log_module);
79635 END IF;
79636 --
79637 RETURN l_result;
79638 EXCEPTION
79639 WHEN xla_exceptions_pkg.application_exception THEN
79640
79641 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
79642
79643
79644 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
79645
79646 RAISE;
79647 WHEN OTHERS THEN
79648 xla_exceptions_pkg.raise_message
79649 (p_location => 'XLA_00275_AAD_S_000015_PKG.EventClass_151');
79650 END EventClass_151;
79651 --
79652
79653 ---------------------------------------
79654 --
79655 -- PRIVATE PROCEDURE
79656 -- insert_sources_152
79657 --
79658 ----------------------------------------
79659 --
79660 PROCEDURE insert_sources_152(
79661 p_target_ledger_id IN NUMBER
79662 , p_language IN VARCHAR2
79663 , p_sla_ledger_id IN NUMBER
79664 , p_pad_start_date IN DATE
79665 , p_pad_end_date IN DATE
79666 )
79667 IS
79668
79669 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BURDEN_COST_ALL';
79670 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BURDEN_COST';
79671 p_apps_owner VARCHAR2(30);
79672 l_log_module VARCHAR2(240);
79673 BEGIN
79674 IF g_log_enabled THEN
79675 l_log_module := C_DEFAULT_MODULE||'.insert_sources_152';
79676 END IF;
79677 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79678
79679 trace
79680 (p_msg => 'BEGIN of insert_sources_152'
79681 ,p_level => C_LEVEL_PROCEDURE
79682 ,p_module => l_log_module);
79683
79684 END IF;
79685
79686 -- select APPS owner
79687 SELECT oracle_username
79688 INTO p_apps_owner
79689 FROM fnd_oracle_userid
79690 WHERE read_only_flag = 'U'
79691 ;
79692
79693 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
79694 trace
79695 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
79696 ' - p_language = '||p_language||
79697 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
79698 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
79699 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
79700 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
79701 ,p_level => C_LEVEL_STATEMENT
79702 ,p_module => l_log_module);
79703 END IF;
79704
79705
79706 --
79707 INSERT INTO xla_diag_sources --hdr2
79708 (
79709 event_id
79710 , ledger_id
79711 , sla_ledger_id
79712 , description_language
79713 , object_name
79714 , object_type_code
79715 , line_number
79716 , source_application_id
79717 , source_type_code
79718 , source_code
79719 , source_value
79720 , source_meaning
79721 , created_by
79722 , creation_date
79723 , last_update_date
79724 , last_updated_by
79725 , last_update_login
79726 , program_update_date
79727 , program_application_id
79728 , program_id
79729 , request_id
79730 )
79731 SELECT
79732 event_id
79733 , p_target_ledger_id
79734 , p_sla_ledger_id
79735 , p_language
79736 , object_name
79737 , object_type_code
79738 , line_number
79739 , source_application_id
79740 , source_type_code
79741 , source_code
79742 , SUBSTR(source_value ,1,1996)
79743 , SUBSTR(source_meaning ,1,200)
79744 , xla_environment_pkg.g_Usr_Id
79745 , TRUNC(SYSDATE)
79746 , TRUNC(SYSDATE)
79747 , xla_environment_pkg.g_Usr_Id
79748 , xla_environment_pkg.g_Login_Id
79749 , TRUNC(SYSDATE)
79750 , xla_environment_pkg.g_Prog_Appl_Id
79751 , xla_environment_pkg.g_Prog_Id
79752 , xla_environment_pkg.g_Req_Id
79753 FROM (
79754 SELECT xet.event_id event_id
79755 , 0 line_number
79756 , CASE r
79757 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
79758 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
79759
79760 ELSE null
79761 END object_name
79762 , CASE r
79763 WHEN 1 THEN 'HEADER'
79764 WHEN 2 THEN 'HEADER'
79765
79766 ELSE null
79767 END object_type_code
79768 , CASE r
79769 WHEN 1 THEN '275'
79770 WHEN 2 THEN '275'
79771
79772 ELSE null
79773 END source_application_id
79774 , 'S' source_type_code
79775 , CASE r
79776 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
79777 WHEN 2 THEN 'GL_DATE'
79778
79779 ELSE null
79780 END source_code
79781 , CASE r
79782 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
79783 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
79784
79785 ELSE null
79789 , PA_XLA_EXP_HEADER_V h2
79786 END source_value
79787 , null source_meaning
79788 FROM xla_events_gt xet
79790 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
79791 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
79792 AND xet.event_class_code = C_EVENT_CLASS_CODE
79793 AND h2.event_id = xet.event_id
79794
79795 )
79796 ;
79797 --
79798 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
79799
79800 trace
79801 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
79802 ,p_level => C_LEVEL_STATEMENT
79803 ,p_module => l_log_module);
79804
79805 END IF;
79806 --
79807
79808
79809
79810 --
79811 INSERT INTO xla_diag_sources --line2
79812 (
79813 event_id
79814 , ledger_id
79815 , sla_ledger_id
79816 , description_language
79817 , object_name
79818 , object_type_code
79819 , line_number
79820 , source_application_id
79821 , source_type_code
79822 , source_code
79823 , source_value
79824 , source_meaning
79825 , created_by
79826 , creation_date
79827 , last_update_date
79828 , last_updated_by
79829 , last_update_login
79830 , program_update_date
79831 , program_application_id
79832 , program_id
79833 , request_id
79834 )
79835 SELECT event_id
79836 , p_target_ledger_id
79837 , p_sla_ledger_id
79838 , p_language
79839 , object_name
79840 , object_type_code
79841 , line_number
79842 , source_application_id
79843 , source_type_code
79844 , source_code
79845 , SUBSTR(source_value,1,1996)
79846 , SUBSTR(source_meaning ,1,200)
79847 , xla_environment_pkg.g_Usr_Id
79848 , TRUNC(SYSDATE)
79849 , TRUNC(SYSDATE)
79850 , xla_environment_pkg.g_Usr_Id
79851 , xla_environment_pkg.g_Login_Id
79852 , TRUNC(SYSDATE)
79853 , xla_environment_pkg.g_Prog_Appl_Id
79854 , xla_environment_pkg.g_Prog_Id
79855 , xla_environment_pkg.g_Req_Id
79856 FROM (
79857 SELECT xet.event_id event_id
79858 , l1.line_number line_number
79859 , CASE r
79860 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
79861 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
79862 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
79863 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
79864 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
79865 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
79866 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
79867 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
79868 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
79869 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
79870 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
79871 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
79872 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
79873 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
79874 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
79875 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
79876 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
79877 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
79878 WHEN 19 THEN 'PA_XLA_CDL_LINES_V'
79879 WHEN 20 THEN 'PA_XLA_CDL_LINES_V'
79880 WHEN 21 THEN 'PA_XLA_CDL_LINES_V'
79881 WHEN 22 THEN 'PA_XLA_CDL_LINES_V'
79882 WHEN 23 THEN 'PA_XLA_CDL_LINES_V'
79883 WHEN 24 THEN 'PA_XLA_CDL_LINES_V'
79884 WHEN 25 THEN 'PA_XLA_CDL_LINES_V'
79885 WHEN 26 THEN 'PA_XLA_CDL_LINES_V'
79886 WHEN 27 THEN 'PA_XLA_CDL_LINES_V'
79887 WHEN 28 THEN 'PA_XLA_CDL_LINES_V'
79888 WHEN 29 THEN 'PA_XLA_CDL_LINES_V'
79889 WHEN 30 THEN 'PA_XLA_CDL_LINES_V'
79890 WHEN 31 THEN 'PA_XLA_CDL_LINES_V'
79891
79892 ELSE null
79893 END object_name
79894 , CASE r
79895 WHEN 1 THEN 'LINE'
79896 WHEN 2 THEN 'LINE'
79897 WHEN 3 THEN 'LINE'
79898 WHEN 4 THEN 'LINE'
79899 WHEN 5 THEN 'LINE'
79900 WHEN 6 THEN 'LINE'
79901 WHEN 7 THEN 'LINE'
79902 WHEN 8 THEN 'LINE'
79903 WHEN 9 THEN 'LINE'
79904 WHEN 10 THEN 'LINE'
79905 WHEN 11 THEN 'LINE'
79906 WHEN 12 THEN 'LINE'
79907 WHEN 13 THEN 'LINE'
79908 WHEN 14 THEN 'LINE'
79909 WHEN 15 THEN 'LINE'
79910 WHEN 16 THEN 'LINE'
79911 WHEN 17 THEN 'LINE'
79912 WHEN 18 THEN 'LINE'
79913 WHEN 19 THEN 'LINE'
79914 WHEN 20 THEN 'LINE'
79915 WHEN 21 THEN 'LINE'
79916 WHEN 22 THEN 'LINE'
79917 WHEN 23 THEN 'LINE'
79918 WHEN 24 THEN 'LINE'
79919 WHEN 25 THEN 'LINE'
79920 WHEN 26 THEN 'LINE'
79921 WHEN 27 THEN 'LINE'
79922 WHEN 28 THEN 'LINE'
79923 WHEN 29 THEN 'LINE'
79924 WHEN 30 THEN 'LINE'
79925 WHEN 31 THEN 'LINE'
79926
79927 ELSE null
79928 END object_type_code
79929 , CASE r
79930 WHEN 1 THEN '275'
79934 WHEN 5 THEN '275'
79931 WHEN 2 THEN '275'
79932 WHEN 3 THEN '275'
79933 WHEN 4 THEN '275'
79935 WHEN 6 THEN '275'
79936 WHEN 7 THEN '275'
79937 WHEN 8 THEN '275'
79938 WHEN 9 THEN '275'
79939 WHEN 10 THEN '275'
79940 WHEN 11 THEN '275'
79941 WHEN 12 THEN '275'
79942 WHEN 13 THEN '275'
79943 WHEN 14 THEN '275'
79944 WHEN 15 THEN '275'
79945 WHEN 16 THEN '275'
79946 WHEN 17 THEN '275'
79947 WHEN 18 THEN '275'
79948 WHEN 19 THEN '275'
79949 WHEN 20 THEN '275'
79950 WHEN 21 THEN '275'
79951 WHEN 22 THEN '275'
79952 WHEN 23 THEN '275'
79953 WHEN 24 THEN '275'
79954 WHEN 25 THEN '275'
79955 WHEN 26 THEN '275'
79956 WHEN 27 THEN '275'
79957 WHEN 28 THEN '275'
79958 WHEN 29 THEN '275'
79959 WHEN 30 THEN '275'
79960 WHEN 31 THEN '275'
79961
79962 ELSE null
79963 END source_application_id
79964 , 'S' source_type_code
79965 , CASE r
79966 WHEN 1 THEN 'BUDGET_CCID'
79967 WHEN 2 THEN 'COST_CCID'
79968 WHEN 3 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
79969 WHEN 4 THEN 'ADJ_COST_CCID'
79970 WHEN 5 THEN 'COST_CLEARING_CCID'
79971 WHEN 6 THEN 'ADJ_COST_CLEARING_CCID'
79972 WHEN 7 THEN 'REVERSING_LINE_FLAG'
79973 WHEN 8 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
79974 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
79975 WHEN 10 THEN 'EXCHANGE_RATE_DATE'
79976 WHEN 11 THEN 'EXCHANGE_RATE'
79977 WHEN 12 THEN 'EXCHANGE_RATE_TYPE'
79978 WHEN 13 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
79979 WHEN 14 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
79980 WHEN 15 THEN 'LINE_NUMBER'
79981 WHEN 16 THEN 'LINE_TYPE'
79982 WHEN 17 THEN 'LINE_NUM_REVERSED'
79983 WHEN 18 THEN 'ENC_UPG_DR_ACCT_CLASS'
79984 WHEN 19 THEN 'USE_ENC_UPG_ATTRIB_FLAG'
79985 WHEN 20 THEN 'ENTERED_BURDENED_COST'
79986 WHEN 21 THEN 'ACCT_BURDENED_COST'
79987 WHEN 22 THEN 'ENCUMBRANCE_AMOUNT'
79988 WHEN 23 THEN 'PA_APPLICATION_ID'
79989 WHEN 24 THEN 'PA_DISTRIBUTION_TYPE'
79990 WHEN 25 THEN 'PA_ENTITY_CODE'
79991 WHEN 26 THEN 'PA_FIRST_DIST_ID'
79992 WHEN 27 THEN 'PA_FIRST_SYS_TRANS_ID'
79993 WHEN 28 THEN 'PA_SECOND_DIST_ID'
79994 WHEN 29 THEN 'ENC_UPG_CR_ACCT_CLASS'
79995 WHEN 30 THEN 'ENCUMBRANCE_TYPE_ID'
79996 WHEN 31 THEN 'PROJ_ENCUMBRANCE_TYPE_ID'
79997
79998 ELSE null
79999 END source_code
80000 , CASE r
80001 WHEN 1 THEN TO_CHAR(l1.BUDGET_CCID)
80002 WHEN 2 THEN TO_CHAR(l1.COST_CCID)
80003 WHEN 3 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
80004 WHEN 4 THEN TO_CHAR(l1.ADJ_COST_CCID)
80005 WHEN 5 THEN TO_CHAR(l1.COST_CLEARING_CCID)
80006 WHEN 6 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
80007 WHEN 7 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
80008 WHEN 8 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
80009 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
80010 WHEN 10 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
80011 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE)
80012 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
80013 WHEN 13 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
80014 WHEN 14 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
80015 WHEN 15 THEN TO_CHAR(l1.LINE_NUMBER)
80016 WHEN 16 THEN TO_CHAR(l1.LINE_TYPE)
80017 WHEN 17 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
80018 WHEN 18 THEN TO_CHAR(l1.ENC_UPG_DR_ACCT_CLASS)
80019 WHEN 19 THEN TO_CHAR(l1.USE_ENC_UPG_ATTRIB_FLAG)
80020 WHEN 20 THEN TO_CHAR(l1.ENTERED_BURDENED_COST)
80021 WHEN 21 THEN TO_CHAR(l1.ACCT_BURDENED_COST)
80022 WHEN 22 THEN TO_CHAR(l1.ENCUMBRANCE_AMOUNT)
80023 WHEN 23 THEN TO_CHAR(l1.PA_APPLICATION_ID)
80024 WHEN 24 THEN TO_CHAR(l1.PA_DISTRIBUTION_TYPE)
80025 WHEN 25 THEN TO_CHAR(l1.PA_ENTITY_CODE)
80026 WHEN 26 THEN TO_CHAR(l1.PA_FIRST_DIST_ID)
80027 WHEN 27 THEN TO_CHAR(l1.PA_FIRST_SYS_TRANS_ID)
80028 WHEN 28 THEN TO_CHAR(l1.PA_SECOND_DIST_ID)
80029 WHEN 29 THEN TO_CHAR(l1.ENC_UPG_CR_ACCT_CLASS)
80030 WHEN 30 THEN TO_CHAR(l1.ENCUMBRANCE_TYPE_ID)
80031 WHEN 31 THEN TO_CHAR(l1.PROJ_ENCUMBRANCE_TYPE_ID)
80032
80033 ELSE null
80034 END source_value
80035 , CASE r
80036 WHEN 3 THEN XLA_00275_AAD_S_000015_PKG.GetMeaning(
80037 103371
80038 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
80039 ,'ALLOW_OVERRIDE_CCID_FLAG'
80040 ,'S'
80041 ,275)
80042 WHEN 16 THEN fvl35.meaning
80043
80044 ELSE null
80045 END source_meaning
80046 FROM xla_events_gt xet
80047 , PA_XLA_CDL_LINES_V l1
80051 AND xet.event_class_code = C_EVENT_CLASS_CODE
80048 , fnd_lookup_values fvl35
80049 , (select rownum r from all_objects where rownum <= 31 and owner = p_apps_owner)
80050 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
80052 AND l1.event_id = xet.event_id
80053 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
80054 AND fvl35.lookup_code(+) = l1.LINE_TYPE
80055 AND fvl35.view_application_id(+) = 275
80056 AND fvl35.language(+) = USERENV('LANG')
80057
80058 )
80059 ;
80060 --
80061 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80062
80063 trace
80064 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
80065 ,p_level => C_LEVEL_STATEMENT
80066 ,p_module => l_log_module);
80067
80068 END IF;
80069
80070
80071 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80072 trace
80073 (p_msg => 'END of insert_sources_152'
80074 ,p_level => C_LEVEL_PROCEDURE
80075 ,p_module => l_log_module);
80076 END IF;
80077 EXCEPTION
80078 WHEN xla_exceptions_pkg.application_exception THEN
80079 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
80080 trace
80081 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
80082 ,p_level => C_LEVEL_EXCEPTION
80083 ,p_module => l_log_module);
80084 END IF;
80085 RAISE;
80086 WHEN OTHERS THEN
80087 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
80088 trace
80089 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
80090 ,p_level => C_LEVEL_EXCEPTION
80091 ,p_module => l_log_module);
80092 END IF;
80093 xla_exceptions_pkg.raise_message
80094 (p_location => 'XLA_00275_AAD_S_000015_PKG.insert_sources_152');
80095 END insert_sources_152;
80096 --
80097
80098 ---------------------------------------
80099 --
80100 -- PRIVATE FUNCTION
80101 -- EventClass_152
80102 --
80103 ----------------------------------------
80104 --
80105 FUNCTION EventClass_152
80106 (p_application_id IN NUMBER
80107 ,p_base_ledger_id IN NUMBER
80108 ,p_target_ledger_id IN NUMBER
80109 ,p_language IN VARCHAR2
80110 ,p_currency_code IN VARCHAR2
80111 ,p_sla_ledger_id IN NUMBER
80112 ,p_pad_start_date IN DATE
80113 ,p_pad_end_date IN DATE
80114 ,p_primary_ledger_id IN NUMBER)
80115 RETURN BOOLEAN IS
80116 --
80117 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BURDEN_COST_ALL';
80118 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BURDEN_COST';
80119
80120 l_calculate_acctd_flag VARCHAR2(1) :='N';
80121 l_calculate_g_l_flag VARCHAR2(1) :='N';
80122 --
80123 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
80124 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
80125 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
80126 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
80127 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
80128 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
80129 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
80130 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
80131 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
80132 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
80133 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
80134 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
80135 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
80136 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
80137 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
80138 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
80139 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
80140 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
80141 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
80142 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
80143 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
80144 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
80145 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
80146 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
80147
80148 l_event_id NUMBER;
80149 l_previous_event_id NUMBER;
80150 l_first_event_id NUMBER;
80151 l_last_event_id NUMBER;
80152
80153 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
80154 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
80155 --
80156 --
80157 l_result BOOLEAN := TRUE;
80158 l_rows NUMBER := 1000;
80159 l_event_type_name VARCHAR2(80) := 'All';
80160 l_event_class_name VARCHAR2(80) := 'Burden Cost';
80161 l_description VARCHAR2(4000);
80162 l_transaction_reversal NUMBER;
80163 l_ae_header_id NUMBER;
80164 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
80165 l_log_module VARCHAR2(240);
80166 --
80167 l_acct_reversal_source VARCHAR2(30);
80168 l_trx_reversal_source VARCHAR2(30);
80169
80170 l_continue_with_lines BOOLEAN := TRUE;
80171 --
80175
80172 l_acc_rev_gl_date_source DATE; -- 4262811
80173 --
80174 type t_array_event_id is table of number index by binary_integer;
80176 l_rec_array_event t_rec_array_event;
80177 l_null_rec_array_event t_rec_array_event;
80178 l_array_ae_header_id xla_number_array_type;
80179 l_actual_flag VARCHAR2(1) := NULL;
80180 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
80181 l_balance_type_code VARCHAR2(1) :=NULL;
80182 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
80183
80184 --
80185 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
80186 --
80187
80188 TYPE t_array_source_33 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
80189 TYPE t_array_source_75 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
80190
80191 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.BUDGET_CCID%TYPE INDEX BY BINARY_INTEGER;
80192 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
80193 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
80194 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
80195 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
80196 TYPE t_array_source_8 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
80197 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
80198 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
80199 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
80200 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
80201 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
80202 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
80203 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
80204 TYPE t_array_source_32 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
80205 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
80206 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
80207 TYPE t_array_source_36 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
80208 TYPE t_array_source_41 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
80209 TYPE t_array_source_44 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
80210 TYPE t_array_source_52 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_BURDENED_COST%TYPE INDEX BY BINARY_INTEGER;
80211 TYPE t_array_source_53 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_BURDENED_COST%TYPE INDEX BY BINARY_INTEGER;
80212 TYPE t_array_source_54 IS TABLE OF PA_XLA_CDL_LINES_V.ENCUMBRANCE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
80213 TYPE t_array_source_55 IS TABLE OF PA_XLA_CDL_LINES_V.PA_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
80214 TYPE t_array_source_56 IS TABLE OF PA_XLA_CDL_LINES_V.PA_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
80215 TYPE t_array_source_57 IS TABLE OF PA_XLA_CDL_LINES_V.PA_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
80216 TYPE t_array_source_58 IS TABLE OF PA_XLA_CDL_LINES_V.PA_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
80217 TYPE t_array_source_59 IS TABLE OF PA_XLA_CDL_LINES_V.PA_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
80218 TYPE t_array_source_60 IS TABLE OF PA_XLA_CDL_LINES_V.PA_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
80219 TYPE t_array_source_61 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
80220 TYPE t_array_source_62 IS TABLE OF PA_XLA_CDL_LINES_V.ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
80221 TYPE t_array_source_63 IS TABLE OF PA_XLA_CDL_LINES_V.PROJ_ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
80222
80223 l_array_source_33 t_array_source_33;
80224 l_array_source_75 t_array_source_75;
80225
80226 l_array_source_3 t_array_source_3;
80227 l_array_source_4 t_array_source_4;
80228 l_array_source_5 t_array_source_5;
80229 l_array_source_6 t_array_source_6;
80230 l_array_source_7 t_array_source_7;
80231 l_array_source_8 t_array_source_8;
80232 l_array_source_23 t_array_source_23;
80233 l_array_source_24 t_array_source_24;
80234 l_array_source_26 t_array_source_26;
80235 l_array_source_28 t_array_source_28;
80236 l_array_source_29 t_array_source_29;
80237 l_array_source_30 t_array_source_30;
80238 l_array_source_31 t_array_source_31;
80239 l_array_source_32 t_array_source_32;
80240 l_array_source_34 t_array_source_34;
80241 l_array_source_35 t_array_source_35;
80242 l_array_source_35_meaning t_array_lookup_meaning;
80243 l_array_source_36 t_array_source_36;
80244 l_array_source_41 t_array_source_41;
80245 l_array_source_44 t_array_source_44;
80246 l_array_source_52 t_array_source_52;
80247 l_array_source_53 t_array_source_53;
80248 l_array_source_54 t_array_source_54;
80249 l_array_source_55 t_array_source_55;
80250 l_array_source_56 t_array_source_56;
80251 l_array_source_57 t_array_source_57;
80252 l_array_source_58 t_array_source_58;
80253 l_array_source_59 t_array_source_59;
80254 l_array_source_60 t_array_source_60;
80255 l_array_source_61 t_array_source_61;
80256 l_array_source_62 t_array_source_62;
80257 l_array_source_63 t_array_source_63;
80258
80259 --
80260 CURSOR header_cur
80261 IS
80262 SELECT /*+ leading(xet) cardinality(xet,1) */
80263 -- Event Class Code: BURDEN_COST
80264 xet.entity_id
80265 ,xet.legal_entity_id
80266 ,xet.entity_code
80267 ,xet.transaction_number
80268 ,xet.event_id
80269 ,xet.event_class_code
80273 ,xet.transaction_date
80270 ,xet.event_type_code
80271 ,xet.event_number
80272 ,xet.event_date
80274 ,xet.reference_num_1
80275 ,xet.reference_num_2
80276 ,xet.reference_num_3
80277 ,xet.reference_num_4
80278 ,xet.reference_char_1
80279 ,xet.reference_char_2
80280 ,xet.reference_char_3
80281 ,xet.reference_char_4
80282 ,xet.reference_date_1
80283 ,xet.reference_date_2
80284 ,xet.reference_date_3
80285 ,xet.reference_date_4
80286 ,xet.event_created_by
80287 ,xet.budgetary_control_flag
80288 , h2.EXPENDITURE_ITEM_ID source_33
80289 , h2.GL_DATE source_75
80290 FROM xla_events_gt xet
80291 , PA_XLA_EXP_HEADER_V h2
80292 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
80293 and xet.event_class_code = C_EVENT_CLASS_CODE
80294 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
80295
80296 ORDER BY event_id
80297 ;
80298
80299
80300 --
80301 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
80302 IS
80303 SELECT /*+ leading(xet) cardinality(xet,1) */
80304 -- Event Class Code: BURDEN_COST
80305 xet.entity_id
80306 ,xet.legal_entity_id
80307 ,xet.entity_code
80308 ,xet.transaction_number
80309 ,xet.event_id
80310 ,xet.event_class_code
80311 ,xet.event_type_code
80312 ,xet.event_number
80313 ,xet.event_date
80314 ,xet.transaction_date
80315 ,xet.reference_num_1
80316 ,xet.reference_num_2
80317 ,xet.reference_num_3
80318 ,xet.reference_num_4
80319 ,xet.reference_char_1
80320 ,xet.reference_char_2
80321 ,xet.reference_char_3
80322 ,xet.reference_char_4
80323 ,xet.reference_date_1
80324 ,xet.reference_date_2
80325 ,xet.reference_date_3
80326 ,xet.reference_date_4
80327 ,xet.event_created_by
80328 ,xet.budgetary_control_flag
80329 , l1.LINE_NUMBER
80330 , l1.BUDGET_CCID source_3
80331 , l1.COST_CCID source_4
80332 , l1.ALLOW_OVERRIDE_CCID_FLAG source_5
80333 , l1.ADJ_COST_CCID source_6
80334 , l1.COST_CLEARING_CCID source_7
80335 , l1.ADJ_COST_CLEARING_CCID source_8
80336 , l1.REVERSING_LINE_FLAG source_23
80337 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_24
80338 , l1.ENTERED_CURRENCY_CODE source_26
80339 , l1.EXCHANGE_RATE_DATE source_28
80340 , l1.EXCHANGE_RATE source_29
80341 , l1.EXCHANGE_RATE_TYPE source_30
80342 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_31
80343 , l1.USE_ACT_UPG_ATTRIB_FLAG source_32
80344 , l1.LINE_NUMBER source_34
80345 , l1.LINE_TYPE source_35
80346 , fvl35.meaning source_35_meaning
80347 , l1.LINE_NUM_REVERSED source_36
80348 , l1.ENC_UPG_DR_ACCT_CLASS source_41
80349 , l1.USE_ENC_UPG_ATTRIB_FLAG source_44
80350 , l1.ENTERED_BURDENED_COST source_52
80351 , l1.ACCT_BURDENED_COST source_53
80352 , l1.ENCUMBRANCE_AMOUNT source_54
80353 , l1.PA_APPLICATION_ID source_55
80354 , l1.PA_DISTRIBUTION_TYPE source_56
80355 , l1.PA_ENTITY_CODE source_57
80356 , l1.PA_FIRST_DIST_ID source_58
80357 , l1.PA_FIRST_SYS_TRANS_ID source_59
80358 , l1.PA_SECOND_DIST_ID source_60
80359 , l1.ENC_UPG_CR_ACCT_CLASS source_61
80360 , l1.ENCUMBRANCE_TYPE_ID source_62
80361 , l1.PROJ_ENCUMBRANCE_TYPE_ID source_63
80362 FROM xla_events_gt xet
80363 , PA_XLA_CDL_LINES_V l1
80364 , fnd_lookup_values fvl35
80365 WHERE xet.event_id between x_first_event_id and x_last_event_id
80366 and xet.event_date between p_pad_start_date and p_pad_end_date
80367 and xet.event_class_code = C_EVENT_CLASS_CODE
80368 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
80369 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
80370 AND fvl35.lookup_code(+) = l1.LINE_TYPE
80371 AND fvl35.view_application_id(+) = 275
80372 AND fvl35.language(+) = USERENV('LANG')
80373 ;
80374
80375 --
80376 BEGIN
80377 IF g_log_enabled THEN
80378 l_log_module := C_DEFAULT_MODULE||'.EventClass_152';
80379 END IF;
80380 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80381 trace
80382 (p_msg => 'BEGIN of EventClass_152'
80383 ,p_level => C_LEVEL_PROCEDURE
80384 ,p_module => l_log_module);
80385 END IF;
80386
80387 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80388 trace
80389 (p_msg => 'p_application_id = '||p_application_id||
80390 ' - p_base_ledger_id = '||p_base_ledger_id||
80391 ' - p_target_ledger_id = '||p_target_ledger_id||
80392 ' - p_language = '||p_language||
80393 ' - p_currency_code = '||p_currency_code||
80394 ' - p_sla_ledger_id = '||p_sla_ledger_id
80395 ,p_level => C_LEVEL_STATEMENT
80396 ,p_module => l_log_module);
80397 END IF;
80398 --
80399 -- initialze arrays
80400 --
80401 g_array_event.DELETE;
80402 l_rec_array_event := l_null_rec_array_event;
80403 --
80404 --------------------------------------
80405 -- 4262811 Initialze MPA Line Number
80406 --------------------------------------
80407 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
80408
80409 --
80410
80411 --
80412 OPEN header_cur;
80413 --
80414 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80415 trace
80416 (p_msg => 'SQL - FETCH header_cur'
80417 ,p_level => C_LEVEL_STATEMENT
80418 ,p_module => l_log_module);
80419 END IF;
80420 --
80421 LOOP
80422 FETCH header_cur BULK COLLECT INTO
80423 l_array_entity_id
80424 , l_array_legal_entity_id
80425 , l_array_entity_code
80426 , l_array_transaction_num
80427 , l_array_event_id
80431 , l_array_event_date
80428 , l_array_class_code
80429 , l_array_event_type
80430 , l_array_event_number
80432 , l_array_transaction_date
80433 , l_array_reference_num_1
80434 , l_array_reference_num_2
80435 , l_array_reference_num_3
80436 , l_array_reference_num_4
80437 , l_array_reference_char_1
80438 , l_array_reference_char_2
80439 , l_array_reference_char_3
80440 , l_array_reference_char_4
80441 , l_array_reference_date_1
80442 , l_array_reference_date_2
80443 , l_array_reference_date_3
80444 , l_array_reference_date_4
80445 , l_array_event_created_by
80446 , l_array_budgetary_control_flag
80447 , l_array_source_33
80448 , l_array_source_75
80449 LIMIT l_rows;
80450 --
80451 IF (C_LEVEL_EVENT >= g_log_level) THEN
80452 trace
80453 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
80454 ,p_level => C_LEVEL_EVENT
80455 ,p_module => l_log_module);
80456 END IF;
80457 --
80458 EXIT WHEN l_array_entity_id.COUNT = 0;
80459
80460 -- initialize arrays
80461 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
80462 XLA_AE_LINES_PKG.g_rec_lines := NULL;
80463
80464 --
80465 -- Bug 4458708
80466 --
80467 XLA_AE_LINES_PKG.g_LineNumber := 0;
80468
80469
80470 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
80471 g_last_hdr_idx := l_array_event_id.LAST;
80472 --
80473 -- loop for the headers. Each iteration is for each header extract row
80474 -- fetched in header cursor
80475 --
80476 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
80477
80478 --
80479 -- set event info as cache for other routines to refer event attributes
80480 --
80481 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
80482 (p_application_id => p_application_id
80483 ,p_primary_ledger_id => p_primary_ledger_id
80484 ,p_base_ledger_id => p_base_ledger_id
80485 ,p_target_ledger_id => p_target_ledger_id
80486 ,p_entity_id => l_array_entity_id(hdr_idx)
80487 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
80488 ,p_entity_code => l_array_entity_code(hdr_idx)
80489 ,p_transaction_num => l_array_transaction_num(hdr_idx)
80490 ,p_event_id => l_array_event_id(hdr_idx)
80491 ,p_event_class_code => l_array_class_code(hdr_idx)
80492 ,p_event_type_code => l_array_event_type(hdr_idx)
80493 ,p_event_number => l_array_event_number(hdr_idx)
80494 ,p_event_date => l_array_event_date(hdr_idx)
80495 ,p_transaction_date => l_array_transaction_date(hdr_idx)
80496 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
80497 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
80498 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
80499 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
80500 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
80501 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
80502 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
80503 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
80504 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
80505 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
80506 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
80507 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
80508 ,p_event_created_by => l_array_event_created_by(hdr_idx)
80509 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
80510
80511 --
80512 -- set the status of entry to C_VALID (0)
80513 --
80514 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
80515
80516 --
80517 -- initialize a row for ae header
80518 --
80519 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
80520
80521 l_event_id := l_array_event_id(hdr_idx);
80522
80523 --
80524 -- storing the hdr_idx for event. May be used by line cursor.
80525 --
80526 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
80527
80528 --
80529 -- store sources from header extract. This can be improved to
80530 -- store only those sources from header extract that may be used in lines
80531 --
80532
80533 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
80534 g_array_event(l_event_id).array_value_date('source_75') := l_array_source_75(hdr_idx);
80535
80536 --
80537 -- initilaize the status of ae headers for diffrent balance types
80538 -- the status is initialised to C_NOT_CREATED (2)
80539 --
80540 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
80541 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
80542 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
80543
80544 --
80545 -- call api to validate and store accounting attributes for header
80546 --
80547
80548 ------------------------------------------------------------
80549 -- Accrual Reversal : to get date for Standard Source (NONE)
80550 ------------------------------------------------------------
80551 l_acc_rev_gl_date_source := NULL;
80552
80553 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
80554 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_75');
80555
80556
80557 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
80558
80559 XLA_AE_HEADER_PKG.SetJeCategoryName;
80560
80564 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
80561 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
80562 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
80563 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
80565 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
80566
80567
80568 -- No header level analytical criteria
80569
80570 --
80571 --accounting attribute enhancement, bug 3612931
80572 --
80573 l_trx_reversal_source := SUBSTR(NULL, 1,30);
80574
80575 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
80576 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
80577
80578 xla_accounting_err_pkg.build_message
80579 (p_appli_s_name => 'XLA'
80580 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
80581 ,p_token_1 => 'ACCT_ATTR_NAME'
80582 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
80583 ,p_token_2 => 'PRODUCT_NAME'
80584 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
80585 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
80586 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
80587 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
80588
80589 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
80590 --
80591 -- following sets the accounting attributes needed to reverse
80592 -- accounting for a distributeion
80593 --
80594 xla_ae_lines_pkg.SetTrxReversalAttrs
80595 (p_event_id => l_event_id
80596 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
80597 ,p_trx_reversal_source => l_trx_reversal_source);
80598
80599 END IF;
80600
80601
80602 ----------------------------------------------------------------
80603 -- 4262811 - update the header statuses to invalid in need be
80604 ----------------------------------------------------------------
80605 --
80606 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
80607
80608
80609 -----------------------------------------------
80610 -- No accrual reversal for the event class/type
80611 -----------------------------------------------
80612 ----------------------------------------------------------------
80613
80614 --
80615 -- this ends the header loop iteration for one bulk fetch
80616 --
80617 END LOOP;
80618
80619 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
80620 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
80621
80622 --
80623 -- insert dummy rows into lines gt table that were created due to
80624 -- transaction reversals
80625 --
80626 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
80627 l_result := XLA_AE_LINES_PKG.InsertLines;
80628 END IF;
80629
80630 --
80631 -- reset the temp_line_num for each set of events fetched from header
80632 -- cursor rather than doing it for each new event in line cursor
80633 -- Bug 3939231
80634 --
80635 xla_ae_lines_pkg.g_temp_line_num := 0;
80636
80637
80638
80639 --
80640 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
80641 --
80642 --
80643 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80644
80645 trace
80646 (p_msg => 'SQL - FETCH line_cur'
80647 ,p_level => C_LEVEL_STATEMENT
80648 ,p_module => l_log_module);
80649
80650 END IF;
80651 --
80652 --
80653 LOOP
80654 --
80655 FETCH line_cur BULK COLLECT INTO
80656 l_array_entity_id
80657 , l_array_legal_entity_id
80658 , l_array_entity_code
80659 , l_array_transaction_num
80660 , l_array_event_id
80661 , l_array_class_code
80662 , l_array_event_type
80663 , l_array_event_number
80664 , l_array_event_date
80665 , l_array_transaction_date
80666 , l_array_reference_num_1
80667 , l_array_reference_num_2
80668 , l_array_reference_num_3
80669 , l_array_reference_num_4
80670 , l_array_reference_char_1
80671 , l_array_reference_char_2
80672 , l_array_reference_char_3
80673 , l_array_reference_char_4
80674 , l_array_reference_date_1
80675 , l_array_reference_date_2
80676 , l_array_reference_date_3
80677 , l_array_reference_date_4
80678 , l_array_event_created_by
80679 , l_array_budgetary_control_flag
80680 , l_array_extract_line_num
80681 , l_array_source_3
80682 , l_array_source_4
80683 , l_array_source_5
80684 , l_array_source_6
80685 , l_array_source_7
80686 , l_array_source_8
80687 , l_array_source_23
80688 , l_array_source_24
80689 , l_array_source_26
80690 , l_array_source_28
80691 , l_array_source_29
80692 , l_array_source_30
80693 , l_array_source_31
80694 , l_array_source_32
80695 , l_array_source_34
80696 , l_array_source_35
80697 , l_array_source_35_meaning
80698 , l_array_source_36
80699 , l_array_source_41
80700 , l_array_source_44
80701 , l_array_source_52
80702 , l_array_source_53
80703 , l_array_source_54
80704 , l_array_source_55
80705 , l_array_source_56
80706 , l_array_source_57
80707 , l_array_source_58
80708 , l_array_source_59
80709 , l_array_source_60
80713 LIMIT l_rows;
80710 , l_array_source_61
80711 , l_array_source_62
80712 , l_array_source_63
80714
80715 --
80716 IF (C_LEVEL_EVENT >= g_log_level) THEN
80717 trace
80718 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
80719 ,p_level => C_LEVEL_EVENT
80720 ,p_module => l_log_module);
80721 END IF;
80722 --
80723 EXIT WHEN l_array_entity_id.count = 0;
80724
80725 XLA_AE_LINES_PKG.g_rec_lines := null;
80726
80727 --
80728 -- Bug 4458708
80729 --
80730 XLA_AE_LINES_PKG.g_LineNumber := 0;
80731 --
80732 --
80733
80734 FOR Idx IN 1..l_array_event_id.count LOOP
80735 --
80736 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
80737 --
80738 l_event_id := l_array_event_id(idx); -- 5648433
80739
80740 --
80741 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
80742 --
80743
80744 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
80745 (g_array_event(l_event_id).array_value_num('header_index'))
80746 ,'N'
80747 ) <> 'Y'
80748 THEN
80749 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80750 trace
80751 (p_msg => 'Trancaction revesal option is not Y '
80752 ,p_level => C_LEVEL_STATEMENT
80753 ,p_module => l_log_module);
80754 END IF;
80755
80756 --
80757 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
80758 --
80759 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
80760 --
80761 -- set event info as cache for other routines to refer event attributes
80762 --
80763
80764 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
80765 l_previous_event_id := l_event_id;
80766
80767 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
80768 (p_application_id => p_application_id
80769 ,p_primary_ledger_id => p_primary_ledger_id
80770 ,p_base_ledger_id => p_base_ledger_id
80771 ,p_target_ledger_id => p_target_ledger_id
80772 ,p_entity_id => l_array_entity_id(Idx)
80773 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
80774 ,p_entity_code => l_array_entity_code(Idx)
80775 ,p_transaction_num => l_array_transaction_num(Idx)
80776 ,p_event_id => l_array_event_id(Idx)
80777 ,p_event_class_code => l_array_class_code(Idx)
80778 ,p_event_type_code => l_array_event_type(Idx)
80779 ,p_event_number => l_array_event_number(Idx)
80780 ,p_event_date => l_array_event_date(Idx)
80781 ,p_transaction_date => l_array_transaction_date(Idx)
80782 ,p_reference_num_1 => l_array_reference_num_1(Idx)
80783 ,p_reference_num_2 => l_array_reference_num_2(Idx)
80784 ,p_reference_num_3 => l_array_reference_num_3(Idx)
80785 ,p_reference_num_4 => l_array_reference_num_4(Idx)
80786 ,p_reference_char_1 => l_array_reference_char_1(Idx)
80787 ,p_reference_char_2 => l_array_reference_char_2(Idx)
80788 ,p_reference_char_3 => l_array_reference_char_3(Idx)
80789 ,p_reference_char_4 => l_array_reference_char_4(Idx)
80790 ,p_reference_date_1 => l_array_reference_date_1(Idx)
80791 ,p_reference_date_2 => l_array_reference_date_2(Idx)
80792 ,p_reference_date_3 => l_array_reference_date_3(Idx)
80793 ,p_reference_date_4 => l_array_reference_date_4(Idx)
80794 ,p_event_created_by => l_array_event_created_by(Idx)
80795 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
80796 --
80797 END IF;
80798
80799
80800
80801 --
80802 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
80803
80804 l_acct_reversal_source := SUBSTR(l_array_source_23(Idx), 1,30);
80805
80806 IF l_continue_with_lines THEN
80807 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
80808 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
80809
80810 xla_accounting_err_pkg.build_message
80811 (p_appli_s_name => 'XLA'
80812 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
80813 ,p_token_1 => 'LINE_NUMBER'
80814 ,p_value_1 => l_array_extract_line_num(Idx)
80815 ,p_token_2 => 'PRODUCT_NAME'
80816 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
80817 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
80818 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
80819 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
80820
80821 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
80822 --
80823 -- following sets the accounting attributes needed to reverse
80824 -- accounting for a distributeion
80825 --
80826
80827 --
80828 -- 5217187
80829 --
80830 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
80831 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
80832 g_array_event(l_event_id).array_value_num('header_index'));
80833 --
80834 --
80835
80836 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
80837 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_23(Idx);
80838 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
80842 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
80839 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_24(Idx);
80840 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
80841 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_7(Idx));
80843 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_52(Idx);
80844 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
80845 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_26(Idx);
80846 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
80847 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_53(Idx);
80848 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
80849 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_28(Idx);
80850 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
80851 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_29(Idx);
80852 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
80853 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_30(Idx);
80854 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
80855 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_31(Idx);
80856 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
80857 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_4(Idx));
80858 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
80859 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_52(Idx);
80860 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
80861 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_26(Idx);
80862 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
80863 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_53(Idx);
80864 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
80865 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_28(Idx);
80866 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
80867 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_29(Idx);
80868 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
80869 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_30(Idx);
80870 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
80871 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_32(Idx);
80872 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
80873 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_33');
80874 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
80875 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_34(Idx);
80876 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
80877 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_35(Idx);
80878 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_CR_ACCT_CLASS';
80879 l_rec_rev_acct_attrs.array_char_value(23) := l_array_source_41(Idx);
80880 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_CR_CCID';
80881 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_3(Idx);
80882 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_CR_ENTERED_AMT';
80883 l_rec_rev_acct_attrs.array_num_value(25) := l_array_source_54(Idx);
80884 l_rec_rev_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_CR_ENTERED_CURR';
80885 l_rec_rev_acct_attrs.array_char_value(26) := l_array_source_26(Idx);
80886 l_rec_rev_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_CR_LEDGER_AMT';
80887 l_rec_rev_acct_attrs.array_num_value(27) := l_array_source_54(Idx);
80888 l_rec_rev_acct_attrs.array_acct_attr_code(28) := 'ENC_UPG_DR_ACCT_CLASS';
80889 l_rec_rev_acct_attrs.array_char_value(28) := l_array_source_61(Idx);
80890 l_rec_rev_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_CCID';
80891 l_rec_rev_acct_attrs.array_num_value(29) := l_array_source_3(Idx);
80892 l_rec_rev_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_ENTERED_AMT';
80893 l_rec_rev_acct_attrs.array_num_value(30) := l_array_source_54(Idx);
80894 l_rec_rev_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_CURR';
80895 l_rec_rev_acct_attrs.array_char_value(31) := l_array_source_26(Idx);
80896 l_rec_rev_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_LEDGER_AMT';
80897 l_rec_rev_acct_attrs.array_num_value(32) := l_array_source_54(Idx);
80898 l_rec_rev_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_OPTION';
80899 l_rec_rev_acct_attrs.array_char_value(33) := l_array_source_44(Idx);
80900 l_rec_rev_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_ID1';
80901 l_rec_rev_acct_attrs.array_num_value(34) := g_array_event(l_event_id).array_value_num('source_33');
80902 l_rec_rev_acct_attrs.array_acct_attr_code(35) := 'REVERSED_DISTRIBUTION_ID2';
80903 l_rec_rev_acct_attrs.array_num_value(35) := l_array_source_36(Idx);
80904 l_rec_rev_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_TYPE';
80905 l_rec_rev_acct_attrs.array_char_value(36) := l_array_source_35(Idx);
80906 l_rec_rev_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
80907 l_rec_rev_acct_attrs.array_num_value(37) := l_array_source_62(Idx);
80908 l_rec_rev_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
80909 l_rec_rev_acct_attrs.array_num_value(38) := l_array_source_63(Idx);
80910
80911
80912 xla_ae_lines_pkg.SetAcctReversalAttrs
80913 (p_event_id => l_event_id
80914 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
80915 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80916 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
80917 END IF;
80918
80919 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
80923 AcctLineType_36 (
80920 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
80921
80922 --
80924 p_application_id => p_application_id
80925 ,p_event_id => l_event_id
80926 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80927 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80928 ,p_actual_flag => l_actual_flag
80929 ,p_balance_type_code => l_balance_type_code
80930 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80931
80932 , p_source_3 => l_array_source_3(Idx)
80933 , p_source_4 => l_array_source_4(Idx)
80934 , p_source_5 => l_array_source_5(Idx)
80935 , p_source_6 => l_array_source_6(Idx)
80936 , p_source_7 => l_array_source_7(Idx)
80937 , p_source_23 => l_array_source_23(Idx)
80938 , p_source_24 => l_array_source_24(Idx)
80939 , p_source_26 => l_array_source_26(Idx)
80940 , p_source_28 => l_array_source_28(Idx)
80941 , p_source_29 => l_array_source_29(Idx)
80942 , p_source_30 => l_array_source_30(Idx)
80943 , p_source_31 => l_array_source_31(Idx)
80944 , p_source_32 => l_array_source_32(Idx)
80945 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
80946 , p_source_34 => l_array_source_34(Idx)
80947 , p_source_35 => l_array_source_35(Idx)
80948 , p_source_35_meaning => l_array_source_35_meaning(Idx)
80949 , p_source_36 => l_array_source_36(Idx)
80950 , p_source_41 => l_array_source_41(Idx)
80951 , p_source_44 => l_array_source_44(Idx)
80952 , p_source_52 => l_array_source_52(Idx)
80953 , p_source_53 => l_array_source_53(Idx)
80954 , p_source_54 => l_array_source_54(Idx)
80955 , p_source_55 => l_array_source_55(Idx)
80956 , p_source_56 => l_array_source_56(Idx)
80957 , p_source_57 => l_array_source_57(Idx)
80958 , p_source_58 => l_array_source_58(Idx)
80959 , p_source_59 => l_array_source_59(Idx)
80960 , p_source_60 => l_array_source_60(Idx)
80961 , p_source_61 => l_array_source_61(Idx)
80962 , p_source_62 => l_array_source_62(Idx)
80963 , p_source_63 => l_array_source_63(Idx)
80964 );
80965 If(l_balance_type_code = 'A') THEN
80966 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80967 END IF;
80968
80969 --
80970
80971
80972 --
80973 AcctLineType_41 (
80974 p_application_id => p_application_id
80975 ,p_event_id => l_event_id
80976 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80977 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80978 ,p_actual_flag => l_actual_flag
80979 ,p_balance_type_code => l_balance_type_code
80980 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80981
80982 , p_source_3 => l_array_source_3(Idx)
80983 , p_source_4 => l_array_source_4(Idx)
80984 , p_source_5 => l_array_source_5(Idx)
80985 , p_source_7 => l_array_source_7(Idx)
80986 , p_source_8 => l_array_source_8(Idx)
80987 , p_source_23 => l_array_source_23(Idx)
80988 , p_source_24 => l_array_source_24(Idx)
80989 , p_source_26 => l_array_source_26(Idx)
80990 , p_source_28 => l_array_source_28(Idx)
80991 , p_source_29 => l_array_source_29(Idx)
80992 , p_source_30 => l_array_source_30(Idx)
80993 , p_source_31 => l_array_source_31(Idx)
80994 , p_source_32 => l_array_source_32(Idx)
80995 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
80996 , p_source_34 => l_array_source_34(Idx)
80997 , p_source_35 => l_array_source_35(Idx)
80998 , p_source_35_meaning => l_array_source_35_meaning(Idx)
80999 , p_source_36 => l_array_source_36(Idx)
81000 , p_source_41 => l_array_source_41(Idx)
81001 , p_source_44 => l_array_source_44(Idx)
81002 , p_source_52 => l_array_source_52(Idx)
81003 , p_source_53 => l_array_source_53(Idx)
81004 , p_source_54 => l_array_source_54(Idx)
81005 , p_source_55 => l_array_source_55(Idx)
81006 , p_source_56 => l_array_source_56(Idx)
81007 , p_source_57 => l_array_source_57(Idx)
81008 , p_source_58 => l_array_source_58(Idx)
81009 , p_source_59 => l_array_source_59(Idx)
81010 , p_source_60 => l_array_source_60(Idx)
81011 , p_source_61 => l_array_source_61(Idx)
81012 , p_source_62 => l_array_source_62(Idx)
81013 , p_source_63 => l_array_source_63(Idx)
81014 );
81015 If(l_balance_type_code = 'A') THEN
81016 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81017 END IF;
81018
81019 --
81020
81021
81022 --
81023 AcctLineType_42 (
81024 p_application_id => p_application_id
81025 ,p_event_id => l_event_id
81026 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81027 ,p_calculate_g_l_flag => l_calculate_g_l_flag
81028 ,p_actual_flag => l_actual_flag
81029 ,p_balance_type_code => l_balance_type_code
81030 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81031
81032 , p_source_3 => l_array_source_3(Idx)
81033 , p_source_4 => l_array_source_4(Idx)
81034 , p_source_5 => l_array_source_5(Idx)
81035 , p_source_7 => l_array_source_7(Idx)
81036 , p_source_8 => l_array_source_8(Idx)
81037 , p_source_23 => l_array_source_23(Idx)
81038 , p_source_24 => l_array_source_24(Idx)
81039 , p_source_26 => l_array_source_26(Idx)
81040 , p_source_28 => l_array_source_28(Idx)
81041 , p_source_29 => l_array_source_29(Idx)
81042 , p_source_30 => l_array_source_30(Idx)
81043 , p_source_31 => l_array_source_31(Idx)
81044 , p_source_32 => l_array_source_32(Idx)
81045 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
81046 , p_source_34 => l_array_source_34(Idx)
81047 , p_source_35 => l_array_source_35(Idx)
81048 , p_source_35_meaning => l_array_source_35_meaning(Idx)
81049 , p_source_36 => l_array_source_36(Idx)
81050 , p_source_41 => l_array_source_41(Idx)
81051 , p_source_44 => l_array_source_44(Idx)
81052 , p_source_52 => l_array_source_52(Idx)
81053 , p_source_53 => l_array_source_53(Idx)
81054 , p_source_54 => l_array_source_54(Idx)
81055 , p_source_55 => l_array_source_55(Idx)
81056 , p_source_56 => l_array_source_56(Idx)
81057 , p_source_57 => l_array_source_57(Idx)
81058 , p_source_58 => l_array_source_58(Idx)
81062 , p_source_62 => l_array_source_62(Idx)
81059 , p_source_59 => l_array_source_59(Idx)
81060 , p_source_60 => l_array_source_60(Idx)
81061 , p_source_61 => l_array_source_61(Idx)
81063 , p_source_63 => l_array_source_63(Idx)
81064 );
81065 If(l_balance_type_code = 'A') THEN
81066 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81067 END IF;
81068
81069 --
81070
81071
81072 --
81073 AcctLineType_43 (
81074 p_application_id => p_application_id
81075 ,p_event_id => l_event_id
81076 ,p_calculate_acctd_flag => l_calculate_acctd_flag
81077 ,p_calculate_g_l_flag => l_calculate_g_l_flag
81078 ,p_actual_flag => l_actual_flag
81079 ,p_balance_type_code => l_balance_type_code
81080 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
81081
81082 , p_source_3 => l_array_source_3(Idx)
81083 , p_source_4 => l_array_source_4(Idx)
81084 , p_source_5 => l_array_source_5(Idx)
81085 , p_source_6 => l_array_source_6(Idx)
81086 , p_source_7 => l_array_source_7(Idx)
81087 , p_source_23 => l_array_source_23(Idx)
81088 , p_source_24 => l_array_source_24(Idx)
81089 , p_source_26 => l_array_source_26(Idx)
81090 , p_source_28 => l_array_source_28(Idx)
81091 , p_source_29 => l_array_source_29(Idx)
81092 , p_source_30 => l_array_source_30(Idx)
81093 , p_source_31 => l_array_source_31(Idx)
81094 , p_source_32 => l_array_source_32(Idx)
81095 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
81096 , p_source_34 => l_array_source_34(Idx)
81097 , p_source_35 => l_array_source_35(Idx)
81098 , p_source_35_meaning => l_array_source_35_meaning(Idx)
81099 , p_source_36 => l_array_source_36(Idx)
81100 , p_source_41 => l_array_source_41(Idx)
81101 , p_source_44 => l_array_source_44(Idx)
81102 , p_source_52 => l_array_source_52(Idx)
81103 , p_source_53 => l_array_source_53(Idx)
81104 , p_source_54 => l_array_source_54(Idx)
81105 , p_source_55 => l_array_source_55(Idx)
81106 , p_source_56 => l_array_source_56(Idx)
81107 , p_source_57 => l_array_source_57(Idx)
81108 , p_source_58 => l_array_source_58(Idx)
81109 , p_source_59 => l_array_source_59(Idx)
81110 , p_source_60 => l_array_source_60(Idx)
81111 , p_source_61 => l_array_source_61(Idx)
81112 , p_source_62 => l_array_source_62(Idx)
81113 , p_source_63 => l_array_source_63(Idx)
81114 );
81115 If(l_balance_type_code = 'A') THEN
81116 l_actual_gain_loss_ref := l_gain_or_loss_ref;
81117 END IF;
81118
81119 --
81120
81121 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
81122 -- or secondary ledger that has different currency with primary
81123 -- or alc that is calculated by sla
81124 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
81125 (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'))
81126
81127 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
81128 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
81129 AND (l_actual_flag = 'A')) THEN
81130 XLA_AE_LINES_PKG.CreateGainOrLossLines(
81131 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
81132 ,p_application_id => p_application_id
81133 ,p_amb_context_code => 'DEFAULT'
81134 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
81135 ,p_event_class_code => C_EVENT_CLASS_CODE
81136 ,p_event_type_code => C_EVENT_TYPE_CODE
81137
81138 ,p_gain_ccid => -1
81139 ,p_loss_ccid => -1
81140
81141 ,p_actual_flag => l_actual_flag
81142 ,p_enc_flag => null
81143 ,p_actual_g_l_ref => l_actual_gain_loss_ref
81144 ,p_enc_g_l_ref => null
81145 );
81146 END IF;
81147 END IF;
81148 END IF;
81149
81150 ELSE
81151 --
81152 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
81153 --
81154 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81155 trace
81156 (p_msg => 'Trancaction revesal option is Y'
81157 ,p_level => C_LEVEL_STATEMENT
81158 ,p_module => l_log_module);
81159 END IF;
81160 END IF;
81161
81162 END LOOP;
81163 l_result := XLA_AE_LINES_PKG.InsertLines ;
81164 end loop;
81165 close line_cur;
81166
81167
81168 --
81169 -- insert headers into xla_ae_headers_gt table
81170 --
81171 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
81172
81173 -- insert into errors table here.
81174
81175 END LOOP;
81176
81177 --
81178 -- 4865292
81179 --
81180 -- Compare g_hdr_extract_count with event count in
81181 -- CreateHeadersAndLines.
81182 --
81183 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
81184
81185 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81186 trace (p_msg => '# rows extracted from header extract objects '
81187 || ' (running total): '
81188 || g_hdr_extract_count
81189 ,p_level => C_LEVEL_STATEMENT
81190 ,p_module => l_log_module);
81191 END IF;
81192
81193 CLOSE header_cur;
81194 --
81195
81196 --
81197 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81198 trace
81199 (p_msg => 'END of EventClass_152'
81200 ,p_level => C_LEVEL_PROCEDURE
81201 ,p_module => l_log_module);
81202 END IF;
81203 --
81204 RETURN l_result;
81205 EXCEPTION
81206 WHEN xla_exceptions_pkg.application_exception THEN
81207
81208 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
81209
81210
81214 WHEN OTHERS THEN
81211 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
81212
81213 RAISE;
81215 xla_exceptions_pkg.raise_message
81216 (p_location => 'XLA_00275_AAD_S_000015_PKG.EventClass_152');
81217 END EventClass_152;
81218 --
81219
81220 ---------------------------------------
81221 --
81222 -- PRIVATE PROCEDURE
81223 -- insert_sources_153
81224 --
81225 ----------------------------------------
81226 --
81227 PROCEDURE insert_sources_153(
81228 p_target_ledger_id IN NUMBER
81229 , p_language IN VARCHAR2
81230 , p_sla_ledger_id IN NUMBER
81231 , p_pad_start_date IN DATE
81232 , p_pad_end_date IN DATE
81233 )
81234 IS
81235
81236 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'INVENTORY_COST_ADJ_ALL';
81237 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INVENTORY_COST_ADJ';
81238 p_apps_owner VARCHAR2(30);
81239 l_log_module VARCHAR2(240);
81240 BEGIN
81241 IF g_log_enabled THEN
81242 l_log_module := C_DEFAULT_MODULE||'.insert_sources_153';
81243 END IF;
81244 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81245
81246 trace
81247 (p_msg => 'BEGIN of insert_sources_153'
81248 ,p_level => C_LEVEL_PROCEDURE
81249 ,p_module => l_log_module);
81250
81251 END IF;
81252
81253 -- select APPS owner
81254 SELECT oracle_username
81255 INTO p_apps_owner
81256 FROM fnd_oracle_userid
81257 WHERE read_only_flag = 'U'
81258 ;
81259
81260 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81261 trace
81262 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
81263 ' - p_language = '||p_language||
81264 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
81265 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
81266 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
81267 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
81268 ,p_level => C_LEVEL_STATEMENT
81269 ,p_module => l_log_module);
81270 END IF;
81271
81272
81273 --
81274 INSERT INTO xla_diag_sources --hdr2
81275 (
81276 event_id
81277 , ledger_id
81278 , sla_ledger_id
81279 , description_language
81280 , object_name
81281 , object_type_code
81282 , line_number
81283 , source_application_id
81284 , source_type_code
81285 , source_code
81286 , source_value
81287 , source_meaning
81288 , created_by
81289 , creation_date
81290 , last_update_date
81291 , last_updated_by
81292 , last_update_login
81293 , program_update_date
81294 , program_application_id
81295 , program_id
81296 , request_id
81297 )
81298 SELECT
81299 event_id
81300 , p_target_ledger_id
81301 , p_sla_ledger_id
81302 , p_language
81303 , object_name
81304 , object_type_code
81305 , line_number
81306 , source_application_id
81307 , source_type_code
81308 , source_code
81309 , SUBSTR(source_value ,1,1996)
81310 , SUBSTR(source_meaning ,1,200)
81311 , xla_environment_pkg.g_Usr_Id
81312 , TRUNC(SYSDATE)
81313 , TRUNC(SYSDATE)
81314 , xla_environment_pkg.g_Usr_Id
81315 , xla_environment_pkg.g_Login_Id
81316 , TRUNC(SYSDATE)
81317 , xla_environment_pkg.g_Prog_Appl_Id
81318 , xla_environment_pkg.g_Prog_Id
81319 , xla_environment_pkg.g_Req_Id
81320 FROM (
81321 SELECT xet.event_id event_id
81322 , 0 line_number
81323 , CASE r
81324 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
81325 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
81326
81327 ELSE null
81328 END object_name
81329 , CASE r
81330 WHEN 1 THEN 'HEADER'
81331 WHEN 2 THEN 'HEADER'
81332
81333 ELSE null
81334 END object_type_code
81335 , CASE r
81336 WHEN 1 THEN '275'
81337 WHEN 2 THEN '275'
81338
81339 ELSE null
81340 END source_application_id
81341 , 'S' source_type_code
81342 , CASE r
81343 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
81344 WHEN 2 THEN 'GL_DATE'
81345
81346 ELSE null
81347 END source_code
81348 , CASE r
81349 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
81350 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
81351
81352 ELSE null
81353 END source_value
81354 , null source_meaning
81355 FROM xla_events_gt xet
81356 , PA_XLA_EXP_HEADER_V h2
81357 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
81358 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
81359 AND xet.event_class_code = C_EVENT_CLASS_CODE
81360 AND h2.event_id = xet.event_id
81361
81362 )
81363 ;
81364 --
81365 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81366
81367 trace
81371
81368 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
81369 ,p_level => C_LEVEL_STATEMENT
81370 ,p_module => l_log_module);
81372 END IF;
81373 --
81374
81375
81376
81377 --
81378 INSERT INTO xla_diag_sources --line2
81379 (
81380 event_id
81381 , ledger_id
81382 , sla_ledger_id
81383 , description_language
81384 , object_name
81385 , object_type_code
81386 , line_number
81387 , source_application_id
81388 , source_type_code
81389 , source_code
81390 , source_value
81391 , source_meaning
81392 , created_by
81393 , creation_date
81394 , last_update_date
81395 , last_updated_by
81396 , last_update_login
81397 , program_update_date
81398 , program_application_id
81399 , program_id
81400 , request_id
81401 )
81402 SELECT event_id
81403 , p_target_ledger_id
81404 , p_sla_ledger_id
81405 , p_language
81406 , object_name
81407 , object_type_code
81408 , line_number
81409 , source_application_id
81410 , source_type_code
81411 , source_code
81412 , SUBSTR(source_value,1,1996)
81413 , SUBSTR(source_meaning ,1,200)
81414 , xla_environment_pkg.g_Usr_Id
81415 , TRUNC(SYSDATE)
81416 , TRUNC(SYSDATE)
81417 , xla_environment_pkg.g_Usr_Id
81418 , xla_environment_pkg.g_Login_Id
81419 , TRUNC(SYSDATE)
81420 , xla_environment_pkg.g_Prog_Appl_Id
81421 , xla_environment_pkg.g_Prog_Id
81422 , xla_environment_pkg.g_Req_Id
81423 FROM (
81424 SELECT xet.event_id event_id
81425 , l1.line_number line_number
81426 , CASE r
81427 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
81428 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
81429 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
81430 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
81431 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
81432 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
81433 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
81434 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
81435 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
81436 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
81437 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
81438 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
81439 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
81440 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
81441 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
81442 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
81443 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
81444 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
81445
81446 ELSE null
81447 END object_name
81448 , CASE r
81449 WHEN 1 THEN 'LINE'
81450 WHEN 2 THEN 'LINE'
81451 WHEN 3 THEN 'LINE'
81452 WHEN 4 THEN 'LINE'
81453 WHEN 5 THEN 'LINE'
81454 WHEN 6 THEN 'LINE'
81455 WHEN 7 THEN 'LINE'
81456 WHEN 8 THEN 'LINE'
81457 WHEN 9 THEN 'LINE'
81458 WHEN 10 THEN 'LINE'
81459 WHEN 11 THEN 'LINE'
81460 WHEN 12 THEN 'LINE'
81461 WHEN 13 THEN 'LINE'
81462 WHEN 14 THEN 'LINE'
81463 WHEN 15 THEN 'LINE'
81464 WHEN 16 THEN 'LINE'
81465 WHEN 17 THEN 'LINE'
81466 WHEN 18 THEN 'LINE'
81467
81468 ELSE null
81469 END object_type_code
81470 , CASE r
81471 WHEN 1 THEN '275'
81472 WHEN 2 THEN '275'
81473 WHEN 3 THEN '275'
81474 WHEN 4 THEN '275'
81475 WHEN 5 THEN '275'
81476 WHEN 6 THEN '275'
81477 WHEN 7 THEN '275'
81478 WHEN 8 THEN '275'
81479 WHEN 9 THEN '275'
81480 WHEN 10 THEN '275'
81481 WHEN 11 THEN '275'
81482 WHEN 12 THEN '275'
81483 WHEN 13 THEN '275'
81484 WHEN 14 THEN '275'
81485 WHEN 15 THEN '275'
81486 WHEN 16 THEN '275'
81487 WHEN 17 THEN '275'
81488 WHEN 18 THEN '275'
81489
81490 ELSE null
81491 END source_application_id
81492 , 'S' source_type_code
81493 , CASE r
81494 WHEN 1 THEN 'COST_CCID'
81495 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
81496 WHEN 3 THEN 'ADJ_COST_CCID'
81497 WHEN 4 THEN 'COST_CLEARING_CCID'
81498 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
81499 WHEN 6 THEN 'REVERSING_LINE_FLAG'
81500 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
81501 WHEN 8 THEN 'ENTERED_RAW_COST'
81502 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
81503 WHEN 10 THEN 'ACCT_RAW_COST'
81504 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
81505 WHEN 12 THEN 'EXCHANGE_RATE'
81506 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
81507 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
81508 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
81509 WHEN 16 THEN 'LINE_NUMBER'
81510 WHEN 17 THEN 'LINE_TYPE'
81511 WHEN 18 THEN 'LINE_NUM_REVERSED'
81515 , CASE r
81512
81513 ELSE null
81514 END source_code
81516 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
81517 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
81518 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
81519 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
81520 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
81521 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
81522 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
81523 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
81524 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
81525 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
81526 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
81527 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
81528 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
81529 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
81530 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
81531 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
81532 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
81533 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
81534
81535 ELSE null
81536 END source_value
81537 , CASE r
81538 WHEN 2 THEN XLA_00275_AAD_S_000015_PKG.GetMeaning(
81539 103371
81540 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
81541 ,'ALLOW_OVERRIDE_CCID_FLAG'
81542 ,'S'
81543 ,275)
81544 WHEN 17 THEN fvl35.meaning
81545
81546 ELSE null
81547 END source_meaning
81548 FROM xla_events_gt xet
81549 , PA_XLA_CDL_LINES_V l1
81550 , fnd_lookup_values fvl35
81551 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
81552 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
81553 AND xet.event_class_code = C_EVENT_CLASS_CODE
81554 AND l1.event_id = xet.event_id
81555 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
81556 AND fvl35.lookup_code(+) = l1.LINE_TYPE
81557 AND fvl35.view_application_id(+) = 275
81558 AND fvl35.language(+) = USERENV('LANG')
81559
81560 )
81561 ;
81562 --
81563 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81564
81565 trace
81566 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
81567 ,p_level => C_LEVEL_STATEMENT
81568 ,p_module => l_log_module);
81569
81570 END IF;
81571
81572
81573 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81574 trace
81575 (p_msg => 'END of insert_sources_153'
81576 ,p_level => C_LEVEL_PROCEDURE
81577 ,p_module => l_log_module);
81578 END IF;
81579 EXCEPTION
81580 WHEN xla_exceptions_pkg.application_exception THEN
81581 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
81582 trace
81583 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
81584 ,p_level => C_LEVEL_EXCEPTION
81585 ,p_module => l_log_module);
81586 END IF;
81587 RAISE;
81588 WHEN OTHERS THEN
81589 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
81590 trace
81591 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
81592 ,p_level => C_LEVEL_EXCEPTION
81593 ,p_module => l_log_module);
81594 END IF;
81595 xla_exceptions_pkg.raise_message
81596 (p_location => 'XLA_00275_AAD_S_000015_PKG.insert_sources_153');
81597 END insert_sources_153;
81598 --
81599
81600 ---------------------------------------
81601 --
81602 -- PRIVATE FUNCTION
81603 -- EventClass_153
81604 --
81605 ----------------------------------------
81606 --
81607 FUNCTION EventClass_153
81608 (p_application_id IN NUMBER
81609 ,p_base_ledger_id IN NUMBER
81610 ,p_target_ledger_id IN NUMBER
81611 ,p_language IN VARCHAR2
81612 ,p_currency_code IN VARCHAR2
81613 ,p_sla_ledger_id IN NUMBER
81614 ,p_pad_start_date IN DATE
81615 ,p_pad_end_date IN DATE
81616 ,p_primary_ledger_id IN NUMBER)
81617 RETURN BOOLEAN IS
81618 --
81619 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'INVENTORY_COST_ADJ_ALL';
81620 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INVENTORY_COST_ADJ';
81621
81622 l_calculate_acctd_flag VARCHAR2(1) :='N';
81623 l_calculate_g_l_flag VARCHAR2(1) :='N';
81624 --
81625 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
81626 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
81627 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
81628 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
81629 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
81630 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
81631 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
81632 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
81633 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
81634 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
81635 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
81636 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
81637 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
81641 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
81638 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
81639 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
81640 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
81642 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
81643 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
81644 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
81645 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
81646 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
81647 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
81648 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
81649
81650 l_event_id NUMBER;
81651 l_previous_event_id NUMBER;
81652 l_first_event_id NUMBER;
81653 l_last_event_id NUMBER;
81654
81655 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
81656 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
81657 --
81658 --
81659 l_result BOOLEAN := TRUE;
81660 l_rows NUMBER := 1000;
81661 l_event_type_name VARCHAR2(80) := 'All';
81662 l_event_class_name VARCHAR2(80) := 'Inventory Cost Adjustment';
81663 l_description VARCHAR2(4000);
81664 l_transaction_reversal NUMBER;
81665 l_ae_header_id NUMBER;
81666 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
81667 l_log_module VARCHAR2(240);
81668 --
81669 l_acct_reversal_source VARCHAR2(30);
81670 l_trx_reversal_source VARCHAR2(30);
81671
81672 l_continue_with_lines BOOLEAN := TRUE;
81673 --
81674 l_acc_rev_gl_date_source DATE; -- 4262811
81675 --
81676 type t_array_event_id is table of number index by binary_integer;
81677
81678 l_rec_array_event t_rec_array_event;
81679 l_null_rec_array_event t_rec_array_event;
81680 l_array_ae_header_id xla_number_array_type;
81681 l_actual_flag VARCHAR2(1) := NULL;
81682 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
81683 l_balance_type_code VARCHAR2(1) :=NULL;
81684 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
81685
81686 --
81687 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
81688 --
81689
81690 TYPE t_array_source_33 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
81691 TYPE t_array_source_75 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
81692
81693 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
81694 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
81695 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
81696 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
81697 TYPE t_array_source_8 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
81698 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
81699 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
81700 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
81701 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
81702 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
81703 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
81704 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
81705 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
81706 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
81707 TYPE t_array_source_32 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
81708 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
81709 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
81710 TYPE t_array_source_36 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
81711
81712 l_array_source_33 t_array_source_33;
81713 l_array_source_75 t_array_source_75;
81714
81715 l_array_source_4 t_array_source_4;
81716 l_array_source_5 t_array_source_5;
81717 l_array_source_6 t_array_source_6;
81718 l_array_source_7 t_array_source_7;
81719 l_array_source_8 t_array_source_8;
81720 l_array_source_23 t_array_source_23;
81721 l_array_source_24 t_array_source_24;
81722 l_array_source_25 t_array_source_25;
81723 l_array_source_26 t_array_source_26;
81724 l_array_source_27 t_array_source_27;
81725 l_array_source_28 t_array_source_28;
81726 l_array_source_29 t_array_source_29;
81727 l_array_source_30 t_array_source_30;
81728 l_array_source_31 t_array_source_31;
81729 l_array_source_32 t_array_source_32;
81730 l_array_source_34 t_array_source_34;
81731 l_array_source_35 t_array_source_35;
81732 l_array_source_35_meaning t_array_lookup_meaning;
81733 l_array_source_36 t_array_source_36;
81734
81735 --
81736 CURSOR header_cur
81737 IS
81738 SELECT /*+ leading(xet) cardinality(xet,1) */
81739 -- Event Class Code: INVENTORY_COST_ADJ
81740 xet.entity_id
81741 ,xet.legal_entity_id
81742 ,xet.entity_code
81743 ,xet.transaction_number
81747 ,xet.event_number
81744 ,xet.event_id
81745 ,xet.event_class_code
81746 ,xet.event_type_code
81748 ,xet.event_date
81749 ,xet.transaction_date
81750 ,xet.reference_num_1
81751 ,xet.reference_num_2
81752 ,xet.reference_num_3
81753 ,xet.reference_num_4
81754 ,xet.reference_char_1
81755 ,xet.reference_char_2
81756 ,xet.reference_char_3
81757 ,xet.reference_char_4
81758 ,xet.reference_date_1
81759 ,xet.reference_date_2
81760 ,xet.reference_date_3
81761 ,xet.reference_date_4
81762 ,xet.event_created_by
81763 ,xet.budgetary_control_flag
81764 , h2.EXPENDITURE_ITEM_ID source_33
81765 , h2.GL_DATE source_75
81766 FROM xla_events_gt xet
81767 , PA_XLA_EXP_HEADER_V h2
81768 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
81769 and xet.event_class_code = C_EVENT_CLASS_CODE
81770 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
81771
81772 ORDER BY event_id
81773 ;
81774
81775
81776 --
81777 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
81778 IS
81779 SELECT /*+ leading(xet) cardinality(xet,1) */
81780 -- Event Class Code: INVENTORY_COST_ADJ
81781 xet.entity_id
81782 ,xet.legal_entity_id
81783 ,xet.entity_code
81784 ,xet.transaction_number
81785 ,xet.event_id
81786 ,xet.event_class_code
81787 ,xet.event_type_code
81788 ,xet.event_number
81789 ,xet.event_date
81790 ,xet.transaction_date
81791 ,xet.reference_num_1
81792 ,xet.reference_num_2
81793 ,xet.reference_num_3
81794 ,xet.reference_num_4
81795 ,xet.reference_char_1
81796 ,xet.reference_char_2
81797 ,xet.reference_char_3
81798 ,xet.reference_char_4
81799 ,xet.reference_date_1
81800 ,xet.reference_date_2
81801 ,xet.reference_date_3
81802 ,xet.reference_date_4
81803 ,xet.event_created_by
81804 ,xet.budgetary_control_flag
81805 , l1.LINE_NUMBER
81806 , l1.COST_CCID source_4
81807 , l1.ALLOW_OVERRIDE_CCID_FLAG source_5
81808 , l1.ADJ_COST_CCID source_6
81809 , l1.COST_CLEARING_CCID source_7
81810 , l1.ADJ_COST_CLEARING_CCID source_8
81811 , l1.REVERSING_LINE_FLAG source_23
81812 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_24
81813 , l1.ENTERED_RAW_COST source_25
81814 , l1.ENTERED_CURRENCY_CODE source_26
81815 , l1.ACCT_RAW_COST source_27
81816 , l1.EXCHANGE_RATE_DATE source_28
81817 , l1.EXCHANGE_RATE source_29
81818 , l1.EXCHANGE_RATE_TYPE source_30
81819 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_31
81820 , l1.USE_ACT_UPG_ATTRIB_FLAG source_32
81821 , l1.LINE_NUMBER source_34
81822 , l1.LINE_TYPE source_35
81823 , fvl35.meaning source_35_meaning
81824 , l1.LINE_NUM_REVERSED source_36
81825 FROM xla_events_gt xet
81826 , PA_XLA_CDL_LINES_V l1
81827 , fnd_lookup_values fvl35
81828 WHERE xet.event_id between x_first_event_id and x_last_event_id
81829 and xet.event_date between p_pad_start_date and p_pad_end_date
81830 and xet.event_class_code = C_EVENT_CLASS_CODE
81831 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
81832 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
81833 AND fvl35.lookup_code(+) = l1.LINE_TYPE
81834 AND fvl35.view_application_id(+) = 275
81835 AND fvl35.language(+) = USERENV('LANG')
81836 ;
81837
81838 --
81839 BEGIN
81840 IF g_log_enabled THEN
81841 l_log_module := C_DEFAULT_MODULE||'.EventClass_153';
81842 END IF;
81843 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81844 trace
81845 (p_msg => 'BEGIN of EventClass_153'
81846 ,p_level => C_LEVEL_PROCEDURE
81847 ,p_module => l_log_module);
81848 END IF;
81849
81850 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81851 trace
81852 (p_msg => 'p_application_id = '||p_application_id||
81853 ' - p_base_ledger_id = '||p_base_ledger_id||
81854 ' - p_target_ledger_id = '||p_target_ledger_id||
81855 ' - p_language = '||p_language||
81856 ' - p_currency_code = '||p_currency_code||
81857 ' - p_sla_ledger_id = '||p_sla_ledger_id
81858 ,p_level => C_LEVEL_STATEMENT
81859 ,p_module => l_log_module);
81860 END IF;
81861 --
81862 -- initialze arrays
81863 --
81864 g_array_event.DELETE;
81865 l_rec_array_event := l_null_rec_array_event;
81866 --
81867 --------------------------------------
81868 -- 4262811 Initialze MPA Line Number
81869 --------------------------------------
81870 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
81871
81872 --
81873
81874 --
81875 OPEN header_cur;
81876 --
81877 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81878 trace
81879 (p_msg => 'SQL - FETCH header_cur'
81880 ,p_level => C_LEVEL_STATEMENT
81881 ,p_module => l_log_module);
81882 END IF;
81883 --
81884 LOOP
81885 FETCH header_cur BULK COLLECT INTO
81886 l_array_entity_id
81887 , l_array_legal_entity_id
81888 , l_array_entity_code
81889 , l_array_transaction_num
81890 , l_array_event_id
81891 , l_array_class_code
81892 , l_array_event_type
81893 , l_array_event_number
81894 , l_array_event_date
81895 , l_array_transaction_date
81896 , l_array_reference_num_1
81897 , l_array_reference_num_2
81898 , l_array_reference_num_3
81899 , l_array_reference_num_4
81900 , l_array_reference_char_1
81901 , l_array_reference_char_2
81902 , l_array_reference_char_3
81903 , l_array_reference_char_4
81907 , l_array_reference_date_4
81904 , l_array_reference_date_1
81905 , l_array_reference_date_2
81906 , l_array_reference_date_3
81908 , l_array_event_created_by
81909 , l_array_budgetary_control_flag
81910 , l_array_source_33
81911 , l_array_source_75
81912 LIMIT l_rows;
81913 --
81914 IF (C_LEVEL_EVENT >= g_log_level) THEN
81915 trace
81916 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
81917 ,p_level => C_LEVEL_EVENT
81918 ,p_module => l_log_module);
81919 END IF;
81920 --
81921 EXIT WHEN l_array_entity_id.COUNT = 0;
81922
81923 -- initialize arrays
81924 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
81925 XLA_AE_LINES_PKG.g_rec_lines := NULL;
81926
81927 --
81928 -- Bug 4458708
81929 --
81930 XLA_AE_LINES_PKG.g_LineNumber := 0;
81931
81932
81933 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
81934 g_last_hdr_idx := l_array_event_id.LAST;
81935 --
81936 -- loop for the headers. Each iteration is for each header extract row
81937 -- fetched in header cursor
81938 --
81939 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
81940
81941 --
81942 -- set event info as cache for other routines to refer event attributes
81943 --
81944 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
81945 (p_application_id => p_application_id
81946 ,p_primary_ledger_id => p_primary_ledger_id
81947 ,p_base_ledger_id => p_base_ledger_id
81948 ,p_target_ledger_id => p_target_ledger_id
81949 ,p_entity_id => l_array_entity_id(hdr_idx)
81950 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
81951 ,p_entity_code => l_array_entity_code(hdr_idx)
81952 ,p_transaction_num => l_array_transaction_num(hdr_idx)
81953 ,p_event_id => l_array_event_id(hdr_idx)
81954 ,p_event_class_code => l_array_class_code(hdr_idx)
81955 ,p_event_type_code => l_array_event_type(hdr_idx)
81956 ,p_event_number => l_array_event_number(hdr_idx)
81957 ,p_event_date => l_array_event_date(hdr_idx)
81958 ,p_transaction_date => l_array_transaction_date(hdr_idx)
81959 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
81960 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
81961 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
81962 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
81963 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
81964 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
81965 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
81966 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
81967 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
81968 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
81969 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
81970 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
81971 ,p_event_created_by => l_array_event_created_by(hdr_idx)
81972 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
81973
81974 --
81975 -- set the status of entry to C_VALID (0)
81976 --
81977 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
81978
81979 --
81980 -- initialize a row for ae header
81981 --
81982 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
81983
81984 l_event_id := l_array_event_id(hdr_idx);
81985
81986 --
81987 -- storing the hdr_idx for event. May be used by line cursor.
81988 --
81989 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
81990
81991 --
81992 -- store sources from header extract. This can be improved to
81993 -- store only those sources from header extract that may be used in lines
81994 --
81995
81996 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
81997 g_array_event(l_event_id).array_value_date('source_75') := l_array_source_75(hdr_idx);
81998
81999 --
82000 -- initilaize the status of ae headers for diffrent balance types
82001 -- the status is initialised to C_NOT_CREATED (2)
82002 --
82003 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
82004 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
82005 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
82006
82007 --
82008 -- call api to validate and store accounting attributes for header
82009 --
82010
82011 ------------------------------------------------------------
82012 -- Accrual Reversal : to get date for Standard Source (NONE)
82013 ------------------------------------------------------------
82014 l_acc_rev_gl_date_source := NULL;
82015
82016 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
82017 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_75');
82018
82019
82020 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
82021
82022 XLA_AE_HEADER_PKG.SetJeCategoryName;
82023
82024 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
82025 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
82026 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
82027 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
82028 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
82029
82030
82031 -- No header level analytical criteria
82032
82033 --
82037
82034 --accounting attribute enhancement, bug 3612931
82035 --
82036 l_trx_reversal_source := SUBSTR(NULL, 1,30);
82038 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
82039 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
82040
82041 xla_accounting_err_pkg.build_message
82042 (p_appli_s_name => 'XLA'
82043 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
82044 ,p_token_1 => 'ACCT_ATTR_NAME'
82045 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
82046 ,p_token_2 => 'PRODUCT_NAME'
82047 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
82048 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
82049 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
82050 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
82051
82052 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
82053 --
82054 -- following sets the accounting attributes needed to reverse
82055 -- accounting for a distributeion
82056 --
82057 xla_ae_lines_pkg.SetTrxReversalAttrs
82058 (p_event_id => l_event_id
82059 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
82060 ,p_trx_reversal_source => l_trx_reversal_source);
82061
82062 END IF;
82063
82064
82065 ----------------------------------------------------------------
82066 -- 4262811 - update the header statuses to invalid in need be
82067 ----------------------------------------------------------------
82068 --
82069 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
82070
82071
82072 -----------------------------------------------
82073 -- No accrual reversal for the event class/type
82074 -----------------------------------------------
82075 ----------------------------------------------------------------
82076
82077 --
82078 -- this ends the header loop iteration for one bulk fetch
82079 --
82080 END LOOP;
82081
82082 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
82083 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
82084
82085 --
82086 -- insert dummy rows into lines gt table that were created due to
82087 -- transaction reversals
82088 --
82089 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
82090 l_result := XLA_AE_LINES_PKG.InsertLines;
82091 END IF;
82092
82093 --
82094 -- reset the temp_line_num for each set of events fetched from header
82095 -- cursor rather than doing it for each new event in line cursor
82096 -- Bug 3939231
82097 --
82098 xla_ae_lines_pkg.g_temp_line_num := 0;
82099
82100
82101
82102 --
82103 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
82104 --
82105 --
82106 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82107
82108 trace
82109 (p_msg => 'SQL - FETCH line_cur'
82110 ,p_level => C_LEVEL_STATEMENT
82111 ,p_module => l_log_module);
82112
82113 END IF;
82114 --
82115 --
82116 LOOP
82117 --
82118 FETCH line_cur BULK COLLECT INTO
82119 l_array_entity_id
82120 , l_array_legal_entity_id
82121 , l_array_entity_code
82122 , l_array_transaction_num
82123 , l_array_event_id
82124 , l_array_class_code
82125 , l_array_event_type
82126 , l_array_event_number
82127 , l_array_event_date
82128 , l_array_transaction_date
82129 , l_array_reference_num_1
82130 , l_array_reference_num_2
82131 , l_array_reference_num_3
82132 , l_array_reference_num_4
82133 , l_array_reference_char_1
82134 , l_array_reference_char_2
82135 , l_array_reference_char_3
82136 , l_array_reference_char_4
82137 , l_array_reference_date_1
82138 , l_array_reference_date_2
82139 , l_array_reference_date_3
82140 , l_array_reference_date_4
82141 , l_array_event_created_by
82142 , l_array_budgetary_control_flag
82143 , l_array_extract_line_num
82144 , l_array_source_4
82145 , l_array_source_5
82146 , l_array_source_6
82147 , l_array_source_7
82148 , l_array_source_8
82149 , l_array_source_23
82150 , l_array_source_24
82151 , l_array_source_25
82152 , l_array_source_26
82153 , l_array_source_27
82154 , l_array_source_28
82155 , l_array_source_29
82156 , l_array_source_30
82157 , l_array_source_31
82158 , l_array_source_32
82159 , l_array_source_34
82160 , l_array_source_35
82161 , l_array_source_35_meaning
82162 , l_array_source_36
82163 LIMIT l_rows;
82164
82165 --
82166 IF (C_LEVEL_EVENT >= g_log_level) THEN
82167 trace
82168 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
82169 ,p_level => C_LEVEL_EVENT
82170 ,p_module => l_log_module);
82171 END IF;
82172 --
82173 EXIT WHEN l_array_entity_id.count = 0;
82174
82175 XLA_AE_LINES_PKG.g_rec_lines := null;
82176
82177 --
82178 -- Bug 4458708
82179 --
82180 XLA_AE_LINES_PKG.g_LineNumber := 0;
82181 --
82182 --
82183
82184 FOR Idx IN 1..l_array_event_id.count LOOP
82185 --
82186 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
82187 --
82188 l_event_id := l_array_event_id(idx); -- 5648433
82189
82190 --
82194 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
82191 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
82192 --
82193
82195 (g_array_event(l_event_id).array_value_num('header_index'))
82196 ,'N'
82197 ) <> 'Y'
82198 THEN
82199 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82200 trace
82201 (p_msg => 'Trancaction revesal option is not Y '
82202 ,p_level => C_LEVEL_STATEMENT
82203 ,p_module => l_log_module);
82204 END IF;
82205
82206 --
82207 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
82208 --
82209 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
82210 --
82211 -- set event info as cache for other routines to refer event attributes
82212 --
82213
82214 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
82215 l_previous_event_id := l_event_id;
82216
82217 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
82218 (p_application_id => p_application_id
82219 ,p_primary_ledger_id => p_primary_ledger_id
82220 ,p_base_ledger_id => p_base_ledger_id
82221 ,p_target_ledger_id => p_target_ledger_id
82222 ,p_entity_id => l_array_entity_id(Idx)
82223 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
82224 ,p_entity_code => l_array_entity_code(Idx)
82225 ,p_transaction_num => l_array_transaction_num(Idx)
82226 ,p_event_id => l_array_event_id(Idx)
82227 ,p_event_class_code => l_array_class_code(Idx)
82228 ,p_event_type_code => l_array_event_type(Idx)
82229 ,p_event_number => l_array_event_number(Idx)
82230 ,p_event_date => l_array_event_date(Idx)
82231 ,p_transaction_date => l_array_transaction_date(Idx)
82232 ,p_reference_num_1 => l_array_reference_num_1(Idx)
82233 ,p_reference_num_2 => l_array_reference_num_2(Idx)
82234 ,p_reference_num_3 => l_array_reference_num_3(Idx)
82235 ,p_reference_num_4 => l_array_reference_num_4(Idx)
82236 ,p_reference_char_1 => l_array_reference_char_1(Idx)
82237 ,p_reference_char_2 => l_array_reference_char_2(Idx)
82238 ,p_reference_char_3 => l_array_reference_char_3(Idx)
82239 ,p_reference_char_4 => l_array_reference_char_4(Idx)
82240 ,p_reference_date_1 => l_array_reference_date_1(Idx)
82241 ,p_reference_date_2 => l_array_reference_date_2(Idx)
82242 ,p_reference_date_3 => l_array_reference_date_3(Idx)
82243 ,p_reference_date_4 => l_array_reference_date_4(Idx)
82244 ,p_event_created_by => l_array_event_created_by(Idx)
82245 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
82246 --
82247 END IF;
82248
82249
82250
82251 --
82252 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
82253
82254 l_acct_reversal_source := SUBSTR(l_array_source_23(Idx), 1,30);
82255
82256 IF l_continue_with_lines THEN
82257 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
82258 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
82259
82260 xla_accounting_err_pkg.build_message
82261 (p_appli_s_name => 'XLA'
82262 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
82263 ,p_token_1 => 'LINE_NUMBER'
82264 ,p_value_1 => l_array_extract_line_num(Idx)
82265 ,p_token_2 => 'PRODUCT_NAME'
82266 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
82267 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
82268 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
82269 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
82270
82271 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
82272 --
82273 -- following sets the accounting attributes needed to reverse
82274 -- accounting for a distributeion
82275 --
82276
82277 --
82278 -- 5217187
82279 --
82280 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
82281 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
82282 g_array_event(l_event_id).array_value_num('header_index'));
82283 --
82284 --
82285
82286 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
82287 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_23(Idx);
82288 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
82289 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_24(Idx);
82290 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
82291 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_7(Idx));
82292 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
82293 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_25(Idx);
82294 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
82295 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_26(Idx);
82296 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
82297 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_27(Idx);
82298 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
82299 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_28(Idx);
82300 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
82301 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_29(Idx);
82305 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_31(Idx);
82302 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
82303 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_30(Idx);
82304 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
82306 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
82307 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_4(Idx));
82308 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
82309 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_25(Idx);
82310 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
82311 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_26(Idx);
82312 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
82313 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_27(Idx);
82314 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
82315 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_28(Idx);
82316 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
82317 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_29(Idx);
82318 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
82319 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_30(Idx);
82320 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
82321 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_32(Idx);
82322 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
82323 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_33');
82324 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
82325 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_34(Idx);
82326 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
82327 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_35(Idx);
82328 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
82329 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_33');
82330 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
82331 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_36(Idx);
82332 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
82333 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_35(Idx);
82334
82335
82336 xla_ae_lines_pkg.SetAcctReversalAttrs
82337 (p_event_id => l_event_id
82338 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
82339 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82340 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
82341 END IF;
82342
82343 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
82344 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
82345
82346 --
82347 AcctLineType_75 (
82348 p_application_id => p_application_id
82349 ,p_event_id => l_event_id
82350 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82351 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82352 ,p_actual_flag => l_actual_flag
82353 ,p_balance_type_code => l_balance_type_code
82354 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82355
82356 , p_source_4 => l_array_source_4(Idx)
82357 , p_source_5 => l_array_source_5(Idx)
82358 , p_source_6 => l_array_source_6(Idx)
82359 , p_source_7 => l_array_source_7(Idx)
82360 , p_source_23 => l_array_source_23(Idx)
82361 , p_source_24 => l_array_source_24(Idx)
82362 , p_source_25 => l_array_source_25(Idx)
82363 , p_source_26 => l_array_source_26(Idx)
82364 , p_source_27 => l_array_source_27(Idx)
82365 , p_source_28 => l_array_source_28(Idx)
82366 , p_source_29 => l_array_source_29(Idx)
82367 , p_source_30 => l_array_source_30(Idx)
82368 , p_source_31 => l_array_source_31(Idx)
82369 , p_source_32 => l_array_source_32(Idx)
82370 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
82371 , p_source_34 => l_array_source_34(Idx)
82372 , p_source_35 => l_array_source_35(Idx)
82373 , p_source_35_meaning => l_array_source_35_meaning(Idx)
82374 , p_source_36 => l_array_source_36(Idx)
82375 );
82376 If(l_balance_type_code = 'A') THEN
82377 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82378 END IF;
82379
82380 --
82381
82382
82383 --
82384 AcctLineType_79 (
82385 p_application_id => p_application_id
82386 ,p_event_id => l_event_id
82387 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82388 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82389 ,p_actual_flag => l_actual_flag
82390 ,p_balance_type_code => l_balance_type_code
82391 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82392
82393 , p_source_4 => l_array_source_4(Idx)
82394 , p_source_5 => l_array_source_5(Idx)
82395 , p_source_6 => l_array_source_6(Idx)
82396 , p_source_7 => l_array_source_7(Idx)
82397 , p_source_23 => l_array_source_23(Idx)
82398 , p_source_24 => l_array_source_24(Idx)
82399 , p_source_25 => l_array_source_25(Idx)
82400 , p_source_26 => l_array_source_26(Idx)
82401 , p_source_27 => l_array_source_27(Idx)
82402 , p_source_28 => l_array_source_28(Idx)
82403 , p_source_29 => l_array_source_29(Idx)
82404 , p_source_30 => l_array_source_30(Idx)
82405 , p_source_31 => l_array_source_31(Idx)
82406 , p_source_32 => l_array_source_32(Idx)
82407 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
82408 , p_source_34 => l_array_source_34(Idx)
82409 , p_source_35 => l_array_source_35(Idx)
82410 , p_source_35_meaning => l_array_source_35_meaning(Idx)
82411 , p_source_36 => l_array_source_36(Idx)
82412 );
82413 If(l_balance_type_code = 'A') THEN
82414 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82415 END IF;
82416
82420 --
82417 --
82418
82419
82421 AcctLineType_91 (
82422 p_application_id => p_application_id
82423 ,p_event_id => l_event_id
82424 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82425 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82426 ,p_actual_flag => l_actual_flag
82427 ,p_balance_type_code => l_balance_type_code
82428 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82429
82430 , p_source_4 => l_array_source_4(Idx)
82431 , p_source_5 => l_array_source_5(Idx)
82432 , p_source_7 => l_array_source_7(Idx)
82433 , p_source_8 => l_array_source_8(Idx)
82434 , p_source_23 => l_array_source_23(Idx)
82435 , p_source_24 => l_array_source_24(Idx)
82436 , p_source_25 => l_array_source_25(Idx)
82437 , p_source_26 => l_array_source_26(Idx)
82438 , p_source_27 => l_array_source_27(Idx)
82439 , p_source_28 => l_array_source_28(Idx)
82440 , p_source_29 => l_array_source_29(Idx)
82441 , p_source_30 => l_array_source_30(Idx)
82442 , p_source_31 => l_array_source_31(Idx)
82443 , p_source_32 => l_array_source_32(Idx)
82444 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
82445 , p_source_34 => l_array_source_34(Idx)
82446 , p_source_35 => l_array_source_35(Idx)
82447 , p_source_35_meaning => l_array_source_35_meaning(Idx)
82448 , p_source_36 => l_array_source_36(Idx)
82449 );
82450 If(l_balance_type_code = 'A') THEN
82451 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82452 END IF;
82453
82454 --
82455
82456
82457 --
82458 AcctLineType_98 (
82459 p_application_id => p_application_id
82460 ,p_event_id => l_event_id
82461 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82462 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82463 ,p_actual_flag => l_actual_flag
82464 ,p_balance_type_code => l_balance_type_code
82465 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82466
82467 , p_source_4 => l_array_source_4(Idx)
82468 , p_source_5 => l_array_source_5(Idx)
82469 , p_source_7 => l_array_source_7(Idx)
82470 , p_source_8 => l_array_source_8(Idx)
82471 , p_source_23 => l_array_source_23(Idx)
82472 , p_source_24 => l_array_source_24(Idx)
82473 , p_source_25 => l_array_source_25(Idx)
82474 , p_source_26 => l_array_source_26(Idx)
82475 , p_source_27 => l_array_source_27(Idx)
82476 , p_source_28 => l_array_source_28(Idx)
82477 , p_source_29 => l_array_source_29(Idx)
82478 , p_source_30 => l_array_source_30(Idx)
82479 , p_source_31 => l_array_source_31(Idx)
82480 , p_source_32 => l_array_source_32(Idx)
82481 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
82482 , p_source_34 => l_array_source_34(Idx)
82483 , p_source_35 => l_array_source_35(Idx)
82484 , p_source_35_meaning => l_array_source_35_meaning(Idx)
82485 , p_source_36 => l_array_source_36(Idx)
82486 );
82487 If(l_balance_type_code = 'A') THEN
82488 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82489 END IF;
82490
82491 --
82492
82493 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
82494 -- or secondary ledger that has different currency with primary
82495 -- or alc that is calculated by sla
82496 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
82497 (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'))
82498
82499 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
82500 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
82501 AND (l_actual_flag = 'A')) THEN
82502 XLA_AE_LINES_PKG.CreateGainOrLossLines(
82503 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
82504 ,p_application_id => p_application_id
82505 ,p_amb_context_code => 'DEFAULT'
82506 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
82507 ,p_event_class_code => C_EVENT_CLASS_CODE
82508 ,p_event_type_code => C_EVENT_TYPE_CODE
82509
82510 ,p_gain_ccid => -1
82511 ,p_loss_ccid => -1
82512
82513 ,p_actual_flag => l_actual_flag
82514 ,p_enc_flag => null
82515 ,p_actual_g_l_ref => l_actual_gain_loss_ref
82516 ,p_enc_g_l_ref => null
82517 );
82518 END IF;
82519 END IF;
82520 END IF;
82521
82522 ELSE
82523 --
82524 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
82525 --
82526 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82527 trace
82528 (p_msg => 'Trancaction revesal option is Y'
82529 ,p_level => C_LEVEL_STATEMENT
82530 ,p_module => l_log_module);
82531 END IF;
82532 END IF;
82533
82534 END LOOP;
82535 l_result := XLA_AE_LINES_PKG.InsertLines ;
82536 end loop;
82537 close line_cur;
82538
82539
82540 --
82541 -- insert headers into xla_ae_headers_gt table
82542 --
82543 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
82544
82545 -- insert into errors table here.
82546
82547 END LOOP;
82548
82549 --
82550 -- 4865292
82551 --
82552 -- Compare g_hdr_extract_count with event count in
82553 -- CreateHeadersAndLines.
82554 --
82555 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
82556
82557 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82558 trace (p_msg => '# rows extracted from header extract objects '
82559 || ' (running total): '
82560 || g_hdr_extract_count
82561 ,p_level => C_LEVEL_STATEMENT
82562 ,p_module => l_log_module);
82563 END IF;
82564
82568 --
82565 CLOSE header_cur;
82566 --
82567
82569 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82570 trace
82571 (p_msg => 'END of EventClass_153'
82572 ,p_level => C_LEVEL_PROCEDURE
82573 ,p_module => l_log_module);
82574 END IF;
82575 --
82576 RETURN l_result;
82577 EXCEPTION
82578 WHEN xla_exceptions_pkg.application_exception THEN
82579
82580 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
82581
82582
82583 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
82584
82585 RAISE;
82586 WHEN OTHERS THEN
82587 xla_exceptions_pkg.raise_message
82588 (p_location => 'XLA_00275_AAD_S_000015_PKG.EventClass_153');
82589 END EventClass_153;
82590 --
82591
82592 ---------------------------------------
82593 --
82594 -- PRIVATE PROCEDURE
82595 -- insert_sources_154
82596 --
82597 ----------------------------------------
82598 --
82599 PROCEDURE insert_sources_154(
82600 p_target_ledger_id IN NUMBER
82601 , p_language IN VARCHAR2
82602 , p_sla_ledger_id IN NUMBER
82603 , p_pad_start_date IN DATE
82604 , p_pad_end_date IN DATE
82605 )
82606 IS
82607
82608 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'INVENTORY_COST_ALL';
82609 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INVENTORY_COST';
82610 p_apps_owner VARCHAR2(30);
82611 l_log_module VARCHAR2(240);
82612 BEGIN
82613 IF g_log_enabled THEN
82614 l_log_module := C_DEFAULT_MODULE||'.insert_sources_154';
82615 END IF;
82616 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82617
82618 trace
82619 (p_msg => 'BEGIN of insert_sources_154'
82620 ,p_level => C_LEVEL_PROCEDURE
82621 ,p_module => l_log_module);
82622
82623 END IF;
82624
82625 -- select APPS owner
82626 SELECT oracle_username
82627 INTO p_apps_owner
82628 FROM fnd_oracle_userid
82629 WHERE read_only_flag = 'U'
82630 ;
82631
82632 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82633 trace
82634 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
82635 ' - p_language = '||p_language||
82636 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
82637 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
82638 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
82639 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
82640 ,p_level => C_LEVEL_STATEMENT
82641 ,p_module => l_log_module);
82642 END IF;
82643
82644
82645 --
82646 INSERT INTO xla_diag_sources --hdr2
82647 (
82648 event_id
82649 , ledger_id
82650 , sla_ledger_id
82651 , description_language
82652 , object_name
82653 , object_type_code
82654 , line_number
82655 , source_application_id
82656 , source_type_code
82657 , source_code
82658 , source_value
82659 , source_meaning
82660 , created_by
82661 , creation_date
82662 , last_update_date
82663 , last_updated_by
82664 , last_update_login
82665 , program_update_date
82666 , program_application_id
82667 , program_id
82668 , request_id
82669 )
82670 SELECT
82671 event_id
82672 , p_target_ledger_id
82673 , p_sla_ledger_id
82674 , p_language
82675 , object_name
82676 , object_type_code
82677 , line_number
82678 , source_application_id
82679 , source_type_code
82680 , source_code
82681 , SUBSTR(source_value ,1,1996)
82682 , SUBSTR(source_meaning ,1,200)
82683 , xla_environment_pkg.g_Usr_Id
82684 , TRUNC(SYSDATE)
82685 , TRUNC(SYSDATE)
82686 , xla_environment_pkg.g_Usr_Id
82687 , xla_environment_pkg.g_Login_Id
82688 , TRUNC(SYSDATE)
82689 , xla_environment_pkg.g_Prog_Appl_Id
82690 , xla_environment_pkg.g_Prog_Id
82691 , xla_environment_pkg.g_Req_Id
82692 FROM (
82693 SELECT xet.event_id event_id
82694 , 0 line_number
82695 , CASE r
82696 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
82697 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
82698
82699 ELSE null
82700 END object_name
82701 , CASE r
82702 WHEN 1 THEN 'HEADER'
82703 WHEN 2 THEN 'HEADER'
82704
82705 ELSE null
82706 END object_type_code
82707 , CASE r
82708 WHEN 1 THEN '275'
82709 WHEN 2 THEN '275'
82710
82711 ELSE null
82712 END source_application_id
82713 , 'S' source_type_code
82714 , CASE r
82715 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
82716 WHEN 2 THEN 'GL_DATE'
82717
82718 ELSE null
82719 END source_code
82720 , CASE r
82721 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
82722 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
82723
82724 ELSE null
82725 END source_value
82726 , null source_meaning
82730 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
82727 FROM xla_events_gt xet
82728 , PA_XLA_EXP_HEADER_V h2
82729 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
82731 AND xet.event_class_code = C_EVENT_CLASS_CODE
82732 AND h2.event_id = xet.event_id
82733
82734 )
82735 ;
82736 --
82737 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82738
82739 trace
82740 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
82741 ,p_level => C_LEVEL_STATEMENT
82742 ,p_module => l_log_module);
82743
82744 END IF;
82745 --
82746
82747
82748
82749 --
82750 INSERT INTO xla_diag_sources --line2
82751 (
82752 event_id
82753 , ledger_id
82754 , sla_ledger_id
82755 , description_language
82756 , object_name
82757 , object_type_code
82758 , line_number
82759 , source_application_id
82760 , source_type_code
82761 , source_code
82762 , source_value
82763 , source_meaning
82764 , created_by
82765 , creation_date
82766 , last_update_date
82767 , last_updated_by
82768 , last_update_login
82769 , program_update_date
82770 , program_application_id
82771 , program_id
82772 , request_id
82773 )
82774 SELECT event_id
82775 , p_target_ledger_id
82776 , p_sla_ledger_id
82777 , p_language
82778 , object_name
82779 , object_type_code
82780 , line_number
82781 , source_application_id
82782 , source_type_code
82783 , source_code
82784 , SUBSTR(source_value,1,1996)
82785 , SUBSTR(source_meaning ,1,200)
82786 , xla_environment_pkg.g_Usr_Id
82787 , TRUNC(SYSDATE)
82788 , TRUNC(SYSDATE)
82789 , xla_environment_pkg.g_Usr_Id
82790 , xla_environment_pkg.g_Login_Id
82791 , TRUNC(SYSDATE)
82792 , xla_environment_pkg.g_Prog_Appl_Id
82793 , xla_environment_pkg.g_Prog_Id
82794 , xla_environment_pkg.g_Req_Id
82795 FROM (
82796 SELECT xet.event_id event_id
82797 , l1.line_number line_number
82798 , CASE r
82799 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
82800 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
82801 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
82802 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
82803 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
82804 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
82805 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
82806 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
82807 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
82808 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
82809 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
82810 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
82811 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
82812 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
82813 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
82814 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
82815 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
82816 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
82817
82818 ELSE null
82819 END object_name
82820 , CASE r
82821 WHEN 1 THEN 'LINE'
82822 WHEN 2 THEN 'LINE'
82823 WHEN 3 THEN 'LINE'
82824 WHEN 4 THEN 'LINE'
82825 WHEN 5 THEN 'LINE'
82826 WHEN 6 THEN 'LINE'
82827 WHEN 7 THEN 'LINE'
82828 WHEN 8 THEN 'LINE'
82829 WHEN 9 THEN 'LINE'
82830 WHEN 10 THEN 'LINE'
82831 WHEN 11 THEN 'LINE'
82832 WHEN 12 THEN 'LINE'
82833 WHEN 13 THEN 'LINE'
82834 WHEN 14 THEN 'LINE'
82835 WHEN 15 THEN 'LINE'
82836 WHEN 16 THEN 'LINE'
82837 WHEN 17 THEN 'LINE'
82838 WHEN 18 THEN 'LINE'
82839
82840 ELSE null
82841 END object_type_code
82842 , CASE r
82843 WHEN 1 THEN '275'
82844 WHEN 2 THEN '275'
82845 WHEN 3 THEN '275'
82846 WHEN 4 THEN '275'
82847 WHEN 5 THEN '275'
82848 WHEN 6 THEN '275'
82849 WHEN 7 THEN '275'
82850 WHEN 8 THEN '275'
82851 WHEN 9 THEN '275'
82852 WHEN 10 THEN '275'
82853 WHEN 11 THEN '275'
82854 WHEN 12 THEN '275'
82855 WHEN 13 THEN '275'
82856 WHEN 14 THEN '275'
82857 WHEN 15 THEN '275'
82858 WHEN 16 THEN '275'
82859 WHEN 17 THEN '275'
82860 WHEN 18 THEN '275'
82861
82862 ELSE null
82863 END source_application_id
82864 , 'S' source_type_code
82865 , CASE r
82866 WHEN 1 THEN 'COST_CCID'
82867 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
82868 WHEN 3 THEN 'ADJ_COST_CCID'
82869 WHEN 4 THEN 'COST_CLEARING_CCID'
82870 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
82871 WHEN 6 THEN 'REVERSING_LINE_FLAG'
82872 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
82873 WHEN 8 THEN 'ENTERED_RAW_COST'
82874 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
82878 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
82875 WHEN 10 THEN 'ACCT_RAW_COST'
82876 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
82877 WHEN 12 THEN 'EXCHANGE_RATE'
82879 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
82880 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
82881 WHEN 16 THEN 'LINE_NUMBER'
82882 WHEN 17 THEN 'LINE_TYPE'
82883 WHEN 18 THEN 'LINE_NUM_REVERSED'
82884
82885 ELSE null
82886 END source_code
82887 , CASE r
82888 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
82889 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
82890 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
82891 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
82892 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
82893 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
82894 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
82895 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
82896 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
82897 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
82898 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
82899 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
82900 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
82901 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
82902 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
82903 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
82904 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
82905 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
82906
82907 ELSE null
82908 END source_value
82909 , CASE r
82910 WHEN 2 THEN XLA_00275_AAD_S_000015_PKG.GetMeaning(
82911 103371
82912 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
82913 ,'ALLOW_OVERRIDE_CCID_FLAG'
82914 ,'S'
82915 ,275)
82916 WHEN 17 THEN fvl35.meaning
82917
82918 ELSE null
82919 END source_meaning
82920 FROM xla_events_gt xet
82921 , PA_XLA_CDL_LINES_V l1
82922 , fnd_lookup_values fvl35
82923 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
82924 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
82925 AND xet.event_class_code = C_EVENT_CLASS_CODE
82926 AND l1.event_id = xet.event_id
82927 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
82928 AND fvl35.lookup_code(+) = l1.LINE_TYPE
82929 AND fvl35.view_application_id(+) = 275
82930 AND fvl35.language(+) = USERENV('LANG')
82931
82932 )
82933 ;
82934 --
82935 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82936
82937 trace
82938 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
82939 ,p_level => C_LEVEL_STATEMENT
82940 ,p_module => l_log_module);
82941
82942 END IF;
82943
82944
82945 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82946 trace
82947 (p_msg => 'END of insert_sources_154'
82948 ,p_level => C_LEVEL_PROCEDURE
82949 ,p_module => l_log_module);
82950 END IF;
82951 EXCEPTION
82952 WHEN xla_exceptions_pkg.application_exception THEN
82953 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
82954 trace
82955 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
82956 ,p_level => C_LEVEL_EXCEPTION
82957 ,p_module => l_log_module);
82958 END IF;
82959 RAISE;
82960 WHEN OTHERS THEN
82961 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
82962 trace
82963 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
82964 ,p_level => C_LEVEL_EXCEPTION
82965 ,p_module => l_log_module);
82966 END IF;
82967 xla_exceptions_pkg.raise_message
82968 (p_location => 'XLA_00275_AAD_S_000015_PKG.insert_sources_154');
82969 END insert_sources_154;
82970 --
82971
82972 ---------------------------------------
82973 --
82974 -- PRIVATE FUNCTION
82975 -- EventClass_154
82976 --
82977 ----------------------------------------
82978 --
82979 FUNCTION EventClass_154
82980 (p_application_id IN NUMBER
82981 ,p_base_ledger_id IN NUMBER
82982 ,p_target_ledger_id IN NUMBER
82983 ,p_language IN VARCHAR2
82984 ,p_currency_code IN VARCHAR2
82985 ,p_sla_ledger_id IN NUMBER
82986 ,p_pad_start_date IN DATE
82987 ,p_pad_end_date IN DATE
82988 ,p_primary_ledger_id IN NUMBER)
82989 RETURN BOOLEAN IS
82990 --
82991 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'INVENTORY_COST_ALL';
82992 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INVENTORY_COST';
82993
82994 l_calculate_acctd_flag VARCHAR2(1) :='N';
82995 l_calculate_g_l_flag VARCHAR2(1) :='N';
82996 --
82997 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
82998 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
82999 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
83000 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
83001 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83002 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
83006 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
83003 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
83004 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83005 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
83007 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83008 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83009 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83010 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83011 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
83012 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
83013 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
83014 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
83015 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
83016 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
83017 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
83018 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
83019 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
83020 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
83021
83022 l_event_id NUMBER;
83023 l_previous_event_id NUMBER;
83024 l_first_event_id NUMBER;
83025 l_last_event_id NUMBER;
83026
83027 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
83028 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
83029 --
83030 --
83031 l_result BOOLEAN := TRUE;
83032 l_rows NUMBER := 1000;
83033 l_event_type_name VARCHAR2(80) := 'All';
83034 l_event_class_name VARCHAR2(80) := 'Inventory Cost';
83035 l_description VARCHAR2(4000);
83036 l_transaction_reversal NUMBER;
83037 l_ae_header_id NUMBER;
83038 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
83039 l_log_module VARCHAR2(240);
83040 --
83041 l_acct_reversal_source VARCHAR2(30);
83042 l_trx_reversal_source VARCHAR2(30);
83043
83044 l_continue_with_lines BOOLEAN := TRUE;
83045 --
83046 l_acc_rev_gl_date_source DATE; -- 4262811
83047 --
83048 type t_array_event_id is table of number index by binary_integer;
83049
83050 l_rec_array_event t_rec_array_event;
83051 l_null_rec_array_event t_rec_array_event;
83052 l_array_ae_header_id xla_number_array_type;
83053 l_actual_flag VARCHAR2(1) := NULL;
83054 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
83055 l_balance_type_code VARCHAR2(1) :=NULL;
83056 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
83057
83058 --
83059 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
83060 --
83061
83062 TYPE t_array_source_33 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
83063 TYPE t_array_source_75 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
83064
83065 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
83066 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
83067 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
83068 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
83069 TYPE t_array_source_8 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
83070 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
83071 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
83072 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
83073 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
83074 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
83075 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
83076 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
83077 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
83078 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
83079 TYPE t_array_source_32 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
83080 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
83081 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
83082 TYPE t_array_source_36 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
83083
83084 l_array_source_33 t_array_source_33;
83085 l_array_source_75 t_array_source_75;
83086
83087 l_array_source_4 t_array_source_4;
83088 l_array_source_5 t_array_source_5;
83089 l_array_source_6 t_array_source_6;
83090 l_array_source_7 t_array_source_7;
83091 l_array_source_8 t_array_source_8;
83092 l_array_source_23 t_array_source_23;
83093 l_array_source_24 t_array_source_24;
83094 l_array_source_25 t_array_source_25;
83095 l_array_source_26 t_array_source_26;
83096 l_array_source_27 t_array_source_27;
83097 l_array_source_28 t_array_source_28;
83098 l_array_source_29 t_array_source_29;
83099 l_array_source_30 t_array_source_30;
83100 l_array_source_31 t_array_source_31;
83104 l_array_source_35_meaning t_array_lookup_meaning;
83101 l_array_source_32 t_array_source_32;
83102 l_array_source_34 t_array_source_34;
83103 l_array_source_35 t_array_source_35;
83105 l_array_source_36 t_array_source_36;
83106
83107 --
83108 CURSOR header_cur
83109 IS
83110 SELECT /*+ leading(xet) cardinality(xet,1) */
83111 -- Event Class Code: INVENTORY_COST
83112 xet.entity_id
83113 ,xet.legal_entity_id
83114 ,xet.entity_code
83115 ,xet.transaction_number
83116 ,xet.event_id
83117 ,xet.event_class_code
83118 ,xet.event_type_code
83119 ,xet.event_number
83120 ,xet.event_date
83121 ,xet.transaction_date
83122 ,xet.reference_num_1
83123 ,xet.reference_num_2
83124 ,xet.reference_num_3
83125 ,xet.reference_num_4
83126 ,xet.reference_char_1
83127 ,xet.reference_char_2
83128 ,xet.reference_char_3
83129 ,xet.reference_char_4
83130 ,xet.reference_date_1
83131 ,xet.reference_date_2
83132 ,xet.reference_date_3
83133 ,xet.reference_date_4
83134 ,xet.event_created_by
83135 ,xet.budgetary_control_flag
83136 , h2.EXPENDITURE_ITEM_ID source_33
83137 , h2.GL_DATE source_75
83138 FROM xla_events_gt xet
83139 , PA_XLA_EXP_HEADER_V h2
83140 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
83141 and xet.event_class_code = C_EVENT_CLASS_CODE
83142 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
83143
83144 ORDER BY event_id
83145 ;
83146
83147
83148 --
83149 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
83150 IS
83151 SELECT /*+ leading(xet) cardinality(xet,1) */
83152 -- Event Class Code: INVENTORY_COST
83153 xet.entity_id
83154 ,xet.legal_entity_id
83155 ,xet.entity_code
83156 ,xet.transaction_number
83157 ,xet.event_id
83158 ,xet.event_class_code
83159 ,xet.event_type_code
83160 ,xet.event_number
83161 ,xet.event_date
83162 ,xet.transaction_date
83163 ,xet.reference_num_1
83164 ,xet.reference_num_2
83165 ,xet.reference_num_3
83166 ,xet.reference_num_4
83167 ,xet.reference_char_1
83168 ,xet.reference_char_2
83169 ,xet.reference_char_3
83170 ,xet.reference_char_4
83171 ,xet.reference_date_1
83172 ,xet.reference_date_2
83173 ,xet.reference_date_3
83174 ,xet.reference_date_4
83175 ,xet.event_created_by
83176 ,xet.budgetary_control_flag
83177 , l1.LINE_NUMBER
83178 , l1.COST_CCID source_4
83179 , l1.ALLOW_OVERRIDE_CCID_FLAG source_5
83180 , l1.ADJ_COST_CCID source_6
83181 , l1.COST_CLEARING_CCID source_7
83182 , l1.ADJ_COST_CLEARING_CCID source_8
83183 , l1.REVERSING_LINE_FLAG source_23
83184 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_24
83185 , l1.ENTERED_RAW_COST source_25
83186 , l1.ENTERED_CURRENCY_CODE source_26
83187 , l1.ACCT_RAW_COST source_27
83188 , l1.EXCHANGE_RATE_DATE source_28
83189 , l1.EXCHANGE_RATE source_29
83190 , l1.EXCHANGE_RATE_TYPE source_30
83191 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_31
83192 , l1.USE_ACT_UPG_ATTRIB_FLAG source_32
83193 , l1.LINE_NUMBER source_34
83194 , l1.LINE_TYPE source_35
83195 , fvl35.meaning source_35_meaning
83196 , l1.LINE_NUM_REVERSED source_36
83197 FROM xla_events_gt xet
83198 , PA_XLA_CDL_LINES_V l1
83199 , fnd_lookup_values fvl35
83200 WHERE xet.event_id between x_first_event_id and x_last_event_id
83201 and xet.event_date between p_pad_start_date and p_pad_end_date
83202 and xet.event_class_code = C_EVENT_CLASS_CODE
83203 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
83204 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
83205 AND fvl35.lookup_code(+) = l1.LINE_TYPE
83206 AND fvl35.view_application_id(+) = 275
83207 AND fvl35.language(+) = USERENV('LANG')
83208 ;
83209
83210 --
83211 BEGIN
83212 IF g_log_enabled THEN
83213 l_log_module := C_DEFAULT_MODULE||'.EventClass_154';
83214 END IF;
83215 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83216 trace
83217 (p_msg => 'BEGIN of EventClass_154'
83218 ,p_level => C_LEVEL_PROCEDURE
83219 ,p_module => l_log_module);
83220 END IF;
83221
83222 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83223 trace
83224 (p_msg => 'p_application_id = '||p_application_id||
83225 ' - p_base_ledger_id = '||p_base_ledger_id||
83226 ' - p_target_ledger_id = '||p_target_ledger_id||
83227 ' - p_language = '||p_language||
83228 ' - p_currency_code = '||p_currency_code||
83229 ' - p_sla_ledger_id = '||p_sla_ledger_id
83230 ,p_level => C_LEVEL_STATEMENT
83231 ,p_module => l_log_module);
83232 END IF;
83233 --
83234 -- initialze arrays
83235 --
83236 g_array_event.DELETE;
83237 l_rec_array_event := l_null_rec_array_event;
83238 --
83239 --------------------------------------
83240 -- 4262811 Initialze MPA Line Number
83241 --------------------------------------
83242 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
83243
83244 --
83245
83246 --
83247 OPEN header_cur;
83248 --
83249 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83250 trace
83251 (p_msg => 'SQL - FETCH header_cur'
83252 ,p_level => C_LEVEL_STATEMENT
83253 ,p_module => l_log_module);
83254 END IF;
83255 --
83256 LOOP
83257 FETCH header_cur BULK COLLECT INTO
83258 l_array_entity_id
83259 , l_array_legal_entity_id
83260 , l_array_entity_code
83261 , l_array_transaction_num
83265 , l_array_event_number
83262 , l_array_event_id
83263 , l_array_class_code
83264 , l_array_event_type
83266 , l_array_event_date
83267 , l_array_transaction_date
83268 , l_array_reference_num_1
83269 , l_array_reference_num_2
83270 , l_array_reference_num_3
83271 , l_array_reference_num_4
83272 , l_array_reference_char_1
83273 , l_array_reference_char_2
83274 , l_array_reference_char_3
83275 , l_array_reference_char_4
83276 , l_array_reference_date_1
83277 , l_array_reference_date_2
83278 , l_array_reference_date_3
83279 , l_array_reference_date_4
83280 , l_array_event_created_by
83281 , l_array_budgetary_control_flag
83282 , l_array_source_33
83283 , l_array_source_75
83284 LIMIT l_rows;
83285 --
83286 IF (C_LEVEL_EVENT >= g_log_level) THEN
83287 trace
83288 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
83289 ,p_level => C_LEVEL_EVENT
83290 ,p_module => l_log_module);
83291 END IF;
83292 --
83293 EXIT WHEN l_array_entity_id.COUNT = 0;
83294
83295 -- initialize arrays
83296 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
83297 XLA_AE_LINES_PKG.g_rec_lines := NULL;
83298
83299 --
83300 -- Bug 4458708
83301 --
83302 XLA_AE_LINES_PKG.g_LineNumber := 0;
83303
83304
83305 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
83306 g_last_hdr_idx := l_array_event_id.LAST;
83307 --
83308 -- loop for the headers. Each iteration is for each header extract row
83309 -- fetched in header cursor
83310 --
83311 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
83312
83313 --
83314 -- set event info as cache for other routines to refer event attributes
83315 --
83316 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
83317 (p_application_id => p_application_id
83318 ,p_primary_ledger_id => p_primary_ledger_id
83319 ,p_base_ledger_id => p_base_ledger_id
83320 ,p_target_ledger_id => p_target_ledger_id
83321 ,p_entity_id => l_array_entity_id(hdr_idx)
83322 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
83323 ,p_entity_code => l_array_entity_code(hdr_idx)
83324 ,p_transaction_num => l_array_transaction_num(hdr_idx)
83325 ,p_event_id => l_array_event_id(hdr_idx)
83326 ,p_event_class_code => l_array_class_code(hdr_idx)
83327 ,p_event_type_code => l_array_event_type(hdr_idx)
83328 ,p_event_number => l_array_event_number(hdr_idx)
83329 ,p_event_date => l_array_event_date(hdr_idx)
83330 ,p_transaction_date => l_array_transaction_date(hdr_idx)
83331 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
83332 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
83333 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
83334 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
83335 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
83336 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
83337 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
83338 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
83339 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
83340 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
83341 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
83342 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
83343 ,p_event_created_by => l_array_event_created_by(hdr_idx)
83344 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
83345
83346 --
83347 -- set the status of entry to C_VALID (0)
83348 --
83349 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
83350
83351 --
83352 -- initialize a row for ae header
83353 --
83354 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
83355
83356 l_event_id := l_array_event_id(hdr_idx);
83357
83358 --
83359 -- storing the hdr_idx for event. May be used by line cursor.
83360 --
83361 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
83362
83363 --
83364 -- store sources from header extract. This can be improved to
83365 -- store only those sources from header extract that may be used in lines
83366 --
83367
83368 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
83369 g_array_event(l_event_id).array_value_date('source_75') := l_array_source_75(hdr_idx);
83370
83371 --
83372 -- initilaize the status of ae headers for diffrent balance types
83373 -- the status is initialised to C_NOT_CREATED (2)
83374 --
83375 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
83376 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
83377 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
83378
83379 --
83380 -- call api to validate and store accounting attributes for header
83381 --
83382
83383 ------------------------------------------------------------
83384 -- Accrual Reversal : to get date for Standard Source (NONE)
83385 ------------------------------------------------------------
83386 l_acc_rev_gl_date_source := NULL;
83387
83388 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
83389 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_75');
83390
83391
83392 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
83393
83394 XLA_AE_HEADER_PKG.SetJeCategoryName;
83395
83399 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
83396 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
83397 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
83398 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
83400 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
83401
83402
83403 -- No header level analytical criteria
83404
83405 --
83406 --accounting attribute enhancement, bug 3612931
83407 --
83408 l_trx_reversal_source := SUBSTR(NULL, 1,30);
83409
83410 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
83411 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
83412
83413 xla_accounting_err_pkg.build_message
83414 (p_appli_s_name => 'XLA'
83415 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
83416 ,p_token_1 => 'ACCT_ATTR_NAME'
83417 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
83418 ,p_token_2 => 'PRODUCT_NAME'
83419 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
83420 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
83421 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
83422 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
83423
83424 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
83425 --
83426 -- following sets the accounting attributes needed to reverse
83427 -- accounting for a distributeion
83428 --
83429 xla_ae_lines_pkg.SetTrxReversalAttrs
83430 (p_event_id => l_event_id
83431 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
83432 ,p_trx_reversal_source => l_trx_reversal_source);
83433
83434 END IF;
83435
83436
83437 ----------------------------------------------------------------
83438 -- 4262811 - update the header statuses to invalid in need be
83439 ----------------------------------------------------------------
83440 --
83441 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
83442
83443
83444 -----------------------------------------------
83445 -- No accrual reversal for the event class/type
83446 -----------------------------------------------
83447 ----------------------------------------------------------------
83448
83449 --
83450 -- this ends the header loop iteration for one bulk fetch
83451 --
83452 END LOOP;
83453
83454 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
83455 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
83456
83457 --
83458 -- insert dummy rows into lines gt table that were created due to
83459 -- transaction reversals
83460 --
83461 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
83462 l_result := XLA_AE_LINES_PKG.InsertLines;
83463 END IF;
83464
83465 --
83466 -- reset the temp_line_num for each set of events fetched from header
83467 -- cursor rather than doing it for each new event in line cursor
83468 -- Bug 3939231
83469 --
83470 xla_ae_lines_pkg.g_temp_line_num := 0;
83471
83472
83473
83474 --
83475 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
83476 --
83477 --
83478 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83479
83480 trace
83481 (p_msg => 'SQL - FETCH line_cur'
83482 ,p_level => C_LEVEL_STATEMENT
83483 ,p_module => l_log_module);
83484
83485 END IF;
83486 --
83487 --
83488 LOOP
83489 --
83490 FETCH line_cur BULK COLLECT INTO
83491 l_array_entity_id
83492 , l_array_legal_entity_id
83493 , l_array_entity_code
83494 , l_array_transaction_num
83495 , l_array_event_id
83496 , l_array_class_code
83497 , l_array_event_type
83498 , l_array_event_number
83499 , l_array_event_date
83500 , l_array_transaction_date
83501 , l_array_reference_num_1
83502 , l_array_reference_num_2
83503 , l_array_reference_num_3
83504 , l_array_reference_num_4
83505 , l_array_reference_char_1
83506 , l_array_reference_char_2
83507 , l_array_reference_char_3
83508 , l_array_reference_char_4
83509 , l_array_reference_date_1
83510 , l_array_reference_date_2
83511 , l_array_reference_date_3
83512 , l_array_reference_date_4
83513 , l_array_event_created_by
83514 , l_array_budgetary_control_flag
83515 , l_array_extract_line_num
83516 , l_array_source_4
83517 , l_array_source_5
83518 , l_array_source_6
83519 , l_array_source_7
83520 , l_array_source_8
83521 , l_array_source_23
83522 , l_array_source_24
83523 , l_array_source_25
83524 , l_array_source_26
83525 , l_array_source_27
83526 , l_array_source_28
83527 , l_array_source_29
83528 , l_array_source_30
83529 , l_array_source_31
83530 , l_array_source_32
83531 , l_array_source_34
83532 , l_array_source_35
83533 , l_array_source_35_meaning
83534 , l_array_source_36
83535 LIMIT l_rows;
83536
83537 --
83538 IF (C_LEVEL_EVENT >= g_log_level) THEN
83539 trace
83540 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
83541 ,p_level => C_LEVEL_EVENT
83542 ,p_module => l_log_module);
83543 END IF;
83547 XLA_AE_LINES_PKG.g_rec_lines := null;
83544 --
83545 EXIT WHEN l_array_entity_id.count = 0;
83546
83548
83549 --
83550 -- Bug 4458708
83551 --
83552 XLA_AE_LINES_PKG.g_LineNumber := 0;
83553 --
83554 --
83555
83556 FOR Idx IN 1..l_array_event_id.count LOOP
83557 --
83558 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
83559 --
83560 l_event_id := l_array_event_id(idx); -- 5648433
83561
83562 --
83563 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
83564 --
83565
83566 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
83567 (g_array_event(l_event_id).array_value_num('header_index'))
83568 ,'N'
83569 ) <> 'Y'
83570 THEN
83571 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83572 trace
83573 (p_msg => 'Trancaction revesal option is not Y '
83574 ,p_level => C_LEVEL_STATEMENT
83575 ,p_module => l_log_module);
83576 END IF;
83577
83578 --
83579 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
83580 --
83581 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
83582 --
83583 -- set event info as cache for other routines to refer event attributes
83584 --
83585
83586 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
83587 l_previous_event_id := l_event_id;
83588
83589 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
83590 (p_application_id => p_application_id
83591 ,p_primary_ledger_id => p_primary_ledger_id
83592 ,p_base_ledger_id => p_base_ledger_id
83593 ,p_target_ledger_id => p_target_ledger_id
83594 ,p_entity_id => l_array_entity_id(Idx)
83595 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
83596 ,p_entity_code => l_array_entity_code(Idx)
83597 ,p_transaction_num => l_array_transaction_num(Idx)
83598 ,p_event_id => l_array_event_id(Idx)
83599 ,p_event_class_code => l_array_class_code(Idx)
83600 ,p_event_type_code => l_array_event_type(Idx)
83601 ,p_event_number => l_array_event_number(Idx)
83602 ,p_event_date => l_array_event_date(Idx)
83603 ,p_transaction_date => l_array_transaction_date(Idx)
83604 ,p_reference_num_1 => l_array_reference_num_1(Idx)
83605 ,p_reference_num_2 => l_array_reference_num_2(Idx)
83606 ,p_reference_num_3 => l_array_reference_num_3(Idx)
83607 ,p_reference_num_4 => l_array_reference_num_4(Idx)
83608 ,p_reference_char_1 => l_array_reference_char_1(Idx)
83609 ,p_reference_char_2 => l_array_reference_char_2(Idx)
83610 ,p_reference_char_3 => l_array_reference_char_3(Idx)
83611 ,p_reference_char_4 => l_array_reference_char_4(Idx)
83612 ,p_reference_date_1 => l_array_reference_date_1(Idx)
83613 ,p_reference_date_2 => l_array_reference_date_2(Idx)
83614 ,p_reference_date_3 => l_array_reference_date_3(Idx)
83615 ,p_reference_date_4 => l_array_reference_date_4(Idx)
83616 ,p_event_created_by => l_array_event_created_by(Idx)
83617 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
83618 --
83619 END IF;
83620
83621
83622
83623 --
83624 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
83625
83626 l_acct_reversal_source := SUBSTR(l_array_source_23(Idx), 1,30);
83627
83628 IF l_continue_with_lines THEN
83629 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
83630 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
83631
83632 xla_accounting_err_pkg.build_message
83633 (p_appli_s_name => 'XLA'
83634 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
83635 ,p_token_1 => 'LINE_NUMBER'
83636 ,p_value_1 => l_array_extract_line_num(Idx)
83637 ,p_token_2 => 'PRODUCT_NAME'
83638 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
83639 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
83640 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
83641 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
83642
83643 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
83644 --
83645 -- following sets the accounting attributes needed to reverse
83646 -- accounting for a distributeion
83647 --
83648
83649 --
83650 -- 5217187
83651 --
83652 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
83653 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
83654 g_array_event(l_event_id).array_value_num('header_index'));
83655 --
83656 --
83657
83658 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
83659 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_23(Idx);
83660 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
83661 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_24(Idx);
83662 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
83663 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_7(Idx));
83664 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
83665 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_25(Idx);
83666 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
83670 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
83667 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_26(Idx);
83668 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
83669 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_27(Idx);
83671 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_28(Idx);
83672 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
83673 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_29(Idx);
83674 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
83675 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_30(Idx);
83676 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
83677 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_31(Idx);
83678 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
83679 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_4(Idx));
83680 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
83681 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_25(Idx);
83682 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
83683 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_26(Idx);
83684 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
83685 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_27(Idx);
83686 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
83687 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_28(Idx);
83688 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
83689 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_29(Idx);
83690 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
83691 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_30(Idx);
83692 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
83693 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_32(Idx);
83694 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
83695 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_33');
83696 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
83697 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_34(Idx);
83698 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
83699 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_35(Idx);
83700 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
83701 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_33');
83702 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
83703 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_36(Idx);
83704 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
83705 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_35(Idx);
83706
83707
83708 xla_ae_lines_pkg.SetAcctReversalAttrs
83709 (p_event_id => l_event_id
83710 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
83711 ,p_calculate_acctd_flag => l_calculate_acctd_flag
83712 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
83713 END IF;
83714
83715 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
83716 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
83717
83718 --
83719 AcctLineType_68 (
83720 p_application_id => p_application_id
83721 ,p_event_id => l_event_id
83722 ,p_calculate_acctd_flag => l_calculate_acctd_flag
83723 ,p_calculate_g_l_flag => l_calculate_g_l_flag
83724 ,p_actual_flag => l_actual_flag
83725 ,p_balance_type_code => l_balance_type_code
83726 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
83727
83728 , p_source_4 => l_array_source_4(Idx)
83729 , p_source_5 => l_array_source_5(Idx)
83730 , p_source_6 => l_array_source_6(Idx)
83731 , p_source_7 => l_array_source_7(Idx)
83732 , p_source_23 => l_array_source_23(Idx)
83733 , p_source_24 => l_array_source_24(Idx)
83734 , p_source_25 => l_array_source_25(Idx)
83735 , p_source_26 => l_array_source_26(Idx)
83736 , p_source_27 => l_array_source_27(Idx)
83737 , p_source_28 => l_array_source_28(Idx)
83738 , p_source_29 => l_array_source_29(Idx)
83739 , p_source_30 => l_array_source_30(Idx)
83740 , p_source_31 => l_array_source_31(Idx)
83741 , p_source_32 => l_array_source_32(Idx)
83742 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
83743 , p_source_34 => l_array_source_34(Idx)
83744 , p_source_35 => l_array_source_35(Idx)
83745 , p_source_35_meaning => l_array_source_35_meaning(Idx)
83746 , p_source_36 => l_array_source_36(Idx)
83747 );
83748 If(l_balance_type_code = 'A') THEN
83749 l_actual_gain_loss_ref := l_gain_or_loss_ref;
83750 END IF;
83751
83752 --
83753
83754
83755 --
83756 AcctLineType_89 (
83757 p_application_id => p_application_id
83758 ,p_event_id => l_event_id
83759 ,p_calculate_acctd_flag => l_calculate_acctd_flag
83760 ,p_calculate_g_l_flag => l_calculate_g_l_flag
83761 ,p_actual_flag => l_actual_flag
83762 ,p_balance_type_code => l_balance_type_code
83763 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
83764
83765 , p_source_4 => l_array_source_4(Idx)
83766 , p_source_5 => l_array_source_5(Idx)
83767 , p_source_7 => l_array_source_7(Idx)
83768 , p_source_8 => l_array_source_8(Idx)
83769 , p_source_23 => l_array_source_23(Idx)
83770 , p_source_24 => l_array_source_24(Idx)
83771 , p_source_25 => l_array_source_25(Idx)
83772 , p_source_26 => l_array_source_26(Idx)
83773 , p_source_27 => l_array_source_27(Idx)
83774 , p_source_28 => l_array_source_28(Idx)
83775 , p_source_29 => l_array_source_29(Idx)
83779 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
83776 , p_source_30 => l_array_source_30(Idx)
83777 , p_source_31 => l_array_source_31(Idx)
83778 , p_source_32 => l_array_source_32(Idx)
83780 , p_source_34 => l_array_source_34(Idx)
83781 , p_source_35 => l_array_source_35(Idx)
83782 , p_source_35_meaning => l_array_source_35_meaning(Idx)
83783 , p_source_36 => l_array_source_36(Idx)
83784 );
83785 If(l_balance_type_code = 'A') THEN
83786 l_actual_gain_loss_ref := l_gain_or_loss_ref;
83787 END IF;
83788
83789 --
83790
83791
83792 --
83793 AcctLineType_102 (
83794 p_application_id => p_application_id
83795 ,p_event_id => l_event_id
83796 ,p_calculate_acctd_flag => l_calculate_acctd_flag
83797 ,p_calculate_g_l_flag => l_calculate_g_l_flag
83798 ,p_actual_flag => l_actual_flag
83799 ,p_balance_type_code => l_balance_type_code
83800 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
83801
83802 , p_source_4 => l_array_source_4(Idx)
83803 , p_source_5 => l_array_source_5(Idx)
83804 , p_source_7 => l_array_source_7(Idx)
83805 , p_source_8 => l_array_source_8(Idx)
83806 , p_source_23 => l_array_source_23(Idx)
83807 , p_source_24 => l_array_source_24(Idx)
83808 , p_source_25 => l_array_source_25(Idx)
83809 , p_source_26 => l_array_source_26(Idx)
83810 , p_source_27 => l_array_source_27(Idx)
83811 , p_source_28 => l_array_source_28(Idx)
83812 , p_source_29 => l_array_source_29(Idx)
83813 , p_source_30 => l_array_source_30(Idx)
83814 , p_source_31 => l_array_source_31(Idx)
83815 , p_source_32 => l_array_source_32(Idx)
83816 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
83817 , p_source_34 => l_array_source_34(Idx)
83818 , p_source_35 => l_array_source_35(Idx)
83819 , p_source_35_meaning => l_array_source_35_meaning(Idx)
83820 , p_source_36 => l_array_source_36(Idx)
83821 );
83822 If(l_balance_type_code = 'A') THEN
83823 l_actual_gain_loss_ref := l_gain_or_loss_ref;
83824 END IF;
83825
83826 --
83827
83828
83829 --
83830 AcctLineType_109 (
83831 p_application_id => p_application_id
83832 ,p_event_id => l_event_id
83833 ,p_calculate_acctd_flag => l_calculate_acctd_flag
83834 ,p_calculate_g_l_flag => l_calculate_g_l_flag
83835 ,p_actual_flag => l_actual_flag
83836 ,p_balance_type_code => l_balance_type_code
83837 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
83838
83839 , p_source_4 => l_array_source_4(Idx)
83840 , p_source_5 => l_array_source_5(Idx)
83841 , p_source_6 => l_array_source_6(Idx)
83842 , p_source_7 => l_array_source_7(Idx)
83843 , p_source_23 => l_array_source_23(Idx)
83844 , p_source_24 => l_array_source_24(Idx)
83845 , p_source_25 => l_array_source_25(Idx)
83846 , p_source_26 => l_array_source_26(Idx)
83847 , p_source_27 => l_array_source_27(Idx)
83848 , p_source_28 => l_array_source_28(Idx)
83849 , p_source_29 => l_array_source_29(Idx)
83850 , p_source_30 => l_array_source_30(Idx)
83851 , p_source_31 => l_array_source_31(Idx)
83852 , p_source_32 => l_array_source_32(Idx)
83853 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
83854 , p_source_34 => l_array_source_34(Idx)
83855 , p_source_35 => l_array_source_35(Idx)
83856 , p_source_35_meaning => l_array_source_35_meaning(Idx)
83857 , p_source_36 => l_array_source_36(Idx)
83858 );
83859 If(l_balance_type_code = 'A') THEN
83860 l_actual_gain_loss_ref := l_gain_or_loss_ref;
83861 END IF;
83862
83863 --
83864
83865 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
83866 -- or secondary ledger that has different currency with primary
83867 -- or alc that is calculated by sla
83868 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
83869 (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'))
83870
83871 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
83872 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
83873 AND (l_actual_flag = 'A')) THEN
83874 XLA_AE_LINES_PKG.CreateGainOrLossLines(
83875 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
83876 ,p_application_id => p_application_id
83877 ,p_amb_context_code => 'DEFAULT'
83878 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
83879 ,p_event_class_code => C_EVENT_CLASS_CODE
83880 ,p_event_type_code => C_EVENT_TYPE_CODE
83881
83882 ,p_gain_ccid => -1
83883 ,p_loss_ccid => -1
83884
83885 ,p_actual_flag => l_actual_flag
83886 ,p_enc_flag => null
83887 ,p_actual_g_l_ref => l_actual_gain_loss_ref
83888 ,p_enc_g_l_ref => null
83889 );
83890 END IF;
83891 END IF;
83892 END IF;
83893
83894 ELSE
83895 --
83896 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
83897 --
83898 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83899 trace
83900 (p_msg => 'Trancaction revesal option is Y'
83901 ,p_level => C_LEVEL_STATEMENT
83902 ,p_module => l_log_module);
83903 END IF;
83904 END IF;
83905
83906 END LOOP;
83907 l_result := XLA_AE_LINES_PKG.InsertLines ;
83908 end loop;
83909 close line_cur;
83910
83911
83912 --
83913 -- insert headers into xla_ae_headers_gt table
83914 --
83915 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
83916
83917 -- insert into errors table here.
83918
83919 END LOOP;
83920
83921 --
83925 -- CreateHeadersAndLines.
83922 -- 4865292
83923 --
83924 -- Compare g_hdr_extract_count with event count in
83926 --
83927 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
83928
83929 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83930 trace (p_msg => '# rows extracted from header extract objects '
83931 || ' (running total): '
83932 || g_hdr_extract_count
83933 ,p_level => C_LEVEL_STATEMENT
83934 ,p_module => l_log_module);
83935 END IF;
83936
83937 CLOSE header_cur;
83938 --
83939
83940 --
83941 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83942 trace
83943 (p_msg => 'END of EventClass_154'
83944 ,p_level => C_LEVEL_PROCEDURE
83945 ,p_module => l_log_module);
83946 END IF;
83947 --
83948 RETURN l_result;
83949 EXCEPTION
83950 WHEN xla_exceptions_pkg.application_exception THEN
83951
83952 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
83953
83954
83955 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
83956
83957 RAISE;
83958 WHEN OTHERS THEN
83959 xla_exceptions_pkg.raise_message
83960 (p_location => 'XLA_00275_AAD_S_000015_PKG.EventClass_154');
83961 END EventClass_154;
83962 --
83963
83964 ---------------------------------------
83965 --
83966 -- PRIVATE PROCEDURE
83967 -- insert_sources_155
83968 --
83969 ----------------------------------------
83970 --
83971 PROCEDURE insert_sources_155(
83972 p_target_ledger_id IN NUMBER
83973 , p_language IN VARCHAR2
83974 , p_sla_ledger_id IN NUMBER
83975 , p_pad_start_date IN DATE
83976 , p_pad_end_date IN DATE
83977 )
83978 IS
83979
83980 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'LABOR_COST_ADJ_ALL';
83981 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'LABOR_COST_ADJ';
83982 p_apps_owner VARCHAR2(30);
83983 l_log_module VARCHAR2(240);
83984 BEGIN
83985 IF g_log_enabled THEN
83986 l_log_module := C_DEFAULT_MODULE||'.insert_sources_155';
83987 END IF;
83988 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83989
83990 trace
83991 (p_msg => 'BEGIN of insert_sources_155'
83992 ,p_level => C_LEVEL_PROCEDURE
83993 ,p_module => l_log_module);
83994
83995 END IF;
83996
83997 -- select APPS owner
83998 SELECT oracle_username
83999 INTO p_apps_owner
84000 FROM fnd_oracle_userid
84001 WHERE read_only_flag = 'U'
84002 ;
84003
84004 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
84005 trace
84006 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
84007 ' - p_language = '||p_language||
84008 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
84009 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
84010 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
84011 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
84012 ,p_level => C_LEVEL_STATEMENT
84013 ,p_module => l_log_module);
84014 END IF;
84015
84016
84017 --
84018 INSERT INTO xla_diag_sources --hdr2
84019 (
84020 event_id
84021 , ledger_id
84022 , sla_ledger_id
84023 , description_language
84024 , object_name
84025 , object_type_code
84026 , line_number
84027 , source_application_id
84028 , source_type_code
84029 , source_code
84030 , source_value
84031 , source_meaning
84032 , created_by
84033 , creation_date
84034 , last_update_date
84035 , last_updated_by
84036 , last_update_login
84037 , program_update_date
84038 , program_application_id
84039 , program_id
84040 , request_id
84041 )
84042 SELECT
84043 event_id
84044 , p_target_ledger_id
84045 , p_sla_ledger_id
84046 , p_language
84047 , object_name
84048 , object_type_code
84049 , line_number
84050 , source_application_id
84051 , source_type_code
84052 , source_code
84053 , SUBSTR(source_value ,1,1996)
84054 , SUBSTR(source_meaning ,1,200)
84055 , xla_environment_pkg.g_Usr_Id
84056 , TRUNC(SYSDATE)
84057 , TRUNC(SYSDATE)
84058 , xla_environment_pkg.g_Usr_Id
84059 , xla_environment_pkg.g_Login_Id
84060 , TRUNC(SYSDATE)
84061 , xla_environment_pkg.g_Prog_Appl_Id
84062 , xla_environment_pkg.g_Prog_Id
84063 , xla_environment_pkg.g_Req_Id
84064 FROM (
84065 SELECT xet.event_id event_id
84066 , 0 line_number
84067 , CASE r
84068 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
84069 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
84070
84071 ELSE null
84072 END object_name
84073 , CASE r
84074 WHEN 1 THEN 'HEADER'
84075 WHEN 2 THEN 'HEADER'
84076
84077 ELSE null
84078 END object_type_code
84079 , CASE r
84080 WHEN 1 THEN '275'
84081 WHEN 2 THEN '275'
84082
84083 ELSE null
84084 END source_application_id
84085 , 'S' source_type_code
84089
84086 , CASE r
84087 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
84088 WHEN 2 THEN 'GL_DATE'
84090 ELSE null
84091 END source_code
84092 , CASE r
84093 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
84094 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
84095
84096 ELSE null
84097 END source_value
84098 , null source_meaning
84099 FROM xla_events_gt xet
84100 , PA_XLA_EXP_HEADER_V h2
84101 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
84102 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
84103 AND xet.event_class_code = C_EVENT_CLASS_CODE
84104 AND h2.event_id = xet.event_id
84105
84106 )
84107 ;
84108 --
84109 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
84110
84111 trace
84112 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
84113 ,p_level => C_LEVEL_STATEMENT
84114 ,p_module => l_log_module);
84115
84116 END IF;
84117 --
84118
84119
84120
84121 --
84122 INSERT INTO xla_diag_sources --line2
84123 (
84124 event_id
84125 , ledger_id
84126 , sla_ledger_id
84127 , description_language
84128 , object_name
84129 , object_type_code
84130 , line_number
84131 , source_application_id
84132 , source_type_code
84133 , source_code
84134 , source_value
84135 , source_meaning
84136 , created_by
84137 , creation_date
84138 , last_update_date
84139 , last_updated_by
84140 , last_update_login
84141 , program_update_date
84142 , program_application_id
84143 , program_id
84144 , request_id
84145 )
84146 SELECT event_id
84147 , p_target_ledger_id
84148 , p_sla_ledger_id
84149 , p_language
84150 , object_name
84151 , object_type_code
84152 , line_number
84153 , source_application_id
84154 , source_type_code
84155 , source_code
84156 , SUBSTR(source_value,1,1996)
84157 , SUBSTR(source_meaning ,1,200)
84158 , xla_environment_pkg.g_Usr_Id
84159 , TRUNC(SYSDATE)
84160 , TRUNC(SYSDATE)
84161 , xla_environment_pkg.g_Usr_Id
84162 , xla_environment_pkg.g_Login_Id
84163 , TRUNC(SYSDATE)
84164 , xla_environment_pkg.g_Prog_Appl_Id
84165 , xla_environment_pkg.g_Prog_Id
84166 , xla_environment_pkg.g_Req_Id
84167 FROM (
84168 SELECT xet.event_id event_id
84169 , l1.line_number line_number
84170 , CASE r
84171 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
84172 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
84173 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
84174 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
84175 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
84176 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
84177 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
84178 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
84179 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
84180 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
84181 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
84182 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
84183 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
84184 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
84185 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
84186 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
84187 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
84188 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
84189
84190 ELSE null
84191 END object_name
84192 , CASE r
84193 WHEN 1 THEN 'LINE'
84194 WHEN 2 THEN 'LINE'
84195 WHEN 3 THEN 'LINE'
84196 WHEN 4 THEN 'LINE'
84197 WHEN 5 THEN 'LINE'
84198 WHEN 6 THEN 'LINE'
84199 WHEN 7 THEN 'LINE'
84200 WHEN 8 THEN 'LINE'
84201 WHEN 9 THEN 'LINE'
84202 WHEN 10 THEN 'LINE'
84203 WHEN 11 THEN 'LINE'
84204 WHEN 12 THEN 'LINE'
84205 WHEN 13 THEN 'LINE'
84206 WHEN 14 THEN 'LINE'
84207 WHEN 15 THEN 'LINE'
84208 WHEN 16 THEN 'LINE'
84209 WHEN 17 THEN 'LINE'
84210 WHEN 18 THEN 'LINE'
84211
84212 ELSE null
84213 END object_type_code
84214 , CASE r
84215 WHEN 1 THEN '275'
84216 WHEN 2 THEN '275'
84217 WHEN 3 THEN '275'
84218 WHEN 4 THEN '275'
84219 WHEN 5 THEN '275'
84220 WHEN 6 THEN '275'
84221 WHEN 7 THEN '275'
84222 WHEN 8 THEN '275'
84223 WHEN 9 THEN '275'
84224 WHEN 10 THEN '275'
84225 WHEN 11 THEN '275'
84226 WHEN 12 THEN '275'
84227 WHEN 13 THEN '275'
84228 WHEN 14 THEN '275'
84229 WHEN 15 THEN '275'
84230 WHEN 16 THEN '275'
84231 WHEN 17 THEN '275'
84232 WHEN 18 THEN '275'
84233
84234 ELSE null
84235 END source_application_id
84239 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
84236 , 'S' source_type_code
84237 , CASE r
84238 WHEN 1 THEN 'COST_CCID'
84240 WHEN 3 THEN 'ADJ_COST_CCID'
84241 WHEN 4 THEN 'COST_CLEARING_CCID'
84242 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
84243 WHEN 6 THEN 'REVERSING_LINE_FLAG'
84244 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
84245 WHEN 8 THEN 'ENTERED_RAW_COST'
84246 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
84247 WHEN 10 THEN 'ACCT_RAW_COST'
84248 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
84249 WHEN 12 THEN 'EXCHANGE_RATE'
84250 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
84251 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
84252 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
84253 WHEN 16 THEN 'LINE_NUMBER'
84254 WHEN 17 THEN 'LINE_TYPE'
84255 WHEN 18 THEN 'LINE_NUM_REVERSED'
84256
84257 ELSE null
84258 END source_code
84259 , CASE r
84260 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
84261 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
84262 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
84263 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
84264 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
84265 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
84266 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
84267 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
84268 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
84269 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
84270 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
84271 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
84272 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
84273 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
84274 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
84275 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
84276 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
84277 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
84278
84279 ELSE null
84280 END source_value
84281 , CASE r
84282 WHEN 2 THEN XLA_00275_AAD_S_000015_PKG.GetMeaning(
84283 103371
84284 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
84285 ,'ALLOW_OVERRIDE_CCID_FLAG'
84286 ,'S'
84287 ,275)
84288 WHEN 17 THEN fvl35.meaning
84289
84290 ELSE null
84291 END source_meaning
84292 FROM xla_events_gt xet
84293 , PA_XLA_CDL_LINES_V l1
84294 , fnd_lookup_values fvl35
84295 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
84296 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
84297 AND xet.event_class_code = C_EVENT_CLASS_CODE
84298 AND l1.event_id = xet.event_id
84299 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
84300 AND fvl35.lookup_code(+) = l1.LINE_TYPE
84301 AND fvl35.view_application_id(+) = 275
84302 AND fvl35.language(+) = USERENV('LANG')
84303
84304 )
84305 ;
84306 --
84307 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
84308
84309 trace
84310 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
84311 ,p_level => C_LEVEL_STATEMENT
84312 ,p_module => l_log_module);
84313
84314 END IF;
84315
84316
84317 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84318 trace
84319 (p_msg => 'END of insert_sources_155'
84320 ,p_level => C_LEVEL_PROCEDURE
84321 ,p_module => l_log_module);
84322 END IF;
84323 EXCEPTION
84324 WHEN xla_exceptions_pkg.application_exception THEN
84325 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
84326 trace
84327 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
84328 ,p_level => C_LEVEL_EXCEPTION
84329 ,p_module => l_log_module);
84330 END IF;
84331 RAISE;
84332 WHEN OTHERS THEN
84333 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
84334 trace
84335 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
84336 ,p_level => C_LEVEL_EXCEPTION
84337 ,p_module => l_log_module);
84338 END IF;
84339 xla_exceptions_pkg.raise_message
84340 (p_location => 'XLA_00275_AAD_S_000015_PKG.insert_sources_155');
84341 END insert_sources_155;
84342 --
84343
84344 ---------------------------------------
84345 --
84346 -- PRIVATE FUNCTION
84347 -- EventClass_155
84348 --
84349 ----------------------------------------
84350 --
84351 FUNCTION EventClass_155
84352 (p_application_id IN NUMBER
84353 ,p_base_ledger_id IN NUMBER
84354 ,p_target_ledger_id IN NUMBER
84355 ,p_language IN VARCHAR2
84356 ,p_currency_code IN VARCHAR2
84357 ,p_sla_ledger_id IN NUMBER
84358 ,p_pad_start_date IN DATE
84359 ,p_pad_end_date IN DATE
84360 ,p_primary_ledger_id IN NUMBER)
84361 RETURN BOOLEAN IS
84362 --
84363 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'LABOR_COST_ADJ_ALL';
84364 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'LABOR_COST_ADJ';
84365
84366 l_calculate_acctd_flag VARCHAR2(1) :='N';
84370 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
84367 l_calculate_g_l_flag VARCHAR2(1) :='N';
84368 --
84369 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
84371 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
84372 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
84373 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
84374 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
84375 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
84376 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
84377 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
84378 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
84379 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
84380 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
84381 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
84382 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
84383 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
84384 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
84385 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
84386 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
84387 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
84388 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
84389 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
84390 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
84391 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
84392 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
84393
84394 l_event_id NUMBER;
84395 l_previous_event_id NUMBER;
84396 l_first_event_id NUMBER;
84397 l_last_event_id NUMBER;
84398
84399 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
84400 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
84401 --
84402 --
84403 l_result BOOLEAN := TRUE;
84404 l_rows NUMBER := 1000;
84405 l_event_type_name VARCHAR2(80) := 'All';
84406 l_event_class_name VARCHAR2(80) := 'Labor Cost Adjustment';
84407 l_description VARCHAR2(4000);
84408 l_transaction_reversal NUMBER;
84409 l_ae_header_id NUMBER;
84410 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
84411 l_log_module VARCHAR2(240);
84412 --
84413 l_acct_reversal_source VARCHAR2(30);
84414 l_trx_reversal_source VARCHAR2(30);
84415
84416 l_continue_with_lines BOOLEAN := TRUE;
84417 --
84418 l_acc_rev_gl_date_source DATE; -- 4262811
84419 --
84420 type t_array_event_id is table of number index by binary_integer;
84421
84422 l_rec_array_event t_rec_array_event;
84423 l_null_rec_array_event t_rec_array_event;
84424 l_array_ae_header_id xla_number_array_type;
84425 l_actual_flag VARCHAR2(1) := NULL;
84426 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
84427 l_balance_type_code VARCHAR2(1) :=NULL;
84428 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
84429
84430 --
84431 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
84432 --
84433
84434 TYPE t_array_source_33 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
84435 TYPE t_array_source_75 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
84436
84437 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
84438 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
84439 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
84440 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
84441 TYPE t_array_source_8 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
84442 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
84443 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
84444 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
84445 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
84446 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
84447 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
84448 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
84449 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
84450 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
84451 TYPE t_array_source_32 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
84452 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
84453 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
84454 TYPE t_array_source_36 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
84455
84456 l_array_source_33 t_array_source_33;
84457 l_array_source_75 t_array_source_75;
84458
84459 l_array_source_4 t_array_source_4;
84460 l_array_source_5 t_array_source_5;
84461 l_array_source_6 t_array_source_6;
84465 l_array_source_24 t_array_source_24;
84462 l_array_source_7 t_array_source_7;
84463 l_array_source_8 t_array_source_8;
84464 l_array_source_23 t_array_source_23;
84466 l_array_source_25 t_array_source_25;
84467 l_array_source_26 t_array_source_26;
84468 l_array_source_27 t_array_source_27;
84469 l_array_source_28 t_array_source_28;
84470 l_array_source_29 t_array_source_29;
84471 l_array_source_30 t_array_source_30;
84472 l_array_source_31 t_array_source_31;
84473 l_array_source_32 t_array_source_32;
84474 l_array_source_34 t_array_source_34;
84475 l_array_source_35 t_array_source_35;
84476 l_array_source_35_meaning t_array_lookup_meaning;
84477 l_array_source_36 t_array_source_36;
84478
84479 --
84480 CURSOR header_cur
84481 IS
84482 SELECT /*+ leading(xet) cardinality(xet,1) */
84483 -- Event Class Code: LABOR_COST_ADJ
84484 xet.entity_id
84485 ,xet.legal_entity_id
84486 ,xet.entity_code
84487 ,xet.transaction_number
84488 ,xet.event_id
84489 ,xet.event_class_code
84490 ,xet.event_type_code
84491 ,xet.event_number
84492 ,xet.event_date
84493 ,xet.transaction_date
84494 ,xet.reference_num_1
84495 ,xet.reference_num_2
84496 ,xet.reference_num_3
84497 ,xet.reference_num_4
84498 ,xet.reference_char_1
84499 ,xet.reference_char_2
84500 ,xet.reference_char_3
84501 ,xet.reference_char_4
84502 ,xet.reference_date_1
84503 ,xet.reference_date_2
84504 ,xet.reference_date_3
84505 ,xet.reference_date_4
84506 ,xet.event_created_by
84507 ,xet.budgetary_control_flag
84508 , h2.EXPENDITURE_ITEM_ID source_33
84509 , h2.GL_DATE source_75
84510 FROM xla_events_gt xet
84511 , PA_XLA_EXP_HEADER_V h2
84512 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
84513 and xet.event_class_code = C_EVENT_CLASS_CODE
84514 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
84515
84516 ORDER BY event_id
84517 ;
84518
84519
84520 --
84521 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
84522 IS
84523 SELECT /*+ leading(xet) cardinality(xet,1) */
84524 -- Event Class Code: LABOR_COST_ADJ
84525 xet.entity_id
84526 ,xet.legal_entity_id
84527 ,xet.entity_code
84528 ,xet.transaction_number
84529 ,xet.event_id
84530 ,xet.event_class_code
84531 ,xet.event_type_code
84532 ,xet.event_number
84533 ,xet.event_date
84534 ,xet.transaction_date
84535 ,xet.reference_num_1
84536 ,xet.reference_num_2
84537 ,xet.reference_num_3
84538 ,xet.reference_num_4
84539 ,xet.reference_char_1
84540 ,xet.reference_char_2
84541 ,xet.reference_char_3
84542 ,xet.reference_char_4
84543 ,xet.reference_date_1
84544 ,xet.reference_date_2
84545 ,xet.reference_date_3
84546 ,xet.reference_date_4
84547 ,xet.event_created_by
84548 ,xet.budgetary_control_flag
84549 , l1.LINE_NUMBER
84550 , l1.COST_CCID source_4
84551 , l1.ALLOW_OVERRIDE_CCID_FLAG source_5
84552 , l1.ADJ_COST_CCID source_6
84553 , l1.COST_CLEARING_CCID source_7
84554 , l1.ADJ_COST_CLEARING_CCID source_8
84555 , l1.REVERSING_LINE_FLAG source_23
84556 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_24
84557 , l1.ENTERED_RAW_COST source_25
84558 , l1.ENTERED_CURRENCY_CODE source_26
84559 , l1.ACCT_RAW_COST source_27
84560 , l1.EXCHANGE_RATE_DATE source_28
84561 , l1.EXCHANGE_RATE source_29
84562 , l1.EXCHANGE_RATE_TYPE source_30
84563 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_31
84564 , l1.USE_ACT_UPG_ATTRIB_FLAG source_32
84565 , l1.LINE_NUMBER source_34
84566 , l1.LINE_TYPE source_35
84567 , fvl35.meaning source_35_meaning
84568 , l1.LINE_NUM_REVERSED source_36
84569 FROM xla_events_gt xet
84570 , PA_XLA_CDL_LINES_V l1
84571 , fnd_lookup_values fvl35
84572 WHERE xet.event_id between x_first_event_id and x_last_event_id
84573 and xet.event_date between p_pad_start_date and p_pad_end_date
84574 and xet.event_class_code = C_EVENT_CLASS_CODE
84575 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
84576 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
84577 AND fvl35.lookup_code(+) = l1.LINE_TYPE
84578 AND fvl35.view_application_id(+) = 275
84579 AND fvl35.language(+) = USERENV('LANG')
84580 ;
84581
84582 --
84583 BEGIN
84584 IF g_log_enabled THEN
84585 l_log_module := C_DEFAULT_MODULE||'.EventClass_155';
84586 END IF;
84587 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84588 trace
84589 (p_msg => 'BEGIN of EventClass_155'
84590 ,p_level => C_LEVEL_PROCEDURE
84591 ,p_module => l_log_module);
84592 END IF;
84593
84594 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
84595 trace
84596 (p_msg => 'p_application_id = '||p_application_id||
84597 ' - p_base_ledger_id = '||p_base_ledger_id||
84598 ' - p_target_ledger_id = '||p_target_ledger_id||
84599 ' - p_language = '||p_language||
84600 ' - p_currency_code = '||p_currency_code||
84601 ' - p_sla_ledger_id = '||p_sla_ledger_id
84602 ,p_level => C_LEVEL_STATEMENT
84603 ,p_module => l_log_module);
84604 END IF;
84605 --
84606 -- initialze arrays
84607 --
84608 g_array_event.DELETE;
84609 l_rec_array_event := l_null_rec_array_event;
84610 --
84611 --------------------------------------
84612 -- 4262811 Initialze MPA Line Number
84613 --------------------------------------
84614 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
84615
84616 --
84617
84621 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
84618 --
84619 OPEN header_cur;
84620 --
84622 trace
84623 (p_msg => 'SQL - FETCH header_cur'
84624 ,p_level => C_LEVEL_STATEMENT
84625 ,p_module => l_log_module);
84626 END IF;
84627 --
84628 LOOP
84629 FETCH header_cur BULK COLLECT INTO
84630 l_array_entity_id
84631 , l_array_legal_entity_id
84632 , l_array_entity_code
84633 , l_array_transaction_num
84634 , l_array_event_id
84635 , l_array_class_code
84636 , l_array_event_type
84637 , l_array_event_number
84638 , l_array_event_date
84639 , l_array_transaction_date
84640 , l_array_reference_num_1
84641 , l_array_reference_num_2
84642 , l_array_reference_num_3
84643 , l_array_reference_num_4
84644 , l_array_reference_char_1
84645 , l_array_reference_char_2
84646 , l_array_reference_char_3
84647 , l_array_reference_char_4
84648 , l_array_reference_date_1
84649 , l_array_reference_date_2
84650 , l_array_reference_date_3
84651 , l_array_reference_date_4
84652 , l_array_event_created_by
84653 , l_array_budgetary_control_flag
84654 , l_array_source_33
84655 , l_array_source_75
84656 LIMIT l_rows;
84657 --
84658 IF (C_LEVEL_EVENT >= g_log_level) THEN
84659 trace
84660 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
84661 ,p_level => C_LEVEL_EVENT
84662 ,p_module => l_log_module);
84663 END IF;
84664 --
84665 EXIT WHEN l_array_entity_id.COUNT = 0;
84666
84667 -- initialize arrays
84668 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
84669 XLA_AE_LINES_PKG.g_rec_lines := NULL;
84670
84671 --
84672 -- Bug 4458708
84673 --
84674 XLA_AE_LINES_PKG.g_LineNumber := 0;
84675
84676
84677 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
84678 g_last_hdr_idx := l_array_event_id.LAST;
84679 --
84680 -- loop for the headers. Each iteration is for each header extract row
84681 -- fetched in header cursor
84682 --
84683 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
84684
84685 --
84686 -- set event info as cache for other routines to refer event attributes
84687 --
84688 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
84689 (p_application_id => p_application_id
84690 ,p_primary_ledger_id => p_primary_ledger_id
84691 ,p_base_ledger_id => p_base_ledger_id
84692 ,p_target_ledger_id => p_target_ledger_id
84693 ,p_entity_id => l_array_entity_id(hdr_idx)
84694 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
84695 ,p_entity_code => l_array_entity_code(hdr_idx)
84696 ,p_transaction_num => l_array_transaction_num(hdr_idx)
84697 ,p_event_id => l_array_event_id(hdr_idx)
84698 ,p_event_class_code => l_array_class_code(hdr_idx)
84699 ,p_event_type_code => l_array_event_type(hdr_idx)
84700 ,p_event_number => l_array_event_number(hdr_idx)
84701 ,p_event_date => l_array_event_date(hdr_idx)
84702 ,p_transaction_date => l_array_transaction_date(hdr_idx)
84703 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
84704 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
84705 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
84706 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
84707 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
84708 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
84709 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
84710 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
84711 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
84712 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
84713 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
84714 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
84715 ,p_event_created_by => l_array_event_created_by(hdr_idx)
84716 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
84717
84718 --
84719 -- set the status of entry to C_VALID (0)
84720 --
84721 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
84722
84723 --
84724 -- initialize a row for ae header
84725 --
84726 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
84727
84728 l_event_id := l_array_event_id(hdr_idx);
84729
84730 --
84731 -- storing the hdr_idx for event. May be used by line cursor.
84732 --
84733 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
84734
84735 --
84736 -- store sources from header extract. This can be improved to
84737 -- store only those sources from header extract that may be used in lines
84738 --
84739
84740 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
84741 g_array_event(l_event_id).array_value_date('source_75') := l_array_source_75(hdr_idx);
84742
84743 --
84744 -- initilaize the status of ae headers for diffrent balance types
84745 -- the status is initialised to C_NOT_CREATED (2)
84746 --
84747 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
84748 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
84749 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
84750
84751 --
84752 -- call api to validate and store accounting attributes for header
84753 --
84754
84755 ------------------------------------------------------------
84759
84756 -- Accrual Reversal : to get date for Standard Source (NONE)
84757 ------------------------------------------------------------
84758 l_acc_rev_gl_date_source := NULL;
84760 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
84761 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_75');
84762
84763
84764 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
84765
84766 XLA_AE_HEADER_PKG.SetJeCategoryName;
84767
84768 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
84769 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
84770 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
84771 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
84772 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
84773
84774
84775 -- No header level analytical criteria
84776
84777 --
84778 --accounting attribute enhancement, bug 3612931
84779 --
84780 l_trx_reversal_source := SUBSTR(NULL, 1,30);
84781
84782 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
84783 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
84784
84785 xla_accounting_err_pkg.build_message
84786 (p_appli_s_name => 'XLA'
84787 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
84788 ,p_token_1 => 'ACCT_ATTR_NAME'
84789 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
84790 ,p_token_2 => 'PRODUCT_NAME'
84791 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
84792 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
84793 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
84794 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
84795
84796 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
84797 --
84798 -- following sets the accounting attributes needed to reverse
84799 -- accounting for a distributeion
84800 --
84801 xla_ae_lines_pkg.SetTrxReversalAttrs
84802 (p_event_id => l_event_id
84803 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
84804 ,p_trx_reversal_source => l_trx_reversal_source);
84805
84806 END IF;
84807
84808
84809 ----------------------------------------------------------------
84810 -- 4262811 - update the header statuses to invalid in need be
84811 ----------------------------------------------------------------
84812 --
84813 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
84814
84815
84816 -----------------------------------------------
84817 -- No accrual reversal for the event class/type
84818 -----------------------------------------------
84819 ----------------------------------------------------------------
84820
84821 --
84822 -- this ends the header loop iteration for one bulk fetch
84823 --
84824 END LOOP;
84825
84826 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
84827 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
84828
84829 --
84830 -- insert dummy rows into lines gt table that were created due to
84831 -- transaction reversals
84832 --
84833 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
84834 l_result := XLA_AE_LINES_PKG.InsertLines;
84835 END IF;
84836
84837 --
84838 -- reset the temp_line_num for each set of events fetched from header
84839 -- cursor rather than doing it for each new event in line cursor
84840 -- Bug 3939231
84841 --
84842 xla_ae_lines_pkg.g_temp_line_num := 0;
84843
84844
84845
84846 --
84847 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
84848 --
84849 --
84850 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
84851
84852 trace
84853 (p_msg => 'SQL - FETCH line_cur'
84854 ,p_level => C_LEVEL_STATEMENT
84855 ,p_module => l_log_module);
84856
84857 END IF;
84858 --
84859 --
84860 LOOP
84861 --
84862 FETCH line_cur BULK COLLECT INTO
84863 l_array_entity_id
84864 , l_array_legal_entity_id
84865 , l_array_entity_code
84866 , l_array_transaction_num
84867 , l_array_event_id
84868 , l_array_class_code
84869 , l_array_event_type
84870 , l_array_event_number
84871 , l_array_event_date
84872 , l_array_transaction_date
84873 , l_array_reference_num_1
84874 , l_array_reference_num_2
84875 , l_array_reference_num_3
84876 , l_array_reference_num_4
84877 , l_array_reference_char_1
84878 , l_array_reference_char_2
84879 , l_array_reference_char_3
84880 , l_array_reference_char_4
84881 , l_array_reference_date_1
84882 , l_array_reference_date_2
84883 , l_array_reference_date_3
84884 , l_array_reference_date_4
84885 , l_array_event_created_by
84886 , l_array_budgetary_control_flag
84887 , l_array_extract_line_num
84888 , l_array_source_4
84889 , l_array_source_5
84890 , l_array_source_6
84891 , l_array_source_7
84892 , l_array_source_8
84893 , l_array_source_23
84894 , l_array_source_24
84895 , l_array_source_25
84896 , l_array_source_26
84897 , l_array_source_27
84898 , l_array_source_28
84899 , l_array_source_29
84900 , l_array_source_30
84901 , l_array_source_31
84902 , l_array_source_32
84906 , l_array_source_36
84903 , l_array_source_34
84904 , l_array_source_35
84905 , l_array_source_35_meaning
84907 LIMIT l_rows;
84908
84909 --
84910 IF (C_LEVEL_EVENT >= g_log_level) THEN
84911 trace
84912 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
84913 ,p_level => C_LEVEL_EVENT
84914 ,p_module => l_log_module);
84915 END IF;
84916 --
84917 EXIT WHEN l_array_entity_id.count = 0;
84918
84919 XLA_AE_LINES_PKG.g_rec_lines := null;
84920
84921 --
84922 -- Bug 4458708
84923 --
84924 XLA_AE_LINES_PKG.g_LineNumber := 0;
84925 --
84926 --
84927
84928 FOR Idx IN 1..l_array_event_id.count LOOP
84929 --
84930 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
84931 --
84932 l_event_id := l_array_event_id(idx); -- 5648433
84933
84934 --
84935 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
84936 --
84937
84938 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
84939 (g_array_event(l_event_id).array_value_num('header_index'))
84940 ,'N'
84941 ) <> 'Y'
84942 THEN
84943 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
84944 trace
84945 (p_msg => 'Trancaction revesal option is not Y '
84946 ,p_level => C_LEVEL_STATEMENT
84947 ,p_module => l_log_module);
84948 END IF;
84949
84950 --
84951 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
84952 --
84953 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
84954 --
84955 -- set event info as cache for other routines to refer event attributes
84956 --
84957
84958 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
84959 l_previous_event_id := l_event_id;
84960
84961 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
84962 (p_application_id => p_application_id
84963 ,p_primary_ledger_id => p_primary_ledger_id
84964 ,p_base_ledger_id => p_base_ledger_id
84965 ,p_target_ledger_id => p_target_ledger_id
84966 ,p_entity_id => l_array_entity_id(Idx)
84967 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
84968 ,p_entity_code => l_array_entity_code(Idx)
84969 ,p_transaction_num => l_array_transaction_num(Idx)
84970 ,p_event_id => l_array_event_id(Idx)
84971 ,p_event_class_code => l_array_class_code(Idx)
84972 ,p_event_type_code => l_array_event_type(Idx)
84973 ,p_event_number => l_array_event_number(Idx)
84974 ,p_event_date => l_array_event_date(Idx)
84975 ,p_transaction_date => l_array_transaction_date(Idx)
84976 ,p_reference_num_1 => l_array_reference_num_1(Idx)
84977 ,p_reference_num_2 => l_array_reference_num_2(Idx)
84978 ,p_reference_num_3 => l_array_reference_num_3(Idx)
84979 ,p_reference_num_4 => l_array_reference_num_4(Idx)
84980 ,p_reference_char_1 => l_array_reference_char_1(Idx)
84981 ,p_reference_char_2 => l_array_reference_char_2(Idx)
84982 ,p_reference_char_3 => l_array_reference_char_3(Idx)
84983 ,p_reference_char_4 => l_array_reference_char_4(Idx)
84984 ,p_reference_date_1 => l_array_reference_date_1(Idx)
84985 ,p_reference_date_2 => l_array_reference_date_2(Idx)
84986 ,p_reference_date_3 => l_array_reference_date_3(Idx)
84987 ,p_reference_date_4 => l_array_reference_date_4(Idx)
84988 ,p_event_created_by => l_array_event_created_by(Idx)
84989 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
84990 --
84991 END IF;
84992
84993
84994
84995 --
84996 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
84997
84998 l_acct_reversal_source := SUBSTR(l_array_source_23(Idx), 1,30);
84999
85000 IF l_continue_with_lines THEN
85001 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
85002 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
85003
85004 xla_accounting_err_pkg.build_message
85005 (p_appli_s_name => 'XLA'
85006 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
85007 ,p_token_1 => 'LINE_NUMBER'
85008 ,p_value_1 => l_array_extract_line_num(Idx)
85009 ,p_token_2 => 'PRODUCT_NAME'
85010 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
85011 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
85012 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
85013 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
85014
85015 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
85016 --
85017 -- following sets the accounting attributes needed to reverse
85018 -- accounting for a distributeion
85019 --
85020
85021 --
85022 -- 5217187
85023 --
85024 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
85025 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
85026 g_array_event(l_event_id).array_value_num('header_index'));
85027 --
85028 --
85029
85030 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
85031 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_23(Idx);
85035 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_7(Idx));
85032 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
85033 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_24(Idx);
85034 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
85036 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
85037 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_25(Idx);
85038 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
85039 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_26(Idx);
85040 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
85041 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_27(Idx);
85042 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
85043 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_28(Idx);
85044 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
85045 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_29(Idx);
85046 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
85047 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_30(Idx);
85048 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
85049 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_31(Idx);
85050 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
85051 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_4(Idx));
85052 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
85053 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_25(Idx);
85054 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
85055 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_26(Idx);
85056 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
85057 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_27(Idx);
85058 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
85059 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_28(Idx);
85060 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
85061 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_29(Idx);
85062 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
85063 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_30(Idx);
85064 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
85065 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_32(Idx);
85066 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
85067 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_33');
85068 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
85069 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_34(Idx);
85070 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
85071 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_35(Idx);
85072 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
85073 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_33');
85074 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
85075 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_36(Idx);
85076 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
85077 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_35(Idx);
85078
85079
85080 xla_ae_lines_pkg.SetAcctReversalAttrs
85081 (p_event_id => l_event_id
85082 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
85083 ,p_calculate_acctd_flag => l_calculate_acctd_flag
85084 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
85085 END IF;
85086
85087 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
85088 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
85089
85090 --
85091 AcctLineType_73 (
85092 p_application_id => p_application_id
85093 ,p_event_id => l_event_id
85094 ,p_calculate_acctd_flag => l_calculate_acctd_flag
85095 ,p_calculate_g_l_flag => l_calculate_g_l_flag
85096 ,p_actual_flag => l_actual_flag
85097 ,p_balance_type_code => l_balance_type_code
85098 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
85099
85100 , p_source_4 => l_array_source_4(Idx)
85101 , p_source_5 => l_array_source_5(Idx)
85102 , p_source_6 => l_array_source_6(Idx)
85103 , p_source_7 => l_array_source_7(Idx)
85104 , p_source_23 => l_array_source_23(Idx)
85105 , p_source_24 => l_array_source_24(Idx)
85106 , p_source_25 => l_array_source_25(Idx)
85107 , p_source_26 => l_array_source_26(Idx)
85108 , p_source_27 => l_array_source_27(Idx)
85109 , p_source_28 => l_array_source_28(Idx)
85110 , p_source_29 => l_array_source_29(Idx)
85111 , p_source_30 => l_array_source_30(Idx)
85112 , p_source_31 => l_array_source_31(Idx)
85113 , p_source_32 => l_array_source_32(Idx)
85114 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
85115 , p_source_34 => l_array_source_34(Idx)
85116 , p_source_35 => l_array_source_35(Idx)
85117 , p_source_35_meaning => l_array_source_35_meaning(Idx)
85118 , p_source_36 => l_array_source_36(Idx)
85119 );
85120 If(l_balance_type_code = 'A') THEN
85121 l_actual_gain_loss_ref := l_gain_or_loss_ref;
85122 END IF;
85123
85124 --
85125
85126
85127 --
85128 AcctLineType_84 (
85129 p_application_id => p_application_id
85130 ,p_event_id => l_event_id
85131 ,p_calculate_acctd_flag => l_calculate_acctd_flag
85132 ,p_calculate_g_l_flag => l_calculate_g_l_flag
85133 ,p_actual_flag => l_actual_flag
85134 ,p_balance_type_code => l_balance_type_code
85135 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
85139 , p_source_6 => l_array_source_6(Idx)
85136
85137 , p_source_4 => l_array_source_4(Idx)
85138 , p_source_5 => l_array_source_5(Idx)
85140 , p_source_7 => l_array_source_7(Idx)
85141 , p_source_23 => l_array_source_23(Idx)
85142 , p_source_24 => l_array_source_24(Idx)
85143 , p_source_25 => l_array_source_25(Idx)
85144 , p_source_26 => l_array_source_26(Idx)
85145 , p_source_27 => l_array_source_27(Idx)
85146 , p_source_28 => l_array_source_28(Idx)
85147 , p_source_29 => l_array_source_29(Idx)
85148 , p_source_30 => l_array_source_30(Idx)
85149 , p_source_31 => l_array_source_31(Idx)
85150 , p_source_32 => l_array_source_32(Idx)
85151 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
85152 , p_source_34 => l_array_source_34(Idx)
85153 , p_source_35 => l_array_source_35(Idx)
85154 , p_source_35_meaning => l_array_source_35_meaning(Idx)
85155 , p_source_36 => l_array_source_36(Idx)
85156 );
85157 If(l_balance_type_code = 'A') THEN
85158 l_actual_gain_loss_ref := l_gain_or_loss_ref;
85159 END IF;
85160
85161 --
85162
85163
85164 --
85165 AcctLineType_94 (
85166 p_application_id => p_application_id
85167 ,p_event_id => l_event_id
85168 ,p_calculate_acctd_flag => l_calculate_acctd_flag
85169 ,p_calculate_g_l_flag => l_calculate_g_l_flag
85170 ,p_actual_flag => l_actual_flag
85171 ,p_balance_type_code => l_balance_type_code
85172 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
85173
85174 , p_source_4 => l_array_source_4(Idx)
85175 , p_source_5 => l_array_source_5(Idx)
85176 , p_source_7 => l_array_source_7(Idx)
85177 , p_source_8 => l_array_source_8(Idx)
85178 , p_source_23 => l_array_source_23(Idx)
85179 , p_source_24 => l_array_source_24(Idx)
85180 , p_source_25 => l_array_source_25(Idx)
85181 , p_source_26 => l_array_source_26(Idx)
85182 , p_source_27 => l_array_source_27(Idx)
85183 , p_source_28 => l_array_source_28(Idx)
85184 , p_source_29 => l_array_source_29(Idx)
85185 , p_source_30 => l_array_source_30(Idx)
85186 , p_source_31 => l_array_source_31(Idx)
85187 , p_source_32 => l_array_source_32(Idx)
85188 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
85189 , p_source_34 => l_array_source_34(Idx)
85190 , p_source_35 => l_array_source_35(Idx)
85191 , p_source_35_meaning => l_array_source_35_meaning(Idx)
85192 , p_source_36 => l_array_source_36(Idx)
85193 );
85194 If(l_balance_type_code = 'A') THEN
85195 l_actual_gain_loss_ref := l_gain_or_loss_ref;
85196 END IF;
85197
85198 --
85199
85200
85201 --
85202 AcctLineType_97 (
85203 p_application_id => p_application_id
85204 ,p_event_id => l_event_id
85205 ,p_calculate_acctd_flag => l_calculate_acctd_flag
85206 ,p_calculate_g_l_flag => l_calculate_g_l_flag
85207 ,p_actual_flag => l_actual_flag
85208 ,p_balance_type_code => l_balance_type_code
85209 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
85210
85211 , p_source_4 => l_array_source_4(Idx)
85212 , p_source_5 => l_array_source_5(Idx)
85213 , p_source_7 => l_array_source_7(Idx)
85214 , p_source_8 => l_array_source_8(Idx)
85215 , p_source_23 => l_array_source_23(Idx)
85216 , p_source_24 => l_array_source_24(Idx)
85217 , p_source_25 => l_array_source_25(Idx)
85218 , p_source_26 => l_array_source_26(Idx)
85219 , p_source_27 => l_array_source_27(Idx)
85220 , p_source_28 => l_array_source_28(Idx)
85221 , p_source_29 => l_array_source_29(Idx)
85222 , p_source_30 => l_array_source_30(Idx)
85223 , p_source_31 => l_array_source_31(Idx)
85224 , p_source_32 => l_array_source_32(Idx)
85225 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
85226 , p_source_34 => l_array_source_34(Idx)
85227 , p_source_35 => l_array_source_35(Idx)
85228 , p_source_35_meaning => l_array_source_35_meaning(Idx)
85229 , p_source_36 => l_array_source_36(Idx)
85230 );
85231 If(l_balance_type_code = 'A') THEN
85232 l_actual_gain_loss_ref := l_gain_or_loss_ref;
85233 END IF;
85234
85235 --
85236
85237 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
85238 -- or secondary ledger that has different currency with primary
85239 -- or alc that is calculated by sla
85240 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
85241 (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'))
85242
85243 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
85244 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
85245 AND (l_actual_flag = 'A')) THEN
85246 XLA_AE_LINES_PKG.CreateGainOrLossLines(
85247 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
85248 ,p_application_id => p_application_id
85249 ,p_amb_context_code => 'DEFAULT'
85250 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
85251 ,p_event_class_code => C_EVENT_CLASS_CODE
85252 ,p_event_type_code => C_EVENT_TYPE_CODE
85253
85254 ,p_gain_ccid => -1
85255 ,p_loss_ccid => -1
85256
85257 ,p_actual_flag => l_actual_flag
85258 ,p_enc_flag => null
85259 ,p_actual_g_l_ref => l_actual_gain_loss_ref
85260 ,p_enc_g_l_ref => null
85261 );
85262 END IF;
85263 END IF;
85264 END IF;
85265
85266 ELSE
85267 --
85268 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
85269 --
85270 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85271 trace
85272 (p_msg => 'Trancaction revesal option is Y'
85273 ,p_level => C_LEVEL_STATEMENT
85277
85274 ,p_module => l_log_module);
85275 END IF;
85276 END IF;
85278 END LOOP;
85279 l_result := XLA_AE_LINES_PKG.InsertLines ;
85280 end loop;
85281 close line_cur;
85282
85283
85284 --
85285 -- insert headers into xla_ae_headers_gt table
85286 --
85287 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
85288
85289 -- insert into errors table here.
85290
85291 END LOOP;
85292
85293 --
85294 -- 4865292
85295 --
85296 -- Compare g_hdr_extract_count with event count in
85297 -- CreateHeadersAndLines.
85298 --
85299 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
85300
85301 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85302 trace (p_msg => '# rows extracted from header extract objects '
85303 || ' (running total): '
85304 || g_hdr_extract_count
85305 ,p_level => C_LEVEL_STATEMENT
85306 ,p_module => l_log_module);
85307 END IF;
85308
85309 CLOSE header_cur;
85310 --
85311
85312 --
85313 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85314 trace
85315 (p_msg => 'END of EventClass_155'
85316 ,p_level => C_LEVEL_PROCEDURE
85317 ,p_module => l_log_module);
85318 END IF;
85319 --
85320 RETURN l_result;
85321 EXCEPTION
85322 WHEN xla_exceptions_pkg.application_exception THEN
85323
85324 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
85325
85326
85327 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
85328
85329 RAISE;
85330 WHEN OTHERS THEN
85331 xla_exceptions_pkg.raise_message
85332 (p_location => 'XLA_00275_AAD_S_000015_PKG.EventClass_155');
85333 END EventClass_155;
85334 --
85335
85336 ---------------------------------------
85337 --
85338 -- PRIVATE PROCEDURE
85339 -- insert_sources_156
85340 --
85341 ----------------------------------------
85342 --
85343 PROCEDURE insert_sources_156(
85344 p_target_ledger_id IN NUMBER
85345 , p_language IN VARCHAR2
85346 , p_sla_ledger_id IN NUMBER
85347 , p_pad_start_date IN DATE
85348 , p_pad_end_date IN DATE
85349 )
85350 IS
85351
85352 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'LABOR_COST_ALL';
85353 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'LABOR_COST';
85354 p_apps_owner VARCHAR2(30);
85355 l_log_module VARCHAR2(240);
85356 BEGIN
85357 IF g_log_enabled THEN
85358 l_log_module := C_DEFAULT_MODULE||'.insert_sources_156';
85359 END IF;
85360 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85361
85362 trace
85363 (p_msg => 'BEGIN of insert_sources_156'
85364 ,p_level => C_LEVEL_PROCEDURE
85365 ,p_module => l_log_module);
85366
85367 END IF;
85368
85369 -- select APPS owner
85370 SELECT oracle_username
85371 INTO p_apps_owner
85372 FROM fnd_oracle_userid
85373 WHERE read_only_flag = 'U'
85374 ;
85375
85376 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85377 trace
85378 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
85379 ' - p_language = '||p_language||
85380 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
85381 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
85382 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
85383 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
85384 ,p_level => C_LEVEL_STATEMENT
85385 ,p_module => l_log_module);
85386 END IF;
85387
85388
85389 --
85390 INSERT INTO xla_diag_sources --hdr2
85391 (
85392 event_id
85393 , ledger_id
85394 , sla_ledger_id
85395 , description_language
85396 , object_name
85397 , object_type_code
85398 , line_number
85399 , source_application_id
85400 , source_type_code
85401 , source_code
85402 , source_value
85403 , source_meaning
85404 , created_by
85405 , creation_date
85406 , last_update_date
85407 , last_updated_by
85408 , last_update_login
85409 , program_update_date
85410 , program_application_id
85411 , program_id
85412 , request_id
85413 )
85414 SELECT
85415 event_id
85416 , p_target_ledger_id
85417 , p_sla_ledger_id
85418 , p_language
85419 , object_name
85420 , object_type_code
85421 , line_number
85422 , source_application_id
85423 , source_type_code
85424 , source_code
85425 , SUBSTR(source_value ,1,1996)
85426 , SUBSTR(source_meaning ,1,200)
85427 , xla_environment_pkg.g_Usr_Id
85428 , TRUNC(SYSDATE)
85429 , TRUNC(SYSDATE)
85430 , xla_environment_pkg.g_Usr_Id
85431 , xla_environment_pkg.g_Login_Id
85432 , TRUNC(SYSDATE)
85433 , xla_environment_pkg.g_Prog_Appl_Id
85434 , xla_environment_pkg.g_Prog_Id
85435 , xla_environment_pkg.g_Req_Id
85436 FROM (
85437 SELECT xet.event_id event_id
85438 , 0 line_number
85439 , CASE r
85440 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
85441 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
85442
85443 ELSE null
85444 END object_name
85445 , CASE r
85449 ELSE null
85446 WHEN 1 THEN 'HEADER'
85447 WHEN 2 THEN 'HEADER'
85448
85450 END object_type_code
85451 , CASE r
85452 WHEN 1 THEN '275'
85453 WHEN 2 THEN '275'
85454
85455 ELSE null
85456 END source_application_id
85457 , 'S' source_type_code
85458 , CASE r
85459 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
85460 WHEN 2 THEN 'GL_DATE'
85461
85462 ELSE null
85463 END source_code
85464 , CASE r
85465 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
85466 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
85467
85468 ELSE null
85469 END source_value
85470 , null source_meaning
85471 FROM xla_events_gt xet
85472 , PA_XLA_EXP_HEADER_V h2
85473 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
85474 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
85475 AND xet.event_class_code = C_EVENT_CLASS_CODE
85476 AND h2.event_id = xet.event_id
85477
85478 )
85479 ;
85480 --
85481 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85482
85483 trace
85484 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
85485 ,p_level => C_LEVEL_STATEMENT
85486 ,p_module => l_log_module);
85487
85488 END IF;
85489 --
85490
85491
85492
85493 --
85494 INSERT INTO xla_diag_sources --line2
85495 (
85496 event_id
85497 , ledger_id
85498 , sla_ledger_id
85499 , description_language
85500 , object_name
85501 , object_type_code
85502 , line_number
85503 , source_application_id
85504 , source_type_code
85505 , source_code
85506 , source_value
85507 , source_meaning
85508 , created_by
85509 , creation_date
85510 , last_update_date
85511 , last_updated_by
85512 , last_update_login
85513 , program_update_date
85514 , program_application_id
85515 , program_id
85516 , request_id
85517 )
85518 SELECT event_id
85519 , p_target_ledger_id
85520 , p_sla_ledger_id
85521 , p_language
85522 , object_name
85523 , object_type_code
85524 , line_number
85525 , source_application_id
85526 , source_type_code
85527 , source_code
85528 , SUBSTR(source_value,1,1996)
85529 , SUBSTR(source_meaning ,1,200)
85530 , xla_environment_pkg.g_Usr_Id
85531 , TRUNC(SYSDATE)
85532 , TRUNC(SYSDATE)
85533 , xla_environment_pkg.g_Usr_Id
85534 , xla_environment_pkg.g_Login_Id
85535 , TRUNC(SYSDATE)
85536 , xla_environment_pkg.g_Prog_Appl_Id
85537 , xla_environment_pkg.g_Prog_Id
85538 , xla_environment_pkg.g_Req_Id
85539 FROM (
85540 SELECT xet.event_id event_id
85541 , l1.line_number line_number
85542 , CASE r
85543 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
85544 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
85545 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
85546 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
85547 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
85548 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
85549 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
85550 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
85551 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
85552 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
85553 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
85554 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
85555 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
85556 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
85557 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
85558 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
85559 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
85560 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
85561
85562 ELSE null
85563 END object_name
85564 , CASE r
85565 WHEN 1 THEN 'LINE'
85566 WHEN 2 THEN 'LINE'
85567 WHEN 3 THEN 'LINE'
85568 WHEN 4 THEN 'LINE'
85569 WHEN 5 THEN 'LINE'
85570 WHEN 6 THEN 'LINE'
85571 WHEN 7 THEN 'LINE'
85572 WHEN 8 THEN 'LINE'
85573 WHEN 9 THEN 'LINE'
85574 WHEN 10 THEN 'LINE'
85575 WHEN 11 THEN 'LINE'
85576 WHEN 12 THEN 'LINE'
85577 WHEN 13 THEN 'LINE'
85578 WHEN 14 THEN 'LINE'
85579 WHEN 15 THEN 'LINE'
85580 WHEN 16 THEN 'LINE'
85581 WHEN 17 THEN 'LINE'
85582 WHEN 18 THEN 'LINE'
85583
85584 ELSE null
85585 END object_type_code
85586 , CASE r
85587 WHEN 1 THEN '275'
85588 WHEN 2 THEN '275'
85589 WHEN 3 THEN '275'
85590 WHEN 4 THEN '275'
85591 WHEN 5 THEN '275'
85592 WHEN 6 THEN '275'
85593 WHEN 7 THEN '275'
85594 WHEN 8 THEN '275'
85595 WHEN 9 THEN '275'
85599 WHEN 13 THEN '275'
85596 WHEN 10 THEN '275'
85597 WHEN 11 THEN '275'
85598 WHEN 12 THEN '275'
85600 WHEN 14 THEN '275'
85601 WHEN 15 THEN '275'
85602 WHEN 16 THEN '275'
85603 WHEN 17 THEN '275'
85604 WHEN 18 THEN '275'
85605
85606 ELSE null
85607 END source_application_id
85608 , 'S' source_type_code
85609 , CASE r
85610 WHEN 1 THEN 'COST_CCID'
85611 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
85612 WHEN 3 THEN 'ADJ_COST_CCID'
85613 WHEN 4 THEN 'COST_CLEARING_CCID'
85614 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
85615 WHEN 6 THEN 'REVERSING_LINE_FLAG'
85616 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
85617 WHEN 8 THEN 'ENTERED_RAW_COST'
85618 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
85619 WHEN 10 THEN 'ACCT_RAW_COST'
85620 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
85621 WHEN 12 THEN 'EXCHANGE_RATE'
85622 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
85623 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
85624 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
85625 WHEN 16 THEN 'LINE_NUMBER'
85626 WHEN 17 THEN 'LINE_TYPE'
85627 WHEN 18 THEN 'LINE_NUM_REVERSED'
85628
85629 ELSE null
85630 END source_code
85631 , CASE r
85632 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
85633 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
85634 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
85635 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
85636 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
85637 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
85638 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
85639 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
85640 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
85641 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
85642 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
85643 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
85644 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
85645 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
85646 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
85647 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
85648 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
85649 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
85650
85651 ELSE null
85652 END source_value
85653 , CASE r
85654 WHEN 2 THEN XLA_00275_AAD_S_000015_PKG.GetMeaning(
85655 103371
85656 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
85657 ,'ALLOW_OVERRIDE_CCID_FLAG'
85658 ,'S'
85659 ,275)
85660 WHEN 17 THEN fvl35.meaning
85661
85662 ELSE null
85663 END source_meaning
85664 FROM xla_events_gt xet
85665 , PA_XLA_CDL_LINES_V l1
85666 , fnd_lookup_values fvl35
85667 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
85668 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
85669 AND xet.event_class_code = C_EVENT_CLASS_CODE
85670 AND l1.event_id = xet.event_id
85671 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
85672 AND fvl35.lookup_code(+) = l1.LINE_TYPE
85673 AND fvl35.view_application_id(+) = 275
85674 AND fvl35.language(+) = USERENV('LANG')
85675
85676 )
85677 ;
85678 --
85679 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85680
85681 trace
85682 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
85683 ,p_level => C_LEVEL_STATEMENT
85684 ,p_module => l_log_module);
85685
85686 END IF;
85687
85688
85689 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85690 trace
85691 (p_msg => 'END of insert_sources_156'
85692 ,p_level => C_LEVEL_PROCEDURE
85693 ,p_module => l_log_module);
85694 END IF;
85695 EXCEPTION
85696 WHEN xla_exceptions_pkg.application_exception THEN
85697 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
85698 trace
85699 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
85700 ,p_level => C_LEVEL_EXCEPTION
85701 ,p_module => l_log_module);
85702 END IF;
85703 RAISE;
85704 WHEN OTHERS THEN
85705 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
85706 trace
85707 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
85708 ,p_level => C_LEVEL_EXCEPTION
85709 ,p_module => l_log_module);
85710 END IF;
85711 xla_exceptions_pkg.raise_message
85712 (p_location => 'XLA_00275_AAD_S_000015_PKG.insert_sources_156');
85713 END insert_sources_156;
85714 --
85715
85716 ---------------------------------------
85717 --
85718 -- PRIVATE FUNCTION
85719 -- EventClass_156
85720 --
85721 ----------------------------------------
85722 --
85723 FUNCTION EventClass_156
85724 (p_application_id IN NUMBER
85725 ,p_base_ledger_id IN NUMBER
85726 ,p_target_ledger_id IN NUMBER
85730 ,p_pad_start_date IN DATE
85727 ,p_language IN VARCHAR2
85728 ,p_currency_code IN VARCHAR2
85729 ,p_sla_ledger_id IN NUMBER
85731 ,p_pad_end_date IN DATE
85732 ,p_primary_ledger_id IN NUMBER)
85733 RETURN BOOLEAN IS
85734 --
85735 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'LABOR_COST_ALL';
85736 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'LABOR_COST';
85737
85738 l_calculate_acctd_flag VARCHAR2(1) :='N';
85739 l_calculate_g_l_flag VARCHAR2(1) :='N';
85740 --
85741 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
85742 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
85743 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
85744 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
85745 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
85746 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
85747 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
85748 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
85749 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
85750 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
85751 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
85752 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
85753 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
85754 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
85755 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
85756 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
85757 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
85758 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
85759 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
85760 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
85761 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
85762 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
85763 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
85764 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
85765
85766 l_event_id NUMBER;
85767 l_previous_event_id NUMBER;
85768 l_first_event_id NUMBER;
85769 l_last_event_id NUMBER;
85770
85771 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
85772 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
85773 --
85774 --
85775 l_result BOOLEAN := TRUE;
85776 l_rows NUMBER := 1000;
85777 l_event_type_name VARCHAR2(80) := 'All';
85778 l_event_class_name VARCHAR2(80) := 'Labor Cost';
85779 l_description VARCHAR2(4000);
85780 l_transaction_reversal NUMBER;
85781 l_ae_header_id NUMBER;
85782 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
85783 l_log_module VARCHAR2(240);
85784 --
85785 l_acct_reversal_source VARCHAR2(30);
85786 l_trx_reversal_source VARCHAR2(30);
85787
85788 l_continue_with_lines BOOLEAN := TRUE;
85789 --
85790 l_acc_rev_gl_date_source DATE; -- 4262811
85791 --
85792 type t_array_event_id is table of number index by binary_integer;
85793
85794 l_rec_array_event t_rec_array_event;
85795 l_null_rec_array_event t_rec_array_event;
85796 l_array_ae_header_id xla_number_array_type;
85797 l_actual_flag VARCHAR2(1) := NULL;
85798 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
85799 l_balance_type_code VARCHAR2(1) :=NULL;
85800 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
85801
85802 --
85803 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
85804 --
85805
85806 TYPE t_array_source_33 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
85807 TYPE t_array_source_75 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
85808
85809 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
85810 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
85811 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
85812 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
85813 TYPE t_array_source_8 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
85814 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
85815 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
85816 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
85817 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
85818 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
85819 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
85820 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
85821 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
85822 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
85823 TYPE t_array_source_32 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
85827
85824 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
85825 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
85826 TYPE t_array_source_36 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
85828 l_array_source_33 t_array_source_33;
85829 l_array_source_75 t_array_source_75;
85830
85831 l_array_source_4 t_array_source_4;
85832 l_array_source_5 t_array_source_5;
85833 l_array_source_6 t_array_source_6;
85834 l_array_source_7 t_array_source_7;
85835 l_array_source_8 t_array_source_8;
85836 l_array_source_23 t_array_source_23;
85837 l_array_source_24 t_array_source_24;
85838 l_array_source_25 t_array_source_25;
85839 l_array_source_26 t_array_source_26;
85840 l_array_source_27 t_array_source_27;
85841 l_array_source_28 t_array_source_28;
85842 l_array_source_29 t_array_source_29;
85843 l_array_source_30 t_array_source_30;
85844 l_array_source_31 t_array_source_31;
85845 l_array_source_32 t_array_source_32;
85846 l_array_source_34 t_array_source_34;
85847 l_array_source_35 t_array_source_35;
85848 l_array_source_35_meaning t_array_lookup_meaning;
85849 l_array_source_36 t_array_source_36;
85850
85851 --
85852 CURSOR header_cur
85853 IS
85854 SELECT /*+ leading(xet) cardinality(xet,1) */
85855 -- Event Class Code: LABOR_COST
85856 xet.entity_id
85857 ,xet.legal_entity_id
85858 ,xet.entity_code
85859 ,xet.transaction_number
85860 ,xet.event_id
85861 ,xet.event_class_code
85862 ,xet.event_type_code
85863 ,xet.event_number
85864 ,xet.event_date
85865 ,xet.transaction_date
85866 ,xet.reference_num_1
85867 ,xet.reference_num_2
85868 ,xet.reference_num_3
85869 ,xet.reference_num_4
85870 ,xet.reference_char_1
85871 ,xet.reference_char_2
85872 ,xet.reference_char_3
85873 ,xet.reference_char_4
85874 ,xet.reference_date_1
85875 ,xet.reference_date_2
85876 ,xet.reference_date_3
85877 ,xet.reference_date_4
85878 ,xet.event_created_by
85879 ,xet.budgetary_control_flag
85880 , h2.EXPENDITURE_ITEM_ID source_33
85881 , h2.GL_DATE source_75
85882 FROM xla_events_gt xet
85883 , PA_XLA_EXP_HEADER_V h2
85884 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
85885 and xet.event_class_code = C_EVENT_CLASS_CODE
85886 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
85887
85888 ORDER BY event_id
85889 ;
85890
85891
85892 --
85893 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
85894 IS
85895 SELECT /*+ leading(xet) cardinality(xet,1) */
85896 -- Event Class Code: LABOR_COST
85897 xet.entity_id
85898 ,xet.legal_entity_id
85899 ,xet.entity_code
85900 ,xet.transaction_number
85901 ,xet.event_id
85902 ,xet.event_class_code
85903 ,xet.event_type_code
85904 ,xet.event_number
85905 ,xet.event_date
85906 ,xet.transaction_date
85907 ,xet.reference_num_1
85908 ,xet.reference_num_2
85909 ,xet.reference_num_3
85910 ,xet.reference_num_4
85911 ,xet.reference_char_1
85912 ,xet.reference_char_2
85913 ,xet.reference_char_3
85914 ,xet.reference_char_4
85915 ,xet.reference_date_1
85916 ,xet.reference_date_2
85917 ,xet.reference_date_3
85918 ,xet.reference_date_4
85919 ,xet.event_created_by
85920 ,xet.budgetary_control_flag
85921 , l1.LINE_NUMBER
85922 , l1.COST_CCID source_4
85923 , l1.ALLOW_OVERRIDE_CCID_FLAG source_5
85924 , l1.ADJ_COST_CCID source_6
85925 , l1.COST_CLEARING_CCID source_7
85926 , l1.ADJ_COST_CLEARING_CCID source_8
85927 , l1.REVERSING_LINE_FLAG source_23
85928 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_24
85929 , l1.ENTERED_RAW_COST source_25
85930 , l1.ENTERED_CURRENCY_CODE source_26
85931 , l1.ACCT_RAW_COST source_27
85932 , l1.EXCHANGE_RATE_DATE source_28
85933 , l1.EXCHANGE_RATE source_29
85934 , l1.EXCHANGE_RATE_TYPE source_30
85935 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_31
85936 , l1.USE_ACT_UPG_ATTRIB_FLAG source_32
85937 , l1.LINE_NUMBER source_34
85938 , l1.LINE_TYPE source_35
85939 , fvl35.meaning source_35_meaning
85940 , l1.LINE_NUM_REVERSED source_36
85941 FROM xla_events_gt xet
85942 , PA_XLA_CDL_LINES_V l1
85943 , fnd_lookup_values fvl35
85944 WHERE xet.event_id between x_first_event_id and x_last_event_id
85945 and xet.event_date between p_pad_start_date and p_pad_end_date
85946 and xet.event_class_code = C_EVENT_CLASS_CODE
85947 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
85948 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
85949 AND fvl35.lookup_code(+) = l1.LINE_TYPE
85950 AND fvl35.view_application_id(+) = 275
85951 AND fvl35.language(+) = USERENV('LANG')
85952 ;
85953
85954 --
85955 BEGIN
85956 IF g_log_enabled THEN
85957 l_log_module := C_DEFAULT_MODULE||'.EventClass_156';
85958 END IF;
85959 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85960 trace
85961 (p_msg => 'BEGIN of EventClass_156'
85962 ,p_level => C_LEVEL_PROCEDURE
85963 ,p_module => l_log_module);
85964 END IF;
85965
85966 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85967 trace
85968 (p_msg => 'p_application_id = '||p_application_id||
85969 ' - p_base_ledger_id = '||p_base_ledger_id||
85970 ' - p_target_ledger_id = '||p_target_ledger_id||
85971 ' - p_language = '||p_language||
85972 ' - p_currency_code = '||p_currency_code||
85976 END IF;
85973 ' - p_sla_ledger_id = '||p_sla_ledger_id
85974 ,p_level => C_LEVEL_STATEMENT
85975 ,p_module => l_log_module);
85977 --
85978 -- initialze arrays
85979 --
85980 g_array_event.DELETE;
85981 l_rec_array_event := l_null_rec_array_event;
85982 --
85983 --------------------------------------
85984 -- 4262811 Initialze MPA Line Number
85985 --------------------------------------
85986 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
85987
85988 --
85989
85990 --
85991 OPEN header_cur;
85992 --
85993 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85994 trace
85995 (p_msg => 'SQL - FETCH header_cur'
85996 ,p_level => C_LEVEL_STATEMENT
85997 ,p_module => l_log_module);
85998 END IF;
85999 --
86000 LOOP
86001 FETCH header_cur BULK COLLECT INTO
86002 l_array_entity_id
86003 , l_array_legal_entity_id
86004 , l_array_entity_code
86005 , l_array_transaction_num
86006 , l_array_event_id
86007 , l_array_class_code
86008 , l_array_event_type
86009 , l_array_event_number
86010 , l_array_event_date
86011 , l_array_transaction_date
86012 , l_array_reference_num_1
86013 , l_array_reference_num_2
86014 , l_array_reference_num_3
86015 , l_array_reference_num_4
86016 , l_array_reference_char_1
86017 , l_array_reference_char_2
86018 , l_array_reference_char_3
86019 , l_array_reference_char_4
86020 , l_array_reference_date_1
86021 , l_array_reference_date_2
86022 , l_array_reference_date_3
86023 , l_array_reference_date_4
86024 , l_array_event_created_by
86025 , l_array_budgetary_control_flag
86026 , l_array_source_33
86027 , l_array_source_75
86028 LIMIT l_rows;
86029 --
86030 IF (C_LEVEL_EVENT >= g_log_level) THEN
86031 trace
86032 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
86033 ,p_level => C_LEVEL_EVENT
86034 ,p_module => l_log_module);
86035 END IF;
86036 --
86037 EXIT WHEN l_array_entity_id.COUNT = 0;
86038
86039 -- initialize arrays
86040 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
86041 XLA_AE_LINES_PKG.g_rec_lines := NULL;
86042
86043 --
86044 -- Bug 4458708
86045 --
86046 XLA_AE_LINES_PKG.g_LineNumber := 0;
86047
86048
86049 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
86050 g_last_hdr_idx := l_array_event_id.LAST;
86051 --
86052 -- loop for the headers. Each iteration is for each header extract row
86053 -- fetched in header cursor
86054 --
86055 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
86056
86057 --
86058 -- set event info as cache for other routines to refer event attributes
86059 --
86060 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
86061 (p_application_id => p_application_id
86062 ,p_primary_ledger_id => p_primary_ledger_id
86063 ,p_base_ledger_id => p_base_ledger_id
86064 ,p_target_ledger_id => p_target_ledger_id
86065 ,p_entity_id => l_array_entity_id(hdr_idx)
86066 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
86067 ,p_entity_code => l_array_entity_code(hdr_idx)
86068 ,p_transaction_num => l_array_transaction_num(hdr_idx)
86069 ,p_event_id => l_array_event_id(hdr_idx)
86070 ,p_event_class_code => l_array_class_code(hdr_idx)
86071 ,p_event_type_code => l_array_event_type(hdr_idx)
86072 ,p_event_number => l_array_event_number(hdr_idx)
86073 ,p_event_date => l_array_event_date(hdr_idx)
86074 ,p_transaction_date => l_array_transaction_date(hdr_idx)
86075 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
86076 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
86077 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
86078 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
86079 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
86080 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
86081 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
86082 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
86083 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
86084 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
86085 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
86086 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
86087 ,p_event_created_by => l_array_event_created_by(hdr_idx)
86088 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
86089
86090 --
86091 -- set the status of entry to C_VALID (0)
86092 --
86093 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
86094
86095 --
86096 -- initialize a row for ae header
86097 --
86098 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
86099
86100 l_event_id := l_array_event_id(hdr_idx);
86101
86102 --
86103 -- storing the hdr_idx for event. May be used by line cursor.
86104 --
86105 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
86106
86107 --
86108 -- store sources from header extract. This can be improved to
86109 -- store only those sources from header extract that may be used in lines
86110 --
86111
86112 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
86113 g_array_event(l_event_id).array_value_date('source_75') := l_array_source_75(hdr_idx);
86114
86115 --
86116 -- initilaize the status of ae headers for diffrent balance types
86117 -- the status is initialised to C_NOT_CREATED (2)
86121 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
86118 --
86119 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
86120 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
86122
86123 --
86124 -- call api to validate and store accounting attributes for header
86125 --
86126
86127 ------------------------------------------------------------
86128 -- Accrual Reversal : to get date for Standard Source (NONE)
86129 ------------------------------------------------------------
86130 l_acc_rev_gl_date_source := NULL;
86131
86132 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
86133 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_75');
86134
86135
86136 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
86137
86138 XLA_AE_HEADER_PKG.SetJeCategoryName;
86139
86140 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
86141 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
86142 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
86143 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
86144 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
86145
86146
86147 -- No header level analytical criteria
86148
86149 --
86150 --accounting attribute enhancement, bug 3612931
86151 --
86152 l_trx_reversal_source := SUBSTR(NULL, 1,30);
86153
86154 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
86155 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
86156
86157 xla_accounting_err_pkg.build_message
86158 (p_appli_s_name => 'XLA'
86159 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
86160 ,p_token_1 => 'ACCT_ATTR_NAME'
86161 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
86162 ,p_token_2 => 'PRODUCT_NAME'
86163 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
86164 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
86165 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
86166 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
86167
86168 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
86169 --
86170 -- following sets the accounting attributes needed to reverse
86171 -- accounting for a distributeion
86172 --
86173 xla_ae_lines_pkg.SetTrxReversalAttrs
86174 (p_event_id => l_event_id
86175 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
86176 ,p_trx_reversal_source => l_trx_reversal_source);
86177
86178 END IF;
86179
86180
86181 ----------------------------------------------------------------
86182 -- 4262811 - update the header statuses to invalid in need be
86183 ----------------------------------------------------------------
86184 --
86185 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
86186
86187
86188 -----------------------------------------------
86189 -- No accrual reversal for the event class/type
86190 -----------------------------------------------
86191 ----------------------------------------------------------------
86192
86193 --
86194 -- this ends the header loop iteration for one bulk fetch
86195 --
86196 END LOOP;
86197
86198 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
86199 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
86200
86201 --
86202 -- insert dummy rows into lines gt table that were created due to
86203 -- transaction reversals
86204 --
86205 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
86206 l_result := XLA_AE_LINES_PKG.InsertLines;
86207 END IF;
86208
86209 --
86210 -- reset the temp_line_num for each set of events fetched from header
86211 -- cursor rather than doing it for each new event in line cursor
86212 -- Bug 3939231
86213 --
86214 xla_ae_lines_pkg.g_temp_line_num := 0;
86215
86216
86217
86218 --
86219 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
86220 --
86221 --
86222 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86223
86224 trace
86225 (p_msg => 'SQL - FETCH line_cur'
86226 ,p_level => C_LEVEL_STATEMENT
86227 ,p_module => l_log_module);
86228
86229 END IF;
86230 --
86231 --
86232 LOOP
86233 --
86234 FETCH line_cur BULK COLLECT INTO
86235 l_array_entity_id
86236 , l_array_legal_entity_id
86237 , l_array_entity_code
86238 , l_array_transaction_num
86239 , l_array_event_id
86240 , l_array_class_code
86241 , l_array_event_type
86242 , l_array_event_number
86243 , l_array_event_date
86244 , l_array_transaction_date
86245 , l_array_reference_num_1
86246 , l_array_reference_num_2
86247 , l_array_reference_num_3
86248 , l_array_reference_num_4
86249 , l_array_reference_char_1
86250 , l_array_reference_char_2
86251 , l_array_reference_char_3
86252 , l_array_reference_char_4
86253 , l_array_reference_date_1
86254 , l_array_reference_date_2
86255 , l_array_reference_date_3
86256 , l_array_reference_date_4
86257 , l_array_event_created_by
86258 , l_array_budgetary_control_flag
86259 , l_array_extract_line_num
86263 , l_array_source_7
86260 , l_array_source_4
86261 , l_array_source_5
86262 , l_array_source_6
86264 , l_array_source_8
86265 , l_array_source_23
86266 , l_array_source_24
86267 , l_array_source_25
86268 , l_array_source_26
86269 , l_array_source_27
86270 , l_array_source_28
86271 , l_array_source_29
86272 , l_array_source_30
86273 , l_array_source_31
86274 , l_array_source_32
86275 , l_array_source_34
86276 , l_array_source_35
86277 , l_array_source_35_meaning
86278 , l_array_source_36
86279 LIMIT l_rows;
86280
86281 --
86282 IF (C_LEVEL_EVENT >= g_log_level) THEN
86283 trace
86284 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
86285 ,p_level => C_LEVEL_EVENT
86286 ,p_module => l_log_module);
86287 END IF;
86288 --
86289 EXIT WHEN l_array_entity_id.count = 0;
86290
86291 XLA_AE_LINES_PKG.g_rec_lines := null;
86292
86293 --
86294 -- Bug 4458708
86295 --
86296 XLA_AE_LINES_PKG.g_LineNumber := 0;
86297 --
86298 --
86299
86300 FOR Idx IN 1..l_array_event_id.count LOOP
86301 --
86302 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
86303 --
86304 l_event_id := l_array_event_id(idx); -- 5648433
86305
86306 --
86307 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
86308 --
86309
86310 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
86311 (g_array_event(l_event_id).array_value_num('header_index'))
86312 ,'N'
86313 ) <> 'Y'
86314 THEN
86315 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86316 trace
86317 (p_msg => 'Trancaction revesal option is not Y '
86318 ,p_level => C_LEVEL_STATEMENT
86319 ,p_module => l_log_module);
86320 END IF;
86321
86322 --
86323 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
86324 --
86325 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
86326 --
86327 -- set event info as cache for other routines to refer event attributes
86328 --
86329
86330 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
86331 l_previous_event_id := l_event_id;
86332
86333 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
86334 (p_application_id => p_application_id
86335 ,p_primary_ledger_id => p_primary_ledger_id
86336 ,p_base_ledger_id => p_base_ledger_id
86337 ,p_target_ledger_id => p_target_ledger_id
86338 ,p_entity_id => l_array_entity_id(Idx)
86339 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
86340 ,p_entity_code => l_array_entity_code(Idx)
86341 ,p_transaction_num => l_array_transaction_num(Idx)
86342 ,p_event_id => l_array_event_id(Idx)
86343 ,p_event_class_code => l_array_class_code(Idx)
86344 ,p_event_type_code => l_array_event_type(Idx)
86345 ,p_event_number => l_array_event_number(Idx)
86346 ,p_event_date => l_array_event_date(Idx)
86347 ,p_transaction_date => l_array_transaction_date(Idx)
86348 ,p_reference_num_1 => l_array_reference_num_1(Idx)
86349 ,p_reference_num_2 => l_array_reference_num_2(Idx)
86350 ,p_reference_num_3 => l_array_reference_num_3(Idx)
86351 ,p_reference_num_4 => l_array_reference_num_4(Idx)
86352 ,p_reference_char_1 => l_array_reference_char_1(Idx)
86353 ,p_reference_char_2 => l_array_reference_char_2(Idx)
86354 ,p_reference_char_3 => l_array_reference_char_3(Idx)
86355 ,p_reference_char_4 => l_array_reference_char_4(Idx)
86356 ,p_reference_date_1 => l_array_reference_date_1(Idx)
86357 ,p_reference_date_2 => l_array_reference_date_2(Idx)
86358 ,p_reference_date_3 => l_array_reference_date_3(Idx)
86359 ,p_reference_date_4 => l_array_reference_date_4(Idx)
86360 ,p_event_created_by => l_array_event_created_by(Idx)
86361 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
86362 --
86363 END IF;
86364
86365
86366
86367 --
86368 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
86369
86370 l_acct_reversal_source := SUBSTR(l_array_source_23(Idx), 1,30);
86371
86372 IF l_continue_with_lines THEN
86373 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
86374 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
86375
86376 xla_accounting_err_pkg.build_message
86377 (p_appli_s_name => 'XLA'
86378 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
86379 ,p_token_1 => 'LINE_NUMBER'
86380 ,p_value_1 => l_array_extract_line_num(Idx)
86381 ,p_token_2 => 'PRODUCT_NAME'
86382 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
86383 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
86384 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
86385 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
86386
86387 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
86388 --
86389 -- following sets the accounting attributes needed to reverse
86390 -- accounting for a distributeion
86391 --
86392
86393 --
86394 -- 5217187
86395 --
86399 --
86396 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
86397 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
86398 g_array_event(l_event_id).array_value_num('header_index'));
86400 --
86401
86402 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
86403 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_23(Idx);
86404 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
86405 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_24(Idx);
86406 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
86407 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_7(Idx));
86408 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
86409 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_25(Idx);
86410 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
86411 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_26(Idx);
86412 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
86413 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_27(Idx);
86414 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
86415 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_28(Idx);
86416 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
86417 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_29(Idx);
86418 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
86419 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_30(Idx);
86420 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
86421 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_31(Idx);
86422 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
86423 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_4(Idx));
86424 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
86425 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_25(Idx);
86426 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
86427 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_26(Idx);
86428 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
86429 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_27(Idx);
86430 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
86431 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_28(Idx);
86432 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
86433 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_29(Idx);
86434 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
86435 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_30(Idx);
86436 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
86437 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_32(Idx);
86438 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
86439 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_33');
86440 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
86441 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_34(Idx);
86442 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
86443 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_35(Idx);
86444 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
86445 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_33');
86446 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
86447 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_36(Idx);
86448 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
86449 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_35(Idx);
86450
86451
86452 xla_ae_lines_pkg.SetAcctReversalAttrs
86453 (p_event_id => l_event_id
86454 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
86455 ,p_calculate_acctd_flag => l_calculate_acctd_flag
86456 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
86457 END IF;
86458
86459 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
86460 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
86461
86462 --
86463 AcctLineType_66 (
86464 p_application_id => p_application_id
86465 ,p_event_id => l_event_id
86466 ,p_calculate_acctd_flag => l_calculate_acctd_flag
86467 ,p_calculate_g_l_flag => l_calculate_g_l_flag
86468 ,p_actual_flag => l_actual_flag
86469 ,p_balance_type_code => l_balance_type_code
86470 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
86471
86472 , p_source_4 => l_array_source_4(Idx)
86473 , p_source_5 => l_array_source_5(Idx)
86474 , p_source_6 => l_array_source_6(Idx)
86475 , p_source_7 => l_array_source_7(Idx)
86476 , p_source_23 => l_array_source_23(Idx)
86477 , p_source_24 => l_array_source_24(Idx)
86478 , p_source_25 => l_array_source_25(Idx)
86479 , p_source_26 => l_array_source_26(Idx)
86480 , p_source_27 => l_array_source_27(Idx)
86481 , p_source_28 => l_array_source_28(Idx)
86482 , p_source_29 => l_array_source_29(Idx)
86483 , p_source_30 => l_array_source_30(Idx)
86484 , p_source_31 => l_array_source_31(Idx)
86485 , p_source_32 => l_array_source_32(Idx)
86486 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
86487 , p_source_34 => l_array_source_34(Idx)
86488 , p_source_35 => l_array_source_35(Idx)
86489 , p_source_35_meaning => l_array_source_35_meaning(Idx)
86490 , p_source_36 => l_array_source_36(Idx)
86491 );
86492 If(l_balance_type_code = 'A') THEN
86496 --
86493 l_actual_gain_loss_ref := l_gain_or_loss_ref;
86494 END IF;
86495
86497
86498
86499 --
86500 AcctLineType_86 (
86501 p_application_id => p_application_id
86502 ,p_event_id => l_event_id
86503 ,p_calculate_acctd_flag => l_calculate_acctd_flag
86504 ,p_calculate_g_l_flag => l_calculate_g_l_flag
86505 ,p_actual_flag => l_actual_flag
86506 ,p_balance_type_code => l_balance_type_code
86507 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
86508
86509 , p_source_4 => l_array_source_4(Idx)
86510 , p_source_5 => l_array_source_5(Idx)
86511 , p_source_7 => l_array_source_7(Idx)
86512 , p_source_8 => l_array_source_8(Idx)
86513 , p_source_23 => l_array_source_23(Idx)
86514 , p_source_24 => l_array_source_24(Idx)
86515 , p_source_25 => l_array_source_25(Idx)
86516 , p_source_26 => l_array_source_26(Idx)
86517 , p_source_27 => l_array_source_27(Idx)
86518 , p_source_28 => l_array_source_28(Idx)
86519 , p_source_29 => l_array_source_29(Idx)
86520 , p_source_30 => l_array_source_30(Idx)
86521 , p_source_31 => l_array_source_31(Idx)
86522 , p_source_32 => l_array_source_32(Idx)
86523 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
86524 , p_source_34 => l_array_source_34(Idx)
86525 , p_source_35 => l_array_source_35(Idx)
86526 , p_source_35_meaning => l_array_source_35_meaning(Idx)
86527 , p_source_36 => l_array_source_36(Idx)
86528 );
86529 If(l_balance_type_code = 'A') THEN
86530 l_actual_gain_loss_ref := l_gain_or_loss_ref;
86531 END IF;
86532
86533 --
86534
86535
86536 --
86537 AcctLineType_103 (
86538 p_application_id => p_application_id
86539 ,p_event_id => l_event_id
86540 ,p_calculate_acctd_flag => l_calculate_acctd_flag
86541 ,p_calculate_g_l_flag => l_calculate_g_l_flag
86542 ,p_actual_flag => l_actual_flag
86543 ,p_balance_type_code => l_balance_type_code
86544 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
86545
86546 , p_source_4 => l_array_source_4(Idx)
86547 , p_source_5 => l_array_source_5(Idx)
86548 , p_source_7 => l_array_source_7(Idx)
86549 , p_source_8 => l_array_source_8(Idx)
86550 , p_source_23 => l_array_source_23(Idx)
86551 , p_source_24 => l_array_source_24(Idx)
86552 , p_source_25 => l_array_source_25(Idx)
86553 , p_source_26 => l_array_source_26(Idx)
86554 , p_source_27 => l_array_source_27(Idx)
86555 , p_source_28 => l_array_source_28(Idx)
86556 , p_source_29 => l_array_source_29(Idx)
86557 , p_source_30 => l_array_source_30(Idx)
86558 , p_source_31 => l_array_source_31(Idx)
86559 , p_source_32 => l_array_source_32(Idx)
86560 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
86561 , p_source_34 => l_array_source_34(Idx)
86562 , p_source_35 => l_array_source_35(Idx)
86563 , p_source_35_meaning => l_array_source_35_meaning(Idx)
86564 , p_source_36 => l_array_source_36(Idx)
86565 );
86566 If(l_balance_type_code = 'A') THEN
86567 l_actual_gain_loss_ref := l_gain_or_loss_ref;
86568 END IF;
86569
86570 --
86571
86572
86573 --
86574 AcctLineType_112 (
86575 p_application_id => p_application_id
86576 ,p_event_id => l_event_id
86577 ,p_calculate_acctd_flag => l_calculate_acctd_flag
86578 ,p_calculate_g_l_flag => l_calculate_g_l_flag
86579 ,p_actual_flag => l_actual_flag
86580 ,p_balance_type_code => l_balance_type_code
86581 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
86582
86583 , p_source_4 => l_array_source_4(Idx)
86584 , p_source_5 => l_array_source_5(Idx)
86585 , p_source_6 => l_array_source_6(Idx)
86586 , p_source_7 => l_array_source_7(Idx)
86587 , p_source_23 => l_array_source_23(Idx)
86588 , p_source_24 => l_array_source_24(Idx)
86589 , p_source_25 => l_array_source_25(Idx)
86590 , p_source_26 => l_array_source_26(Idx)
86591 , p_source_27 => l_array_source_27(Idx)
86592 , p_source_28 => l_array_source_28(Idx)
86593 , p_source_29 => l_array_source_29(Idx)
86594 , p_source_30 => l_array_source_30(Idx)
86595 , p_source_31 => l_array_source_31(Idx)
86596 , p_source_32 => l_array_source_32(Idx)
86597 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
86598 , p_source_34 => l_array_source_34(Idx)
86599 , p_source_35 => l_array_source_35(Idx)
86600 , p_source_35_meaning => l_array_source_35_meaning(Idx)
86601 , p_source_36 => l_array_source_36(Idx)
86602 );
86603 If(l_balance_type_code = 'A') THEN
86604 l_actual_gain_loss_ref := l_gain_or_loss_ref;
86605 END IF;
86606
86607 --
86608
86609 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
86610 -- or secondary ledger that has different currency with primary
86611 -- or alc that is calculated by sla
86612 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
86613 (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'))
86614
86615 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
86616 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
86617 AND (l_actual_flag = 'A')) THEN
86618 XLA_AE_LINES_PKG.CreateGainOrLossLines(
86619 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
86620 ,p_application_id => p_application_id
86621 ,p_amb_context_code => 'DEFAULT'
86622 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
86623 ,p_event_class_code => C_EVENT_CLASS_CODE
86624 ,p_event_type_code => C_EVENT_TYPE_CODE
86625
86626 ,p_gain_ccid => -1
86627 ,p_loss_ccid => -1
86628
86629 ,p_actual_flag => l_actual_flag
86630 ,p_enc_flag => null
86634 END IF;
86631 ,p_actual_g_l_ref => l_actual_gain_loss_ref
86632 ,p_enc_g_l_ref => null
86633 );
86635 END IF;
86636 END IF;
86637
86638 ELSE
86639 --
86640 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
86641 --
86642 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86643 trace
86644 (p_msg => 'Trancaction revesal option is Y'
86645 ,p_level => C_LEVEL_STATEMENT
86646 ,p_module => l_log_module);
86647 END IF;
86648 END IF;
86649
86650 END LOOP;
86651 l_result := XLA_AE_LINES_PKG.InsertLines ;
86652 end loop;
86653 close line_cur;
86654
86655
86656 --
86657 -- insert headers into xla_ae_headers_gt table
86658 --
86659 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
86660
86661 -- insert into errors table here.
86662
86663 END LOOP;
86664
86665 --
86666 -- 4865292
86667 --
86668 -- Compare g_hdr_extract_count with event count in
86669 -- CreateHeadersAndLines.
86670 --
86671 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
86672
86673 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86674 trace (p_msg => '# rows extracted from header extract objects '
86675 || ' (running total): '
86676 || g_hdr_extract_count
86677 ,p_level => C_LEVEL_STATEMENT
86678 ,p_module => l_log_module);
86679 END IF;
86680
86681 CLOSE header_cur;
86682 --
86683
86684 --
86685 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86686 trace
86687 (p_msg => 'END of EventClass_156'
86688 ,p_level => C_LEVEL_PROCEDURE
86689 ,p_module => l_log_module);
86690 END IF;
86691 --
86692 RETURN l_result;
86693 EXCEPTION
86694 WHEN xla_exceptions_pkg.application_exception THEN
86695
86696 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
86697
86698
86699 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
86700
86701 RAISE;
86702 WHEN OTHERS THEN
86703 xla_exceptions_pkg.raise_message
86704 (p_location => 'XLA_00275_AAD_S_000015_PKG.EventClass_156');
86705 END EventClass_156;
86706 --
86707
86708 ---------------------------------------
86709 --
86710 -- PRIVATE PROCEDURE
86711 -- insert_sources_157
86712 --
86713 ----------------------------------------
86714 --
86715 PROCEDURE insert_sources_157(
86716 p_target_ledger_id IN NUMBER
86717 , p_language IN VARCHAR2
86718 , p_sla_ledger_id IN NUMBER
86719 , p_pad_start_date IN DATE
86720 , p_pad_end_date IN DATE
86721 )
86722 IS
86723
86724 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'MISC_COST_ADJ_ALL';
86725 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'MISC_COST_ADJ';
86726 p_apps_owner VARCHAR2(30);
86727 l_log_module VARCHAR2(240);
86728 BEGIN
86729 IF g_log_enabled THEN
86730 l_log_module := C_DEFAULT_MODULE||'.insert_sources_157';
86731 END IF;
86732 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86733
86734 trace
86735 (p_msg => 'BEGIN of insert_sources_157'
86736 ,p_level => C_LEVEL_PROCEDURE
86737 ,p_module => l_log_module);
86738
86739 END IF;
86740
86741 -- select APPS owner
86742 SELECT oracle_username
86743 INTO p_apps_owner
86744 FROM fnd_oracle_userid
86745 WHERE read_only_flag = 'U'
86746 ;
86747
86748 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86749 trace
86750 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
86751 ' - p_language = '||p_language||
86752 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
86753 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
86754 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
86755 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
86756 ,p_level => C_LEVEL_STATEMENT
86757 ,p_module => l_log_module);
86758 END IF;
86759
86760
86761 --
86762 INSERT INTO xla_diag_sources --hdr2
86763 (
86764 event_id
86765 , ledger_id
86766 , sla_ledger_id
86767 , description_language
86768 , object_name
86769 , object_type_code
86770 , line_number
86771 , source_application_id
86772 , source_type_code
86773 , source_code
86774 , source_value
86775 , source_meaning
86776 , created_by
86777 , creation_date
86778 , last_update_date
86779 , last_updated_by
86780 , last_update_login
86781 , program_update_date
86782 , program_application_id
86783 , program_id
86784 , request_id
86785 )
86786 SELECT
86787 event_id
86788 , p_target_ledger_id
86789 , p_sla_ledger_id
86790 , p_language
86791 , object_name
86792 , object_type_code
86793 , line_number
86794 , source_application_id
86795 , source_type_code
86796 , source_code
86797 , SUBSTR(source_value ,1,1996)
86798 , SUBSTR(source_meaning ,1,200)
86799 , xla_environment_pkg.g_Usr_Id
86800 , TRUNC(SYSDATE)
86801 , TRUNC(SYSDATE)
86802 , xla_environment_pkg.g_Usr_Id
86803 , xla_environment_pkg.g_Login_Id
86804 , TRUNC(SYSDATE)
86808 FROM (
86805 , xla_environment_pkg.g_Prog_Appl_Id
86806 , xla_environment_pkg.g_Prog_Id
86807 , xla_environment_pkg.g_Req_Id
86809 SELECT xet.event_id event_id
86810 , 0 line_number
86811 , CASE r
86812 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
86813 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
86814
86815 ELSE null
86816 END object_name
86817 , CASE r
86818 WHEN 1 THEN 'HEADER'
86819 WHEN 2 THEN 'HEADER'
86820
86821 ELSE null
86822 END object_type_code
86823 , CASE r
86824 WHEN 1 THEN '275'
86825 WHEN 2 THEN '275'
86826
86827 ELSE null
86828 END source_application_id
86829 , 'S' source_type_code
86830 , CASE r
86831 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
86832 WHEN 2 THEN 'GL_DATE'
86833
86834 ELSE null
86835 END source_code
86836 , CASE r
86837 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
86838 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
86839
86840 ELSE null
86841 END source_value
86842 , null source_meaning
86843 FROM xla_events_gt xet
86844 , PA_XLA_EXP_HEADER_V h2
86845 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
86846 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
86847 AND xet.event_class_code = C_EVENT_CLASS_CODE
86848 AND h2.event_id = xet.event_id
86849
86850 )
86851 ;
86852 --
86853 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86854
86855 trace
86856 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
86857 ,p_level => C_LEVEL_STATEMENT
86858 ,p_module => l_log_module);
86859
86860 END IF;
86861 --
86862
86863
86864
86865 --
86866 INSERT INTO xla_diag_sources --line2
86867 (
86868 event_id
86869 , ledger_id
86870 , sla_ledger_id
86871 , description_language
86872 , object_name
86873 , object_type_code
86874 , line_number
86875 , source_application_id
86876 , source_type_code
86877 , source_code
86878 , source_value
86879 , source_meaning
86880 , created_by
86881 , creation_date
86882 , last_update_date
86883 , last_updated_by
86884 , last_update_login
86885 , program_update_date
86886 , program_application_id
86887 , program_id
86888 , request_id
86889 )
86890 SELECT event_id
86891 , p_target_ledger_id
86892 , p_sla_ledger_id
86893 , p_language
86894 , object_name
86895 , object_type_code
86896 , line_number
86897 , source_application_id
86898 , source_type_code
86899 , source_code
86900 , SUBSTR(source_value,1,1996)
86901 , SUBSTR(source_meaning ,1,200)
86902 , xla_environment_pkg.g_Usr_Id
86903 , TRUNC(SYSDATE)
86904 , TRUNC(SYSDATE)
86905 , xla_environment_pkg.g_Usr_Id
86906 , xla_environment_pkg.g_Login_Id
86907 , TRUNC(SYSDATE)
86908 , xla_environment_pkg.g_Prog_Appl_Id
86909 , xla_environment_pkg.g_Prog_Id
86910 , xla_environment_pkg.g_Req_Id
86911 FROM (
86912 SELECT xet.event_id event_id
86913 , l1.line_number line_number
86914 , CASE r
86915 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
86916 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
86917 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
86918 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
86919 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
86920 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
86921 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
86922 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
86923 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
86924 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
86925 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
86926 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
86927 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
86928 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
86929 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
86930 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
86931 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
86932 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
86933
86934 ELSE null
86935 END object_name
86936 , CASE r
86937 WHEN 1 THEN 'LINE'
86938 WHEN 2 THEN 'LINE'
86939 WHEN 3 THEN 'LINE'
86940 WHEN 4 THEN 'LINE'
86941 WHEN 5 THEN 'LINE'
86942 WHEN 6 THEN 'LINE'
86943 WHEN 7 THEN 'LINE'
86944 WHEN 8 THEN 'LINE'
86945 WHEN 9 THEN 'LINE'
86946 WHEN 10 THEN 'LINE'
86947 WHEN 11 THEN 'LINE'
86948 WHEN 12 THEN 'LINE'
86949 WHEN 13 THEN 'LINE'
86950 WHEN 14 THEN 'LINE'
86951 WHEN 15 THEN 'LINE'
86952 WHEN 16 THEN 'LINE'
86953 WHEN 17 THEN 'LINE'
86957 END object_type_code
86954 WHEN 18 THEN 'LINE'
86955
86956 ELSE null
86958 , CASE r
86959 WHEN 1 THEN '275'
86960 WHEN 2 THEN '275'
86961 WHEN 3 THEN '275'
86962 WHEN 4 THEN '275'
86963 WHEN 5 THEN '275'
86964 WHEN 6 THEN '275'
86965 WHEN 7 THEN '275'
86966 WHEN 8 THEN '275'
86967 WHEN 9 THEN '275'
86968 WHEN 10 THEN '275'
86969 WHEN 11 THEN '275'
86970 WHEN 12 THEN '275'
86971 WHEN 13 THEN '275'
86972 WHEN 14 THEN '275'
86973 WHEN 15 THEN '275'
86974 WHEN 16 THEN '275'
86975 WHEN 17 THEN '275'
86976 WHEN 18 THEN '275'
86977
86978 ELSE null
86979 END source_application_id
86980 , 'S' source_type_code
86981 , CASE r
86982 WHEN 1 THEN 'COST_CCID'
86983 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
86984 WHEN 3 THEN 'ADJ_COST_CCID'
86985 WHEN 4 THEN 'COST_CLEARING_CCID'
86986 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
86987 WHEN 6 THEN 'REVERSING_LINE_FLAG'
86988 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
86989 WHEN 8 THEN 'ENTERED_RAW_COST'
86990 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
86991 WHEN 10 THEN 'ACCT_RAW_COST'
86992 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
86993 WHEN 12 THEN 'EXCHANGE_RATE'
86994 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
86995 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
86996 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
86997 WHEN 16 THEN 'LINE_NUMBER'
86998 WHEN 17 THEN 'LINE_TYPE'
86999 WHEN 18 THEN 'LINE_NUM_REVERSED'
87000
87001 ELSE null
87002 END source_code
87003 , CASE r
87004 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
87005 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
87006 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
87007 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
87008 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
87009 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
87010 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
87011 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
87012 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
87013 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
87014 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
87015 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
87016 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
87017 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
87018 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
87019 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
87020 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
87021 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
87022
87023 ELSE null
87024 END source_value
87025 , CASE r
87026 WHEN 2 THEN XLA_00275_AAD_S_000015_PKG.GetMeaning(
87027 103371
87028 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
87029 ,'ALLOW_OVERRIDE_CCID_FLAG'
87030 ,'S'
87031 ,275)
87032 WHEN 17 THEN fvl35.meaning
87033
87034 ELSE null
87035 END source_meaning
87036 FROM xla_events_gt xet
87037 , PA_XLA_CDL_LINES_V l1
87038 , fnd_lookup_values fvl35
87039 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
87040 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
87041 AND xet.event_class_code = C_EVENT_CLASS_CODE
87042 AND l1.event_id = xet.event_id
87043 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
87044 AND fvl35.lookup_code(+) = l1.LINE_TYPE
87045 AND fvl35.view_application_id(+) = 275
87046 AND fvl35.language(+) = USERENV('LANG')
87047
87048 )
87049 ;
87050 --
87051 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
87052
87053 trace
87054 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
87055 ,p_level => C_LEVEL_STATEMENT
87056 ,p_module => l_log_module);
87057
87058 END IF;
87059
87060
87061 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
87062 trace
87063 (p_msg => 'END of insert_sources_157'
87064 ,p_level => C_LEVEL_PROCEDURE
87065 ,p_module => l_log_module);
87066 END IF;
87067 EXCEPTION
87068 WHEN xla_exceptions_pkg.application_exception THEN
87069 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
87070 trace
87071 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
87072 ,p_level => C_LEVEL_EXCEPTION
87073 ,p_module => l_log_module);
87074 END IF;
87075 RAISE;
87076 WHEN OTHERS THEN
87077 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
87078 trace
87079 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
87080 ,p_level => C_LEVEL_EXCEPTION
87081 ,p_module => l_log_module);
87082 END IF;
87086 --
87083 xla_exceptions_pkg.raise_message
87084 (p_location => 'XLA_00275_AAD_S_000015_PKG.insert_sources_157');
87085 END insert_sources_157;
87087
87088 ---------------------------------------
87089 --
87090 -- PRIVATE FUNCTION
87091 -- EventClass_157
87092 --
87093 ----------------------------------------
87094 --
87095 FUNCTION EventClass_157
87096 (p_application_id IN NUMBER
87097 ,p_base_ledger_id IN NUMBER
87098 ,p_target_ledger_id IN NUMBER
87099 ,p_language IN VARCHAR2
87100 ,p_currency_code IN VARCHAR2
87101 ,p_sla_ledger_id IN NUMBER
87102 ,p_pad_start_date IN DATE
87103 ,p_pad_end_date IN DATE
87104 ,p_primary_ledger_id IN NUMBER)
87105 RETURN BOOLEAN IS
87106 --
87107 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'MISC_COST_ADJ_ALL';
87108 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'MISC_COST_ADJ';
87109
87110 l_calculate_acctd_flag VARCHAR2(1) :='N';
87111 l_calculate_g_l_flag VARCHAR2(1) :='N';
87112 --
87113 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
87114 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
87115 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
87116 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
87117 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
87118 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
87119 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
87120 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
87121 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
87122 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
87123 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
87124 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
87125 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
87126 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
87127 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
87128 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
87129 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
87130 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
87131 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
87132 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
87133 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
87134 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
87135 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
87136 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
87137
87138 l_event_id NUMBER;
87139 l_previous_event_id NUMBER;
87140 l_first_event_id NUMBER;
87141 l_last_event_id NUMBER;
87142
87143 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
87144 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
87145 --
87146 --
87147 l_result BOOLEAN := TRUE;
87148 l_rows NUMBER := 1000;
87149 l_event_type_name VARCHAR2(80) := 'All';
87150 l_event_class_name VARCHAR2(80) := 'Miscelleneous Cost Adjustment';
87151 l_description VARCHAR2(4000);
87152 l_transaction_reversal NUMBER;
87153 l_ae_header_id NUMBER;
87154 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
87155 l_log_module VARCHAR2(240);
87156 --
87157 l_acct_reversal_source VARCHAR2(30);
87158 l_trx_reversal_source VARCHAR2(30);
87159
87160 l_continue_with_lines BOOLEAN := TRUE;
87161 --
87162 l_acc_rev_gl_date_source DATE; -- 4262811
87163 --
87164 type t_array_event_id is table of number index by binary_integer;
87165
87166 l_rec_array_event t_rec_array_event;
87167 l_null_rec_array_event t_rec_array_event;
87168 l_array_ae_header_id xla_number_array_type;
87169 l_actual_flag VARCHAR2(1) := NULL;
87170 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
87171 l_balance_type_code VARCHAR2(1) :=NULL;
87172 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
87173
87174 --
87175 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
87176 --
87177
87178 TYPE t_array_source_33 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
87179 TYPE t_array_source_75 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
87180
87181 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
87182 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
87183 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
87184 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
87185 TYPE t_array_source_8 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
87186 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
87187 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
87188 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
87189 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
87193 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
87190 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
87191 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
87192 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
87194 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
87195 TYPE t_array_source_32 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
87196 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
87197 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
87198 TYPE t_array_source_36 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
87199
87200 l_array_source_33 t_array_source_33;
87201 l_array_source_75 t_array_source_75;
87202
87203 l_array_source_4 t_array_source_4;
87204 l_array_source_5 t_array_source_5;
87205 l_array_source_6 t_array_source_6;
87206 l_array_source_7 t_array_source_7;
87207 l_array_source_8 t_array_source_8;
87208 l_array_source_23 t_array_source_23;
87209 l_array_source_24 t_array_source_24;
87210 l_array_source_25 t_array_source_25;
87211 l_array_source_26 t_array_source_26;
87212 l_array_source_27 t_array_source_27;
87213 l_array_source_28 t_array_source_28;
87214 l_array_source_29 t_array_source_29;
87215 l_array_source_30 t_array_source_30;
87216 l_array_source_31 t_array_source_31;
87217 l_array_source_32 t_array_source_32;
87218 l_array_source_34 t_array_source_34;
87219 l_array_source_35 t_array_source_35;
87220 l_array_source_35_meaning t_array_lookup_meaning;
87221 l_array_source_36 t_array_source_36;
87222
87223 --
87224 CURSOR header_cur
87225 IS
87226 SELECT /*+ leading(xet) cardinality(xet,1) */
87227 -- Event Class Code: MISC_COST_ADJ
87228 xet.entity_id
87229 ,xet.legal_entity_id
87230 ,xet.entity_code
87231 ,xet.transaction_number
87232 ,xet.event_id
87233 ,xet.event_class_code
87234 ,xet.event_type_code
87235 ,xet.event_number
87236 ,xet.event_date
87237 ,xet.transaction_date
87238 ,xet.reference_num_1
87239 ,xet.reference_num_2
87240 ,xet.reference_num_3
87241 ,xet.reference_num_4
87242 ,xet.reference_char_1
87243 ,xet.reference_char_2
87244 ,xet.reference_char_3
87245 ,xet.reference_char_4
87246 ,xet.reference_date_1
87247 ,xet.reference_date_2
87248 ,xet.reference_date_3
87249 ,xet.reference_date_4
87250 ,xet.event_created_by
87251 ,xet.budgetary_control_flag
87252 , h2.EXPENDITURE_ITEM_ID source_33
87253 , h2.GL_DATE source_75
87254 FROM xla_events_gt xet
87255 , PA_XLA_EXP_HEADER_V h2
87256 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
87257 and xet.event_class_code = C_EVENT_CLASS_CODE
87258 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
87259
87260 ORDER BY event_id
87261 ;
87262
87263
87264 --
87265 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
87266 IS
87267 SELECT /*+ leading(xet) cardinality(xet,1) */
87268 -- Event Class Code: MISC_COST_ADJ
87269 xet.entity_id
87270 ,xet.legal_entity_id
87271 ,xet.entity_code
87272 ,xet.transaction_number
87273 ,xet.event_id
87274 ,xet.event_class_code
87275 ,xet.event_type_code
87276 ,xet.event_number
87277 ,xet.event_date
87278 ,xet.transaction_date
87279 ,xet.reference_num_1
87280 ,xet.reference_num_2
87281 ,xet.reference_num_3
87282 ,xet.reference_num_4
87283 ,xet.reference_char_1
87284 ,xet.reference_char_2
87285 ,xet.reference_char_3
87286 ,xet.reference_char_4
87287 ,xet.reference_date_1
87288 ,xet.reference_date_2
87289 ,xet.reference_date_3
87290 ,xet.reference_date_4
87291 ,xet.event_created_by
87292 ,xet.budgetary_control_flag
87293 , l1.LINE_NUMBER
87294 , l1.COST_CCID source_4
87295 , l1.ALLOW_OVERRIDE_CCID_FLAG source_5
87296 , l1.ADJ_COST_CCID source_6
87297 , l1.COST_CLEARING_CCID source_7
87298 , l1.ADJ_COST_CLEARING_CCID source_8
87299 , l1.REVERSING_LINE_FLAG source_23
87300 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_24
87301 , l1.ENTERED_RAW_COST source_25
87302 , l1.ENTERED_CURRENCY_CODE source_26
87303 , l1.ACCT_RAW_COST source_27
87304 , l1.EXCHANGE_RATE_DATE source_28
87305 , l1.EXCHANGE_RATE source_29
87306 , l1.EXCHANGE_RATE_TYPE source_30
87307 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_31
87308 , l1.USE_ACT_UPG_ATTRIB_FLAG source_32
87309 , l1.LINE_NUMBER source_34
87310 , l1.LINE_TYPE source_35
87311 , fvl35.meaning source_35_meaning
87312 , l1.LINE_NUM_REVERSED source_36
87313 FROM xla_events_gt xet
87314 , PA_XLA_CDL_LINES_V l1
87315 , fnd_lookup_values fvl35
87316 WHERE xet.event_id between x_first_event_id and x_last_event_id
87317 and xet.event_date between p_pad_start_date and p_pad_end_date
87318 and xet.event_class_code = C_EVENT_CLASS_CODE
87319 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
87320 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
87321 AND fvl35.lookup_code(+) = l1.LINE_TYPE
87322 AND fvl35.view_application_id(+) = 275
87323 AND fvl35.language(+) = USERENV('LANG')
87324 ;
87325
87326 --
87327 BEGIN
87328 IF g_log_enabled THEN
87329 l_log_module := C_DEFAULT_MODULE||'.EventClass_157';
87330 END IF;
87331 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
87335 ,p_module => l_log_module);
87332 trace
87333 (p_msg => 'BEGIN of EventClass_157'
87334 ,p_level => C_LEVEL_PROCEDURE
87336 END IF;
87337
87338 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
87339 trace
87340 (p_msg => 'p_application_id = '||p_application_id||
87341 ' - p_base_ledger_id = '||p_base_ledger_id||
87342 ' - p_target_ledger_id = '||p_target_ledger_id||
87343 ' - p_language = '||p_language||
87344 ' - p_currency_code = '||p_currency_code||
87345 ' - p_sla_ledger_id = '||p_sla_ledger_id
87346 ,p_level => C_LEVEL_STATEMENT
87347 ,p_module => l_log_module);
87348 END IF;
87349 --
87350 -- initialze arrays
87351 --
87352 g_array_event.DELETE;
87353 l_rec_array_event := l_null_rec_array_event;
87354 --
87355 --------------------------------------
87356 -- 4262811 Initialze MPA Line Number
87357 --------------------------------------
87358 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
87359
87360 --
87361
87362 --
87363 OPEN header_cur;
87364 --
87365 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
87366 trace
87367 (p_msg => 'SQL - FETCH header_cur'
87368 ,p_level => C_LEVEL_STATEMENT
87369 ,p_module => l_log_module);
87370 END IF;
87371 --
87372 LOOP
87373 FETCH header_cur BULK COLLECT INTO
87374 l_array_entity_id
87375 , l_array_legal_entity_id
87376 , l_array_entity_code
87377 , l_array_transaction_num
87378 , l_array_event_id
87379 , l_array_class_code
87380 , l_array_event_type
87381 , l_array_event_number
87382 , l_array_event_date
87383 , l_array_transaction_date
87384 , l_array_reference_num_1
87385 , l_array_reference_num_2
87386 , l_array_reference_num_3
87387 , l_array_reference_num_4
87388 , l_array_reference_char_1
87389 , l_array_reference_char_2
87390 , l_array_reference_char_3
87391 , l_array_reference_char_4
87392 , l_array_reference_date_1
87393 , l_array_reference_date_2
87394 , l_array_reference_date_3
87395 , l_array_reference_date_4
87396 , l_array_event_created_by
87397 , l_array_budgetary_control_flag
87398 , l_array_source_33
87399 , l_array_source_75
87400 LIMIT l_rows;
87401 --
87402 IF (C_LEVEL_EVENT >= g_log_level) THEN
87403 trace
87404 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
87405 ,p_level => C_LEVEL_EVENT
87406 ,p_module => l_log_module);
87407 END IF;
87408 --
87409 EXIT WHEN l_array_entity_id.COUNT = 0;
87410
87411 -- initialize arrays
87412 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
87413 XLA_AE_LINES_PKG.g_rec_lines := NULL;
87414
87415 --
87416 -- Bug 4458708
87417 --
87418 XLA_AE_LINES_PKG.g_LineNumber := 0;
87419
87420
87421 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
87422 g_last_hdr_idx := l_array_event_id.LAST;
87423 --
87424 -- loop for the headers. Each iteration is for each header extract row
87425 -- fetched in header cursor
87426 --
87427 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
87428
87429 --
87430 -- set event info as cache for other routines to refer event attributes
87431 --
87432 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
87433 (p_application_id => p_application_id
87434 ,p_primary_ledger_id => p_primary_ledger_id
87435 ,p_base_ledger_id => p_base_ledger_id
87436 ,p_target_ledger_id => p_target_ledger_id
87437 ,p_entity_id => l_array_entity_id(hdr_idx)
87438 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
87439 ,p_entity_code => l_array_entity_code(hdr_idx)
87440 ,p_transaction_num => l_array_transaction_num(hdr_idx)
87441 ,p_event_id => l_array_event_id(hdr_idx)
87442 ,p_event_class_code => l_array_class_code(hdr_idx)
87443 ,p_event_type_code => l_array_event_type(hdr_idx)
87444 ,p_event_number => l_array_event_number(hdr_idx)
87445 ,p_event_date => l_array_event_date(hdr_idx)
87446 ,p_transaction_date => l_array_transaction_date(hdr_idx)
87447 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
87448 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
87449 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
87450 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
87451 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
87452 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
87453 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
87454 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
87455 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
87456 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
87457 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
87458 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
87459 ,p_event_created_by => l_array_event_created_by(hdr_idx)
87460 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
87461
87462 --
87463 -- set the status of entry to C_VALID (0)
87464 --
87465 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
87466
87467 --
87468 -- initialize a row for ae header
87469 --
87470 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
87471
87472 l_event_id := l_array_event_id(hdr_idx);
87473
87474 --
87475 -- storing the hdr_idx for event. May be used by line cursor.
87479 --
87476 --
87477 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
87478
87480 -- store sources from header extract. This can be improved to
87481 -- store only those sources from header extract that may be used in lines
87482 --
87483
87484 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
87485 g_array_event(l_event_id).array_value_date('source_75') := l_array_source_75(hdr_idx);
87486
87487 --
87488 -- initilaize the status of ae headers for diffrent balance types
87489 -- the status is initialised to C_NOT_CREATED (2)
87490 --
87491 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
87492 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
87493 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
87494
87495 --
87496 -- call api to validate and store accounting attributes for header
87497 --
87498
87499 ------------------------------------------------------------
87500 -- Accrual Reversal : to get date for Standard Source (NONE)
87501 ------------------------------------------------------------
87502 l_acc_rev_gl_date_source := NULL;
87503
87504 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
87505 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_75');
87506
87507
87508 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
87509
87510 XLA_AE_HEADER_PKG.SetJeCategoryName;
87511
87512 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
87513 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
87514 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
87515 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
87516 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
87517
87518
87519 -- No header level analytical criteria
87520
87521 --
87522 --accounting attribute enhancement, bug 3612931
87523 --
87524 l_trx_reversal_source := SUBSTR(NULL, 1,30);
87525
87526 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
87527 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
87528
87529 xla_accounting_err_pkg.build_message
87530 (p_appli_s_name => 'XLA'
87531 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
87532 ,p_token_1 => 'ACCT_ATTR_NAME'
87533 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
87534 ,p_token_2 => 'PRODUCT_NAME'
87535 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
87536 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
87537 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
87538 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
87539
87540 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
87541 --
87542 -- following sets the accounting attributes needed to reverse
87543 -- accounting for a distributeion
87544 --
87545 xla_ae_lines_pkg.SetTrxReversalAttrs
87546 (p_event_id => l_event_id
87547 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
87548 ,p_trx_reversal_source => l_trx_reversal_source);
87549
87550 END IF;
87551
87552
87553 ----------------------------------------------------------------
87554 -- 4262811 - update the header statuses to invalid in need be
87555 ----------------------------------------------------------------
87556 --
87557 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
87558
87559
87560 -----------------------------------------------
87561 -- No accrual reversal for the event class/type
87562 -----------------------------------------------
87563 ----------------------------------------------------------------
87564
87565 --
87566 -- this ends the header loop iteration for one bulk fetch
87567 --
87568 END LOOP;
87569
87570 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
87571 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
87572
87573 --
87574 -- insert dummy rows into lines gt table that were created due to
87575 -- transaction reversals
87576 --
87577 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
87578 l_result := XLA_AE_LINES_PKG.InsertLines;
87579 END IF;
87580
87581 --
87582 -- reset the temp_line_num for each set of events fetched from header
87583 -- cursor rather than doing it for each new event in line cursor
87584 -- Bug 3939231
87585 --
87586 xla_ae_lines_pkg.g_temp_line_num := 0;
87587
87588
87589
87590 --
87591 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
87592 --
87593 --
87594 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
87595
87596 trace
87597 (p_msg => 'SQL - FETCH line_cur'
87598 ,p_level => C_LEVEL_STATEMENT
87599 ,p_module => l_log_module);
87600
87601 END IF;
87602 --
87603 --
87604 LOOP
87605 --
87606 FETCH line_cur BULK COLLECT INTO
87607 l_array_entity_id
87608 , l_array_legal_entity_id
87609 , l_array_entity_code
87610 , l_array_transaction_num
87611 , l_array_event_id
87612 , l_array_class_code
87613 , l_array_event_type
87614 , l_array_event_number
87615 , l_array_event_date
87616 , l_array_transaction_date
87620 , l_array_reference_num_4
87617 , l_array_reference_num_1
87618 , l_array_reference_num_2
87619 , l_array_reference_num_3
87621 , l_array_reference_char_1
87622 , l_array_reference_char_2
87623 , l_array_reference_char_3
87624 , l_array_reference_char_4
87625 , l_array_reference_date_1
87626 , l_array_reference_date_2
87627 , l_array_reference_date_3
87628 , l_array_reference_date_4
87629 , l_array_event_created_by
87630 , l_array_budgetary_control_flag
87631 , l_array_extract_line_num
87632 , l_array_source_4
87633 , l_array_source_5
87634 , l_array_source_6
87635 , l_array_source_7
87636 , l_array_source_8
87637 , l_array_source_23
87638 , l_array_source_24
87639 , l_array_source_25
87640 , l_array_source_26
87641 , l_array_source_27
87642 , l_array_source_28
87643 , l_array_source_29
87644 , l_array_source_30
87645 , l_array_source_31
87646 , l_array_source_32
87647 , l_array_source_34
87648 , l_array_source_35
87649 , l_array_source_35_meaning
87650 , l_array_source_36
87651 LIMIT l_rows;
87652
87653 --
87654 IF (C_LEVEL_EVENT >= g_log_level) THEN
87655 trace
87656 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
87657 ,p_level => C_LEVEL_EVENT
87658 ,p_module => l_log_module);
87659 END IF;
87660 --
87661 EXIT WHEN l_array_entity_id.count = 0;
87662
87663 XLA_AE_LINES_PKG.g_rec_lines := null;
87664
87665 --
87666 -- Bug 4458708
87667 --
87668 XLA_AE_LINES_PKG.g_LineNumber := 0;
87669 --
87670 --
87671
87672 FOR Idx IN 1..l_array_event_id.count LOOP
87673 --
87674 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
87675 --
87676 l_event_id := l_array_event_id(idx); -- 5648433
87677
87678 --
87679 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
87680 --
87681
87682 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
87683 (g_array_event(l_event_id).array_value_num('header_index'))
87684 ,'N'
87685 ) <> 'Y'
87686 THEN
87687 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
87688 trace
87689 (p_msg => 'Trancaction revesal option is not Y '
87690 ,p_level => C_LEVEL_STATEMENT
87691 ,p_module => l_log_module);
87692 END IF;
87693
87694 --
87695 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
87696 --
87697 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
87698 --
87699 -- set event info as cache for other routines to refer event attributes
87700 --
87701
87702 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
87703 l_previous_event_id := l_event_id;
87704
87705 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
87706 (p_application_id => p_application_id
87707 ,p_primary_ledger_id => p_primary_ledger_id
87708 ,p_base_ledger_id => p_base_ledger_id
87709 ,p_target_ledger_id => p_target_ledger_id
87710 ,p_entity_id => l_array_entity_id(Idx)
87711 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
87712 ,p_entity_code => l_array_entity_code(Idx)
87713 ,p_transaction_num => l_array_transaction_num(Idx)
87714 ,p_event_id => l_array_event_id(Idx)
87715 ,p_event_class_code => l_array_class_code(Idx)
87716 ,p_event_type_code => l_array_event_type(Idx)
87717 ,p_event_number => l_array_event_number(Idx)
87718 ,p_event_date => l_array_event_date(Idx)
87719 ,p_transaction_date => l_array_transaction_date(Idx)
87720 ,p_reference_num_1 => l_array_reference_num_1(Idx)
87721 ,p_reference_num_2 => l_array_reference_num_2(Idx)
87722 ,p_reference_num_3 => l_array_reference_num_3(Idx)
87723 ,p_reference_num_4 => l_array_reference_num_4(Idx)
87724 ,p_reference_char_1 => l_array_reference_char_1(Idx)
87725 ,p_reference_char_2 => l_array_reference_char_2(Idx)
87726 ,p_reference_char_3 => l_array_reference_char_3(Idx)
87727 ,p_reference_char_4 => l_array_reference_char_4(Idx)
87728 ,p_reference_date_1 => l_array_reference_date_1(Idx)
87729 ,p_reference_date_2 => l_array_reference_date_2(Idx)
87730 ,p_reference_date_3 => l_array_reference_date_3(Idx)
87731 ,p_reference_date_4 => l_array_reference_date_4(Idx)
87732 ,p_event_created_by => l_array_event_created_by(Idx)
87733 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
87734 --
87735 END IF;
87736
87737
87738
87739 --
87740 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
87741
87742 l_acct_reversal_source := SUBSTR(l_array_source_23(Idx), 1,30);
87743
87744 IF l_continue_with_lines THEN
87745 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
87746 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
87747
87748 xla_accounting_err_pkg.build_message
87749 (p_appli_s_name => 'XLA'
87750 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
87751 ,p_token_1 => 'LINE_NUMBER'
87752 ,p_value_1 => l_array_extract_line_num(Idx)
87753 ,p_token_2 => 'PRODUCT_NAME'
87757 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
87754 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
87755 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
87756 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
87758
87759 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
87760 --
87761 -- following sets the accounting attributes needed to reverse
87762 -- accounting for a distributeion
87763 --
87764
87765 --
87766 -- 5217187
87767 --
87768 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
87769 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
87770 g_array_event(l_event_id).array_value_num('header_index'));
87771 --
87772 --
87773
87774 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
87775 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_23(Idx);
87776 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
87777 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_24(Idx);
87778 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
87779 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_7(Idx));
87780 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
87781 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_25(Idx);
87782 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
87783 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_26(Idx);
87784 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
87785 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_27(Idx);
87786 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
87787 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_28(Idx);
87788 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
87789 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_29(Idx);
87790 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
87791 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_30(Idx);
87792 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
87793 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_31(Idx);
87794 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
87795 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_4(Idx));
87796 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
87797 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_25(Idx);
87798 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
87799 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_26(Idx);
87800 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
87801 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_27(Idx);
87802 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
87803 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_28(Idx);
87804 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
87805 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_29(Idx);
87806 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
87807 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_30(Idx);
87808 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
87809 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_32(Idx);
87810 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
87811 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_33');
87812 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
87813 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_34(Idx);
87814 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
87815 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_35(Idx);
87816 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
87817 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_33');
87818 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
87819 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_36(Idx);
87820 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
87821 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_35(Idx);
87822
87823
87824 xla_ae_lines_pkg.SetAcctReversalAttrs
87825 (p_event_id => l_event_id
87826 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
87827 ,p_calculate_acctd_flag => l_calculate_acctd_flag
87828 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
87829 END IF;
87830
87831 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
87832 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
87833
87834 --
87835 AcctLineType_72 (
87836 p_application_id => p_application_id
87837 ,p_event_id => l_event_id
87838 ,p_calculate_acctd_flag => l_calculate_acctd_flag
87839 ,p_calculate_g_l_flag => l_calculate_g_l_flag
87840 ,p_actual_flag => l_actual_flag
87841 ,p_balance_type_code => l_balance_type_code
87842 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
87843
87844 , p_source_4 => l_array_source_4(Idx)
87845 , p_source_5 => l_array_source_5(Idx)
87846 , p_source_6 => l_array_source_6(Idx)
87847 , p_source_7 => l_array_source_7(Idx)
87848 , p_source_23 => l_array_source_23(Idx)
87849 , p_source_24 => l_array_source_24(Idx)
87850 , p_source_25 => l_array_source_25(Idx)
87854 , p_source_29 => l_array_source_29(Idx)
87851 , p_source_26 => l_array_source_26(Idx)
87852 , p_source_27 => l_array_source_27(Idx)
87853 , p_source_28 => l_array_source_28(Idx)
87855 , p_source_30 => l_array_source_30(Idx)
87856 , p_source_31 => l_array_source_31(Idx)
87857 , p_source_32 => l_array_source_32(Idx)
87858 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
87859 , p_source_34 => l_array_source_34(Idx)
87860 , p_source_35 => l_array_source_35(Idx)
87861 , p_source_35_meaning => l_array_source_35_meaning(Idx)
87862 , p_source_36 => l_array_source_36(Idx)
87863 );
87864 If(l_balance_type_code = 'A') THEN
87865 l_actual_gain_loss_ref := l_gain_or_loss_ref;
87866 END IF;
87867
87868 --
87869
87870
87871 --
87872 AcctLineType_82 (
87873 p_application_id => p_application_id
87874 ,p_event_id => l_event_id
87875 ,p_calculate_acctd_flag => l_calculate_acctd_flag
87876 ,p_calculate_g_l_flag => l_calculate_g_l_flag
87877 ,p_actual_flag => l_actual_flag
87878 ,p_balance_type_code => l_balance_type_code
87879 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
87880
87881 , p_source_4 => l_array_source_4(Idx)
87882 , p_source_5 => l_array_source_5(Idx)
87883 , p_source_6 => l_array_source_6(Idx)
87884 , p_source_7 => l_array_source_7(Idx)
87885 , p_source_23 => l_array_source_23(Idx)
87886 , p_source_24 => l_array_source_24(Idx)
87887 , p_source_25 => l_array_source_25(Idx)
87888 , p_source_26 => l_array_source_26(Idx)
87889 , p_source_27 => l_array_source_27(Idx)
87890 , p_source_28 => l_array_source_28(Idx)
87891 , p_source_29 => l_array_source_29(Idx)
87892 , p_source_30 => l_array_source_30(Idx)
87893 , p_source_31 => l_array_source_31(Idx)
87894 , p_source_32 => l_array_source_32(Idx)
87895 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
87896 , p_source_34 => l_array_source_34(Idx)
87897 , p_source_35 => l_array_source_35(Idx)
87898 , p_source_35_meaning => l_array_source_35_meaning(Idx)
87899 , p_source_36 => l_array_source_36(Idx)
87900 );
87901 If(l_balance_type_code = 'A') THEN
87902 l_actual_gain_loss_ref := l_gain_or_loss_ref;
87903 END IF;
87904
87905 --
87906
87907
87908 --
87909 AcctLineType_93 (
87910 p_application_id => p_application_id
87911 ,p_event_id => l_event_id
87912 ,p_calculate_acctd_flag => l_calculate_acctd_flag
87913 ,p_calculate_g_l_flag => l_calculate_g_l_flag
87914 ,p_actual_flag => l_actual_flag
87915 ,p_balance_type_code => l_balance_type_code
87916 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
87917
87918 , p_source_4 => l_array_source_4(Idx)
87919 , p_source_5 => l_array_source_5(Idx)
87920 , p_source_7 => l_array_source_7(Idx)
87921 , p_source_8 => l_array_source_8(Idx)
87922 , p_source_23 => l_array_source_23(Idx)
87923 , p_source_24 => l_array_source_24(Idx)
87924 , p_source_25 => l_array_source_25(Idx)
87925 , p_source_26 => l_array_source_26(Idx)
87926 , p_source_27 => l_array_source_27(Idx)
87927 , p_source_28 => l_array_source_28(Idx)
87928 , p_source_29 => l_array_source_29(Idx)
87929 , p_source_30 => l_array_source_30(Idx)
87930 , p_source_31 => l_array_source_31(Idx)
87931 , p_source_32 => l_array_source_32(Idx)
87932 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
87933 , p_source_34 => l_array_source_34(Idx)
87934 , p_source_35 => l_array_source_35(Idx)
87935 , p_source_35_meaning => l_array_source_35_meaning(Idx)
87936 , p_source_36 => l_array_source_36(Idx)
87937 );
87938 If(l_balance_type_code = 'A') THEN
87939 l_actual_gain_loss_ref := l_gain_or_loss_ref;
87940 END IF;
87941
87942 --
87943
87944
87945 --
87946 AcctLineType_99 (
87947 p_application_id => p_application_id
87948 ,p_event_id => l_event_id
87949 ,p_calculate_acctd_flag => l_calculate_acctd_flag
87950 ,p_calculate_g_l_flag => l_calculate_g_l_flag
87951 ,p_actual_flag => l_actual_flag
87952 ,p_balance_type_code => l_balance_type_code
87953 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
87954
87955 , p_source_4 => l_array_source_4(Idx)
87956 , p_source_5 => l_array_source_5(Idx)
87957 , p_source_7 => l_array_source_7(Idx)
87958 , p_source_8 => l_array_source_8(Idx)
87959 , p_source_23 => l_array_source_23(Idx)
87960 , p_source_24 => l_array_source_24(Idx)
87961 , p_source_25 => l_array_source_25(Idx)
87962 , p_source_26 => l_array_source_26(Idx)
87963 , p_source_27 => l_array_source_27(Idx)
87964 , p_source_28 => l_array_source_28(Idx)
87965 , p_source_29 => l_array_source_29(Idx)
87966 , p_source_30 => l_array_source_30(Idx)
87967 , p_source_31 => l_array_source_31(Idx)
87968 , p_source_32 => l_array_source_32(Idx)
87969 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
87970 , p_source_34 => l_array_source_34(Idx)
87971 , p_source_35 => l_array_source_35(Idx)
87972 , p_source_35_meaning => l_array_source_35_meaning(Idx)
87973 , p_source_36 => l_array_source_36(Idx)
87974 );
87975 If(l_balance_type_code = 'A') THEN
87976 l_actual_gain_loss_ref := l_gain_or_loss_ref;
87977 END IF;
87978
87979 --
87980
87981 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
87982 -- or secondary ledger that has different currency with primary
87983 -- or alc that is calculated by sla
87984 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
87985 (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'))
87986
87987 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
87988 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
87989 AND (l_actual_flag = 'A')) THEN
87993 ,p_amb_context_code => 'DEFAULT'
87990 XLA_AE_LINES_PKG.CreateGainOrLossLines(
87991 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
87992 ,p_application_id => p_application_id
87994 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
87995 ,p_event_class_code => C_EVENT_CLASS_CODE
87996 ,p_event_type_code => C_EVENT_TYPE_CODE
87997
87998 ,p_gain_ccid => -1
87999 ,p_loss_ccid => -1
88000
88001 ,p_actual_flag => l_actual_flag
88002 ,p_enc_flag => null
88003 ,p_actual_g_l_ref => l_actual_gain_loss_ref
88004 ,p_enc_g_l_ref => null
88005 );
88006 END IF;
88007 END IF;
88008 END IF;
88009
88010 ELSE
88011 --
88012 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
88013 --
88014 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88015 trace
88016 (p_msg => 'Trancaction revesal option is Y'
88017 ,p_level => C_LEVEL_STATEMENT
88018 ,p_module => l_log_module);
88019 END IF;
88020 END IF;
88021
88022 END LOOP;
88023 l_result := XLA_AE_LINES_PKG.InsertLines ;
88024 end loop;
88025 close line_cur;
88026
88027
88028 --
88029 -- insert headers into xla_ae_headers_gt table
88030 --
88031 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
88032
88033 -- insert into errors table here.
88034
88035 END LOOP;
88036
88037 --
88038 -- 4865292
88039 --
88040 -- Compare g_hdr_extract_count with event count in
88041 -- CreateHeadersAndLines.
88042 --
88043 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
88044
88045 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88046 trace (p_msg => '# rows extracted from header extract objects '
88047 || ' (running total): '
88048 || g_hdr_extract_count
88049 ,p_level => C_LEVEL_STATEMENT
88050 ,p_module => l_log_module);
88051 END IF;
88052
88053 CLOSE header_cur;
88054 --
88055
88056 --
88057 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88058 trace
88059 (p_msg => 'END of EventClass_157'
88060 ,p_level => C_LEVEL_PROCEDURE
88061 ,p_module => l_log_module);
88062 END IF;
88063 --
88064 RETURN l_result;
88065 EXCEPTION
88066 WHEN xla_exceptions_pkg.application_exception THEN
88067
88068 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
88069
88070
88071 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
88072
88073 RAISE;
88074 WHEN OTHERS THEN
88075 xla_exceptions_pkg.raise_message
88076 (p_location => 'XLA_00275_AAD_S_000015_PKG.EventClass_157');
88077 END EventClass_157;
88078 --
88079
88080 ---------------------------------------
88081 --
88082 -- PRIVATE PROCEDURE
88083 -- insert_sources_158
88084 --
88085 ----------------------------------------
88086 --
88087 PROCEDURE insert_sources_158(
88088 p_target_ledger_id IN NUMBER
88089 , p_language IN VARCHAR2
88090 , p_sla_ledger_id IN NUMBER
88091 , p_pad_start_date IN DATE
88092 , p_pad_end_date IN DATE
88093 )
88094 IS
88095
88096 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'MISC_COST_ALL';
88097 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'MISC_COST';
88098 p_apps_owner VARCHAR2(30);
88099 l_log_module VARCHAR2(240);
88100 BEGIN
88101 IF g_log_enabled THEN
88102 l_log_module := C_DEFAULT_MODULE||'.insert_sources_158';
88103 END IF;
88104 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88105
88106 trace
88107 (p_msg => 'BEGIN of insert_sources_158'
88108 ,p_level => C_LEVEL_PROCEDURE
88109 ,p_module => l_log_module);
88110
88111 END IF;
88112
88113 -- select APPS owner
88114 SELECT oracle_username
88115 INTO p_apps_owner
88116 FROM fnd_oracle_userid
88117 WHERE read_only_flag = 'U'
88118 ;
88119
88120 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88121 trace
88122 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
88123 ' - p_language = '||p_language||
88124 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
88125 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
88126 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
88127 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
88128 ,p_level => C_LEVEL_STATEMENT
88129 ,p_module => l_log_module);
88130 END IF;
88131
88132
88133 --
88134 INSERT INTO xla_diag_sources --hdr2
88135 (
88136 event_id
88137 , ledger_id
88138 , sla_ledger_id
88139 , description_language
88140 , object_name
88141 , object_type_code
88142 , line_number
88143 , source_application_id
88144 , source_type_code
88145 , source_code
88146 , source_value
88147 , source_meaning
88148 , created_by
88149 , creation_date
88150 , last_update_date
88151 , last_updated_by
88152 , last_update_login
88153 , program_update_date
88154 , program_application_id
88155 , program_id
88156 , request_id
88157 )
88158 SELECT
88159 event_id
88163 , object_name
88160 , p_target_ledger_id
88161 , p_sla_ledger_id
88162 , p_language
88164 , object_type_code
88165 , line_number
88166 , source_application_id
88167 , source_type_code
88168 , source_code
88169 , SUBSTR(source_value ,1,1996)
88170 , SUBSTR(source_meaning ,1,200)
88171 , xla_environment_pkg.g_Usr_Id
88172 , TRUNC(SYSDATE)
88173 , TRUNC(SYSDATE)
88174 , xla_environment_pkg.g_Usr_Id
88175 , xla_environment_pkg.g_Login_Id
88176 , TRUNC(SYSDATE)
88177 , xla_environment_pkg.g_Prog_Appl_Id
88178 , xla_environment_pkg.g_Prog_Id
88179 , xla_environment_pkg.g_Req_Id
88180 FROM (
88181 SELECT xet.event_id event_id
88182 , 0 line_number
88183 , CASE r
88184 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
88185 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
88186
88187 ELSE null
88188 END object_name
88189 , CASE r
88190 WHEN 1 THEN 'HEADER'
88191 WHEN 2 THEN 'HEADER'
88192
88193 ELSE null
88194 END object_type_code
88195 , CASE r
88196 WHEN 1 THEN '275'
88197 WHEN 2 THEN '275'
88198
88199 ELSE null
88200 END source_application_id
88201 , 'S' source_type_code
88202 , CASE r
88203 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
88204 WHEN 2 THEN 'GL_DATE'
88205
88206 ELSE null
88207 END source_code
88208 , CASE r
88209 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
88210 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
88211
88212 ELSE null
88213 END source_value
88214 , null source_meaning
88215 FROM xla_events_gt xet
88216 , PA_XLA_EXP_HEADER_V h2
88217 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
88218 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
88219 AND xet.event_class_code = C_EVENT_CLASS_CODE
88220 AND h2.event_id = xet.event_id
88221
88222 )
88223 ;
88224 --
88225 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88226
88227 trace
88228 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
88229 ,p_level => C_LEVEL_STATEMENT
88230 ,p_module => l_log_module);
88231
88232 END IF;
88233 --
88234
88235
88236
88237 --
88238 INSERT INTO xla_diag_sources --line2
88239 (
88240 event_id
88241 , ledger_id
88242 , sla_ledger_id
88243 , description_language
88244 , object_name
88245 , object_type_code
88246 , line_number
88247 , source_application_id
88248 , source_type_code
88249 , source_code
88250 , source_value
88251 , source_meaning
88252 , created_by
88253 , creation_date
88254 , last_update_date
88255 , last_updated_by
88256 , last_update_login
88257 , program_update_date
88258 , program_application_id
88259 , program_id
88260 , request_id
88261 )
88262 SELECT event_id
88263 , p_target_ledger_id
88264 , p_sla_ledger_id
88265 , p_language
88266 , object_name
88267 , object_type_code
88268 , line_number
88269 , source_application_id
88270 , source_type_code
88271 , source_code
88272 , SUBSTR(source_value,1,1996)
88273 , SUBSTR(source_meaning ,1,200)
88274 , xla_environment_pkg.g_Usr_Id
88275 , TRUNC(SYSDATE)
88276 , TRUNC(SYSDATE)
88277 , xla_environment_pkg.g_Usr_Id
88278 , xla_environment_pkg.g_Login_Id
88279 , TRUNC(SYSDATE)
88280 , xla_environment_pkg.g_Prog_Appl_Id
88281 , xla_environment_pkg.g_Prog_Id
88282 , xla_environment_pkg.g_Req_Id
88283 FROM (
88284 SELECT xet.event_id event_id
88285 , l1.line_number line_number
88286 , CASE r
88287 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
88288 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
88289 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
88290 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
88291 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
88292 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
88293 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
88294 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
88295 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
88296 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
88297 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
88298 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
88299 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
88300 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
88301 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
88302 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
88303 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
88304 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
88305
88306 ELSE null
88307 END object_name
88308 , CASE r
88309 WHEN 1 THEN 'LINE'
88310 WHEN 2 THEN 'LINE'
88311 WHEN 3 THEN 'LINE'
88315 WHEN 7 THEN 'LINE'
88312 WHEN 4 THEN 'LINE'
88313 WHEN 5 THEN 'LINE'
88314 WHEN 6 THEN 'LINE'
88316 WHEN 8 THEN 'LINE'
88317 WHEN 9 THEN 'LINE'
88318 WHEN 10 THEN 'LINE'
88319 WHEN 11 THEN 'LINE'
88320 WHEN 12 THEN 'LINE'
88321 WHEN 13 THEN 'LINE'
88322 WHEN 14 THEN 'LINE'
88323 WHEN 15 THEN 'LINE'
88324 WHEN 16 THEN 'LINE'
88325 WHEN 17 THEN 'LINE'
88326 WHEN 18 THEN 'LINE'
88327
88328 ELSE null
88329 END object_type_code
88330 , CASE r
88331 WHEN 1 THEN '275'
88332 WHEN 2 THEN '275'
88333 WHEN 3 THEN '275'
88334 WHEN 4 THEN '275'
88335 WHEN 5 THEN '275'
88336 WHEN 6 THEN '275'
88337 WHEN 7 THEN '275'
88338 WHEN 8 THEN '275'
88339 WHEN 9 THEN '275'
88340 WHEN 10 THEN '275'
88341 WHEN 11 THEN '275'
88342 WHEN 12 THEN '275'
88343 WHEN 13 THEN '275'
88344 WHEN 14 THEN '275'
88345 WHEN 15 THEN '275'
88346 WHEN 16 THEN '275'
88347 WHEN 17 THEN '275'
88348 WHEN 18 THEN '275'
88349
88350 ELSE null
88351 END source_application_id
88352 , 'S' source_type_code
88353 , CASE r
88354 WHEN 1 THEN 'COST_CCID'
88355 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
88356 WHEN 3 THEN 'ADJ_COST_CCID'
88357 WHEN 4 THEN 'COST_CLEARING_CCID'
88358 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
88359 WHEN 6 THEN 'REVERSING_LINE_FLAG'
88360 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
88361 WHEN 8 THEN 'ENTERED_RAW_COST'
88362 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
88363 WHEN 10 THEN 'ACCT_RAW_COST'
88364 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
88365 WHEN 12 THEN 'EXCHANGE_RATE'
88366 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
88367 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
88368 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
88369 WHEN 16 THEN 'LINE_NUMBER'
88370 WHEN 17 THEN 'LINE_TYPE'
88371 WHEN 18 THEN 'LINE_NUM_REVERSED'
88372
88373 ELSE null
88374 END source_code
88375 , CASE r
88376 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
88377 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
88378 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
88379 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
88380 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
88381 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
88382 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
88383 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
88384 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
88385 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
88386 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
88387 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
88388 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
88389 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
88390 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
88391 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
88392 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
88393 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
88394
88395 ELSE null
88396 END source_value
88397 , CASE r
88398 WHEN 2 THEN XLA_00275_AAD_S_000015_PKG.GetMeaning(
88399 103371
88400 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
88401 ,'ALLOW_OVERRIDE_CCID_FLAG'
88402 ,'S'
88403 ,275)
88404 WHEN 17 THEN fvl35.meaning
88405
88406 ELSE null
88407 END source_meaning
88408 FROM xla_events_gt xet
88409 , PA_XLA_CDL_LINES_V l1
88410 , fnd_lookup_values fvl35
88411 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
88412 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
88413 AND xet.event_class_code = C_EVENT_CLASS_CODE
88414 AND l1.event_id = xet.event_id
88415 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
88416 AND fvl35.lookup_code(+) = l1.LINE_TYPE
88417 AND fvl35.view_application_id(+) = 275
88418 AND fvl35.language(+) = USERENV('LANG')
88419
88420 )
88421 ;
88422 --
88423 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88424
88425 trace
88426 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
88427 ,p_level => C_LEVEL_STATEMENT
88428 ,p_module => l_log_module);
88429
88430 END IF;
88431
88432
88433 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88434 trace
88435 (p_msg => 'END of insert_sources_158'
88436 ,p_level => C_LEVEL_PROCEDURE
88437 ,p_module => l_log_module);
88438 END IF;
88439 EXCEPTION
88440 WHEN xla_exceptions_pkg.application_exception THEN
88444 ,p_level => C_LEVEL_EXCEPTION
88441 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
88442 trace
88443 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
88445 ,p_module => l_log_module);
88446 END IF;
88447 RAISE;
88448 WHEN OTHERS THEN
88449 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
88450 trace
88451 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
88452 ,p_level => C_LEVEL_EXCEPTION
88453 ,p_module => l_log_module);
88454 END IF;
88455 xla_exceptions_pkg.raise_message
88456 (p_location => 'XLA_00275_AAD_S_000015_PKG.insert_sources_158');
88457 END insert_sources_158;
88458 --
88459
88460 ---------------------------------------
88461 --
88462 -- PRIVATE FUNCTION
88463 -- EventClass_158
88464 --
88465 ----------------------------------------
88466 --
88467 FUNCTION EventClass_158
88468 (p_application_id IN NUMBER
88469 ,p_base_ledger_id IN NUMBER
88470 ,p_target_ledger_id IN NUMBER
88471 ,p_language IN VARCHAR2
88472 ,p_currency_code IN VARCHAR2
88473 ,p_sla_ledger_id IN NUMBER
88474 ,p_pad_start_date IN DATE
88475 ,p_pad_end_date IN DATE
88476 ,p_primary_ledger_id IN NUMBER)
88477 RETURN BOOLEAN IS
88478 --
88479 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'MISC_COST_ALL';
88480 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'MISC_COST';
88481
88482 l_calculate_acctd_flag VARCHAR2(1) :='N';
88483 l_calculate_g_l_flag VARCHAR2(1) :='N';
88484 --
88485 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
88486 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
88487 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
88488 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
88489 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
88490 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
88491 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
88492 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
88493 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
88494 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
88495 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
88496 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
88497 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
88498 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
88499 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
88500 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
88501 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
88502 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
88503 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
88504 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
88505 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
88506 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
88507 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
88508 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
88509
88510 l_event_id NUMBER;
88511 l_previous_event_id NUMBER;
88512 l_first_event_id NUMBER;
88513 l_last_event_id NUMBER;
88514
88515 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
88516 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
88517 --
88518 --
88519 l_result BOOLEAN := TRUE;
88520 l_rows NUMBER := 1000;
88521 l_event_type_name VARCHAR2(80) := 'All';
88522 l_event_class_name VARCHAR2(80) := 'Miscellaneous Cost';
88523 l_description VARCHAR2(4000);
88524 l_transaction_reversal NUMBER;
88525 l_ae_header_id NUMBER;
88526 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
88527 l_log_module VARCHAR2(240);
88528 --
88529 l_acct_reversal_source VARCHAR2(30);
88530 l_trx_reversal_source VARCHAR2(30);
88531
88532 l_continue_with_lines BOOLEAN := TRUE;
88533 --
88534 l_acc_rev_gl_date_source DATE; -- 4262811
88535 --
88536 type t_array_event_id is table of number index by binary_integer;
88537
88538 l_rec_array_event t_rec_array_event;
88539 l_null_rec_array_event t_rec_array_event;
88540 l_array_ae_header_id xla_number_array_type;
88541 l_actual_flag VARCHAR2(1) := NULL;
88542 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
88543 l_balance_type_code VARCHAR2(1) :=NULL;
88544 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
88545
88546 --
88547 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
88548 --
88549
88550 TYPE t_array_source_33 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
88551 TYPE t_array_source_75 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
88552
88553 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
88554 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
88555 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
88559 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
88556 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
88557 TYPE t_array_source_8 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
88558 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
88560 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
88561 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
88562 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
88563 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
88564 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
88565 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
88566 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
88567 TYPE t_array_source_32 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
88568 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
88569 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
88570 TYPE t_array_source_36 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
88571
88572 l_array_source_33 t_array_source_33;
88573 l_array_source_75 t_array_source_75;
88574
88575 l_array_source_4 t_array_source_4;
88576 l_array_source_5 t_array_source_5;
88577 l_array_source_6 t_array_source_6;
88578 l_array_source_7 t_array_source_7;
88579 l_array_source_8 t_array_source_8;
88580 l_array_source_23 t_array_source_23;
88581 l_array_source_24 t_array_source_24;
88582 l_array_source_25 t_array_source_25;
88583 l_array_source_26 t_array_source_26;
88584 l_array_source_27 t_array_source_27;
88585 l_array_source_28 t_array_source_28;
88586 l_array_source_29 t_array_source_29;
88587 l_array_source_30 t_array_source_30;
88588 l_array_source_31 t_array_source_31;
88589 l_array_source_32 t_array_source_32;
88590 l_array_source_34 t_array_source_34;
88591 l_array_source_35 t_array_source_35;
88592 l_array_source_35_meaning t_array_lookup_meaning;
88593 l_array_source_36 t_array_source_36;
88594
88595 --
88596 CURSOR header_cur
88597 IS
88598 SELECT /*+ leading(xet) cardinality(xet,1) */
88599 -- Event Class Code: MISC_COST
88600 xet.entity_id
88601 ,xet.legal_entity_id
88602 ,xet.entity_code
88603 ,xet.transaction_number
88604 ,xet.event_id
88605 ,xet.event_class_code
88606 ,xet.event_type_code
88607 ,xet.event_number
88608 ,xet.event_date
88609 ,xet.transaction_date
88610 ,xet.reference_num_1
88611 ,xet.reference_num_2
88612 ,xet.reference_num_3
88613 ,xet.reference_num_4
88614 ,xet.reference_char_1
88615 ,xet.reference_char_2
88616 ,xet.reference_char_3
88617 ,xet.reference_char_4
88618 ,xet.reference_date_1
88619 ,xet.reference_date_2
88620 ,xet.reference_date_3
88621 ,xet.reference_date_4
88622 ,xet.event_created_by
88623 ,xet.budgetary_control_flag
88624 , h2.EXPENDITURE_ITEM_ID source_33
88625 , h2.GL_DATE source_75
88626 FROM xla_events_gt xet
88627 , PA_XLA_EXP_HEADER_V h2
88628 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
88629 and xet.event_class_code = C_EVENT_CLASS_CODE
88630 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
88631
88632 ORDER BY event_id
88633 ;
88634
88635
88636 --
88637 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
88638 IS
88639 SELECT /*+ leading(xet) cardinality(xet,1) */
88640 -- Event Class Code: MISC_COST
88641 xet.entity_id
88642 ,xet.legal_entity_id
88643 ,xet.entity_code
88644 ,xet.transaction_number
88645 ,xet.event_id
88646 ,xet.event_class_code
88647 ,xet.event_type_code
88648 ,xet.event_number
88649 ,xet.event_date
88650 ,xet.transaction_date
88651 ,xet.reference_num_1
88652 ,xet.reference_num_2
88653 ,xet.reference_num_3
88654 ,xet.reference_num_4
88655 ,xet.reference_char_1
88656 ,xet.reference_char_2
88657 ,xet.reference_char_3
88658 ,xet.reference_char_4
88659 ,xet.reference_date_1
88660 ,xet.reference_date_2
88661 ,xet.reference_date_3
88662 ,xet.reference_date_4
88663 ,xet.event_created_by
88664 ,xet.budgetary_control_flag
88665 , l1.LINE_NUMBER
88666 , l1.COST_CCID source_4
88667 , l1.ALLOW_OVERRIDE_CCID_FLAG source_5
88668 , l1.ADJ_COST_CCID source_6
88669 , l1.COST_CLEARING_CCID source_7
88670 , l1.ADJ_COST_CLEARING_CCID source_8
88671 , l1.REVERSING_LINE_FLAG source_23
88672 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_24
88673 , l1.ENTERED_RAW_COST source_25
88674 , l1.ENTERED_CURRENCY_CODE source_26
88675 , l1.ACCT_RAW_COST source_27
88676 , l1.EXCHANGE_RATE_DATE source_28
88677 , l1.EXCHANGE_RATE source_29
88678 , l1.EXCHANGE_RATE_TYPE source_30
88679 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_31
88680 , l1.USE_ACT_UPG_ATTRIB_FLAG source_32
88681 , l1.LINE_NUMBER source_34
88682 , l1.LINE_TYPE source_35
88683 , fvl35.meaning source_35_meaning
88684 , l1.LINE_NUM_REVERSED source_36
88685 FROM xla_events_gt xet
88686 , PA_XLA_CDL_LINES_V l1
88687 , fnd_lookup_values fvl35
88688 WHERE xet.event_id between x_first_event_id and x_last_event_id
88689 and xet.event_date between p_pad_start_date and p_pad_end_date
88693 AND fvl35.lookup_code(+) = l1.LINE_TYPE
88690 and xet.event_class_code = C_EVENT_CLASS_CODE
88691 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
88692 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
88694 AND fvl35.view_application_id(+) = 275
88695 AND fvl35.language(+) = USERENV('LANG')
88696 ;
88697
88698 --
88699 BEGIN
88700 IF g_log_enabled THEN
88701 l_log_module := C_DEFAULT_MODULE||'.EventClass_158';
88702 END IF;
88703 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88704 trace
88705 (p_msg => 'BEGIN of EventClass_158'
88706 ,p_level => C_LEVEL_PROCEDURE
88707 ,p_module => l_log_module);
88708 END IF;
88709
88710 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88711 trace
88712 (p_msg => 'p_application_id = '||p_application_id||
88713 ' - p_base_ledger_id = '||p_base_ledger_id||
88714 ' - p_target_ledger_id = '||p_target_ledger_id||
88715 ' - p_language = '||p_language||
88716 ' - p_currency_code = '||p_currency_code||
88717 ' - p_sla_ledger_id = '||p_sla_ledger_id
88718 ,p_level => C_LEVEL_STATEMENT
88719 ,p_module => l_log_module);
88720 END IF;
88721 --
88722 -- initialze arrays
88723 --
88724 g_array_event.DELETE;
88725 l_rec_array_event := l_null_rec_array_event;
88726 --
88727 --------------------------------------
88728 -- 4262811 Initialze MPA Line Number
88729 --------------------------------------
88730 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
88731
88732 --
88733
88734 --
88735 OPEN header_cur;
88736 --
88737 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88738 trace
88739 (p_msg => 'SQL - FETCH header_cur'
88740 ,p_level => C_LEVEL_STATEMENT
88741 ,p_module => l_log_module);
88742 END IF;
88743 --
88744 LOOP
88745 FETCH header_cur BULK COLLECT INTO
88746 l_array_entity_id
88747 , l_array_legal_entity_id
88748 , l_array_entity_code
88749 , l_array_transaction_num
88750 , l_array_event_id
88751 , l_array_class_code
88752 , l_array_event_type
88753 , l_array_event_number
88754 , l_array_event_date
88755 , l_array_transaction_date
88756 , l_array_reference_num_1
88757 , l_array_reference_num_2
88758 , l_array_reference_num_3
88759 , l_array_reference_num_4
88760 , l_array_reference_char_1
88761 , l_array_reference_char_2
88762 , l_array_reference_char_3
88763 , l_array_reference_char_4
88764 , l_array_reference_date_1
88765 , l_array_reference_date_2
88766 , l_array_reference_date_3
88767 , l_array_reference_date_4
88768 , l_array_event_created_by
88769 , l_array_budgetary_control_flag
88770 , l_array_source_33
88771 , l_array_source_75
88772 LIMIT l_rows;
88773 --
88774 IF (C_LEVEL_EVENT >= g_log_level) THEN
88775 trace
88776 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
88777 ,p_level => C_LEVEL_EVENT
88778 ,p_module => l_log_module);
88779 END IF;
88780 --
88781 EXIT WHEN l_array_entity_id.COUNT = 0;
88782
88783 -- initialize arrays
88784 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
88785 XLA_AE_LINES_PKG.g_rec_lines := NULL;
88786
88787 --
88788 -- Bug 4458708
88789 --
88790 XLA_AE_LINES_PKG.g_LineNumber := 0;
88791
88792
88793 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
88794 g_last_hdr_idx := l_array_event_id.LAST;
88795 --
88796 -- loop for the headers. Each iteration is for each header extract row
88797 -- fetched in header cursor
88798 --
88799 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
88800
88801 --
88802 -- set event info as cache for other routines to refer event attributes
88803 --
88804 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
88805 (p_application_id => p_application_id
88806 ,p_primary_ledger_id => p_primary_ledger_id
88807 ,p_base_ledger_id => p_base_ledger_id
88808 ,p_target_ledger_id => p_target_ledger_id
88809 ,p_entity_id => l_array_entity_id(hdr_idx)
88810 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
88811 ,p_entity_code => l_array_entity_code(hdr_idx)
88812 ,p_transaction_num => l_array_transaction_num(hdr_idx)
88813 ,p_event_id => l_array_event_id(hdr_idx)
88814 ,p_event_class_code => l_array_class_code(hdr_idx)
88815 ,p_event_type_code => l_array_event_type(hdr_idx)
88816 ,p_event_number => l_array_event_number(hdr_idx)
88817 ,p_event_date => l_array_event_date(hdr_idx)
88818 ,p_transaction_date => l_array_transaction_date(hdr_idx)
88819 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
88820 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
88821 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
88822 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
88823 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
88824 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
88825 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
88826 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
88827 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
88828 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
88829 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
88830 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
88834 --
88831 ,p_event_created_by => l_array_event_created_by(hdr_idx)
88832 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
88833
88835 -- set the status of entry to C_VALID (0)
88836 --
88837 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
88838
88839 --
88840 -- initialize a row for ae header
88841 --
88842 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
88843
88844 l_event_id := l_array_event_id(hdr_idx);
88845
88846 --
88847 -- storing the hdr_idx for event. May be used by line cursor.
88848 --
88849 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
88850
88851 --
88852 -- store sources from header extract. This can be improved to
88853 -- store only those sources from header extract that may be used in lines
88854 --
88855
88856 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
88857 g_array_event(l_event_id).array_value_date('source_75') := l_array_source_75(hdr_idx);
88858
88859 --
88860 -- initilaize the status of ae headers for diffrent balance types
88861 -- the status is initialised to C_NOT_CREATED (2)
88862 --
88863 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
88864 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
88865 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
88866
88867 --
88868 -- call api to validate and store accounting attributes for header
88869 --
88870
88871 ------------------------------------------------------------
88872 -- Accrual Reversal : to get date for Standard Source (NONE)
88873 ------------------------------------------------------------
88874 l_acc_rev_gl_date_source := NULL;
88875
88876 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
88877 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_75');
88878
88879
88880 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
88881
88882 XLA_AE_HEADER_PKG.SetJeCategoryName;
88883
88884 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
88885 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
88886 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
88887 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
88888 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
88889
88890
88891 -- No header level analytical criteria
88892
88893 --
88894 --accounting attribute enhancement, bug 3612931
88895 --
88896 l_trx_reversal_source := SUBSTR(NULL, 1,30);
88897
88898 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
88899 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
88900
88901 xla_accounting_err_pkg.build_message
88902 (p_appli_s_name => 'XLA'
88903 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
88904 ,p_token_1 => 'ACCT_ATTR_NAME'
88905 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
88906 ,p_token_2 => 'PRODUCT_NAME'
88907 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
88908 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
88909 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
88910 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
88911
88912 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
88913 --
88914 -- following sets the accounting attributes needed to reverse
88915 -- accounting for a distributeion
88916 --
88917 xla_ae_lines_pkg.SetTrxReversalAttrs
88918 (p_event_id => l_event_id
88919 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
88920 ,p_trx_reversal_source => l_trx_reversal_source);
88921
88922 END IF;
88923
88924
88925 ----------------------------------------------------------------
88926 -- 4262811 - update the header statuses to invalid in need be
88927 ----------------------------------------------------------------
88928 --
88929 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
88930
88931
88932 -----------------------------------------------
88933 -- No accrual reversal for the event class/type
88934 -----------------------------------------------
88935 ----------------------------------------------------------------
88936
88937 --
88938 -- this ends the header loop iteration for one bulk fetch
88939 --
88940 END LOOP;
88941
88942 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
88943 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
88944
88945 --
88946 -- insert dummy rows into lines gt table that were created due to
88947 -- transaction reversals
88948 --
88949 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
88950 l_result := XLA_AE_LINES_PKG.InsertLines;
88951 END IF;
88952
88953 --
88954 -- reset the temp_line_num for each set of events fetched from header
88955 -- cursor rather than doing it for each new event in line cursor
88956 -- Bug 3939231
88957 --
88958 xla_ae_lines_pkg.g_temp_line_num := 0;
88959
88960
88961
88962 --
88963 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
88964 --
88965 --
88966 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88967
88968 trace
88969 (p_msg => 'SQL - FETCH line_cur'
88973 END IF;
88970 ,p_level => C_LEVEL_STATEMENT
88971 ,p_module => l_log_module);
88972
88974 --
88975 --
88976 LOOP
88977 --
88978 FETCH line_cur BULK COLLECT INTO
88979 l_array_entity_id
88980 , l_array_legal_entity_id
88981 , l_array_entity_code
88982 , l_array_transaction_num
88983 , l_array_event_id
88984 , l_array_class_code
88985 , l_array_event_type
88986 , l_array_event_number
88987 , l_array_event_date
88988 , l_array_transaction_date
88989 , l_array_reference_num_1
88990 , l_array_reference_num_2
88991 , l_array_reference_num_3
88992 , l_array_reference_num_4
88993 , l_array_reference_char_1
88994 , l_array_reference_char_2
88995 , l_array_reference_char_3
88996 , l_array_reference_char_4
88997 , l_array_reference_date_1
88998 , l_array_reference_date_2
88999 , l_array_reference_date_3
89000 , l_array_reference_date_4
89001 , l_array_event_created_by
89002 , l_array_budgetary_control_flag
89003 , l_array_extract_line_num
89004 , l_array_source_4
89005 , l_array_source_5
89006 , l_array_source_6
89007 , l_array_source_7
89008 , l_array_source_8
89009 , l_array_source_23
89010 , l_array_source_24
89011 , l_array_source_25
89012 , l_array_source_26
89013 , l_array_source_27
89014 , l_array_source_28
89015 , l_array_source_29
89016 , l_array_source_30
89017 , l_array_source_31
89018 , l_array_source_32
89019 , l_array_source_34
89020 , l_array_source_35
89021 , l_array_source_35_meaning
89022 , l_array_source_36
89023 LIMIT l_rows;
89024
89025 --
89026 IF (C_LEVEL_EVENT >= g_log_level) THEN
89027 trace
89028 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
89029 ,p_level => C_LEVEL_EVENT
89030 ,p_module => l_log_module);
89031 END IF;
89032 --
89033 EXIT WHEN l_array_entity_id.count = 0;
89034
89035 XLA_AE_LINES_PKG.g_rec_lines := null;
89036
89037 --
89038 -- Bug 4458708
89039 --
89040 XLA_AE_LINES_PKG.g_LineNumber := 0;
89041 --
89042 --
89043
89044 FOR Idx IN 1..l_array_event_id.count LOOP
89045 --
89046 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
89047 --
89048 l_event_id := l_array_event_id(idx); -- 5648433
89049
89050 --
89051 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
89052 --
89053
89054 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
89055 (g_array_event(l_event_id).array_value_num('header_index'))
89056 ,'N'
89057 ) <> 'Y'
89058 THEN
89059 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
89060 trace
89061 (p_msg => 'Trancaction revesal option is not Y '
89062 ,p_level => C_LEVEL_STATEMENT
89063 ,p_module => l_log_module);
89064 END IF;
89065
89066 --
89067 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
89068 --
89069 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
89070 --
89071 -- set event info as cache for other routines to refer event attributes
89072 --
89073
89074 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
89075 l_previous_event_id := l_event_id;
89076
89077 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
89078 (p_application_id => p_application_id
89079 ,p_primary_ledger_id => p_primary_ledger_id
89080 ,p_base_ledger_id => p_base_ledger_id
89081 ,p_target_ledger_id => p_target_ledger_id
89082 ,p_entity_id => l_array_entity_id(Idx)
89083 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
89084 ,p_entity_code => l_array_entity_code(Idx)
89085 ,p_transaction_num => l_array_transaction_num(Idx)
89086 ,p_event_id => l_array_event_id(Idx)
89087 ,p_event_class_code => l_array_class_code(Idx)
89088 ,p_event_type_code => l_array_event_type(Idx)
89089 ,p_event_number => l_array_event_number(Idx)
89090 ,p_event_date => l_array_event_date(Idx)
89091 ,p_transaction_date => l_array_transaction_date(Idx)
89092 ,p_reference_num_1 => l_array_reference_num_1(Idx)
89093 ,p_reference_num_2 => l_array_reference_num_2(Idx)
89094 ,p_reference_num_3 => l_array_reference_num_3(Idx)
89095 ,p_reference_num_4 => l_array_reference_num_4(Idx)
89096 ,p_reference_char_1 => l_array_reference_char_1(Idx)
89097 ,p_reference_char_2 => l_array_reference_char_2(Idx)
89098 ,p_reference_char_3 => l_array_reference_char_3(Idx)
89099 ,p_reference_char_4 => l_array_reference_char_4(Idx)
89100 ,p_reference_date_1 => l_array_reference_date_1(Idx)
89101 ,p_reference_date_2 => l_array_reference_date_2(Idx)
89102 ,p_reference_date_3 => l_array_reference_date_3(Idx)
89103 ,p_reference_date_4 => l_array_reference_date_4(Idx)
89104 ,p_event_created_by => l_array_event_created_by(Idx)
89105 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
89106 --
89107 END IF;
89108
89109
89110
89111 --
89112 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
89113
89114 l_acct_reversal_source := SUBSTR(l_array_source_23(Idx), 1,30);
89115
89116 IF l_continue_with_lines THEN
89120 xla_accounting_err_pkg.build_message
89117 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
89118 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
89119
89121 (p_appli_s_name => 'XLA'
89122 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
89123 ,p_token_1 => 'LINE_NUMBER'
89124 ,p_value_1 => l_array_extract_line_num(Idx)
89125 ,p_token_2 => 'PRODUCT_NAME'
89126 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
89127 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
89128 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
89129 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
89130
89131 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
89132 --
89133 -- following sets the accounting attributes needed to reverse
89134 -- accounting for a distributeion
89135 --
89136
89137 --
89138 -- 5217187
89139 --
89140 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
89141 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
89142 g_array_event(l_event_id).array_value_num('header_index'));
89143 --
89144 --
89145
89146 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
89147 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_23(Idx);
89148 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
89149 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_24(Idx);
89150 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
89151 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_7(Idx));
89152 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
89153 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_25(Idx);
89154 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
89155 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_26(Idx);
89156 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
89157 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_27(Idx);
89158 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
89159 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_28(Idx);
89160 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
89161 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_29(Idx);
89162 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
89163 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_30(Idx);
89164 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
89165 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_31(Idx);
89166 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
89167 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_4(Idx));
89168 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
89169 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_25(Idx);
89170 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
89171 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_26(Idx);
89172 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
89173 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_27(Idx);
89174 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
89175 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_28(Idx);
89176 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
89177 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_29(Idx);
89178 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
89179 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_30(Idx);
89180 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
89181 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_32(Idx);
89182 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
89183 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_33');
89184 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
89185 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_34(Idx);
89186 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
89187 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_35(Idx);
89188 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
89189 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_33');
89190 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
89191 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_36(Idx);
89192 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
89193 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_35(Idx);
89194
89195
89196 xla_ae_lines_pkg.SetAcctReversalAttrs
89197 (p_event_id => l_event_id
89198 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
89199 ,p_calculate_acctd_flag => l_calculate_acctd_flag
89200 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
89201 END IF;
89202
89203 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
89204 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
89205
89206 --
89207 AcctLineType_71 (
89208 p_application_id => p_application_id
89209 ,p_event_id => l_event_id
89210 ,p_calculate_acctd_flag => l_calculate_acctd_flag
89214 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
89211 ,p_calculate_g_l_flag => l_calculate_g_l_flag
89212 ,p_actual_flag => l_actual_flag
89213 ,p_balance_type_code => l_balance_type_code
89215
89216 , p_source_4 => l_array_source_4(Idx)
89217 , p_source_5 => l_array_source_5(Idx)
89218 , p_source_6 => l_array_source_6(Idx)
89219 , p_source_7 => l_array_source_7(Idx)
89220 , p_source_23 => l_array_source_23(Idx)
89221 , p_source_24 => l_array_source_24(Idx)
89222 , p_source_25 => l_array_source_25(Idx)
89223 , p_source_26 => l_array_source_26(Idx)
89224 , p_source_27 => l_array_source_27(Idx)
89225 , p_source_28 => l_array_source_28(Idx)
89226 , p_source_29 => l_array_source_29(Idx)
89227 , p_source_30 => l_array_source_30(Idx)
89228 , p_source_31 => l_array_source_31(Idx)
89229 , p_source_32 => l_array_source_32(Idx)
89230 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
89231 , p_source_34 => l_array_source_34(Idx)
89232 , p_source_35 => l_array_source_35(Idx)
89233 , p_source_35_meaning => l_array_source_35_meaning(Idx)
89234 , p_source_36 => l_array_source_36(Idx)
89235 );
89236 If(l_balance_type_code = 'A') THEN
89237 l_actual_gain_loss_ref := l_gain_or_loss_ref;
89238 END IF;
89239
89240 --
89241
89242
89243 --
89244 AcctLineType_90 (
89245 p_application_id => p_application_id
89246 ,p_event_id => l_event_id
89247 ,p_calculate_acctd_flag => l_calculate_acctd_flag
89248 ,p_calculate_g_l_flag => l_calculate_g_l_flag
89249 ,p_actual_flag => l_actual_flag
89250 ,p_balance_type_code => l_balance_type_code
89251 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
89252
89253 , p_source_4 => l_array_source_4(Idx)
89254 , p_source_5 => l_array_source_5(Idx)
89255 , p_source_7 => l_array_source_7(Idx)
89256 , p_source_8 => l_array_source_8(Idx)
89257 , p_source_23 => l_array_source_23(Idx)
89258 , p_source_24 => l_array_source_24(Idx)
89259 , p_source_25 => l_array_source_25(Idx)
89260 , p_source_26 => l_array_source_26(Idx)
89261 , p_source_27 => l_array_source_27(Idx)
89262 , p_source_28 => l_array_source_28(Idx)
89263 , p_source_29 => l_array_source_29(Idx)
89264 , p_source_30 => l_array_source_30(Idx)
89265 , p_source_31 => l_array_source_31(Idx)
89266 , p_source_32 => l_array_source_32(Idx)
89267 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
89268 , p_source_34 => l_array_source_34(Idx)
89269 , p_source_35 => l_array_source_35(Idx)
89270 , p_source_35_meaning => l_array_source_35_meaning(Idx)
89271 , p_source_36 => l_array_source_36(Idx)
89272 );
89273 If(l_balance_type_code = 'A') THEN
89274 l_actual_gain_loss_ref := l_gain_or_loss_ref;
89275 END IF;
89276
89277 --
89278
89279
89280 --
89281 AcctLineType_104 (
89282 p_application_id => p_application_id
89283 ,p_event_id => l_event_id
89284 ,p_calculate_acctd_flag => l_calculate_acctd_flag
89285 ,p_calculate_g_l_flag => l_calculate_g_l_flag
89286 ,p_actual_flag => l_actual_flag
89287 ,p_balance_type_code => l_balance_type_code
89288 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
89289
89290 , p_source_4 => l_array_source_4(Idx)
89291 , p_source_5 => l_array_source_5(Idx)
89292 , p_source_7 => l_array_source_7(Idx)
89293 , p_source_8 => l_array_source_8(Idx)
89294 , p_source_23 => l_array_source_23(Idx)
89295 , p_source_24 => l_array_source_24(Idx)
89296 , p_source_25 => l_array_source_25(Idx)
89297 , p_source_26 => l_array_source_26(Idx)
89298 , p_source_27 => l_array_source_27(Idx)
89299 , p_source_28 => l_array_source_28(Idx)
89300 , p_source_29 => l_array_source_29(Idx)
89301 , p_source_30 => l_array_source_30(Idx)
89302 , p_source_31 => l_array_source_31(Idx)
89303 , p_source_32 => l_array_source_32(Idx)
89304 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
89305 , p_source_34 => l_array_source_34(Idx)
89306 , p_source_35 => l_array_source_35(Idx)
89307 , p_source_35_meaning => l_array_source_35_meaning(Idx)
89308 , p_source_36 => l_array_source_36(Idx)
89309 );
89310 If(l_balance_type_code = 'A') THEN
89311 l_actual_gain_loss_ref := l_gain_or_loss_ref;
89312 END IF;
89313
89314 --
89315
89316
89317 --
89318 AcctLineType_113 (
89319 p_application_id => p_application_id
89320 ,p_event_id => l_event_id
89321 ,p_calculate_acctd_flag => l_calculate_acctd_flag
89322 ,p_calculate_g_l_flag => l_calculate_g_l_flag
89323 ,p_actual_flag => l_actual_flag
89324 ,p_balance_type_code => l_balance_type_code
89325 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
89326
89327 , p_source_4 => l_array_source_4(Idx)
89328 , p_source_5 => l_array_source_5(Idx)
89329 , p_source_6 => l_array_source_6(Idx)
89330 , p_source_7 => l_array_source_7(Idx)
89331 , p_source_23 => l_array_source_23(Idx)
89332 , p_source_24 => l_array_source_24(Idx)
89333 , p_source_25 => l_array_source_25(Idx)
89334 , p_source_26 => l_array_source_26(Idx)
89335 , p_source_27 => l_array_source_27(Idx)
89336 , p_source_28 => l_array_source_28(Idx)
89337 , p_source_29 => l_array_source_29(Idx)
89338 , p_source_30 => l_array_source_30(Idx)
89339 , p_source_31 => l_array_source_31(Idx)
89340 , p_source_32 => l_array_source_32(Idx)
89341 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
89342 , p_source_34 => l_array_source_34(Idx)
89343 , p_source_35 => l_array_source_35(Idx)
89344 , p_source_35_meaning => l_array_source_35_meaning(Idx)
89345 , p_source_36 => l_array_source_36(Idx)
89346 );
89347 If(l_balance_type_code = 'A') THEN
89348 l_actual_gain_loss_ref := l_gain_or_loss_ref;
89349 END IF;
89350
89351 --
89352
89353 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
89354 -- or secondary ledger that has different currency with primary
89358
89355 -- or alc that is calculated by sla
89356 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
89357 (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'))
89359 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
89360 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
89361 AND (l_actual_flag = 'A')) THEN
89362 XLA_AE_LINES_PKG.CreateGainOrLossLines(
89363 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
89364 ,p_application_id => p_application_id
89365 ,p_amb_context_code => 'DEFAULT'
89366 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
89367 ,p_event_class_code => C_EVENT_CLASS_CODE
89368 ,p_event_type_code => C_EVENT_TYPE_CODE
89369
89370 ,p_gain_ccid => -1
89371 ,p_loss_ccid => -1
89372
89373 ,p_actual_flag => l_actual_flag
89374 ,p_enc_flag => null
89375 ,p_actual_g_l_ref => l_actual_gain_loss_ref
89376 ,p_enc_g_l_ref => null
89377 );
89378 END IF;
89379 END IF;
89380 END IF;
89381
89382 ELSE
89383 --
89384 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
89385 --
89386 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
89387 trace
89388 (p_msg => 'Trancaction revesal option is Y'
89389 ,p_level => C_LEVEL_STATEMENT
89390 ,p_module => l_log_module);
89391 END IF;
89392 END IF;
89393
89394 END LOOP;
89395 l_result := XLA_AE_LINES_PKG.InsertLines ;
89396 end loop;
89397 close line_cur;
89398
89399
89400 --
89401 -- insert headers into xla_ae_headers_gt table
89402 --
89403 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
89404
89405 -- insert into errors table here.
89406
89407 END LOOP;
89408
89409 --
89410 -- 4865292
89411 --
89412 -- Compare g_hdr_extract_count with event count in
89413 -- CreateHeadersAndLines.
89414 --
89415 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
89416
89417 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
89418 trace (p_msg => '# rows extracted from header extract objects '
89419 || ' (running total): '
89420 || g_hdr_extract_count
89421 ,p_level => C_LEVEL_STATEMENT
89422 ,p_module => l_log_module);
89423 END IF;
89424
89425 CLOSE header_cur;
89426 --
89427
89428 --
89429 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89430 trace
89431 (p_msg => 'END of EventClass_158'
89432 ,p_level => C_LEVEL_PROCEDURE
89433 ,p_module => l_log_module);
89434 END IF;
89435 --
89436 RETURN l_result;
89437 EXCEPTION
89438 WHEN xla_exceptions_pkg.application_exception THEN
89439
89440 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
89441
89442
89443 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
89444
89445 RAISE;
89446 WHEN OTHERS THEN
89447 xla_exceptions_pkg.raise_message
89448 (p_location => 'XLA_00275_AAD_S_000015_PKG.EventClass_158');
89449 END EventClass_158;
89450 --
89451
89452 ---------------------------------------
89453 --
89454 -- PRIVATE PROCEDURE
89455 -- insert_sources_159
89456 --
89457 ----------------------------------------
89458 --
89459 PROCEDURE insert_sources_159(
89460 p_target_ledger_id IN NUMBER
89461 , p_language IN VARCHAR2
89462 , p_sla_ledger_id IN NUMBER
89463 , p_pad_start_date IN DATE
89464 , p_pad_end_date IN DATE
89465 )
89466 IS
89467
89468 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PRVDR_RECVR_RECLASS_ADJ_ALL';
89469 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PRVDR_RECVR_RECLASS_ADJ';
89470 p_apps_owner VARCHAR2(30);
89471 l_log_module VARCHAR2(240);
89472 BEGIN
89473 IF g_log_enabled THEN
89474 l_log_module := C_DEFAULT_MODULE||'.insert_sources_159';
89475 END IF;
89476 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89477
89478 trace
89479 (p_msg => 'BEGIN of insert_sources_159'
89480 ,p_level => C_LEVEL_PROCEDURE
89481 ,p_module => l_log_module);
89482
89483 END IF;
89484
89485 -- select APPS owner
89486 SELECT oracle_username
89487 INTO p_apps_owner
89488 FROM fnd_oracle_userid
89489 WHERE read_only_flag = 'U'
89490 ;
89491
89492 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
89493 trace
89494 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
89495 ' - p_language = '||p_language||
89496 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
89497 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
89498 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
89499 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
89500 ,p_level => C_LEVEL_STATEMENT
89501 ,p_module => l_log_module);
89502 END IF;
89503
89504
89505 --
89506 INSERT INTO xla_diag_sources --hdr2
89507 (
89508 event_id
89509 , ledger_id
89510 , sla_ledger_id
89511 , description_language
89512 , object_name
89516 , source_type_code
89513 , object_type_code
89514 , line_number
89515 , source_application_id
89517 , source_code
89518 , source_value
89519 , source_meaning
89520 , created_by
89521 , creation_date
89522 , last_update_date
89523 , last_updated_by
89524 , last_update_login
89525 , program_update_date
89526 , program_application_id
89527 , program_id
89528 , request_id
89529 )
89530 SELECT
89531 event_id
89532 , p_target_ledger_id
89533 , p_sla_ledger_id
89534 , p_language
89535 , object_name
89536 , object_type_code
89537 , line_number
89538 , source_application_id
89539 , source_type_code
89540 , source_code
89541 , SUBSTR(source_value ,1,1996)
89542 , SUBSTR(source_meaning ,1,200)
89543 , xla_environment_pkg.g_Usr_Id
89544 , TRUNC(SYSDATE)
89545 , TRUNC(SYSDATE)
89546 , xla_environment_pkg.g_Usr_Id
89547 , xla_environment_pkg.g_Login_Id
89548 , TRUNC(SYSDATE)
89549 , xla_environment_pkg.g_Prog_Appl_Id
89550 , xla_environment_pkg.g_Prog_Id
89551 , xla_environment_pkg.g_Req_Id
89552 FROM (
89553 SELECT xet.event_id event_id
89554 , 0 line_number
89555 , CASE r
89556 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
89557 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
89558
89559 ELSE null
89560 END object_name
89561 , CASE r
89562 WHEN 1 THEN 'HEADER'
89563 WHEN 2 THEN 'HEADER'
89564
89565 ELSE null
89566 END object_type_code
89567 , CASE r
89568 WHEN 1 THEN '275'
89569 WHEN 2 THEN '275'
89570
89571 ELSE null
89572 END source_application_id
89573 , 'S' source_type_code
89574 , CASE r
89575 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
89576 WHEN 2 THEN 'GL_DATE'
89577
89578 ELSE null
89579 END source_code
89580 , CASE r
89581 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
89582 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
89583
89584 ELSE null
89585 END source_value
89586 , null source_meaning
89587 FROM xla_events_gt xet
89588 , PA_XLA_EXP_HEADER_V h2
89589 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
89590 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
89591 AND xet.event_class_code = C_EVENT_CLASS_CODE
89592 AND h2.event_id = xet.event_id
89593
89594 )
89595 ;
89596 --
89597 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
89598
89599 trace
89600 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
89601 ,p_level => C_LEVEL_STATEMENT
89602 ,p_module => l_log_module);
89603
89604 END IF;
89605 --
89606
89607
89608
89609 --
89610 INSERT INTO xla_diag_sources --line2
89611 (
89612 event_id
89613 , ledger_id
89614 , sla_ledger_id
89615 , description_language
89616 , object_name
89617 , object_type_code
89618 , line_number
89619 , source_application_id
89620 , source_type_code
89621 , source_code
89622 , source_value
89623 , source_meaning
89624 , created_by
89625 , creation_date
89626 , last_update_date
89627 , last_updated_by
89628 , last_update_login
89629 , program_update_date
89630 , program_application_id
89631 , program_id
89632 , request_id
89633 )
89634 SELECT event_id
89635 , p_target_ledger_id
89636 , p_sla_ledger_id
89637 , p_language
89638 , object_name
89639 , object_type_code
89640 , line_number
89641 , source_application_id
89642 , source_type_code
89643 , source_code
89644 , SUBSTR(source_value,1,1996)
89645 , SUBSTR(source_meaning ,1,200)
89646 , xla_environment_pkg.g_Usr_Id
89647 , TRUNC(SYSDATE)
89648 , TRUNC(SYSDATE)
89649 , xla_environment_pkg.g_Usr_Id
89650 , xla_environment_pkg.g_Login_Id
89651 , TRUNC(SYSDATE)
89652 , xla_environment_pkg.g_Prog_Appl_Id
89653 , xla_environment_pkg.g_Prog_Id
89654 , xla_environment_pkg.g_Req_Id
89655 FROM (
89656 SELECT xet.event_id event_id
89657 , l1.line_number line_number
89658 , CASE r
89659 WHEN 1 THEN 'PA_XLA_CCDL_LINES_V'
89660 WHEN 2 THEN 'PA_XLA_CCDL_LINES_V'
89661 WHEN 3 THEN 'PA_XLA_CCDL_LINES_V'
89662 WHEN 4 THEN 'PA_XLA_CCDL_LINES_V'
89663 WHEN 5 THEN 'PA_XLA_CCDL_LINES_V'
89664 WHEN 6 THEN 'PA_XLA_CCDL_LINES_V'
89665 WHEN 7 THEN 'PA_XLA_CCDL_LINES_V'
89666 WHEN 8 THEN 'PA_XLA_CCDL_LINES_V'
89667 WHEN 9 THEN 'PA_XLA_CCDL_LINES_V'
89668 WHEN 10 THEN 'PA_XLA_CCDL_LINES_V'
89669 WHEN 11 THEN 'PA_XLA_CCDL_LINES_V'
89670 WHEN 12 THEN 'PA_XLA_CCDL_LINES_V'
89674 WHEN 16 THEN 'PA_XLA_CCDL_LINES_V'
89671 WHEN 13 THEN 'PA_XLA_CCDL_LINES_V'
89672 WHEN 14 THEN 'PA_XLA_CCDL_LINES_V'
89673 WHEN 15 THEN 'PA_XLA_CCDL_LINES_V'
89675 WHEN 17 THEN 'PA_XLA_CCDL_LINES_V'
89676 WHEN 18 THEN 'PA_XLA_CCDL_LINES_V'
89677
89678 ELSE null
89679 END object_name
89680 , CASE r
89681 WHEN 1 THEN 'LINE'
89682 WHEN 2 THEN 'LINE'
89683 WHEN 3 THEN 'LINE'
89684 WHEN 4 THEN 'LINE'
89685 WHEN 5 THEN 'LINE'
89686 WHEN 6 THEN 'LINE'
89687 WHEN 7 THEN 'LINE'
89688 WHEN 8 THEN 'LINE'
89689 WHEN 9 THEN 'LINE'
89690 WHEN 10 THEN 'LINE'
89691 WHEN 11 THEN 'LINE'
89692 WHEN 12 THEN 'LINE'
89693 WHEN 13 THEN 'LINE'
89694 WHEN 14 THEN 'LINE'
89695 WHEN 15 THEN 'LINE'
89696 WHEN 16 THEN 'LINE'
89697 WHEN 17 THEN 'LINE'
89698 WHEN 18 THEN 'LINE'
89699
89700 ELSE null
89701 END object_type_code
89702 , CASE r
89703 WHEN 1 THEN '275'
89704 WHEN 2 THEN '275'
89705 WHEN 3 THEN '275'
89706 WHEN 4 THEN '275'
89707 WHEN 5 THEN '275'
89708 WHEN 6 THEN '275'
89709 WHEN 7 THEN '275'
89710 WHEN 8 THEN '275'
89711 WHEN 9 THEN '275'
89712 WHEN 10 THEN '275'
89713 WHEN 11 THEN '275'
89714 WHEN 12 THEN '275'
89715 WHEN 13 THEN '275'
89716 WHEN 14 THEN '275'
89717 WHEN 15 THEN '275'
89718 WHEN 16 THEN '275'
89719 WHEN 17 THEN '275'
89720 WHEN 18 THEN '275'
89721
89722 ELSE null
89723 END source_application_id
89724 , 'S' source_type_code
89725 , CASE r
89726 WHEN 1 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
89727 WHEN 2 THEN 'DESTINATION_CCID'
89728 WHEN 3 THEN 'ADJ_DESTINATION_CCID'
89729 WHEN 4 THEN 'SOURCE_CCID'
89730 WHEN 5 THEN 'ADJ_SOURCE_CCID'
89731 WHEN 6 THEN 'REVERSING_LINE_FLAG'
89732 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
89733 WHEN 8 THEN 'ENTERED_CURRENCY_CODE'
89734 WHEN 9 THEN 'EXCHANGE_RATE_DATE'
89735 WHEN 10 THEN 'EXCHANGE_RATE'
89736 WHEN 11 THEN 'EXCHANGE_RATE_TYPE'
89737 WHEN 12 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
89738 WHEN 13 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
89739 WHEN 14 THEN 'LINE_NUMBER'
89740 WHEN 15 THEN 'LINE_TYPE'
89741 WHEN 16 THEN 'LINE_NUM_REVERSED'
89742 WHEN 17 THEN 'ENTERED_AMOUNT'
89743 WHEN 18 THEN 'ACCT_AMOUNT'
89744
89745 ELSE null
89746 END source_code
89747 , CASE r
89748 WHEN 1 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
89749 WHEN 2 THEN TO_CHAR(l1.DESTINATION_CCID)
89750 WHEN 3 THEN TO_CHAR(l1.ADJ_DESTINATION_CCID)
89751 WHEN 4 THEN TO_CHAR(l1.SOURCE_CCID)
89752 WHEN 5 THEN TO_CHAR(l1.ADJ_SOURCE_CCID)
89753 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
89754 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
89755 WHEN 8 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
89756 WHEN 9 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
89757 WHEN 10 THEN TO_CHAR(l1.EXCHANGE_RATE)
89758 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
89759 WHEN 12 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
89760 WHEN 13 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
89761 WHEN 14 THEN TO_CHAR(l1.LINE_NUMBER)
89762 WHEN 15 THEN TO_CHAR(l1.LINE_TYPE)
89763 WHEN 16 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
89764 WHEN 17 THEN TO_CHAR(l1.ENTERED_AMOUNT)
89765 WHEN 18 THEN TO_CHAR(l1.ACCT_AMOUNT)
89766
89767 ELSE null
89768 END source_value
89769 , CASE r
89770 WHEN 1 THEN XLA_00275_AAD_S_000015_PKG.GetMeaning(
89771 103371
89772 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
89773 ,'ALLOW_OVERRIDE_CCID_FLAG'
89774 ,'S'
89775 ,275)
89776 WHEN 15 THEN fvl35.meaning
89777
89778 ELSE null
89779 END source_meaning
89780 FROM xla_events_gt xet
89781 , PA_XLA_CCDL_LINES_V l1
89782 , fnd_lookup_values fvl35
89783 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
89784 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
89785 AND xet.event_class_code = C_EVENT_CLASS_CODE
89786 AND l1.event_id = xet.event_id
89787 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
89788 AND fvl35.lookup_code(+) = l1.LINE_TYPE
89789 AND fvl35.view_application_id(+) = 275
89790 AND fvl35.language(+) = USERENV('LANG')
89791
89792 )
89793 ;
89794 --
89795 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
89796
89800 ,p_module => l_log_module);
89797 trace
89798 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
89799 ,p_level => C_LEVEL_STATEMENT
89801
89802 END IF;
89803
89804
89805 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89806 trace
89807 (p_msg => 'END of insert_sources_159'
89808 ,p_level => C_LEVEL_PROCEDURE
89809 ,p_module => l_log_module);
89810 END IF;
89811 EXCEPTION
89812 WHEN xla_exceptions_pkg.application_exception THEN
89813 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
89814 trace
89815 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
89816 ,p_level => C_LEVEL_EXCEPTION
89817 ,p_module => l_log_module);
89818 END IF;
89819 RAISE;
89820 WHEN OTHERS THEN
89821 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
89822 trace
89823 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
89824 ,p_level => C_LEVEL_EXCEPTION
89825 ,p_module => l_log_module);
89826 END IF;
89827 xla_exceptions_pkg.raise_message
89828 (p_location => 'XLA_00275_AAD_S_000015_PKG.insert_sources_159');
89829 END insert_sources_159;
89830 --
89831
89832 ---------------------------------------
89833 --
89834 -- PRIVATE FUNCTION
89835 -- EventClass_159
89836 --
89837 ----------------------------------------
89838 --
89839 FUNCTION EventClass_159
89840 (p_application_id IN NUMBER
89841 ,p_base_ledger_id IN NUMBER
89842 ,p_target_ledger_id IN NUMBER
89843 ,p_language IN VARCHAR2
89844 ,p_currency_code IN VARCHAR2
89845 ,p_sla_ledger_id IN NUMBER
89846 ,p_pad_start_date IN DATE
89847 ,p_pad_end_date IN DATE
89848 ,p_primary_ledger_id IN NUMBER)
89849 RETURN BOOLEAN IS
89850 --
89851 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PRVDR_RECVR_RECLASS_ADJ_ALL';
89852 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PRVDR_RECVR_RECLASS_ADJ';
89853
89854 l_calculate_acctd_flag VARCHAR2(1) :='N';
89855 l_calculate_g_l_flag VARCHAR2(1) :='N';
89856 --
89857 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
89858 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
89859 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
89860 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
89861 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
89862 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
89863 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
89864 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
89865 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
89866 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
89867 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
89868 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
89869 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
89870 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
89871 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
89872 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
89873 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
89874 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
89875 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
89876 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
89877 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
89878 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
89879 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
89880 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
89881
89882 l_event_id NUMBER;
89883 l_previous_event_id NUMBER;
89884 l_first_event_id NUMBER;
89885 l_last_event_id NUMBER;
89886
89887 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
89888 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
89889 --
89890 --
89891 l_result BOOLEAN := TRUE;
89892 l_rows NUMBER := 1000;
89893 l_event_type_name VARCHAR2(80) := 'All';
89894 l_event_class_name VARCHAR2(80) := 'Provider and Receiver Reclass Adjustment';
89895 l_description VARCHAR2(4000);
89896 l_transaction_reversal NUMBER;
89897 l_ae_header_id NUMBER;
89898 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
89899 l_log_module VARCHAR2(240);
89900 --
89901 l_acct_reversal_source VARCHAR2(30);
89902 l_trx_reversal_source VARCHAR2(30);
89903
89904 l_continue_with_lines BOOLEAN := TRUE;
89905 --
89906 l_acc_rev_gl_date_source DATE; -- 4262811
89907 --
89908 type t_array_event_id is table of number index by binary_integer;
89909
89910 l_rec_array_event t_rec_array_event;
89911 l_null_rec_array_event t_rec_array_event;
89912 l_array_ae_header_id xla_number_array_type;
89913 l_actual_flag VARCHAR2(1) := NULL;
89914 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
89915 l_balance_type_code VARCHAR2(1) :=NULL;
89916 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
89917
89918 --
89922 TYPE t_array_source_33 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
89919 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
89920 --
89921
89923 TYPE t_array_source_75 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
89924
89925 TYPE t_array_source_5 IS TABLE OF PA_XLA_CCDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
89926 TYPE t_array_source_12 IS TABLE OF PA_XLA_CCDL_LINES_V.DESTINATION_CCID%TYPE INDEX BY BINARY_INTEGER;
89927 TYPE t_array_source_13 IS TABLE OF PA_XLA_CCDL_LINES_V.ADJ_DESTINATION_CCID%TYPE INDEX BY BINARY_INTEGER;
89928 TYPE t_array_source_14 IS TABLE OF PA_XLA_CCDL_LINES_V.SOURCE_CCID%TYPE INDEX BY BINARY_INTEGER;
89929 TYPE t_array_source_15 IS TABLE OF PA_XLA_CCDL_LINES_V.ADJ_SOURCE_CCID%TYPE INDEX BY BINARY_INTEGER;
89930 TYPE t_array_source_23 IS TABLE OF PA_XLA_CCDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
89931 TYPE t_array_source_24 IS TABLE OF PA_XLA_CCDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
89932 TYPE t_array_source_26 IS TABLE OF PA_XLA_CCDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
89933 TYPE t_array_source_28 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
89934 TYPE t_array_source_29 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
89935 TYPE t_array_source_30 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
89936 TYPE t_array_source_31 IS TABLE OF PA_XLA_CCDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
89937 TYPE t_array_source_32 IS TABLE OF PA_XLA_CCDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
89938 TYPE t_array_source_34 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
89939 TYPE t_array_source_35 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
89940 TYPE t_array_source_36 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
89941 TYPE t_array_source_42 IS TABLE OF PA_XLA_CCDL_LINES_V.ENTERED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
89942 TYPE t_array_source_43 IS TABLE OF PA_XLA_CCDL_LINES_V.ACCT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
89943
89944 l_array_source_33 t_array_source_33;
89945 l_array_source_75 t_array_source_75;
89946
89947 l_array_source_5 t_array_source_5;
89948 l_array_source_12 t_array_source_12;
89949 l_array_source_13 t_array_source_13;
89950 l_array_source_14 t_array_source_14;
89951 l_array_source_15 t_array_source_15;
89952 l_array_source_23 t_array_source_23;
89953 l_array_source_24 t_array_source_24;
89954 l_array_source_26 t_array_source_26;
89955 l_array_source_28 t_array_source_28;
89956 l_array_source_29 t_array_source_29;
89957 l_array_source_30 t_array_source_30;
89958 l_array_source_31 t_array_source_31;
89959 l_array_source_32 t_array_source_32;
89960 l_array_source_34 t_array_source_34;
89961 l_array_source_35 t_array_source_35;
89962 l_array_source_35_meaning t_array_lookup_meaning;
89963 l_array_source_36 t_array_source_36;
89964 l_array_source_42 t_array_source_42;
89965 l_array_source_43 t_array_source_43;
89966
89967 --
89968 CURSOR header_cur
89969 IS
89970 SELECT /*+ leading(xet) cardinality(xet,1) */
89971 -- Event Class Code: PRVDR_RECVR_RECLASS_ADJ
89972 xet.entity_id
89973 ,xet.legal_entity_id
89974 ,xet.entity_code
89975 ,xet.transaction_number
89976 ,xet.event_id
89977 ,xet.event_class_code
89978 ,xet.event_type_code
89979 ,xet.event_number
89980 ,xet.event_date
89981 ,xet.transaction_date
89982 ,xet.reference_num_1
89983 ,xet.reference_num_2
89984 ,xet.reference_num_3
89985 ,xet.reference_num_4
89986 ,xet.reference_char_1
89987 ,xet.reference_char_2
89988 ,xet.reference_char_3
89989 ,xet.reference_char_4
89990 ,xet.reference_date_1
89991 ,xet.reference_date_2
89992 ,xet.reference_date_3
89993 ,xet.reference_date_4
89994 ,xet.event_created_by
89995 ,xet.budgetary_control_flag
89996 , h2.EXPENDITURE_ITEM_ID source_33
89997 , h2.GL_DATE source_75
89998 FROM xla_events_gt xet
89999 , PA_XLA_EXP_HEADER_V h2
90000 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
90001 and xet.event_class_code = C_EVENT_CLASS_CODE
90002 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
90003
90004 ORDER BY event_id
90005 ;
90006
90007
90008 --
90009 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
90010 IS
90011 SELECT /*+ leading(xet) cardinality(xet,1) */
90012 -- Event Class Code: PRVDR_RECVR_RECLASS_ADJ
90013 xet.entity_id
90014 ,xet.legal_entity_id
90015 ,xet.entity_code
90016 ,xet.transaction_number
90017 ,xet.event_id
90018 ,xet.event_class_code
90019 ,xet.event_type_code
90020 ,xet.event_number
90021 ,xet.event_date
90022 ,xet.transaction_date
90023 ,xet.reference_num_1
90024 ,xet.reference_num_2
90025 ,xet.reference_num_3
90026 ,xet.reference_num_4
90027 ,xet.reference_char_1
90028 ,xet.reference_char_2
90029 ,xet.reference_char_3
90030 ,xet.reference_char_4
90031 ,xet.reference_date_1
90032 ,xet.reference_date_2
90033 ,xet.reference_date_3
90034 ,xet.reference_date_4
90035 ,xet.event_created_by
90036 ,xet.budgetary_control_flag
90037 , l1.LINE_NUMBER
90038 , l1.ALLOW_OVERRIDE_CCID_FLAG source_5
90039 , l1.DESTINATION_CCID source_12
90040 , l1.ADJ_DESTINATION_CCID source_13
90041 , l1.SOURCE_CCID source_14
90042 , l1.ADJ_SOURCE_CCID source_15
90043 , l1.REVERSING_LINE_FLAG source_23
90044 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_24
90045 , l1.ENTERED_CURRENCY_CODE source_26
90046 , l1.EXCHANGE_RATE_DATE source_28
90050 , l1.USE_ACT_UPG_ATTRIB_FLAG source_32
90047 , l1.EXCHANGE_RATE source_29
90048 , l1.EXCHANGE_RATE_TYPE source_30
90049 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_31
90051 , l1.LINE_NUMBER source_34
90052 , l1.LINE_TYPE source_35
90053 , fvl35.meaning source_35_meaning
90054 , l1.LINE_NUM_REVERSED source_36
90055 , l1.ENTERED_AMOUNT source_42
90056 , l1.ACCT_AMOUNT source_43
90057 FROM xla_events_gt xet
90058 , PA_XLA_CCDL_LINES_V l1
90059 , fnd_lookup_values fvl35
90060 WHERE xet.event_id between x_first_event_id and x_last_event_id
90061 and xet.event_date between p_pad_start_date and p_pad_end_date
90062 and xet.event_class_code = C_EVENT_CLASS_CODE
90063 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
90064 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
90065 AND fvl35.lookup_code(+) = l1.LINE_TYPE
90066 AND fvl35.view_application_id(+) = 275
90067 AND fvl35.language(+) = USERENV('LANG')
90068 ;
90069
90070 --
90071 BEGIN
90072 IF g_log_enabled THEN
90073 l_log_module := C_DEFAULT_MODULE||'.EventClass_159';
90074 END IF;
90075 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
90076 trace
90077 (p_msg => 'BEGIN of EventClass_159'
90078 ,p_level => C_LEVEL_PROCEDURE
90079 ,p_module => l_log_module);
90080 END IF;
90081
90082 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
90083 trace
90084 (p_msg => 'p_application_id = '||p_application_id||
90085 ' - p_base_ledger_id = '||p_base_ledger_id||
90086 ' - p_target_ledger_id = '||p_target_ledger_id||
90087 ' - p_language = '||p_language||
90088 ' - p_currency_code = '||p_currency_code||
90089 ' - p_sla_ledger_id = '||p_sla_ledger_id
90090 ,p_level => C_LEVEL_STATEMENT
90091 ,p_module => l_log_module);
90092 END IF;
90093 --
90094 -- initialze arrays
90095 --
90096 g_array_event.DELETE;
90097 l_rec_array_event := l_null_rec_array_event;
90098 --
90099 --------------------------------------
90100 -- 4262811 Initialze MPA Line Number
90101 --------------------------------------
90102 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
90103
90104 --
90105
90106 --
90107 OPEN header_cur;
90108 --
90109 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
90110 trace
90111 (p_msg => 'SQL - FETCH header_cur'
90112 ,p_level => C_LEVEL_STATEMENT
90113 ,p_module => l_log_module);
90114 END IF;
90115 --
90116 LOOP
90117 FETCH header_cur BULK COLLECT INTO
90118 l_array_entity_id
90119 , l_array_legal_entity_id
90120 , l_array_entity_code
90121 , l_array_transaction_num
90122 , l_array_event_id
90123 , l_array_class_code
90124 , l_array_event_type
90125 , l_array_event_number
90126 , l_array_event_date
90127 , l_array_transaction_date
90128 , l_array_reference_num_1
90129 , l_array_reference_num_2
90130 , l_array_reference_num_3
90131 , l_array_reference_num_4
90132 , l_array_reference_char_1
90133 , l_array_reference_char_2
90134 , l_array_reference_char_3
90135 , l_array_reference_char_4
90136 , l_array_reference_date_1
90137 , l_array_reference_date_2
90138 , l_array_reference_date_3
90139 , l_array_reference_date_4
90140 , l_array_event_created_by
90141 , l_array_budgetary_control_flag
90142 , l_array_source_33
90143 , l_array_source_75
90144 LIMIT l_rows;
90145 --
90146 IF (C_LEVEL_EVENT >= g_log_level) THEN
90147 trace
90148 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
90149 ,p_level => C_LEVEL_EVENT
90150 ,p_module => l_log_module);
90151 END IF;
90152 --
90153 EXIT WHEN l_array_entity_id.COUNT = 0;
90154
90155 -- initialize arrays
90156 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
90157 XLA_AE_LINES_PKG.g_rec_lines := NULL;
90158
90159 --
90160 -- Bug 4458708
90161 --
90162 XLA_AE_LINES_PKG.g_LineNumber := 0;
90163
90164
90165 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
90166 g_last_hdr_idx := l_array_event_id.LAST;
90167 --
90168 -- loop for the headers. Each iteration is for each header extract row
90169 -- fetched in header cursor
90170 --
90171 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
90172
90173 --
90174 -- set event info as cache for other routines to refer event attributes
90175 --
90176 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
90177 (p_application_id => p_application_id
90178 ,p_primary_ledger_id => p_primary_ledger_id
90179 ,p_base_ledger_id => p_base_ledger_id
90180 ,p_target_ledger_id => p_target_ledger_id
90181 ,p_entity_id => l_array_entity_id(hdr_idx)
90182 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
90183 ,p_entity_code => l_array_entity_code(hdr_idx)
90184 ,p_transaction_num => l_array_transaction_num(hdr_idx)
90185 ,p_event_id => l_array_event_id(hdr_idx)
90186 ,p_event_class_code => l_array_class_code(hdr_idx)
90187 ,p_event_type_code => l_array_event_type(hdr_idx)
90188 ,p_event_number => l_array_event_number(hdr_idx)
90189 ,p_event_date => l_array_event_date(hdr_idx)
90190 ,p_transaction_date => l_array_transaction_date(hdr_idx)
90191 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
90192 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
90196 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
90193 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
90194 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
90195 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
90197 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
90198 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
90199 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
90200 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
90201 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
90202 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
90203 ,p_event_created_by => l_array_event_created_by(hdr_idx)
90204 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
90205
90206 --
90207 -- set the status of entry to C_VALID (0)
90208 --
90209 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
90210
90211 --
90212 -- initialize a row for ae header
90213 --
90214 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
90215
90216 l_event_id := l_array_event_id(hdr_idx);
90217
90218 --
90219 -- storing the hdr_idx for event. May be used by line cursor.
90220 --
90221 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
90222
90223 --
90224 -- store sources from header extract. This can be improved to
90225 -- store only those sources from header extract that may be used in lines
90226 --
90227
90228 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
90229 g_array_event(l_event_id).array_value_date('source_75') := l_array_source_75(hdr_idx);
90230
90231 --
90232 -- initilaize the status of ae headers for diffrent balance types
90233 -- the status is initialised to C_NOT_CREATED (2)
90234 --
90235 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
90236 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
90237 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
90238
90239 --
90240 -- call api to validate and store accounting attributes for header
90241 --
90242
90243 ------------------------------------------------------------
90244 -- Accrual Reversal : to get date for Standard Source (NONE)
90245 ------------------------------------------------------------
90246 l_acc_rev_gl_date_source := NULL;
90247
90248 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
90249 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_75');
90250
90251
90252 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
90253
90254 XLA_AE_HEADER_PKG.SetJeCategoryName;
90255
90256 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
90257 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
90258 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
90259 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
90260 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
90261
90262
90263 -- No header level analytical criteria
90264
90265 --
90266 --accounting attribute enhancement, bug 3612931
90267 --
90268 l_trx_reversal_source := SUBSTR(NULL, 1,30);
90269
90270 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
90271 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
90272
90273 xla_accounting_err_pkg.build_message
90274 (p_appli_s_name => 'XLA'
90275 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
90276 ,p_token_1 => 'ACCT_ATTR_NAME'
90277 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
90278 ,p_token_2 => 'PRODUCT_NAME'
90279 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
90280 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
90281 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
90282 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
90283
90284 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
90285 --
90286 -- following sets the accounting attributes needed to reverse
90287 -- accounting for a distributeion
90288 --
90289 xla_ae_lines_pkg.SetTrxReversalAttrs
90290 (p_event_id => l_event_id
90291 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
90292 ,p_trx_reversal_source => l_trx_reversal_source);
90293
90294 END IF;
90295
90296
90297 ----------------------------------------------------------------
90298 -- 4262811 - update the header statuses to invalid in need be
90299 ----------------------------------------------------------------
90300 --
90301 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
90302
90303
90304 -----------------------------------------------
90305 -- No accrual reversal for the event class/type
90306 -----------------------------------------------
90307 ----------------------------------------------------------------
90308
90309 --
90310 -- this ends the header loop iteration for one bulk fetch
90311 --
90312 END LOOP;
90313
90314 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
90315 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
90316
90317 --
90318 -- insert dummy rows into lines gt table that were created due to
90319 -- transaction reversals
90320 --
90324
90321 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
90322 l_result := XLA_AE_LINES_PKG.InsertLines;
90323 END IF;
90325 --
90326 -- reset the temp_line_num for each set of events fetched from header
90327 -- cursor rather than doing it for each new event in line cursor
90328 -- Bug 3939231
90329 --
90330 xla_ae_lines_pkg.g_temp_line_num := 0;
90331
90332
90333
90334 --
90335 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
90336 --
90337 --
90338 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
90339
90340 trace
90341 (p_msg => 'SQL - FETCH line_cur'
90342 ,p_level => C_LEVEL_STATEMENT
90343 ,p_module => l_log_module);
90344
90345 END IF;
90346 --
90347 --
90348 LOOP
90349 --
90350 FETCH line_cur BULK COLLECT INTO
90351 l_array_entity_id
90352 , l_array_legal_entity_id
90353 , l_array_entity_code
90354 , l_array_transaction_num
90355 , l_array_event_id
90356 , l_array_class_code
90357 , l_array_event_type
90358 , l_array_event_number
90359 , l_array_event_date
90360 , l_array_transaction_date
90361 , l_array_reference_num_1
90362 , l_array_reference_num_2
90363 , l_array_reference_num_3
90364 , l_array_reference_num_4
90365 , l_array_reference_char_1
90366 , l_array_reference_char_2
90367 , l_array_reference_char_3
90368 , l_array_reference_char_4
90369 , l_array_reference_date_1
90370 , l_array_reference_date_2
90371 , l_array_reference_date_3
90372 , l_array_reference_date_4
90373 , l_array_event_created_by
90374 , l_array_budgetary_control_flag
90375 , l_array_extract_line_num
90376 , l_array_source_5
90377 , l_array_source_12
90378 , l_array_source_13
90379 , l_array_source_14
90380 , l_array_source_15
90381 , l_array_source_23
90382 , l_array_source_24
90383 , l_array_source_26
90384 , l_array_source_28
90385 , l_array_source_29
90386 , l_array_source_30
90387 , l_array_source_31
90388 , l_array_source_32
90389 , l_array_source_34
90390 , l_array_source_35
90391 , l_array_source_35_meaning
90392 , l_array_source_36
90393 , l_array_source_42
90394 , l_array_source_43
90395 LIMIT l_rows;
90396
90397 --
90398 IF (C_LEVEL_EVENT >= g_log_level) THEN
90399 trace
90400 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
90401 ,p_level => C_LEVEL_EVENT
90402 ,p_module => l_log_module);
90403 END IF;
90404 --
90405 EXIT WHEN l_array_entity_id.count = 0;
90406
90407 XLA_AE_LINES_PKG.g_rec_lines := null;
90408
90409 --
90410 -- Bug 4458708
90411 --
90412 XLA_AE_LINES_PKG.g_LineNumber := 0;
90413 --
90414 --
90415
90416 FOR Idx IN 1..l_array_event_id.count LOOP
90417 --
90418 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
90419 --
90420 l_event_id := l_array_event_id(idx); -- 5648433
90421
90422 --
90423 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
90424 --
90425
90426 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
90427 (g_array_event(l_event_id).array_value_num('header_index'))
90428 ,'N'
90429 ) <> 'Y'
90430 THEN
90431 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
90432 trace
90433 (p_msg => 'Trancaction revesal option is not Y '
90434 ,p_level => C_LEVEL_STATEMENT
90435 ,p_module => l_log_module);
90436 END IF;
90437
90438 --
90439 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
90440 --
90441 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
90442 --
90443 -- set event info as cache for other routines to refer event attributes
90444 --
90445
90446 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
90447 l_previous_event_id := l_event_id;
90448
90449 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
90450 (p_application_id => p_application_id
90451 ,p_primary_ledger_id => p_primary_ledger_id
90452 ,p_base_ledger_id => p_base_ledger_id
90453 ,p_target_ledger_id => p_target_ledger_id
90454 ,p_entity_id => l_array_entity_id(Idx)
90455 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
90456 ,p_entity_code => l_array_entity_code(Idx)
90457 ,p_transaction_num => l_array_transaction_num(Idx)
90458 ,p_event_id => l_array_event_id(Idx)
90459 ,p_event_class_code => l_array_class_code(Idx)
90460 ,p_event_type_code => l_array_event_type(Idx)
90461 ,p_event_number => l_array_event_number(Idx)
90462 ,p_event_date => l_array_event_date(Idx)
90463 ,p_transaction_date => l_array_transaction_date(Idx)
90464 ,p_reference_num_1 => l_array_reference_num_1(Idx)
90465 ,p_reference_num_2 => l_array_reference_num_2(Idx)
90466 ,p_reference_num_3 => l_array_reference_num_3(Idx)
90467 ,p_reference_num_4 => l_array_reference_num_4(Idx)
90468 ,p_reference_char_1 => l_array_reference_char_1(Idx)
90469 ,p_reference_char_2 => l_array_reference_char_2(Idx)
90470 ,p_reference_char_3 => l_array_reference_char_3(Idx)
90471 ,p_reference_char_4 => l_array_reference_char_4(Idx)
90475 ,p_reference_date_4 => l_array_reference_date_4(Idx)
90472 ,p_reference_date_1 => l_array_reference_date_1(Idx)
90473 ,p_reference_date_2 => l_array_reference_date_2(Idx)
90474 ,p_reference_date_3 => l_array_reference_date_3(Idx)
90476 ,p_event_created_by => l_array_event_created_by(Idx)
90477 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
90478 --
90479 END IF;
90480
90481
90482
90483 --
90484 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
90485
90486 l_acct_reversal_source := SUBSTR(l_array_source_23(Idx), 1,30);
90487
90488 IF l_continue_with_lines THEN
90489 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
90490 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
90491
90492 xla_accounting_err_pkg.build_message
90493 (p_appli_s_name => 'XLA'
90494 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
90495 ,p_token_1 => 'LINE_NUMBER'
90496 ,p_value_1 => l_array_extract_line_num(Idx)
90497 ,p_token_2 => 'PRODUCT_NAME'
90498 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
90499 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
90500 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
90501 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
90502
90503 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
90504 --
90505 -- following sets the accounting attributes needed to reverse
90506 -- accounting for a distributeion
90507 --
90508
90509 --
90510 -- 5217187
90511 --
90512 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
90513 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
90514 g_array_event(l_event_id).array_value_num('header_index'));
90515 --
90516 --
90517
90518 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
90519 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_23(Idx);
90520 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
90521 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_24(Idx);
90522 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
90523 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_14(Idx));
90524 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
90525 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_42(Idx);
90526 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
90527 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_26(Idx);
90528 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
90529 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_43(Idx);
90530 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
90531 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_28(Idx);
90532 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
90533 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_29(Idx);
90534 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
90535 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_30(Idx);
90536 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
90537 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_31(Idx);
90538 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
90539 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_12(Idx));
90540 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
90541 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_42(Idx);
90542 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
90543 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_26(Idx);
90544 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
90545 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_43(Idx);
90546 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
90547 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_28(Idx);
90548 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
90549 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_29(Idx);
90550 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
90551 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_30(Idx);
90552 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
90553 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_32(Idx);
90554 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
90555 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_33');
90556 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
90557 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_34(Idx);
90558 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
90559 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_35(Idx);
90560 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
90561 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_33');
90562 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
90563 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_36(Idx);
90564 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
90568 xla_ae_lines_pkg.SetAcctReversalAttrs
90565 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_35(Idx);
90566
90567
90569 (p_event_id => l_event_id
90570 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
90571 ,p_calculate_acctd_flag => l_calculate_acctd_flag
90572 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
90573 END IF;
90574
90575 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
90576 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
90577
90578 --
90579 AcctLineType_123 (
90580 p_application_id => p_application_id
90581 ,p_event_id => l_event_id
90582 ,p_calculate_acctd_flag => l_calculate_acctd_flag
90583 ,p_calculate_g_l_flag => l_calculate_g_l_flag
90584 ,p_actual_flag => l_actual_flag
90585 ,p_balance_type_code => l_balance_type_code
90586 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
90587
90588 , p_source_5 => l_array_source_5(Idx)
90589 , p_source_12 => l_array_source_12(Idx)
90590 , p_source_13 => l_array_source_13(Idx)
90591 , p_source_14 => l_array_source_14(Idx)
90592 , p_source_23 => l_array_source_23(Idx)
90593 , p_source_24 => l_array_source_24(Idx)
90594 , p_source_26 => l_array_source_26(Idx)
90595 , p_source_28 => l_array_source_28(Idx)
90596 , p_source_29 => l_array_source_29(Idx)
90597 , p_source_30 => l_array_source_30(Idx)
90598 , p_source_31 => l_array_source_31(Idx)
90599 , p_source_32 => l_array_source_32(Idx)
90600 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
90601 , p_source_34 => l_array_source_34(Idx)
90602 , p_source_35 => l_array_source_35(Idx)
90603 , p_source_35_meaning => l_array_source_35_meaning(Idx)
90604 , p_source_36 => l_array_source_36(Idx)
90605 , p_source_42 => l_array_source_42(Idx)
90606 , p_source_43 => l_array_source_43(Idx)
90607 );
90608 If(l_balance_type_code = 'A') THEN
90609 l_actual_gain_loss_ref := l_gain_or_loss_ref;
90610 END IF;
90611
90612 --
90613
90614
90615 --
90616 AcctLineType_125 (
90617 p_application_id => p_application_id
90618 ,p_event_id => l_event_id
90619 ,p_calculate_acctd_flag => l_calculate_acctd_flag
90620 ,p_calculate_g_l_flag => l_calculate_g_l_flag
90621 ,p_actual_flag => l_actual_flag
90622 ,p_balance_type_code => l_balance_type_code
90623 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
90624
90625 , p_source_5 => l_array_source_5(Idx)
90626 , p_source_12 => l_array_source_12(Idx)
90627 , p_source_14 => l_array_source_14(Idx)
90628 , p_source_15 => l_array_source_15(Idx)
90629 , p_source_23 => l_array_source_23(Idx)
90630 , p_source_24 => l_array_source_24(Idx)
90631 , p_source_26 => l_array_source_26(Idx)
90632 , p_source_28 => l_array_source_28(Idx)
90633 , p_source_29 => l_array_source_29(Idx)
90634 , p_source_30 => l_array_source_30(Idx)
90635 , p_source_31 => l_array_source_31(Idx)
90636 , p_source_32 => l_array_source_32(Idx)
90637 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
90638 , p_source_34 => l_array_source_34(Idx)
90639 , p_source_35 => l_array_source_35(Idx)
90640 , p_source_35_meaning => l_array_source_35_meaning(Idx)
90641 , p_source_36 => l_array_source_36(Idx)
90642 , p_source_42 => l_array_source_42(Idx)
90643 , p_source_43 => l_array_source_43(Idx)
90644 );
90645 If(l_balance_type_code = 'A') THEN
90646 l_actual_gain_loss_ref := l_gain_or_loss_ref;
90647 END IF;
90648
90649 --
90650
90651 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
90652 -- or secondary ledger that has different currency with primary
90653 -- or alc that is calculated by sla
90654 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
90655 (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'))
90656
90657 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
90658 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
90659 AND (l_actual_flag = 'A')) THEN
90660 XLA_AE_LINES_PKG.CreateGainOrLossLines(
90661 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
90662 ,p_application_id => p_application_id
90663 ,p_amb_context_code => 'DEFAULT'
90664 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
90665 ,p_event_class_code => C_EVENT_CLASS_CODE
90666 ,p_event_type_code => C_EVENT_TYPE_CODE
90667
90668 ,p_gain_ccid => -1
90669 ,p_loss_ccid => -1
90670
90671 ,p_actual_flag => l_actual_flag
90672 ,p_enc_flag => null
90673 ,p_actual_g_l_ref => l_actual_gain_loss_ref
90674 ,p_enc_g_l_ref => null
90675 );
90676 END IF;
90677 END IF;
90678 END IF;
90679
90680 ELSE
90681 --
90682 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
90683 --
90684 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
90685 trace
90686 (p_msg => 'Trancaction revesal option is Y'
90687 ,p_level => C_LEVEL_STATEMENT
90688 ,p_module => l_log_module);
90689 END IF;
90690 END IF;
90691
90692 END LOOP;
90693 l_result := XLA_AE_LINES_PKG.InsertLines ;
90694 end loop;
90695 close line_cur;
90696
90697
90698 --
90699 -- insert headers into xla_ae_headers_gt table
90700 --
90701 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
90702
90703 -- insert into errors table here.
90704
90705 END LOOP;
90706
90707 --
90708 -- 4865292
90709 --
90713 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
90710 -- Compare g_hdr_extract_count with event count in
90711 -- CreateHeadersAndLines.
90712 --
90714
90715 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
90716 trace (p_msg => '# rows extracted from header extract objects '
90717 || ' (running total): '
90718 || g_hdr_extract_count
90719 ,p_level => C_LEVEL_STATEMENT
90720 ,p_module => l_log_module);
90721 END IF;
90722
90723 CLOSE header_cur;
90724 --
90725
90726 --
90727 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
90728 trace
90729 (p_msg => 'END of EventClass_159'
90730 ,p_level => C_LEVEL_PROCEDURE
90731 ,p_module => l_log_module);
90732 END IF;
90733 --
90734 RETURN l_result;
90735 EXCEPTION
90736 WHEN xla_exceptions_pkg.application_exception THEN
90737
90738 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
90739
90740
90741 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
90742
90743 RAISE;
90744 WHEN OTHERS THEN
90745 xla_exceptions_pkg.raise_message
90746 (p_location => 'XLA_00275_AAD_S_000015_PKG.EventClass_159');
90747 END EventClass_159;
90748 --
90749
90750 ---------------------------------------
90751 --
90752 -- PRIVATE PROCEDURE
90753 -- insert_sources_160
90754 --
90755 ----------------------------------------
90756 --
90757 PROCEDURE insert_sources_160(
90758 p_target_ledger_id IN NUMBER
90759 , p_language IN VARCHAR2
90760 , p_sla_ledger_id IN NUMBER
90761 , p_pad_start_date IN DATE
90762 , p_pad_end_date IN DATE
90763 )
90764 IS
90765
90766 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PRVDR_RECVR_RECLASS_ALL';
90767 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PRVDR_RECVR_RECLASS';
90768 p_apps_owner VARCHAR2(30);
90769 l_log_module VARCHAR2(240);
90770 BEGIN
90771 IF g_log_enabled THEN
90772 l_log_module := C_DEFAULT_MODULE||'.insert_sources_160';
90773 END IF;
90774 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
90775
90776 trace
90777 (p_msg => 'BEGIN of insert_sources_160'
90778 ,p_level => C_LEVEL_PROCEDURE
90779 ,p_module => l_log_module);
90780
90781 END IF;
90782
90783 -- select APPS owner
90784 SELECT oracle_username
90785 INTO p_apps_owner
90786 FROM fnd_oracle_userid
90787 WHERE read_only_flag = 'U'
90788 ;
90789
90790 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
90791 trace
90792 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
90793 ' - p_language = '||p_language||
90794 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
90795 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
90796 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
90797 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
90798 ,p_level => C_LEVEL_STATEMENT
90799 ,p_module => l_log_module);
90800 END IF;
90801
90802
90803 --
90804 INSERT INTO xla_diag_sources --hdr2
90805 (
90806 event_id
90807 , ledger_id
90808 , sla_ledger_id
90809 , description_language
90810 , object_name
90811 , object_type_code
90812 , line_number
90813 , source_application_id
90814 , source_type_code
90815 , source_code
90816 , source_value
90817 , source_meaning
90818 , created_by
90819 , creation_date
90820 , last_update_date
90821 , last_updated_by
90822 , last_update_login
90823 , program_update_date
90824 , program_application_id
90825 , program_id
90826 , request_id
90827 )
90828 SELECT
90829 event_id
90830 , p_target_ledger_id
90831 , p_sla_ledger_id
90832 , p_language
90833 , object_name
90834 , object_type_code
90835 , line_number
90836 , source_application_id
90837 , source_type_code
90838 , source_code
90839 , SUBSTR(source_value ,1,1996)
90840 , SUBSTR(source_meaning ,1,200)
90841 , xla_environment_pkg.g_Usr_Id
90842 , TRUNC(SYSDATE)
90843 , TRUNC(SYSDATE)
90844 , xla_environment_pkg.g_Usr_Id
90845 , xla_environment_pkg.g_Login_Id
90846 , TRUNC(SYSDATE)
90847 , xla_environment_pkg.g_Prog_Appl_Id
90848 , xla_environment_pkg.g_Prog_Id
90849 , xla_environment_pkg.g_Req_Id
90850 FROM (
90851 SELECT xet.event_id event_id
90852 , 0 line_number
90853 , CASE r
90854 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
90855 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
90856
90857 ELSE null
90858 END object_name
90859 , CASE r
90860 WHEN 1 THEN 'HEADER'
90861 WHEN 2 THEN 'HEADER'
90862
90863 ELSE null
90864 END object_type_code
90865 , CASE r
90866 WHEN 1 THEN '275'
90867 WHEN 2 THEN '275'
90868
90869 ELSE null
90870 END source_application_id
90871 , 'S' source_type_code
90872 , CASE r
90876 ELSE null
90873 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
90874 WHEN 2 THEN 'GL_DATE'
90875
90877 END source_code
90878 , CASE r
90879 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
90880 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
90881
90882 ELSE null
90883 END source_value
90884 , null source_meaning
90885 FROM xla_events_gt xet
90886 , PA_XLA_EXP_HEADER_V h2
90887 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
90888 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
90889 AND xet.event_class_code = C_EVENT_CLASS_CODE
90890 AND h2.event_id = xet.event_id
90891
90892 )
90893 ;
90894 --
90895 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
90896
90897 trace
90898 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
90899 ,p_level => C_LEVEL_STATEMENT
90900 ,p_module => l_log_module);
90901
90902 END IF;
90903 --
90904
90905
90906
90907 --
90908 INSERT INTO xla_diag_sources --line2
90909 (
90910 event_id
90911 , ledger_id
90912 , sla_ledger_id
90913 , description_language
90914 , object_name
90915 , object_type_code
90916 , line_number
90917 , source_application_id
90918 , source_type_code
90919 , source_code
90920 , source_value
90921 , source_meaning
90922 , created_by
90923 , creation_date
90924 , last_update_date
90925 , last_updated_by
90926 , last_update_login
90927 , program_update_date
90928 , program_application_id
90929 , program_id
90930 , request_id
90931 )
90932 SELECT event_id
90933 , p_target_ledger_id
90934 , p_sla_ledger_id
90935 , p_language
90936 , object_name
90937 , object_type_code
90938 , line_number
90939 , source_application_id
90940 , source_type_code
90941 , source_code
90942 , SUBSTR(source_value,1,1996)
90943 , SUBSTR(source_meaning ,1,200)
90944 , xla_environment_pkg.g_Usr_Id
90945 , TRUNC(SYSDATE)
90946 , TRUNC(SYSDATE)
90947 , xla_environment_pkg.g_Usr_Id
90948 , xla_environment_pkg.g_Login_Id
90949 , TRUNC(SYSDATE)
90950 , xla_environment_pkg.g_Prog_Appl_Id
90951 , xla_environment_pkg.g_Prog_Id
90952 , xla_environment_pkg.g_Req_Id
90953 FROM (
90954 SELECT xet.event_id event_id
90955 , l1.line_number line_number
90956 , CASE r
90957 WHEN 1 THEN 'PA_XLA_CCDL_LINES_V'
90958 WHEN 2 THEN 'PA_XLA_CCDL_LINES_V'
90959 WHEN 3 THEN 'PA_XLA_CCDL_LINES_V'
90960 WHEN 4 THEN 'PA_XLA_CCDL_LINES_V'
90961 WHEN 5 THEN 'PA_XLA_CCDL_LINES_V'
90962 WHEN 6 THEN 'PA_XLA_CCDL_LINES_V'
90963 WHEN 7 THEN 'PA_XLA_CCDL_LINES_V'
90964 WHEN 8 THEN 'PA_XLA_CCDL_LINES_V'
90965 WHEN 9 THEN 'PA_XLA_CCDL_LINES_V'
90966 WHEN 10 THEN 'PA_XLA_CCDL_LINES_V'
90967 WHEN 11 THEN 'PA_XLA_CCDL_LINES_V'
90968 WHEN 12 THEN 'PA_XLA_CCDL_LINES_V'
90969 WHEN 13 THEN 'PA_XLA_CCDL_LINES_V'
90970 WHEN 14 THEN 'PA_XLA_CCDL_LINES_V'
90971 WHEN 15 THEN 'PA_XLA_CCDL_LINES_V'
90972 WHEN 16 THEN 'PA_XLA_CCDL_LINES_V'
90973 WHEN 17 THEN 'PA_XLA_CCDL_LINES_V'
90974 WHEN 18 THEN 'PA_XLA_CCDL_LINES_V'
90975
90976 ELSE null
90977 END object_name
90978 , CASE r
90979 WHEN 1 THEN 'LINE'
90980 WHEN 2 THEN 'LINE'
90981 WHEN 3 THEN 'LINE'
90982 WHEN 4 THEN 'LINE'
90983 WHEN 5 THEN 'LINE'
90984 WHEN 6 THEN 'LINE'
90985 WHEN 7 THEN 'LINE'
90986 WHEN 8 THEN 'LINE'
90987 WHEN 9 THEN 'LINE'
90988 WHEN 10 THEN 'LINE'
90989 WHEN 11 THEN 'LINE'
90990 WHEN 12 THEN 'LINE'
90991 WHEN 13 THEN 'LINE'
90992 WHEN 14 THEN 'LINE'
90993 WHEN 15 THEN 'LINE'
90994 WHEN 16 THEN 'LINE'
90995 WHEN 17 THEN 'LINE'
90996 WHEN 18 THEN 'LINE'
90997
90998 ELSE null
90999 END object_type_code
91000 , CASE r
91001 WHEN 1 THEN '275'
91002 WHEN 2 THEN '275'
91003 WHEN 3 THEN '275'
91004 WHEN 4 THEN '275'
91005 WHEN 5 THEN '275'
91006 WHEN 6 THEN '275'
91007 WHEN 7 THEN '275'
91008 WHEN 8 THEN '275'
91009 WHEN 9 THEN '275'
91010 WHEN 10 THEN '275'
91011 WHEN 11 THEN '275'
91012 WHEN 12 THEN '275'
91013 WHEN 13 THEN '275'
91014 WHEN 14 THEN '275'
91015 WHEN 15 THEN '275'
91016 WHEN 16 THEN '275'
91017 WHEN 17 THEN '275'
91018 WHEN 18 THEN '275'
91019
91020 ELSE null
91021 END source_application_id
91025 WHEN 2 THEN 'DESTINATION_CCID'
91022 , 'S' source_type_code
91023 , CASE r
91024 WHEN 1 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
91026 WHEN 3 THEN 'ADJ_DESTINATION_CCID'
91027 WHEN 4 THEN 'SOURCE_CCID'
91028 WHEN 5 THEN 'ADJ_SOURCE_CCID'
91029 WHEN 6 THEN 'REVERSING_LINE_FLAG'
91030 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
91031 WHEN 8 THEN 'ENTERED_CURRENCY_CODE'
91032 WHEN 9 THEN 'EXCHANGE_RATE_DATE'
91033 WHEN 10 THEN 'EXCHANGE_RATE'
91034 WHEN 11 THEN 'EXCHANGE_RATE_TYPE'
91035 WHEN 12 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
91036 WHEN 13 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
91037 WHEN 14 THEN 'LINE_NUMBER'
91038 WHEN 15 THEN 'LINE_TYPE'
91039 WHEN 16 THEN 'LINE_NUM_REVERSED'
91040 WHEN 17 THEN 'ENTERED_AMOUNT'
91041 WHEN 18 THEN 'ACCT_AMOUNT'
91042
91043 ELSE null
91044 END source_code
91045 , CASE r
91046 WHEN 1 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
91047 WHEN 2 THEN TO_CHAR(l1.DESTINATION_CCID)
91048 WHEN 3 THEN TO_CHAR(l1.ADJ_DESTINATION_CCID)
91049 WHEN 4 THEN TO_CHAR(l1.SOURCE_CCID)
91050 WHEN 5 THEN TO_CHAR(l1.ADJ_SOURCE_CCID)
91051 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
91052 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
91053 WHEN 8 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
91054 WHEN 9 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
91055 WHEN 10 THEN TO_CHAR(l1.EXCHANGE_RATE)
91056 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
91057 WHEN 12 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
91058 WHEN 13 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
91059 WHEN 14 THEN TO_CHAR(l1.LINE_NUMBER)
91060 WHEN 15 THEN TO_CHAR(l1.LINE_TYPE)
91061 WHEN 16 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
91062 WHEN 17 THEN TO_CHAR(l1.ENTERED_AMOUNT)
91063 WHEN 18 THEN TO_CHAR(l1.ACCT_AMOUNT)
91064
91065 ELSE null
91066 END source_value
91067 , CASE r
91068 WHEN 1 THEN XLA_00275_AAD_S_000015_PKG.GetMeaning(
91069 103371
91070 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
91071 ,'ALLOW_OVERRIDE_CCID_FLAG'
91072 ,'S'
91073 ,275)
91074 WHEN 15 THEN fvl35.meaning
91075
91076 ELSE null
91077 END source_meaning
91078 FROM xla_events_gt xet
91079 , PA_XLA_CCDL_LINES_V l1
91080 , fnd_lookup_values fvl35
91081 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
91082 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
91083 AND xet.event_class_code = C_EVENT_CLASS_CODE
91084 AND l1.event_id = xet.event_id
91085 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
91086 AND fvl35.lookup_code(+) = l1.LINE_TYPE
91087 AND fvl35.view_application_id(+) = 275
91088 AND fvl35.language(+) = USERENV('LANG')
91089
91090 )
91091 ;
91092 --
91093 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
91094
91095 trace
91096 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
91097 ,p_level => C_LEVEL_STATEMENT
91098 ,p_module => l_log_module);
91099
91100 END IF;
91101
91102
91103 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
91104 trace
91105 (p_msg => 'END of insert_sources_160'
91106 ,p_level => C_LEVEL_PROCEDURE
91107 ,p_module => l_log_module);
91108 END IF;
91109 EXCEPTION
91110 WHEN xla_exceptions_pkg.application_exception THEN
91111 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
91112 trace
91113 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
91114 ,p_level => C_LEVEL_EXCEPTION
91115 ,p_module => l_log_module);
91116 END IF;
91117 RAISE;
91118 WHEN OTHERS THEN
91119 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
91120 trace
91121 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
91122 ,p_level => C_LEVEL_EXCEPTION
91123 ,p_module => l_log_module);
91124 END IF;
91125 xla_exceptions_pkg.raise_message
91126 (p_location => 'XLA_00275_AAD_S_000015_PKG.insert_sources_160');
91127 END insert_sources_160;
91128 --
91129
91130 ---------------------------------------
91131 --
91132 -- PRIVATE FUNCTION
91133 -- EventClass_160
91134 --
91135 ----------------------------------------
91136 --
91137 FUNCTION EventClass_160
91138 (p_application_id IN NUMBER
91139 ,p_base_ledger_id IN NUMBER
91140 ,p_target_ledger_id IN NUMBER
91141 ,p_language IN VARCHAR2
91142 ,p_currency_code IN VARCHAR2
91143 ,p_sla_ledger_id IN NUMBER
91144 ,p_pad_start_date IN DATE
91145 ,p_pad_end_date IN DATE
91146 ,p_primary_ledger_id IN NUMBER)
91147 RETURN BOOLEAN IS
91148 --
91149 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PRVDR_RECVR_RECLASS_ALL';
91150 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PRVDR_RECVR_RECLASS';
91151
91152 l_calculate_acctd_flag VARCHAR2(1) :='N';
91156 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
91153 l_calculate_g_l_flag VARCHAR2(1) :='N';
91154 --
91155 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
91157 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
91158 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
91159 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
91160 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
91161 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
91162 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
91163 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
91164 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
91165 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
91166 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
91167 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
91168 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
91169 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
91170 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
91171 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
91172 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
91173 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
91174 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
91175 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
91176 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
91177 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
91178 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
91179
91180 l_event_id NUMBER;
91181 l_previous_event_id NUMBER;
91182 l_first_event_id NUMBER;
91183 l_last_event_id NUMBER;
91184
91185 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
91186 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
91187 --
91188 --
91189 l_result BOOLEAN := TRUE;
91190 l_rows NUMBER := 1000;
91191 l_event_type_name VARCHAR2(80) := 'All';
91192 l_event_class_name VARCHAR2(80) := 'Provider and Receiver Reclass';
91193 l_description VARCHAR2(4000);
91194 l_transaction_reversal NUMBER;
91195 l_ae_header_id NUMBER;
91196 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
91197 l_log_module VARCHAR2(240);
91198 --
91199 l_acct_reversal_source VARCHAR2(30);
91200 l_trx_reversal_source VARCHAR2(30);
91201
91202 l_continue_with_lines BOOLEAN := TRUE;
91203 --
91204 l_acc_rev_gl_date_source DATE; -- 4262811
91205 --
91206 type t_array_event_id is table of number index by binary_integer;
91207
91208 l_rec_array_event t_rec_array_event;
91209 l_null_rec_array_event t_rec_array_event;
91210 l_array_ae_header_id xla_number_array_type;
91211 l_actual_flag VARCHAR2(1) := NULL;
91212 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
91213 l_balance_type_code VARCHAR2(1) :=NULL;
91214 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
91215
91216 --
91217 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
91218 --
91219
91220 TYPE t_array_source_33 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
91221 TYPE t_array_source_75 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
91222
91223 TYPE t_array_source_5 IS TABLE OF PA_XLA_CCDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
91224 TYPE t_array_source_12 IS TABLE OF PA_XLA_CCDL_LINES_V.DESTINATION_CCID%TYPE INDEX BY BINARY_INTEGER;
91225 TYPE t_array_source_13 IS TABLE OF PA_XLA_CCDL_LINES_V.ADJ_DESTINATION_CCID%TYPE INDEX BY BINARY_INTEGER;
91226 TYPE t_array_source_14 IS TABLE OF PA_XLA_CCDL_LINES_V.SOURCE_CCID%TYPE INDEX BY BINARY_INTEGER;
91227 TYPE t_array_source_15 IS TABLE OF PA_XLA_CCDL_LINES_V.ADJ_SOURCE_CCID%TYPE INDEX BY BINARY_INTEGER;
91228 TYPE t_array_source_23 IS TABLE OF PA_XLA_CCDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
91229 TYPE t_array_source_24 IS TABLE OF PA_XLA_CCDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
91230 TYPE t_array_source_26 IS TABLE OF PA_XLA_CCDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
91231 TYPE t_array_source_28 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
91232 TYPE t_array_source_29 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
91233 TYPE t_array_source_30 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
91234 TYPE t_array_source_31 IS TABLE OF PA_XLA_CCDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
91235 TYPE t_array_source_32 IS TABLE OF PA_XLA_CCDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
91236 TYPE t_array_source_34 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
91237 TYPE t_array_source_35 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
91238 TYPE t_array_source_36 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
91239 TYPE t_array_source_42 IS TABLE OF PA_XLA_CCDL_LINES_V.ENTERED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
91240 TYPE t_array_source_43 IS TABLE OF PA_XLA_CCDL_LINES_V.ACCT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
91241
91242 l_array_source_33 t_array_source_33;
91243 l_array_source_75 t_array_source_75;
91244
91245 l_array_source_5 t_array_source_5;
91246 l_array_source_12 t_array_source_12;
91247 l_array_source_13 t_array_source_13;
91251 l_array_source_24 t_array_source_24;
91248 l_array_source_14 t_array_source_14;
91249 l_array_source_15 t_array_source_15;
91250 l_array_source_23 t_array_source_23;
91252 l_array_source_26 t_array_source_26;
91253 l_array_source_28 t_array_source_28;
91254 l_array_source_29 t_array_source_29;
91255 l_array_source_30 t_array_source_30;
91256 l_array_source_31 t_array_source_31;
91257 l_array_source_32 t_array_source_32;
91258 l_array_source_34 t_array_source_34;
91259 l_array_source_35 t_array_source_35;
91260 l_array_source_35_meaning t_array_lookup_meaning;
91261 l_array_source_36 t_array_source_36;
91262 l_array_source_42 t_array_source_42;
91263 l_array_source_43 t_array_source_43;
91264
91265 --
91266 CURSOR header_cur
91267 IS
91268 SELECT /*+ leading(xet) cardinality(xet,1) */
91269 -- Event Class Code: PRVDR_RECVR_RECLASS
91270 xet.entity_id
91271 ,xet.legal_entity_id
91272 ,xet.entity_code
91273 ,xet.transaction_number
91274 ,xet.event_id
91275 ,xet.event_class_code
91276 ,xet.event_type_code
91277 ,xet.event_number
91278 ,xet.event_date
91279 ,xet.transaction_date
91280 ,xet.reference_num_1
91281 ,xet.reference_num_2
91282 ,xet.reference_num_3
91283 ,xet.reference_num_4
91284 ,xet.reference_char_1
91285 ,xet.reference_char_2
91286 ,xet.reference_char_3
91287 ,xet.reference_char_4
91288 ,xet.reference_date_1
91289 ,xet.reference_date_2
91290 ,xet.reference_date_3
91291 ,xet.reference_date_4
91292 ,xet.event_created_by
91293 ,xet.budgetary_control_flag
91294 , h2.EXPENDITURE_ITEM_ID source_33
91295 , h2.GL_DATE source_75
91296 FROM xla_events_gt xet
91297 , PA_XLA_EXP_HEADER_V h2
91298 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
91299 and xet.event_class_code = C_EVENT_CLASS_CODE
91300 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
91301
91302 ORDER BY event_id
91303 ;
91304
91305
91306 --
91307 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
91308 IS
91309 SELECT /*+ leading(xet) cardinality(xet,1) */
91310 -- Event Class Code: PRVDR_RECVR_RECLASS
91311 xet.entity_id
91312 ,xet.legal_entity_id
91313 ,xet.entity_code
91314 ,xet.transaction_number
91315 ,xet.event_id
91316 ,xet.event_class_code
91317 ,xet.event_type_code
91318 ,xet.event_number
91319 ,xet.event_date
91320 ,xet.transaction_date
91321 ,xet.reference_num_1
91322 ,xet.reference_num_2
91323 ,xet.reference_num_3
91324 ,xet.reference_num_4
91325 ,xet.reference_char_1
91326 ,xet.reference_char_2
91327 ,xet.reference_char_3
91328 ,xet.reference_char_4
91329 ,xet.reference_date_1
91330 ,xet.reference_date_2
91331 ,xet.reference_date_3
91332 ,xet.reference_date_4
91333 ,xet.event_created_by
91334 ,xet.budgetary_control_flag
91335 , l1.LINE_NUMBER
91336 , l1.ALLOW_OVERRIDE_CCID_FLAG source_5
91337 , l1.DESTINATION_CCID source_12
91338 , l1.ADJ_DESTINATION_CCID source_13
91339 , l1.SOURCE_CCID source_14
91340 , l1.ADJ_SOURCE_CCID source_15
91341 , l1.REVERSING_LINE_FLAG source_23
91342 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_24
91343 , l1.ENTERED_CURRENCY_CODE source_26
91344 , l1.EXCHANGE_RATE_DATE source_28
91345 , l1.EXCHANGE_RATE source_29
91346 , l1.EXCHANGE_RATE_TYPE source_30
91347 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_31
91348 , l1.USE_ACT_UPG_ATTRIB_FLAG source_32
91349 , l1.LINE_NUMBER source_34
91350 , l1.LINE_TYPE source_35
91351 , fvl35.meaning source_35_meaning
91352 , l1.LINE_NUM_REVERSED source_36
91353 , l1.ENTERED_AMOUNT source_42
91354 , l1.ACCT_AMOUNT source_43
91355 FROM xla_events_gt xet
91356 , PA_XLA_CCDL_LINES_V l1
91357 , fnd_lookup_values fvl35
91358 WHERE xet.event_id between x_first_event_id and x_last_event_id
91359 and xet.event_date between p_pad_start_date and p_pad_end_date
91360 and xet.event_class_code = C_EVENT_CLASS_CODE
91361 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
91362 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
91363 AND fvl35.lookup_code(+) = l1.LINE_TYPE
91364 AND fvl35.view_application_id(+) = 275
91365 AND fvl35.language(+) = USERENV('LANG')
91366 ;
91367
91368 --
91369 BEGIN
91370 IF g_log_enabled THEN
91371 l_log_module := C_DEFAULT_MODULE||'.EventClass_160';
91372 END IF;
91373 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
91374 trace
91375 (p_msg => 'BEGIN of EventClass_160'
91376 ,p_level => C_LEVEL_PROCEDURE
91377 ,p_module => l_log_module);
91378 END IF;
91379
91380 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
91381 trace
91382 (p_msg => 'p_application_id = '||p_application_id||
91383 ' - p_base_ledger_id = '||p_base_ledger_id||
91384 ' - p_target_ledger_id = '||p_target_ledger_id||
91385 ' - p_language = '||p_language||
91386 ' - p_currency_code = '||p_currency_code||
91387 ' - p_sla_ledger_id = '||p_sla_ledger_id
91388 ,p_level => C_LEVEL_STATEMENT
91389 ,p_module => l_log_module);
91390 END IF;
91391 --
91392 -- initialze arrays
91393 --
91394 g_array_event.DELETE;
91395 l_rec_array_event := l_null_rec_array_event;
91396 --
91397 --------------------------------------
91398 -- 4262811 Initialze MPA Line Number
91399 --------------------------------------
91400 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
91401
91402 --
91403
91407 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
91404 --
91405 OPEN header_cur;
91406 --
91408 trace
91409 (p_msg => 'SQL - FETCH header_cur'
91410 ,p_level => C_LEVEL_STATEMENT
91411 ,p_module => l_log_module);
91412 END IF;
91413 --
91414 LOOP
91415 FETCH header_cur BULK COLLECT INTO
91416 l_array_entity_id
91417 , l_array_legal_entity_id
91418 , l_array_entity_code
91419 , l_array_transaction_num
91420 , l_array_event_id
91421 , l_array_class_code
91422 , l_array_event_type
91423 , l_array_event_number
91424 , l_array_event_date
91425 , l_array_transaction_date
91426 , l_array_reference_num_1
91427 , l_array_reference_num_2
91428 , l_array_reference_num_3
91429 , l_array_reference_num_4
91430 , l_array_reference_char_1
91431 , l_array_reference_char_2
91432 , l_array_reference_char_3
91433 , l_array_reference_char_4
91434 , l_array_reference_date_1
91435 , l_array_reference_date_2
91436 , l_array_reference_date_3
91437 , l_array_reference_date_4
91438 , l_array_event_created_by
91439 , l_array_budgetary_control_flag
91440 , l_array_source_33
91441 , l_array_source_75
91442 LIMIT l_rows;
91443 --
91444 IF (C_LEVEL_EVENT >= g_log_level) THEN
91445 trace
91446 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
91447 ,p_level => C_LEVEL_EVENT
91448 ,p_module => l_log_module);
91449 END IF;
91450 --
91451 EXIT WHEN l_array_entity_id.COUNT = 0;
91452
91453 -- initialize arrays
91454 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
91455 XLA_AE_LINES_PKG.g_rec_lines := NULL;
91456
91457 --
91458 -- Bug 4458708
91459 --
91460 XLA_AE_LINES_PKG.g_LineNumber := 0;
91461
91462
91463 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
91464 g_last_hdr_idx := l_array_event_id.LAST;
91465 --
91466 -- loop for the headers. Each iteration is for each header extract row
91467 -- fetched in header cursor
91468 --
91469 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
91470
91471 --
91472 -- set event info as cache for other routines to refer event attributes
91473 --
91474 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
91475 (p_application_id => p_application_id
91476 ,p_primary_ledger_id => p_primary_ledger_id
91477 ,p_base_ledger_id => p_base_ledger_id
91478 ,p_target_ledger_id => p_target_ledger_id
91479 ,p_entity_id => l_array_entity_id(hdr_idx)
91480 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
91481 ,p_entity_code => l_array_entity_code(hdr_idx)
91482 ,p_transaction_num => l_array_transaction_num(hdr_idx)
91483 ,p_event_id => l_array_event_id(hdr_idx)
91484 ,p_event_class_code => l_array_class_code(hdr_idx)
91485 ,p_event_type_code => l_array_event_type(hdr_idx)
91486 ,p_event_number => l_array_event_number(hdr_idx)
91487 ,p_event_date => l_array_event_date(hdr_idx)
91488 ,p_transaction_date => l_array_transaction_date(hdr_idx)
91489 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
91490 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
91491 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
91492 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
91493 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
91494 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
91495 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
91496 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
91497 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
91498 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
91499 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
91500 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
91501 ,p_event_created_by => l_array_event_created_by(hdr_idx)
91502 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
91503
91504 --
91505 -- set the status of entry to C_VALID (0)
91506 --
91507 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
91508
91509 --
91510 -- initialize a row for ae header
91511 --
91512 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
91513
91514 l_event_id := l_array_event_id(hdr_idx);
91515
91516 --
91517 -- storing the hdr_idx for event. May be used by line cursor.
91518 --
91519 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
91520
91521 --
91522 -- store sources from header extract. This can be improved to
91523 -- store only those sources from header extract that may be used in lines
91524 --
91525
91526 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
91527 g_array_event(l_event_id).array_value_date('source_75') := l_array_source_75(hdr_idx);
91528
91529 --
91530 -- initilaize the status of ae headers for diffrent balance types
91531 -- the status is initialised to C_NOT_CREATED (2)
91532 --
91533 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
91534 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
91535 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
91536
91537 --
91538 -- call api to validate and store accounting attributes for header
91539 --
91540
91541 ------------------------------------------------------------
91545
91542 -- Accrual Reversal : to get date for Standard Source (NONE)
91543 ------------------------------------------------------------
91544 l_acc_rev_gl_date_source := NULL;
91546 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
91547 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_75');
91548
91549
91550 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
91551
91552 XLA_AE_HEADER_PKG.SetJeCategoryName;
91553
91554 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
91555 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
91556 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
91557 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
91558 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
91559
91560
91561 -- No header level analytical criteria
91562
91563 --
91564 --accounting attribute enhancement, bug 3612931
91565 --
91566 l_trx_reversal_source := SUBSTR(NULL, 1,30);
91567
91568 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
91569 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
91570
91571 xla_accounting_err_pkg.build_message
91572 (p_appli_s_name => 'XLA'
91573 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
91574 ,p_token_1 => 'ACCT_ATTR_NAME'
91575 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
91576 ,p_token_2 => 'PRODUCT_NAME'
91577 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
91578 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
91579 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
91580 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
91581
91582 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
91583 --
91584 -- following sets the accounting attributes needed to reverse
91585 -- accounting for a distributeion
91586 --
91587 xla_ae_lines_pkg.SetTrxReversalAttrs
91588 (p_event_id => l_event_id
91589 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
91590 ,p_trx_reversal_source => l_trx_reversal_source);
91591
91592 END IF;
91593
91594
91595 ----------------------------------------------------------------
91596 -- 4262811 - update the header statuses to invalid in need be
91597 ----------------------------------------------------------------
91598 --
91599 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
91600
91601
91602 -----------------------------------------------
91603 -- No accrual reversal for the event class/type
91604 -----------------------------------------------
91605 ----------------------------------------------------------------
91606
91607 --
91608 -- this ends the header loop iteration for one bulk fetch
91609 --
91610 END LOOP;
91611
91612 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
91613 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
91614
91615 --
91616 -- insert dummy rows into lines gt table that were created due to
91617 -- transaction reversals
91618 --
91619 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
91620 l_result := XLA_AE_LINES_PKG.InsertLines;
91621 END IF;
91622
91623 --
91624 -- reset the temp_line_num for each set of events fetched from header
91625 -- cursor rather than doing it for each new event in line cursor
91626 -- Bug 3939231
91627 --
91628 xla_ae_lines_pkg.g_temp_line_num := 0;
91629
91630
91631
91632 --
91633 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
91634 --
91635 --
91636 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
91637
91638 trace
91639 (p_msg => 'SQL - FETCH line_cur'
91640 ,p_level => C_LEVEL_STATEMENT
91641 ,p_module => l_log_module);
91642
91643 END IF;
91644 --
91645 --
91646 LOOP
91647 --
91648 FETCH line_cur BULK COLLECT INTO
91649 l_array_entity_id
91650 , l_array_legal_entity_id
91651 , l_array_entity_code
91652 , l_array_transaction_num
91653 , l_array_event_id
91654 , l_array_class_code
91655 , l_array_event_type
91656 , l_array_event_number
91657 , l_array_event_date
91658 , l_array_transaction_date
91659 , l_array_reference_num_1
91660 , l_array_reference_num_2
91661 , l_array_reference_num_3
91662 , l_array_reference_num_4
91663 , l_array_reference_char_1
91664 , l_array_reference_char_2
91665 , l_array_reference_char_3
91666 , l_array_reference_char_4
91667 , l_array_reference_date_1
91668 , l_array_reference_date_2
91669 , l_array_reference_date_3
91670 , l_array_reference_date_4
91671 , l_array_event_created_by
91672 , l_array_budgetary_control_flag
91673 , l_array_extract_line_num
91674 , l_array_source_5
91675 , l_array_source_12
91676 , l_array_source_13
91677 , l_array_source_14
91678 , l_array_source_15
91679 , l_array_source_23
91680 , l_array_source_24
91681 , l_array_source_26
91682 , l_array_source_28
91683 , l_array_source_29
91684 , l_array_source_30
91685 , l_array_source_31
91686 , l_array_source_32
91687 , l_array_source_34
91688 , l_array_source_35
91692 , l_array_source_43
91689 , l_array_source_35_meaning
91690 , l_array_source_36
91691 , l_array_source_42
91693 LIMIT l_rows;
91694
91695 --
91696 IF (C_LEVEL_EVENT >= g_log_level) THEN
91697 trace
91698 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
91699 ,p_level => C_LEVEL_EVENT
91700 ,p_module => l_log_module);
91701 END IF;
91702 --
91703 EXIT WHEN l_array_entity_id.count = 0;
91704
91705 XLA_AE_LINES_PKG.g_rec_lines := null;
91706
91707 --
91708 -- Bug 4458708
91709 --
91710 XLA_AE_LINES_PKG.g_LineNumber := 0;
91711 --
91712 --
91713
91714 FOR Idx IN 1..l_array_event_id.count LOOP
91715 --
91716 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
91717 --
91718 l_event_id := l_array_event_id(idx); -- 5648433
91719
91720 --
91721 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
91722 --
91723
91724 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
91725 (g_array_event(l_event_id).array_value_num('header_index'))
91726 ,'N'
91727 ) <> 'Y'
91728 THEN
91729 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
91730 trace
91731 (p_msg => 'Trancaction revesal option is not Y '
91732 ,p_level => C_LEVEL_STATEMENT
91733 ,p_module => l_log_module);
91734 END IF;
91735
91736 --
91737 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
91738 --
91739 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
91740 --
91741 -- set event info as cache for other routines to refer event attributes
91742 --
91743
91744 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
91745 l_previous_event_id := l_event_id;
91746
91747 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
91748 (p_application_id => p_application_id
91749 ,p_primary_ledger_id => p_primary_ledger_id
91750 ,p_base_ledger_id => p_base_ledger_id
91751 ,p_target_ledger_id => p_target_ledger_id
91752 ,p_entity_id => l_array_entity_id(Idx)
91753 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
91754 ,p_entity_code => l_array_entity_code(Idx)
91755 ,p_transaction_num => l_array_transaction_num(Idx)
91756 ,p_event_id => l_array_event_id(Idx)
91757 ,p_event_class_code => l_array_class_code(Idx)
91758 ,p_event_type_code => l_array_event_type(Idx)
91759 ,p_event_number => l_array_event_number(Idx)
91760 ,p_event_date => l_array_event_date(Idx)
91761 ,p_transaction_date => l_array_transaction_date(Idx)
91762 ,p_reference_num_1 => l_array_reference_num_1(Idx)
91763 ,p_reference_num_2 => l_array_reference_num_2(Idx)
91764 ,p_reference_num_3 => l_array_reference_num_3(Idx)
91765 ,p_reference_num_4 => l_array_reference_num_4(Idx)
91766 ,p_reference_char_1 => l_array_reference_char_1(Idx)
91767 ,p_reference_char_2 => l_array_reference_char_2(Idx)
91768 ,p_reference_char_3 => l_array_reference_char_3(Idx)
91769 ,p_reference_char_4 => l_array_reference_char_4(Idx)
91770 ,p_reference_date_1 => l_array_reference_date_1(Idx)
91771 ,p_reference_date_2 => l_array_reference_date_2(Idx)
91772 ,p_reference_date_3 => l_array_reference_date_3(Idx)
91773 ,p_reference_date_4 => l_array_reference_date_4(Idx)
91774 ,p_event_created_by => l_array_event_created_by(Idx)
91775 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
91776 --
91777 END IF;
91778
91779
91780
91781 --
91782 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
91783
91784 l_acct_reversal_source := SUBSTR(l_array_source_23(Idx), 1,30);
91785
91786 IF l_continue_with_lines THEN
91787 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
91788 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
91789
91790 xla_accounting_err_pkg.build_message
91791 (p_appli_s_name => 'XLA'
91792 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
91793 ,p_token_1 => 'LINE_NUMBER'
91794 ,p_value_1 => l_array_extract_line_num(Idx)
91795 ,p_token_2 => 'PRODUCT_NAME'
91796 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
91797 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
91798 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
91799 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
91800
91801 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
91802 --
91803 -- following sets the accounting attributes needed to reverse
91804 -- accounting for a distributeion
91805 --
91806
91807 --
91808 -- 5217187
91809 --
91810 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
91811 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
91812 g_array_event(l_event_id).array_value_num('header_index'));
91813 --
91814 --
91815
91816 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
91817 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_23(Idx);
91821 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_14(Idx));
91818 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
91819 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_24(Idx);
91820 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
91822 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
91823 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_42(Idx);
91824 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
91825 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_26(Idx);
91826 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
91827 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_43(Idx);
91828 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
91829 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_28(Idx);
91830 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
91831 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_29(Idx);
91832 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
91833 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_30(Idx);
91834 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
91835 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_31(Idx);
91836 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
91837 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_12(Idx));
91838 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
91839 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_42(Idx);
91840 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
91841 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_26(Idx);
91842 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
91843 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_43(Idx);
91844 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
91845 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_28(Idx);
91846 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
91847 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_29(Idx);
91848 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
91849 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_30(Idx);
91850 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
91851 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_32(Idx);
91852 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
91853 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_33');
91854 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
91855 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_34(Idx);
91856 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
91857 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_35(Idx);
91858 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
91859 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_33');
91860 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
91861 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_36(Idx);
91862 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
91863 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_35(Idx);
91864
91865
91866 xla_ae_lines_pkg.SetAcctReversalAttrs
91867 (p_event_id => l_event_id
91868 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
91869 ,p_calculate_acctd_flag => l_calculate_acctd_flag
91870 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
91871 END IF;
91872
91873 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
91874 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
91875
91876 --
91877 AcctLineType_122 (
91878 p_application_id => p_application_id
91879 ,p_event_id => l_event_id
91880 ,p_calculate_acctd_flag => l_calculate_acctd_flag
91881 ,p_calculate_g_l_flag => l_calculate_g_l_flag
91882 ,p_actual_flag => l_actual_flag
91883 ,p_balance_type_code => l_balance_type_code
91884 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
91885
91886 , p_source_5 => l_array_source_5(Idx)
91887 , p_source_12 => l_array_source_12(Idx)
91888 , p_source_13 => l_array_source_13(Idx)
91889 , p_source_14 => l_array_source_14(Idx)
91890 , p_source_23 => l_array_source_23(Idx)
91891 , p_source_24 => l_array_source_24(Idx)
91892 , p_source_26 => l_array_source_26(Idx)
91893 , p_source_28 => l_array_source_28(Idx)
91894 , p_source_29 => l_array_source_29(Idx)
91895 , p_source_30 => l_array_source_30(Idx)
91896 , p_source_31 => l_array_source_31(Idx)
91897 , p_source_32 => l_array_source_32(Idx)
91898 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
91899 , p_source_34 => l_array_source_34(Idx)
91900 , p_source_35 => l_array_source_35(Idx)
91901 , p_source_35_meaning => l_array_source_35_meaning(Idx)
91902 , p_source_36 => l_array_source_36(Idx)
91903 , p_source_42 => l_array_source_42(Idx)
91904 , p_source_43 => l_array_source_43(Idx)
91905 );
91906 If(l_balance_type_code = 'A') THEN
91907 l_actual_gain_loss_ref := l_gain_or_loss_ref;
91908 END IF;
91909
91910 --
91911
91912
91913 --
91914 AcctLineType_124 (
91915 p_application_id => p_application_id
91916 ,p_event_id => l_event_id
91917 ,p_calculate_acctd_flag => l_calculate_acctd_flag
91918 ,p_calculate_g_l_flag => l_calculate_g_l_flag
91919 ,p_actual_flag => l_actual_flag
91920 ,p_balance_type_code => l_balance_type_code
91924 , p_source_12 => l_array_source_12(Idx)
91921 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
91922
91923 , p_source_5 => l_array_source_5(Idx)
91925 , p_source_14 => l_array_source_14(Idx)
91926 , p_source_15 => l_array_source_15(Idx)
91927 , p_source_23 => l_array_source_23(Idx)
91928 , p_source_24 => l_array_source_24(Idx)
91929 , p_source_26 => l_array_source_26(Idx)
91930 , p_source_28 => l_array_source_28(Idx)
91931 , p_source_29 => l_array_source_29(Idx)
91932 , p_source_30 => l_array_source_30(Idx)
91933 , p_source_31 => l_array_source_31(Idx)
91934 , p_source_32 => l_array_source_32(Idx)
91935 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
91936 , p_source_34 => l_array_source_34(Idx)
91937 , p_source_35 => l_array_source_35(Idx)
91938 , p_source_35_meaning => l_array_source_35_meaning(Idx)
91939 , p_source_36 => l_array_source_36(Idx)
91940 , p_source_42 => l_array_source_42(Idx)
91941 , p_source_43 => l_array_source_43(Idx)
91942 );
91943 If(l_balance_type_code = 'A') THEN
91944 l_actual_gain_loss_ref := l_gain_or_loss_ref;
91945 END IF;
91946
91947 --
91948
91949 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
91950 -- or secondary ledger that has different currency with primary
91951 -- or alc that is calculated by sla
91952 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
91953 (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'))
91954
91955 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
91956 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
91957 AND (l_actual_flag = 'A')) THEN
91958 XLA_AE_LINES_PKG.CreateGainOrLossLines(
91959 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
91960 ,p_application_id => p_application_id
91961 ,p_amb_context_code => 'DEFAULT'
91962 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
91963 ,p_event_class_code => C_EVENT_CLASS_CODE
91964 ,p_event_type_code => C_EVENT_TYPE_CODE
91965
91966 ,p_gain_ccid => -1
91967 ,p_loss_ccid => -1
91968
91969 ,p_actual_flag => l_actual_flag
91970 ,p_enc_flag => null
91971 ,p_actual_g_l_ref => l_actual_gain_loss_ref
91972 ,p_enc_g_l_ref => null
91973 );
91974 END IF;
91975 END IF;
91976 END IF;
91977
91978 ELSE
91979 --
91980 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
91981 --
91982 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
91983 trace
91984 (p_msg => 'Trancaction revesal option is Y'
91985 ,p_level => C_LEVEL_STATEMENT
91986 ,p_module => l_log_module);
91987 END IF;
91988 END IF;
91989
91990 END LOOP;
91991 l_result := XLA_AE_LINES_PKG.InsertLines ;
91992 end loop;
91993 close line_cur;
91994
91995
91996 --
91997 -- insert headers into xla_ae_headers_gt table
91998 --
91999 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
92000
92001 -- insert into errors table here.
92002
92003 END LOOP;
92004
92005 --
92006 -- 4865292
92007 --
92008 -- Compare g_hdr_extract_count with event count in
92009 -- CreateHeadersAndLines.
92010 --
92011 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
92012
92013 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
92014 trace (p_msg => '# rows extracted from header extract objects '
92015 || ' (running total): '
92016 || g_hdr_extract_count
92017 ,p_level => C_LEVEL_STATEMENT
92018 ,p_module => l_log_module);
92019 END IF;
92020
92021 CLOSE header_cur;
92022 --
92023
92024 --
92025 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92026 trace
92027 (p_msg => 'END of EventClass_160'
92028 ,p_level => C_LEVEL_PROCEDURE
92029 ,p_module => l_log_module);
92030 END IF;
92031 --
92032 RETURN l_result;
92033 EXCEPTION
92034 WHEN xla_exceptions_pkg.application_exception THEN
92035
92036 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
92037
92038
92039 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
92040
92041 RAISE;
92042 WHEN OTHERS THEN
92043 xla_exceptions_pkg.raise_message
92044 (p_location => 'XLA_00275_AAD_S_000015_PKG.EventClass_160');
92045 END EventClass_160;
92046 --
92047
92048 ---------------------------------------
92049 --
92050 -- PRIVATE PROCEDURE
92051 -- insert_sources_161
92052 --
92053 ----------------------------------------
92054 --
92055 PROCEDURE insert_sources_161(
92056 p_target_ledger_id IN NUMBER
92057 , p_language IN VARCHAR2
92058 , p_sla_ledger_id IN NUMBER
92059 , p_pad_start_date IN DATE
92060 , p_pad_end_date IN DATE
92061 )
92062 IS
92063
92064 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'REVENUE_ADJ_ALL';
92065 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'REVENUE_ADJ';
92066 p_apps_owner VARCHAR2(30);
92067 l_log_module VARCHAR2(240);
92068 BEGIN
92069 IF g_log_enabled THEN
92070 l_log_module := C_DEFAULT_MODULE||'.insert_sources_161';
92071 END IF;
92075 (p_msg => 'BEGIN of insert_sources_161'
92072 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92073
92074 trace
92076 ,p_level => C_LEVEL_PROCEDURE
92077 ,p_module => l_log_module);
92078
92079 END IF;
92080
92081 -- select APPS owner
92082 SELECT oracle_username
92083 INTO p_apps_owner
92084 FROM fnd_oracle_userid
92085 WHERE read_only_flag = 'U'
92086 ;
92087
92088 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
92089 trace
92090 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
92091 ' - p_language = '||p_language||
92092 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
92093 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
92094 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
92095 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
92096 ,p_level => C_LEVEL_STATEMENT
92097 ,p_module => l_log_module);
92098 END IF;
92099
92100
92101 --
92102 INSERT INTO xla_diag_sources --hdr2
92103 (
92104 event_id
92105 , ledger_id
92106 , sla_ledger_id
92107 , description_language
92108 , object_name
92109 , object_type_code
92110 , line_number
92111 , source_application_id
92112 , source_type_code
92113 , source_code
92114 , source_value
92115 , source_meaning
92116 , created_by
92117 , creation_date
92118 , last_update_date
92119 , last_updated_by
92120 , last_update_login
92121 , program_update_date
92122 , program_application_id
92123 , program_id
92124 , request_id
92125 )
92126 SELECT
92127 event_id
92128 , p_target_ledger_id
92129 , p_sla_ledger_id
92130 , p_language
92131 , object_name
92132 , object_type_code
92133 , line_number
92134 , source_application_id
92135 , source_type_code
92136 , source_code
92137 , SUBSTR(source_value ,1,1996)
92138 , SUBSTR(source_meaning ,1,200)
92139 , xla_environment_pkg.g_Usr_Id
92140 , TRUNC(SYSDATE)
92141 , TRUNC(SYSDATE)
92142 , xla_environment_pkg.g_Usr_Id
92143 , xla_environment_pkg.g_Login_Id
92144 , TRUNC(SYSDATE)
92145 , xla_environment_pkg.g_Prog_Appl_Id
92146 , xla_environment_pkg.g_Prog_Id
92147 , xla_environment_pkg.g_Req_Id
92148 FROM (
92149 SELECT xet.event_id event_id
92150 , 0 line_number
92151 , CASE r
92152 WHEN 1 THEN 'PA_XLA_REVENUE_HEADERS_V'
92153 WHEN 2 THEN 'PA_XLA_REVENUE_HEADERS_V'
92154 WHEN 3 THEN 'PA_XLA_REVENUE_HEADERS_V'
92155 WHEN 4 THEN 'PA_XLA_REVENUE_HEADERS_V'
92156 WHEN 5 THEN 'PA_XLA_REVENUE_HEADERS_V'
92157
92158 ELSE null
92159 END object_name
92160 , CASE r
92161 WHEN 1 THEN 'HEADER'
92162 WHEN 2 THEN 'HEADER'
92163 WHEN 3 THEN 'HEADER'
92164 WHEN 4 THEN 'HEADER'
92165 WHEN 5 THEN 'HEADER'
92166
92167 ELSE null
92168 END object_type_code
92169 , CASE r
92170 WHEN 1 THEN '275'
92171 WHEN 2 THEN '275'
92172 WHEN 3 THEN '275'
92173 WHEN 4 THEN '275'
92174 WHEN 5 THEN '275'
92175
92176 ELSE null
92177 END source_application_id
92178 , 'S' source_type_code
92179 , CASE r
92180 WHEN 1 THEN 'CREDITING_REVENUE_FLAG'
92181 WHEN 2 THEN 'EVENT_ID'
92182 WHEN 3 THEN 'GL_DATE'
92183 WHEN 4 THEN 'UER_CCID'
92184 WHEN 5 THEN 'UBR_CCID'
92185
92186 ELSE null
92187 END source_code
92188 , CASE r
92189 WHEN 1 THEN TO_CHAR(h2.CREDITING_REVENUE_FLAG)
92190 WHEN 2 THEN TO_CHAR(h2.EVENT_ID)
92191 WHEN 3 THEN TO_CHAR(h2.GL_DATE)
92192 WHEN 4 THEN TO_CHAR(h2.UER_CCID)
92193 WHEN 5 THEN TO_CHAR(h2.UBR_CCID)
92194
92195 ELSE null
92196 END source_value
92197 , CASE r
92198 WHEN 1 THEN XLA_00275_AAD_S_000015_PKG.GetMeaning(
92199 103371
92200 ,TO_CHAR(h2.CREDITING_REVENUE_FLAG)
92201 ,'CREDITING_REVENUE_FLAG'
92202 ,'S'
92203 ,275)
92204
92205 ELSE null
92206 END source_meaning
92207 FROM xla_events_gt xet
92208 , PA_XLA_REVENUE_HEADERS_V h2
92209 ,(select rownum r from all_objects where rownum <= 5 and owner = p_apps_owner)
92210 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
92211 AND xet.event_class_code = C_EVENT_CLASS_CODE
92212 AND h2.event_id = xet.event_id
92213
92214 )
92215 ;
92216 --
92217 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
92218
92219 trace
92220 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
92221 ,p_level => C_LEVEL_STATEMENT
92222 ,p_module => l_log_module);
92223
92227
92224 END IF;
92225 --
92226
92228
92229 --
92230 INSERT INTO xla_diag_sources --line2
92231 (
92232 event_id
92233 , ledger_id
92234 , sla_ledger_id
92235 , description_language
92236 , object_name
92237 , object_type_code
92238 , line_number
92239 , source_application_id
92240 , source_type_code
92241 , source_code
92242 , source_value
92243 , source_meaning
92244 , created_by
92245 , creation_date
92246 , last_update_date
92247 , last_updated_by
92248 , last_update_login
92249 , program_update_date
92250 , program_application_id
92251 , program_id
92252 , request_id
92253 )
92254 SELECT event_id
92255 , p_target_ledger_id
92256 , p_sla_ledger_id
92257 , p_language
92258 , object_name
92259 , object_type_code
92260 , line_number
92261 , source_application_id
92262 , source_type_code
92263 , source_code
92264 , SUBSTR(source_value,1,1996)
92265 , SUBSTR(source_meaning ,1,200)
92266 , xla_environment_pkg.g_Usr_Id
92267 , TRUNC(SYSDATE)
92268 , TRUNC(SYSDATE)
92269 , xla_environment_pkg.g_Usr_Id
92270 , xla_environment_pkg.g_Login_Id
92271 , TRUNC(SYSDATE)
92272 , xla_environment_pkg.g_Prog_Appl_Id
92273 , xla_environment_pkg.g_Prog_Id
92274 , xla_environment_pkg.g_Req_Id
92275 FROM (
92276 SELECT xet.event_id event_id
92277 , l3.line_number line_number
92278 , CASE r
92279 WHEN 1 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
92280 WHEN 2 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
92281 WHEN 3 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
92282 WHEN 4 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
92283 WHEN 5 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
92284 WHEN 6 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
92285 WHEN 7 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
92286 WHEN 8 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
92287 WHEN 9 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
92288 WHEN 10 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
92289 WHEN 11 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
92290 WHEN 12 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
92291 WHEN 13 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
92292 WHEN 14 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
92293 WHEN 15 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
92294 WHEN 16 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
92295 WHEN 17 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
92296 WHEN 18 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
92297 WHEN 19 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
92298 WHEN 20 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
92299 WHEN 21 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
92300 WHEN 22 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
92301 WHEN 23 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
92302 WHEN 24 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
92303 WHEN 25 THEN 'PA_XLA_EVENT_TYPE_REF_V'
92304
92305 ELSE null
92306 END object_name
92307 , CASE r
92308 WHEN 1 THEN 'LINE'
92309 WHEN 2 THEN 'LINE'
92310 WHEN 3 THEN 'LINE'
92311 WHEN 4 THEN 'LINE'
92312 WHEN 5 THEN 'LINE'
92313 WHEN 6 THEN 'LINE'
92314 WHEN 7 THEN 'LINE'
92315 WHEN 8 THEN 'LINE'
92316 WHEN 9 THEN 'LINE'
92317 WHEN 10 THEN 'LINE'
92318 WHEN 11 THEN 'LINE'
92319 WHEN 12 THEN 'LINE'
92320 WHEN 13 THEN 'LINE'
92321 WHEN 14 THEN 'LINE'
92322 WHEN 15 THEN 'LINE'
92323 WHEN 16 THEN 'LINE'
92324 WHEN 17 THEN 'LINE'
92325 WHEN 18 THEN 'LINE'
92326 WHEN 19 THEN 'LINE'
92327 WHEN 20 THEN 'LINE'
92328 WHEN 21 THEN 'LINE'
92329 WHEN 22 THEN 'LINE'
92330 WHEN 23 THEN 'LINE'
92331 WHEN 24 THEN 'LINE'
92332 WHEN 25 THEN 'LINE'
92333
92334 ELSE null
92335 END object_type_code
92336 , CASE r
92337 WHEN 1 THEN '275'
92338 WHEN 2 THEN '275'
92339 WHEN 3 THEN '275'
92340 WHEN 4 THEN '275'
92341 WHEN 5 THEN '275'
92342 WHEN 6 THEN '275'
92343 WHEN 7 THEN '275'
92344 WHEN 8 THEN '275'
92345 WHEN 9 THEN '275'
92346 WHEN 10 THEN '275'
92347 WHEN 11 THEN '275'
92348 WHEN 12 THEN '275'
92349 WHEN 13 THEN '275'
92350 WHEN 14 THEN '275'
92351 WHEN 15 THEN '275'
92352 WHEN 16 THEN '275'
92353 WHEN 17 THEN '275'
92354 WHEN 18 THEN '275'
92355 WHEN 19 THEN '275'
92356 WHEN 20 THEN '275'
92357 WHEN 21 THEN '275'
92358 WHEN 22 THEN '275'
92359 WHEN 23 THEN '275'
92360 WHEN 24 THEN '275'
92361 WHEN 25 THEN '275'
92362
92363 ELSE null
92364 END source_application_id
92365 , 'S' source_type_code
92366 , CASE r
92370 WHEN 4 THEN 'PDR_UER_CCID'
92367 WHEN 1 THEN 'PERDL_CODE_COMBINATION_ID'
92368 WHEN 2 THEN 'PRDL_CODE_COMBINATION_ID'
92369 WHEN 3 THEN 'PDR_UBR_CCID'
92371 WHEN 5 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
92372 WHEN 6 THEN 'ENTERED_CURRENCY_CODE'
92373 WHEN 7 THEN 'EXCHANGE_RATE_DATE'
92374 WHEN 8 THEN 'EXCHANGE_RATE'
92375 WHEN 9 THEN 'EXCHANGE_RATE_TYPE'
92376 WHEN 10 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
92377 WHEN 11 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
92378 WHEN 12 THEN 'ENTERED_AMOUNT'
92379 WHEN 13 THEN 'ACCT_AMOUNT'
92380 WHEN 14 THEN 'REVENUE_DISTRIBUTION_TYPE'
92381 WHEN 15 THEN 'REVENUE_FIRST_DIST_ID'
92382 WHEN 16 THEN 'REVENUE_SECOND_DIST_ID'
92383 WHEN 17 THEN 'ACTUAL_UPG_CR_CCID'
92384 WHEN 18 THEN 'ACTUAL_UPG_DR_CCID'
92385 WHEN 19 THEN 'APPLICATION_ID'
92386 WHEN 20 THEN 'REVENUE_ENTITY_CODE'
92387 WHEN 21 THEN 'CR_REVENUE_FIRST_DIST_ID'
92388 WHEN 22 THEN 'PROJECT_ID'
92389 WHEN 23 THEN 'CR_REVENUE_SECOND_DIST_ID'
92390 WHEN 24 THEN 'PDR_DRAFT_REV_NUM_CREDITED'
92391 WHEN 25 THEN 'REV_EVENT_TYPE_CLASSIFICATION'
92392
92393 ELSE null
92394 END source_code
92395 , CASE r
92396 WHEN 1 THEN TO_CHAR(l3.PERDL_CODE_COMBINATION_ID)
92397 WHEN 2 THEN TO_CHAR(l3.PRDL_CODE_COMBINATION_ID)
92398 WHEN 3 THEN TO_CHAR(l3.PDR_UBR_CCID)
92399 WHEN 4 THEN TO_CHAR(l3.PDR_UER_CCID)
92400 WHEN 5 THEN TO_CHAR(l3.ACTUAL_UPG_CR_ACCT_CLASS)
92401 WHEN 6 THEN TO_CHAR(l3.ENTERED_CURRENCY_CODE)
92402 WHEN 7 THEN TO_CHAR(l3.EXCHANGE_RATE_DATE)
92403 WHEN 8 THEN TO_CHAR(l3.EXCHANGE_RATE)
92404 WHEN 9 THEN TO_CHAR(l3.EXCHANGE_RATE_TYPE)
92405 WHEN 10 THEN TO_CHAR(l3.ACTUAL_UPG_DR_ACCT_CLASS)
92406 WHEN 11 THEN TO_CHAR(l3.USE_ACT_UPG_ATTRIB_FLAG)
92407 WHEN 12 THEN TO_CHAR(l3.ENTERED_AMOUNT)
92408 WHEN 13 THEN TO_CHAR(l3.ACCT_AMOUNT)
92409 WHEN 14 THEN TO_CHAR(l3.REVENUE_DISTRIBUTION_TYPE)
92410 WHEN 15 THEN TO_CHAR(l3.REVENUE_FIRST_DIST_ID)
92411 WHEN 16 THEN TO_CHAR(l3.REVENUE_SECOND_DIST_ID)
92412 WHEN 17 THEN TO_CHAR(l3.ACTUAL_UPG_CR_CCID)
92413 WHEN 18 THEN TO_CHAR(l3.ACTUAL_UPG_DR_CCID)
92414 WHEN 19 THEN TO_CHAR(l3.APPLICATION_ID)
92415 WHEN 20 THEN TO_CHAR(l3.REVENUE_ENTITY_CODE)
92416 WHEN 21 THEN TO_CHAR(l3.CR_REVENUE_FIRST_DIST_ID)
92417 WHEN 22 THEN TO_CHAR(l3.PROJECT_ID)
92418 WHEN 23 THEN TO_CHAR(l3.CR_REVENUE_SECOND_DIST_ID)
92419 WHEN 24 THEN TO_CHAR(l3.PDR_DRAFT_REV_NUM_CREDITED)
92420 WHEN 25 THEN TO_CHAR(l1.REV_EVENT_TYPE_CLASSIFICATION)
92421
92422 ELSE null
92423 END source_value
92424 , CASE r
92425 WHEN 25 THEN fvl72.meaning
92426
92427 ELSE null
92428 END source_meaning
92429 FROM xla_events_gt xet
92430 , PA_XLA_EVENT_TYPE_REF_V l1
92431 , PA_XLA_REVENUE_LINES_ADJ_V l3
92432 , fnd_lookup_values fvl72
92433 , (select rownum r from all_objects where rownum <= 25 and owner = p_apps_owner)
92434 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
92435 AND xet.event_class_code = C_EVENT_CLASS_CODE
92436 AND l3.event_id = xet.event_id
92437 AND l1.rev_event_type (+) =l3.rev_event_type AND fvl72.lookup_type(+) = 'EVENT TYPE CLASSIFICATION'
92438 AND fvl72.lookup_code(+) = l1.REV_EVENT_TYPE_CLASSIFICATION
92439 AND fvl72.view_application_id(+) = 275
92440 AND fvl72.language(+) = USERENV('LANG')
92441
92442 )
92443 ;
92444 --
92445 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
92446
92447 trace
92448 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
92449 ,p_level => C_LEVEL_STATEMENT
92450 ,p_module => l_log_module);
92451
92452 END IF;
92453
92454
92455 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92456 trace
92457 (p_msg => 'END of insert_sources_161'
92458 ,p_level => C_LEVEL_PROCEDURE
92459 ,p_module => l_log_module);
92460 END IF;
92461 EXCEPTION
92462 WHEN xla_exceptions_pkg.application_exception THEN
92463 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
92464 trace
92465 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
92466 ,p_level => C_LEVEL_EXCEPTION
92467 ,p_module => l_log_module);
92468 END IF;
92469 RAISE;
92470 WHEN OTHERS THEN
92471 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
92472 trace
92473 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
92474 ,p_level => C_LEVEL_EXCEPTION
92475 ,p_module => l_log_module);
92476 END IF;
92477 xla_exceptions_pkg.raise_message
92478 (p_location => 'XLA_00275_AAD_S_000015_PKG.insert_sources_161');
92479 END insert_sources_161;
92480 --
92481
92482 ---------------------------------------
92483 --
92484 -- PRIVATE FUNCTION
92485 -- EventClass_161
92486 --
92487 ----------------------------------------
92488 --
92489 FUNCTION EventClass_161
92490 (p_application_id IN NUMBER
92494 ,p_currency_code IN VARCHAR2
92491 ,p_base_ledger_id IN NUMBER
92492 ,p_target_ledger_id IN NUMBER
92493 ,p_language IN VARCHAR2
92495 ,p_sla_ledger_id IN NUMBER
92496 ,p_pad_start_date IN DATE
92497 ,p_pad_end_date IN DATE
92498 ,p_primary_ledger_id IN NUMBER)
92499 RETURN BOOLEAN IS
92500 --
92501 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'REVENUE_ADJ_ALL';
92502 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'REVENUE_ADJ';
92503
92504 l_calculate_acctd_flag VARCHAR2(1) :='N';
92505 l_calculate_g_l_flag VARCHAR2(1) :='N';
92506 --
92507 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
92508 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
92509 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
92510 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
92511 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
92512 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
92513 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
92514 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
92515 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
92516 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
92517 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
92518 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
92519 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
92520 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
92521 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
92522 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
92523 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
92524 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
92525 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
92526 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
92527 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
92528 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
92529 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
92530 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
92531
92532 l_event_id NUMBER;
92533 l_previous_event_id NUMBER;
92534 l_first_event_id NUMBER;
92535 l_last_event_id NUMBER;
92536
92537 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
92538 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
92539 --
92540 --
92541 l_result BOOLEAN := TRUE;
92542 l_rows NUMBER := 1000;
92543 l_event_type_name VARCHAR2(80) := 'All';
92544 l_event_class_name VARCHAR2(80) := 'Revenue Adjustment';
92545 l_description VARCHAR2(4000);
92546 l_transaction_reversal NUMBER;
92547 l_ae_header_id NUMBER;
92548 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
92549 l_log_module VARCHAR2(240);
92550 --
92551 l_acct_reversal_source VARCHAR2(30);
92552 l_trx_reversal_source VARCHAR2(30);
92553
92554 l_continue_with_lines BOOLEAN := TRUE;
92555 --
92556 l_acc_rev_gl_date_source DATE; -- 4262811
92557 --
92558 type t_array_event_id is table of number index by binary_integer;
92559
92560 l_rec_array_event t_rec_array_event;
92561 l_null_rec_array_event t_rec_array_event;
92562 l_array_ae_header_id xla_number_array_type;
92563 l_actual_flag VARCHAR2(1) := NULL;
92564 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
92565 l_balance_type_code VARCHAR2(1) :=NULL;
92566 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
92567
92568 --
92569 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
92570 --
92571
92572 TYPE t_array_source_48 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.CREDITING_REVENUE_FLAG%TYPE INDEX BY BINARY_INTEGER;
92573 TYPE t_array_source_51 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.EVENT_ID%TYPE INDEX BY BINARY_INTEGER;
92574 TYPE t_array_source_75 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
92575 TYPE t_array_source_77 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.UER_CCID%TYPE INDEX BY BINARY_INTEGER;
92576 TYPE t_array_source_78 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.UBR_CCID%TYPE INDEX BY BINARY_INTEGER;
92577
92578 TYPE t_array_source_1 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.PERDL_CODE_COMBINATION_ID%TYPE INDEX BY BINARY_INTEGER;
92579 TYPE t_array_source_19 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.PRDL_CODE_COMBINATION_ID%TYPE INDEX BY BINARY_INTEGER;
92580 TYPE t_array_source_20 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.PDR_UBR_CCID%TYPE INDEX BY BINARY_INTEGER;
92581 TYPE t_array_source_21 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.PDR_UER_CCID%TYPE INDEX BY BINARY_INTEGER;
92582 TYPE t_array_source_24 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
92583 TYPE t_array_source_26 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
92584 TYPE t_array_source_28 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
92585 TYPE t_array_source_29 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
92586 TYPE t_array_source_30 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
92587 TYPE t_array_source_31 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
92591 TYPE t_array_source_46 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.REVENUE_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
92588 TYPE t_array_source_32 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
92589 TYPE t_array_source_42 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.ENTERED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
92590 TYPE t_array_source_43 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.ACCT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
92592 TYPE t_array_source_49 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.REVENUE_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
92593 TYPE t_array_source_50 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.REVENUE_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
92594 TYPE t_array_source_64 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.ACTUAL_UPG_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
92595 TYPE t_array_source_65 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.ACTUAL_UPG_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
92596 TYPE t_array_source_66 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
92597 TYPE t_array_source_67 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.REVENUE_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
92598 TYPE t_array_source_68 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.CR_REVENUE_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
92599 TYPE t_array_source_69 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.PROJECT_ID%TYPE INDEX BY BINARY_INTEGER;
92600 TYPE t_array_source_70 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.CR_REVENUE_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
92601 TYPE t_array_source_71 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.PDR_DRAFT_REV_NUM_CREDITED%TYPE INDEX BY BINARY_INTEGER;
92602 TYPE t_array_source_72 IS TABLE OF PA_XLA_EVENT_TYPE_REF_V.REV_EVENT_TYPE_CLASSIFICATION%TYPE INDEX BY BINARY_INTEGER;
92603
92604 l_array_source_48 t_array_source_48;
92605 l_array_source_51 t_array_source_51;
92606 l_array_source_75 t_array_source_75;
92607 l_array_source_77 t_array_source_77;
92608 l_array_source_78 t_array_source_78;
92609
92610 l_array_source_1 t_array_source_1;
92611 l_array_source_19 t_array_source_19;
92612 l_array_source_20 t_array_source_20;
92613 l_array_source_21 t_array_source_21;
92614 l_array_source_24 t_array_source_24;
92615 l_array_source_26 t_array_source_26;
92616 l_array_source_28 t_array_source_28;
92617 l_array_source_29 t_array_source_29;
92618 l_array_source_30 t_array_source_30;
92619 l_array_source_31 t_array_source_31;
92620 l_array_source_32 t_array_source_32;
92621 l_array_source_42 t_array_source_42;
92622 l_array_source_43 t_array_source_43;
92623 l_array_source_46 t_array_source_46;
92624 l_array_source_49 t_array_source_49;
92625 l_array_source_50 t_array_source_50;
92626 l_array_source_64 t_array_source_64;
92627 l_array_source_65 t_array_source_65;
92628 l_array_source_66 t_array_source_66;
92629 l_array_source_67 t_array_source_67;
92630 l_array_source_68 t_array_source_68;
92631 l_array_source_69 t_array_source_69;
92632 l_array_source_70 t_array_source_70;
92633 l_array_source_71 t_array_source_71;
92634 l_array_source_72 t_array_source_72;
92635 l_array_source_72_meaning t_array_lookup_meaning;
92636
92637 --
92638 CURSOR header_cur
92639 IS
92640 SELECT /*+ leading(xet) cardinality(xet,1) */
92641 -- Event Class Code: REVENUE_ADJ
92642 xet.entity_id
92643 ,xet.legal_entity_id
92644 ,xet.entity_code
92645 ,xet.transaction_number
92646 ,xet.event_id
92647 ,xet.event_class_code
92648 ,xet.event_type_code
92649 ,xet.event_number
92650 ,xet.event_date
92651 ,xet.transaction_date
92652 ,xet.reference_num_1
92653 ,xet.reference_num_2
92654 ,xet.reference_num_3
92655 ,xet.reference_num_4
92656 ,xet.reference_char_1
92657 ,xet.reference_char_2
92658 ,xet.reference_char_3
92659 ,xet.reference_char_4
92660 ,xet.reference_date_1
92661 ,xet.reference_date_2
92662 ,xet.reference_date_3
92663 ,xet.reference_date_4
92664 ,xet.event_created_by
92665 ,xet.budgetary_control_flag
92666 , h2.CREDITING_REVENUE_FLAG source_48
92667 , h2.EVENT_ID source_51
92668 , h2.GL_DATE source_75
92669 , h2.UER_CCID source_77
92670 , h2.UBR_CCID source_78
92671 FROM xla_events_gt xet
92672 , PA_XLA_REVENUE_HEADERS_V h2
92673 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
92674 and xet.event_class_code = C_EVENT_CLASS_CODE
92675 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
92676
92677 ORDER BY event_id
92678 ;
92679
92680
92681 --
92682 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
92683 IS
92684 SELECT /*+ leading(xet) cardinality(xet,1) */
92685 -- Event Class Code: REVENUE_ADJ
92686 xet.entity_id
92687 ,xet.legal_entity_id
92688 ,xet.entity_code
92689 ,xet.transaction_number
92690 ,xet.event_id
92691 ,xet.event_class_code
92692 ,xet.event_type_code
92693 ,xet.event_number
92694 ,xet.event_date
92695 ,xet.transaction_date
92696 ,xet.reference_num_1
92697 ,xet.reference_num_2
92698 ,xet.reference_num_3
92699 ,xet.reference_num_4
92700 ,xet.reference_char_1
92701 ,xet.reference_char_2
92702 ,xet.reference_char_3
92703 ,xet.reference_char_4
92704 ,xet.reference_date_1
92705 ,xet.reference_date_2
92706 ,xet.reference_date_3
92707 ,xet.reference_date_4
92708 ,xet.event_created_by
92709 ,xet.budgetary_control_flag
92710 , l3.LINE_NUMBER
92711 , l3.PERDL_CODE_COMBINATION_ID source_1
92712 , l3.PRDL_CODE_COMBINATION_ID source_19
92713 , l3.PDR_UBR_CCID source_20
92714 , l3.PDR_UER_CCID source_21
92715 , l3.ACTUAL_UPG_CR_ACCT_CLASS source_24
92716 , l3.ENTERED_CURRENCY_CODE source_26
92717 , l3.EXCHANGE_RATE_DATE source_28
92721 , l3.USE_ACT_UPG_ATTRIB_FLAG source_32
92718 , l3.EXCHANGE_RATE source_29
92719 , l3.EXCHANGE_RATE_TYPE source_30
92720 , l3.ACTUAL_UPG_DR_ACCT_CLASS source_31
92722 , l3.ENTERED_AMOUNT source_42
92723 , l3.ACCT_AMOUNT source_43
92724 , l3.REVENUE_DISTRIBUTION_TYPE source_46
92725 , l3.REVENUE_FIRST_DIST_ID source_49
92726 , l3.REVENUE_SECOND_DIST_ID source_50
92727 , l3.ACTUAL_UPG_CR_CCID source_64
92728 , l3.ACTUAL_UPG_DR_CCID source_65
92729 , l3.APPLICATION_ID source_66
92730 , l3.REVENUE_ENTITY_CODE source_67
92731 , l3.CR_REVENUE_FIRST_DIST_ID source_68
92732 , l3.PROJECT_ID source_69
92733 , l3.CR_REVENUE_SECOND_DIST_ID source_70
92734 , l3.PDR_DRAFT_REV_NUM_CREDITED source_71
92735 , l1.REV_EVENT_TYPE_CLASSIFICATION source_72
92736 , fvl72.meaning source_72_meaning
92737 FROM xla_events_gt xet
92738 , PA_XLA_EVENT_TYPE_REF_V l1
92739 , PA_XLA_REVENUE_LINES_ADJ_V l3
92740 , fnd_lookup_values fvl72
92741 WHERE xet.event_id between x_first_event_id and x_last_event_id
92742 and xet.event_date between p_pad_start_date and p_pad_end_date
92743 and xet.event_class_code = C_EVENT_CLASS_CODE
92744 and xet.event_status_code <> 'N' AND l3.event_id = xet.event_id
92745 AND l1.REV_EVENT_TYPE (+) =l3.REV_EVENT_TYPE AND fvl72.lookup_type(+) = 'EVENT TYPE CLASSIFICATION'
92746 AND fvl72.lookup_code(+) = l1.REV_EVENT_TYPE_CLASSIFICATION
92747 AND fvl72.view_application_id(+) = 275
92748 AND fvl72.language(+) = USERENV('LANG')
92749 ;
92750
92751 --
92752 BEGIN
92753 IF g_log_enabled THEN
92754 l_log_module := C_DEFAULT_MODULE||'.EventClass_161';
92755 END IF;
92756 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92757 trace
92758 (p_msg => 'BEGIN of EventClass_161'
92759 ,p_level => C_LEVEL_PROCEDURE
92760 ,p_module => l_log_module);
92761 END IF;
92762
92763 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
92764 trace
92765 (p_msg => 'p_application_id = '||p_application_id||
92766 ' - p_base_ledger_id = '||p_base_ledger_id||
92767 ' - p_target_ledger_id = '||p_target_ledger_id||
92768 ' - p_language = '||p_language||
92769 ' - p_currency_code = '||p_currency_code||
92770 ' - p_sla_ledger_id = '||p_sla_ledger_id
92771 ,p_level => C_LEVEL_STATEMENT
92772 ,p_module => l_log_module);
92773 END IF;
92774 --
92775 -- initialze arrays
92776 --
92777 g_array_event.DELETE;
92778 l_rec_array_event := l_null_rec_array_event;
92779 --
92780 --------------------------------------
92781 -- 4262811 Initialze MPA Line Number
92782 --------------------------------------
92783 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
92784
92785 --
92786
92787 --
92788 OPEN header_cur;
92789 --
92790 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
92791 trace
92792 (p_msg => 'SQL - FETCH header_cur'
92793 ,p_level => C_LEVEL_STATEMENT
92794 ,p_module => l_log_module);
92795 END IF;
92796 --
92797 LOOP
92798 FETCH header_cur BULK COLLECT INTO
92799 l_array_entity_id
92800 , l_array_legal_entity_id
92801 , l_array_entity_code
92802 , l_array_transaction_num
92803 , l_array_event_id
92804 , l_array_class_code
92805 , l_array_event_type
92806 , l_array_event_number
92807 , l_array_event_date
92808 , l_array_transaction_date
92809 , l_array_reference_num_1
92810 , l_array_reference_num_2
92811 , l_array_reference_num_3
92812 , l_array_reference_num_4
92813 , l_array_reference_char_1
92814 , l_array_reference_char_2
92815 , l_array_reference_char_3
92816 , l_array_reference_char_4
92817 , l_array_reference_date_1
92818 , l_array_reference_date_2
92819 , l_array_reference_date_3
92820 , l_array_reference_date_4
92821 , l_array_event_created_by
92822 , l_array_budgetary_control_flag
92823 , l_array_source_48
92824 , l_array_source_51
92825 , l_array_source_75
92826 , l_array_source_77
92827 , l_array_source_78
92828 LIMIT l_rows;
92829 --
92830 IF (C_LEVEL_EVENT >= g_log_level) THEN
92831 trace
92832 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
92833 ,p_level => C_LEVEL_EVENT
92834 ,p_module => l_log_module);
92835 END IF;
92836 --
92837 EXIT WHEN l_array_entity_id.COUNT = 0;
92838
92839 -- initialize arrays
92840 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
92841 XLA_AE_LINES_PKG.g_rec_lines := NULL;
92842
92843 --
92844 -- Bug 4458708
92845 --
92846 XLA_AE_LINES_PKG.g_LineNumber := 0;
92847
92848
92849 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
92850 g_last_hdr_idx := l_array_event_id.LAST;
92851 --
92852 -- loop for the headers. Each iteration is for each header extract row
92853 -- fetched in header cursor
92854 --
92855 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
92856
92857 --
92858 -- set event info as cache for other routines to refer event attributes
92859 --
92860 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
92861 (p_application_id => p_application_id
92862 ,p_primary_ledger_id => p_primary_ledger_id
92863 ,p_base_ledger_id => p_base_ledger_id
92864 ,p_target_ledger_id => p_target_ledger_id
92865 ,p_entity_id => l_array_entity_id(hdr_idx)
92866 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
92870 ,p_event_class_code => l_array_class_code(hdr_idx)
92867 ,p_entity_code => l_array_entity_code(hdr_idx)
92868 ,p_transaction_num => l_array_transaction_num(hdr_idx)
92869 ,p_event_id => l_array_event_id(hdr_idx)
92871 ,p_event_type_code => l_array_event_type(hdr_idx)
92872 ,p_event_number => l_array_event_number(hdr_idx)
92873 ,p_event_date => l_array_event_date(hdr_idx)
92874 ,p_transaction_date => l_array_transaction_date(hdr_idx)
92875 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
92876 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
92877 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
92878 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
92879 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
92880 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
92881 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
92882 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
92883 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
92884 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
92885 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
92886 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
92887 ,p_event_created_by => l_array_event_created_by(hdr_idx)
92888 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
92889
92890 --
92891 -- set the status of entry to C_VALID (0)
92892 --
92893 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
92894
92895 --
92896 -- initialize a row for ae header
92897 --
92898 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
92899
92900 l_event_id := l_array_event_id(hdr_idx);
92901
92902 --
92903 -- storing the hdr_idx for event. May be used by line cursor.
92904 --
92905 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
92906
92907 --
92908 -- store sources from header extract. This can be improved to
92909 -- store only those sources from header extract that may be used in lines
92910 --
92911
92912 g_array_event(l_event_id).array_value_char('source_48') := l_array_source_48(hdr_idx);
92913 g_array_event(l_event_id).array_value_num('source_51') := l_array_source_51(hdr_idx);
92914 g_array_event(l_event_id).array_value_date('source_75') := l_array_source_75(hdr_idx);
92915 g_array_event(l_event_id).array_value_num('source_77') := l_array_source_77(hdr_idx);
92916 g_array_event(l_event_id).array_value_num('source_78') := l_array_source_78(hdr_idx);
92917
92918 --
92919 -- initilaize the status of ae headers for diffrent balance types
92920 -- the status is initialised to C_NOT_CREATED (2)
92921 --
92922 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
92923 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
92924 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
92925
92926 --
92927 -- call api to validate and store accounting attributes for header
92928 --
92929
92930 ------------------------------------------------------------
92931 -- Accrual Reversal : to get date for Standard Source (NONE)
92932 ------------------------------------------------------------
92933 l_acc_rev_gl_date_source := NULL;
92934
92935 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
92936 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_75');
92937
92938
92939 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
92940
92941 XLA_AE_HEADER_PKG.SetJeCategoryName;
92942
92943 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
92944 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
92945 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
92946 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
92947 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
92948
92949
92950 -- No header level analytical criteria
92951
92952 --
92953 --accounting attribute enhancement, bug 3612931
92954 --
92955 l_trx_reversal_source := SUBSTR(NULL, 1,30);
92956
92957 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
92958 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
92959
92960 xla_accounting_err_pkg.build_message
92961 (p_appli_s_name => 'XLA'
92962 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
92963 ,p_token_1 => 'ACCT_ATTR_NAME'
92964 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
92965 ,p_token_2 => 'PRODUCT_NAME'
92966 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
92967 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
92968 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
92969 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
92970
92971 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
92972 --
92973 -- following sets the accounting attributes needed to reverse
92974 -- accounting for a distributeion
92975 --
92976 xla_ae_lines_pkg.SetTrxReversalAttrs
92977 (p_event_id => l_event_id
92978 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
92979 ,p_trx_reversal_source => l_trx_reversal_source);
92980
92981 END IF;
92982
92983
92984 ----------------------------------------------------------------
92988 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
92985 -- 4262811 - update the header statuses to invalid in need be
92986 ----------------------------------------------------------------
92987 --
92989
92990
92991 -----------------------------------------------
92992 -- No accrual reversal for the event class/type
92993 -----------------------------------------------
92994 ----------------------------------------------------------------
92995
92996 --
92997 -- this ends the header loop iteration for one bulk fetch
92998 --
92999 END LOOP;
93000
93001 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
93002 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
93003
93004 --
93005 -- insert dummy rows into lines gt table that were created due to
93006 -- transaction reversals
93007 --
93008 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
93009 l_result := XLA_AE_LINES_PKG.InsertLines;
93010 END IF;
93011
93012 --
93013 -- reset the temp_line_num for each set of events fetched from header
93014 -- cursor rather than doing it for each new event in line cursor
93015 -- Bug 3939231
93016 --
93017 xla_ae_lines_pkg.g_temp_line_num := 0;
93018
93019
93020
93021 --
93022 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
93023 --
93024 --
93025 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
93026
93027 trace
93028 (p_msg => 'SQL - FETCH line_cur'
93029 ,p_level => C_LEVEL_STATEMENT
93030 ,p_module => l_log_module);
93031
93032 END IF;
93033 --
93034 --
93035 LOOP
93036 --
93037 FETCH line_cur BULK COLLECT INTO
93038 l_array_entity_id
93039 , l_array_legal_entity_id
93040 , l_array_entity_code
93041 , l_array_transaction_num
93042 , l_array_event_id
93043 , l_array_class_code
93044 , l_array_event_type
93045 , l_array_event_number
93046 , l_array_event_date
93047 , l_array_transaction_date
93048 , l_array_reference_num_1
93049 , l_array_reference_num_2
93050 , l_array_reference_num_3
93051 , l_array_reference_num_4
93052 , l_array_reference_char_1
93053 , l_array_reference_char_2
93054 , l_array_reference_char_3
93055 , l_array_reference_char_4
93056 , l_array_reference_date_1
93057 , l_array_reference_date_2
93058 , l_array_reference_date_3
93059 , l_array_reference_date_4
93060 , l_array_event_created_by
93061 , l_array_budgetary_control_flag
93062 , l_array_extract_line_num
93063 , l_array_source_1
93064 , l_array_source_19
93065 , l_array_source_20
93066 , l_array_source_21
93067 , l_array_source_24
93068 , l_array_source_26
93069 , l_array_source_28
93070 , l_array_source_29
93071 , l_array_source_30
93072 , l_array_source_31
93073 , l_array_source_32
93074 , l_array_source_42
93075 , l_array_source_43
93076 , l_array_source_46
93077 , l_array_source_49
93078 , l_array_source_50
93079 , l_array_source_64
93080 , l_array_source_65
93081 , l_array_source_66
93082 , l_array_source_67
93083 , l_array_source_68
93084 , l_array_source_69
93085 , l_array_source_70
93086 , l_array_source_71
93087 , l_array_source_72
93088 , l_array_source_72_meaning
93089 LIMIT l_rows;
93090
93091 --
93092 IF (C_LEVEL_EVENT >= g_log_level) THEN
93093 trace
93094 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
93095 ,p_level => C_LEVEL_EVENT
93096 ,p_module => l_log_module);
93097 END IF;
93098 --
93099 EXIT WHEN l_array_entity_id.count = 0;
93100
93101 XLA_AE_LINES_PKG.g_rec_lines := null;
93102
93103 --
93104 -- Bug 4458708
93105 --
93106 XLA_AE_LINES_PKG.g_LineNumber := 0;
93107 --
93108 --
93109
93110 FOR Idx IN 1..l_array_event_id.count LOOP
93111 --
93112 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
93113 --
93114 l_event_id := l_array_event_id(idx); -- 5648433
93115
93116 --
93117 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
93118 --
93119
93120 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
93121 (g_array_event(l_event_id).array_value_num('header_index'))
93122 ,'N'
93123 ) <> 'Y'
93124 THEN
93125 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
93126 trace
93127 (p_msg => 'Trancaction revesal option is not Y '
93128 ,p_level => C_LEVEL_STATEMENT
93129 ,p_module => l_log_module);
93130 END IF;
93131
93132 --
93133 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
93134 --
93135 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
93136 --
93137 -- set event info as cache for other routines to refer event attributes
93138 --
93139
93140 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
93141 l_previous_event_id := l_event_id;
93142
93143 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
93144 (p_application_id => p_application_id
93145 ,p_primary_ledger_id => p_primary_ledger_id
93146 ,p_base_ledger_id => p_base_ledger_id
93147 ,p_target_ledger_id => p_target_ledger_id
93148 ,p_entity_id => l_array_entity_id(Idx)
93152 ,p_event_id => l_array_event_id(Idx)
93149 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
93150 ,p_entity_code => l_array_entity_code(Idx)
93151 ,p_transaction_num => l_array_transaction_num(Idx)
93153 ,p_event_class_code => l_array_class_code(Idx)
93154 ,p_event_type_code => l_array_event_type(Idx)
93155 ,p_event_number => l_array_event_number(Idx)
93156 ,p_event_date => l_array_event_date(Idx)
93157 ,p_transaction_date => l_array_transaction_date(Idx)
93158 ,p_reference_num_1 => l_array_reference_num_1(Idx)
93159 ,p_reference_num_2 => l_array_reference_num_2(Idx)
93160 ,p_reference_num_3 => l_array_reference_num_3(Idx)
93161 ,p_reference_num_4 => l_array_reference_num_4(Idx)
93162 ,p_reference_char_1 => l_array_reference_char_1(Idx)
93163 ,p_reference_char_2 => l_array_reference_char_2(Idx)
93164 ,p_reference_char_3 => l_array_reference_char_3(Idx)
93165 ,p_reference_char_4 => l_array_reference_char_4(Idx)
93166 ,p_reference_date_1 => l_array_reference_date_1(Idx)
93167 ,p_reference_date_2 => l_array_reference_date_2(Idx)
93168 ,p_reference_date_3 => l_array_reference_date_3(Idx)
93169 ,p_reference_date_4 => l_array_reference_date_4(Idx)
93170 ,p_event_created_by => l_array_event_created_by(Idx)
93171 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
93172 --
93173 END IF;
93174
93175
93176
93177 --
93178 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
93179
93180 l_acct_reversal_source := SUBSTR(NULL, 1,30);
93181
93182 IF l_continue_with_lines THEN
93183 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
93184 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
93185
93186 xla_accounting_err_pkg.build_message
93187 (p_appli_s_name => 'XLA'
93188 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
93189 ,p_token_1 => 'LINE_NUMBER'
93190 ,p_value_1 => l_array_extract_line_num(Idx)
93191 ,p_token_2 => 'PRODUCT_NAME'
93192 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
93193 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
93194 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
93195 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
93196
93197 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
93198 --
93199 -- following sets the accounting attributes needed to reverse
93200 -- accounting for a distributeion
93201 --
93202
93203 --
93204 -- 5217187
93205 --
93206 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
93207 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
93208 g_array_event(l_event_id).array_value_num('header_index'));
93209 --
93210 --
93211
93212 -- No reversal code generated
93213
93214 xla_ae_lines_pkg.SetAcctReversalAttrs
93215 (p_event_id => l_event_id
93216 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
93217 ,p_calculate_acctd_flag => l_calculate_acctd_flag
93218 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
93219 END IF;
93220
93221 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
93222 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
93223
93224 --
93225 AcctLineType_44 (
93226 p_application_id => p_application_id
93227 ,p_event_id => l_event_id
93228 ,p_calculate_acctd_flag => l_calculate_acctd_flag
93229 ,p_calculate_g_l_flag => l_calculate_g_l_flag
93230 ,p_actual_flag => l_actual_flag
93231 ,p_balance_type_code => l_balance_type_code
93232 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
93233
93234 , p_source_19 => l_array_source_19(Idx)
93235 , p_source_24 => l_array_source_24(Idx)
93236 , p_source_26 => l_array_source_26(Idx)
93237 , p_source_28 => l_array_source_28(Idx)
93238 , p_source_29 => l_array_source_29(Idx)
93239 , p_source_30 => l_array_source_30(Idx)
93240 , p_source_31 => l_array_source_31(Idx)
93241 , p_source_32 => l_array_source_32(Idx)
93242 , p_source_42 => l_array_source_42(Idx)
93243 , p_source_43 => l_array_source_43(Idx)
93244 , p_source_46 => l_array_source_46(Idx)
93245 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
93246 , p_source_49 => l_array_source_49(Idx)
93247 , p_source_50 => l_array_source_50(Idx)
93248 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
93249 , p_source_64 => l_array_source_64(Idx)
93250 , p_source_65 => l_array_source_65(Idx)
93251 , p_source_66 => l_array_source_66(Idx)
93252 , p_source_67 => l_array_source_67(Idx)
93253 , p_source_68 => l_array_source_68(Idx)
93254 , p_source_69 => l_array_source_69(Idx)
93255 , p_source_70 => l_array_source_70(Idx)
93256 , p_source_71 => l_array_source_71(Idx)
93257 );
93258 If(l_balance_type_code = 'A') THEN
93259 l_actual_gain_loss_ref := l_gain_or_loss_ref;
93260 END IF;
93261
93262 --
93263
93264
93265 --
93266 AcctLineType_48 (
93267 p_application_id => p_application_id
93268 ,p_event_id => l_event_id
93269 ,p_calculate_acctd_flag => l_calculate_acctd_flag
93270 ,p_calculate_g_l_flag => l_calculate_g_l_flag
93271 ,p_actual_flag => l_actual_flag
93272 ,p_balance_type_code => l_balance_type_code
93273 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
93274
93278 , p_source_29 => l_array_source_29(Idx)
93275 , p_source_24 => l_array_source_24(Idx)
93276 , p_source_26 => l_array_source_26(Idx)
93277 , p_source_28 => l_array_source_28(Idx)
93279 , p_source_30 => l_array_source_30(Idx)
93280 , p_source_31 => l_array_source_31(Idx)
93281 , p_source_32 => l_array_source_32(Idx)
93282 , p_source_42 => l_array_source_42(Idx)
93283 , p_source_43 => l_array_source_43(Idx)
93284 , p_source_46 => l_array_source_46(Idx)
93285 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
93286 , p_source_49 => l_array_source_49(Idx)
93287 , p_source_50 => l_array_source_50(Idx)
93288 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
93289 , p_source_64 => l_array_source_64(Idx)
93290 , p_source_65 => l_array_source_65(Idx)
93291 , p_source_66 => l_array_source_66(Idx)
93292 , p_source_67 => l_array_source_67(Idx)
93293 , p_source_68 => l_array_source_68(Idx)
93294 , p_source_69 => l_array_source_69(Idx)
93295 , p_source_70 => l_array_source_70(Idx)
93296 , p_source_71 => l_array_source_71(Idx)
93297 , p_source_72 => l_array_source_72(Idx)
93298 , p_source_72_meaning => l_array_source_72_meaning(Idx)
93299 );
93300 If(l_balance_type_code = 'A') THEN
93301 l_actual_gain_loss_ref := l_gain_or_loss_ref;
93302 END IF;
93303
93304 --
93305
93306
93307 --
93308 AcctLineType_49 (
93309 p_application_id => p_application_id
93310 ,p_event_id => l_event_id
93311 ,p_calculate_acctd_flag => l_calculate_acctd_flag
93312 ,p_calculate_g_l_flag => l_calculate_g_l_flag
93313 ,p_actual_flag => l_actual_flag
93314 ,p_balance_type_code => l_balance_type_code
93315 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
93316
93317 , p_source_1 => l_array_source_1(Idx)
93318 , p_source_24 => l_array_source_24(Idx)
93319 , p_source_26 => l_array_source_26(Idx)
93320 , p_source_28 => l_array_source_28(Idx)
93321 , p_source_29 => l_array_source_29(Idx)
93322 , p_source_30 => l_array_source_30(Idx)
93323 , p_source_31 => l_array_source_31(Idx)
93324 , p_source_32 => l_array_source_32(Idx)
93325 , p_source_42 => l_array_source_42(Idx)
93326 , p_source_43 => l_array_source_43(Idx)
93327 , p_source_46 => l_array_source_46(Idx)
93328 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
93329 , p_source_49 => l_array_source_49(Idx)
93330 , p_source_50 => l_array_source_50(Idx)
93331 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
93332 , p_source_64 => l_array_source_64(Idx)
93333 , p_source_65 => l_array_source_65(Idx)
93334 , p_source_66 => l_array_source_66(Idx)
93335 , p_source_67 => l_array_source_67(Idx)
93336 , p_source_68 => l_array_source_68(Idx)
93337 , p_source_69 => l_array_source_69(Idx)
93338 , p_source_70 => l_array_source_70(Idx)
93339 , p_source_71 => l_array_source_71(Idx)
93340 , p_source_72 => l_array_source_72(Idx)
93341 , p_source_72_meaning => l_array_source_72_meaning(Idx)
93342 );
93343 If(l_balance_type_code = 'A') THEN
93344 l_actual_gain_loss_ref := l_gain_or_loss_ref;
93345 END IF;
93346
93347 --
93348
93349
93350 --
93351 AcctLineType_52 (
93352 p_application_id => p_application_id
93353 ,p_event_id => l_event_id
93354 ,p_calculate_acctd_flag => l_calculate_acctd_flag
93355 ,p_calculate_g_l_flag => l_calculate_g_l_flag
93356 ,p_actual_flag => l_actual_flag
93357 ,p_balance_type_code => l_balance_type_code
93358 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
93359
93360 , p_source_24 => l_array_source_24(Idx)
93361 , p_source_26 => l_array_source_26(Idx)
93362 , p_source_28 => l_array_source_28(Idx)
93363 , p_source_29 => l_array_source_29(Idx)
93364 , p_source_30 => l_array_source_30(Idx)
93365 , p_source_31 => l_array_source_31(Idx)
93366 , p_source_32 => l_array_source_32(Idx)
93367 , p_source_42 => l_array_source_42(Idx)
93368 , p_source_43 => l_array_source_43(Idx)
93369 , p_source_46 => l_array_source_46(Idx)
93370 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
93371 , p_source_49 => l_array_source_49(Idx)
93372 , p_source_50 => l_array_source_50(Idx)
93373 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
93374 , p_source_64 => l_array_source_64(Idx)
93375 , p_source_65 => l_array_source_65(Idx)
93376 , p_source_66 => l_array_source_66(Idx)
93377 , p_source_67 => l_array_source_67(Idx)
93378 , p_source_68 => l_array_source_68(Idx)
93379 , p_source_69 => l_array_source_69(Idx)
93380 , p_source_70 => l_array_source_70(Idx)
93381 , p_source_71 => l_array_source_71(Idx)
93382 , p_source_72 => l_array_source_72(Idx)
93383 , p_source_72_meaning => l_array_source_72_meaning(Idx)
93384 );
93385 If(l_balance_type_code = 'A') THEN
93386 l_actual_gain_loss_ref := l_gain_or_loss_ref;
93387 END IF;
93388
93389 --
93390
93391
93392 --
93393 AcctLineType_53 (
93394 p_application_id => p_application_id
93395 ,p_event_id => l_event_id
93396 ,p_calculate_acctd_flag => l_calculate_acctd_flag
93397 ,p_calculate_g_l_flag => l_calculate_g_l_flag
93398 ,p_actual_flag => l_actual_flag
93399 ,p_balance_type_code => l_balance_type_code
93400 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
93401
93402 , p_source_1 => l_array_source_1(Idx)
93403 , p_source_24 => l_array_source_24(Idx)
93404 , p_source_26 => l_array_source_26(Idx)
93405 , p_source_28 => l_array_source_28(Idx)
93406 , p_source_29 => l_array_source_29(Idx)
93407 , p_source_30 => l_array_source_30(Idx)
93408 , p_source_31 => l_array_source_31(Idx)
93409 , p_source_32 => l_array_source_32(Idx)
93410 , p_source_42 => l_array_source_42(Idx)
93411 , p_source_43 => l_array_source_43(Idx)
93412 , p_source_46 => l_array_source_46(Idx)
93413 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
93414 , p_source_49 => l_array_source_49(Idx)
93418 , p_source_65 => l_array_source_65(Idx)
93415 , p_source_50 => l_array_source_50(Idx)
93416 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
93417 , p_source_64 => l_array_source_64(Idx)
93419 , p_source_66 => l_array_source_66(Idx)
93420 , p_source_67 => l_array_source_67(Idx)
93421 , p_source_68 => l_array_source_68(Idx)
93422 , p_source_69 => l_array_source_69(Idx)
93423 , p_source_70 => l_array_source_70(Idx)
93424 , p_source_71 => l_array_source_71(Idx)
93425 , p_source_72 => l_array_source_72(Idx)
93426 , p_source_72_meaning => l_array_source_72_meaning(Idx)
93427 );
93428 If(l_balance_type_code = 'A') THEN
93429 l_actual_gain_loss_ref := l_gain_or_loss_ref;
93430 END IF;
93431
93432 --
93433
93434
93435 --
93436 AcctLineType_115 (
93437 p_application_id => p_application_id
93438 ,p_event_id => l_event_id
93439 ,p_calculate_acctd_flag => l_calculate_acctd_flag
93440 ,p_calculate_g_l_flag => l_calculate_g_l_flag
93441 ,p_actual_flag => l_actual_flag
93442 ,p_balance_type_code => l_balance_type_code
93443 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
93444
93445 , p_source_24 => l_array_source_24(Idx)
93446 , p_source_26 => l_array_source_26(Idx)
93447 , p_source_28 => l_array_source_28(Idx)
93448 , p_source_29 => l_array_source_29(Idx)
93449 , p_source_30 => l_array_source_30(Idx)
93450 , p_source_31 => l_array_source_31(Idx)
93451 , p_source_32 => l_array_source_32(Idx)
93452 , p_source_42 => l_array_source_42(Idx)
93453 , p_source_43 => l_array_source_43(Idx)
93454 , p_source_46 => l_array_source_46(Idx)
93455 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
93456 , p_source_49 => l_array_source_49(Idx)
93457 , p_source_50 => l_array_source_50(Idx)
93458 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
93459 , p_source_64 => l_array_source_64(Idx)
93460 , p_source_65 => l_array_source_65(Idx)
93461 , p_source_66 => l_array_source_66(Idx)
93462 , p_source_67 => l_array_source_67(Idx)
93463 , p_source_68 => l_array_source_68(Idx)
93464 , p_source_69 => l_array_source_69(Idx)
93465 , p_source_70 => l_array_source_70(Idx)
93466 , p_source_71 => l_array_source_71(Idx)
93467 );
93468 If(l_balance_type_code = 'A') THEN
93469 l_actual_gain_loss_ref := l_gain_or_loss_ref;
93470 END IF;
93471
93472 --
93473
93474
93475 --
93476 AcctLineType_117 (
93477 p_application_id => p_application_id
93478 ,p_event_id => l_event_id
93479 ,p_calculate_acctd_flag => l_calculate_acctd_flag
93480 ,p_calculate_g_l_flag => l_calculate_g_l_flag
93481 ,p_actual_flag => l_actual_flag
93482 ,p_balance_type_code => l_balance_type_code
93483 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
93484
93485 , p_source_24 => l_array_source_24(Idx)
93486 , p_source_26 => l_array_source_26(Idx)
93487 , p_source_28 => l_array_source_28(Idx)
93488 , p_source_29 => l_array_source_29(Idx)
93489 , p_source_30 => l_array_source_30(Idx)
93490 , p_source_31 => l_array_source_31(Idx)
93491 , p_source_32 => l_array_source_32(Idx)
93492 , p_source_42 => l_array_source_42(Idx)
93493 , p_source_43 => l_array_source_43(Idx)
93494 , p_source_46 => l_array_source_46(Idx)
93495 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
93496 , p_source_49 => l_array_source_49(Idx)
93497 , p_source_50 => l_array_source_50(Idx)
93498 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
93499 , p_source_64 => l_array_source_64(Idx)
93500 , p_source_65 => l_array_source_65(Idx)
93501 , p_source_66 => l_array_source_66(Idx)
93502 , p_source_67 => l_array_source_67(Idx)
93503 , p_source_68 => l_array_source_68(Idx)
93504 , p_source_69 => l_array_source_69(Idx)
93505 , p_source_70 => l_array_source_70(Idx)
93506 , p_source_71 => l_array_source_71(Idx)
93507 );
93508 If(l_balance_type_code = 'A') THEN
93509 l_actual_gain_loss_ref := l_gain_or_loss_ref;
93510 END IF;
93511
93512 --
93513
93514
93515 --
93516 AcctLineType_126 (
93517 p_application_id => p_application_id
93518 ,p_event_id => l_event_id
93519 ,p_calculate_acctd_flag => l_calculate_acctd_flag
93520 ,p_calculate_g_l_flag => l_calculate_g_l_flag
93521 ,p_actual_flag => l_actual_flag
93522 ,p_balance_type_code => l_balance_type_code
93523 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
93524
93525 , p_source_24 => l_array_source_24(Idx)
93526 , p_source_26 => l_array_source_26(Idx)
93527 , p_source_28 => l_array_source_28(Idx)
93528 , p_source_29 => l_array_source_29(Idx)
93529 , p_source_30 => l_array_source_30(Idx)
93530 , p_source_31 => l_array_source_31(Idx)
93531 , p_source_32 => l_array_source_32(Idx)
93532 , p_source_42 => l_array_source_42(Idx)
93533 , p_source_43 => l_array_source_43(Idx)
93534 , p_source_46 => l_array_source_46(Idx)
93535 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
93536 , p_source_49 => l_array_source_49(Idx)
93537 , p_source_50 => l_array_source_50(Idx)
93538 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
93539 , p_source_64 => l_array_source_64(Idx)
93540 , p_source_65 => l_array_source_65(Idx)
93541 , p_source_66 => l_array_source_66(Idx)
93542 , p_source_67 => l_array_source_67(Idx)
93543 , p_source_68 => l_array_source_68(Idx)
93544 , p_source_69 => l_array_source_69(Idx)
93545 , p_source_70 => l_array_source_70(Idx)
93546 , p_source_71 => l_array_source_71(Idx)
93547 );
93548 If(l_balance_type_code = 'A') THEN
93549 l_actual_gain_loss_ref := l_gain_or_loss_ref;
93550 END IF;
93551
93552 --
93553
93554
93555 --
93556 AcctLineType_136 (
93557 p_application_id => p_application_id
93558 ,p_event_id => l_event_id
93559 ,p_calculate_acctd_flag => l_calculate_acctd_flag
93563 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
93560 ,p_calculate_g_l_flag => l_calculate_g_l_flag
93561 ,p_actual_flag => l_actual_flag
93562 ,p_balance_type_code => l_balance_type_code
93564
93565 , p_source_20 => l_array_source_20(Idx)
93566 , p_source_24 => l_array_source_24(Idx)
93567 , p_source_26 => l_array_source_26(Idx)
93568 , p_source_28 => l_array_source_28(Idx)
93569 , p_source_29 => l_array_source_29(Idx)
93570 , p_source_30 => l_array_source_30(Idx)
93571 , p_source_31 => l_array_source_31(Idx)
93572 , p_source_32 => l_array_source_32(Idx)
93573 , p_source_42 => l_array_source_42(Idx)
93574 , p_source_43 => l_array_source_43(Idx)
93575 , p_source_46 => l_array_source_46(Idx)
93576 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
93577 , p_source_49 => l_array_source_49(Idx)
93578 , p_source_50 => l_array_source_50(Idx)
93579 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
93580 , p_source_64 => l_array_source_64(Idx)
93581 , p_source_65 => l_array_source_65(Idx)
93582 , p_source_66 => l_array_source_66(Idx)
93583 , p_source_67 => l_array_source_67(Idx)
93584 , p_source_68 => l_array_source_68(Idx)
93585 , p_source_69 => l_array_source_69(Idx)
93586 , p_source_70 => l_array_source_70(Idx)
93587 , p_source_71 => l_array_source_71(Idx)
93588 );
93589 If(l_balance_type_code = 'A') THEN
93590 l_actual_gain_loss_ref := l_gain_or_loss_ref;
93591 END IF;
93592
93593 --
93594
93595
93596 --
93597 AcctLineType_137 (
93598 p_application_id => p_application_id
93599 ,p_event_id => l_event_id
93600 ,p_calculate_acctd_flag => l_calculate_acctd_flag
93601 ,p_calculate_g_l_flag => l_calculate_g_l_flag
93602 ,p_actual_flag => l_actual_flag
93603 ,p_balance_type_code => l_balance_type_code
93604 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
93605
93606 , p_source_20 => l_array_source_20(Idx)
93607 , p_source_24 => l_array_source_24(Idx)
93608 , p_source_26 => l_array_source_26(Idx)
93609 , p_source_28 => l_array_source_28(Idx)
93610 , p_source_29 => l_array_source_29(Idx)
93611 , p_source_30 => l_array_source_30(Idx)
93612 , p_source_31 => l_array_source_31(Idx)
93613 , p_source_32 => l_array_source_32(Idx)
93614 , p_source_42 => l_array_source_42(Idx)
93615 , p_source_43 => l_array_source_43(Idx)
93616 , p_source_46 => l_array_source_46(Idx)
93617 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
93618 , p_source_49 => l_array_source_49(Idx)
93619 , p_source_50 => l_array_source_50(Idx)
93620 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
93621 , p_source_64 => l_array_source_64(Idx)
93622 , p_source_65 => l_array_source_65(Idx)
93623 , p_source_66 => l_array_source_66(Idx)
93624 , p_source_67 => l_array_source_67(Idx)
93625 , p_source_68 => l_array_source_68(Idx)
93626 , p_source_69 => l_array_source_69(Idx)
93627 , p_source_70 => l_array_source_70(Idx)
93628 , p_source_71 => l_array_source_71(Idx)
93629 );
93630 If(l_balance_type_code = 'A') THEN
93631 l_actual_gain_loss_ref := l_gain_or_loss_ref;
93632 END IF;
93633
93634 --
93635
93636
93637 --
93638 AcctLineType_140 (
93639 p_application_id => p_application_id
93640 ,p_event_id => l_event_id
93641 ,p_calculate_acctd_flag => l_calculate_acctd_flag
93642 ,p_calculate_g_l_flag => l_calculate_g_l_flag
93643 ,p_actual_flag => l_actual_flag
93644 ,p_balance_type_code => l_balance_type_code
93645 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
93646
93647 , p_source_21 => l_array_source_21(Idx)
93648 , p_source_24 => l_array_source_24(Idx)
93649 , p_source_26 => l_array_source_26(Idx)
93650 , p_source_28 => l_array_source_28(Idx)
93651 , p_source_29 => l_array_source_29(Idx)
93652 , p_source_30 => l_array_source_30(Idx)
93653 , p_source_31 => l_array_source_31(Idx)
93654 , p_source_32 => l_array_source_32(Idx)
93655 , p_source_42 => l_array_source_42(Idx)
93656 , p_source_43 => l_array_source_43(Idx)
93657 , p_source_46 => l_array_source_46(Idx)
93658 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
93659 , p_source_49 => l_array_source_49(Idx)
93660 , p_source_50 => l_array_source_50(Idx)
93661 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
93662 , p_source_64 => l_array_source_64(Idx)
93663 , p_source_65 => l_array_source_65(Idx)
93664 , p_source_66 => l_array_source_66(Idx)
93665 , p_source_67 => l_array_source_67(Idx)
93666 , p_source_68 => l_array_source_68(Idx)
93667 , p_source_69 => l_array_source_69(Idx)
93668 , p_source_70 => l_array_source_70(Idx)
93669 , p_source_71 => l_array_source_71(Idx)
93670 );
93671 If(l_balance_type_code = 'A') THEN
93672 l_actual_gain_loss_ref := l_gain_or_loss_ref;
93673 END IF;
93674
93675 --
93676
93677
93678 --
93679 AcctLineType_141 (
93680 p_application_id => p_application_id
93681 ,p_event_id => l_event_id
93682 ,p_calculate_acctd_flag => l_calculate_acctd_flag
93683 ,p_calculate_g_l_flag => l_calculate_g_l_flag
93684 ,p_actual_flag => l_actual_flag
93685 ,p_balance_type_code => l_balance_type_code
93686 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
93687
93688 , p_source_21 => l_array_source_21(Idx)
93689 , p_source_24 => l_array_source_24(Idx)
93690 , p_source_26 => l_array_source_26(Idx)
93691 , p_source_28 => l_array_source_28(Idx)
93692 , p_source_29 => l_array_source_29(Idx)
93693 , p_source_30 => l_array_source_30(Idx)
93694 , p_source_31 => l_array_source_31(Idx)
93695 , p_source_32 => l_array_source_32(Idx)
93696 , p_source_42 => l_array_source_42(Idx)
93697 , p_source_43 => l_array_source_43(Idx)
93698 , p_source_46 => l_array_source_46(Idx)
93699 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
93700 , p_source_49 => l_array_source_49(Idx)
93704 , p_source_65 => l_array_source_65(Idx)
93701 , p_source_50 => l_array_source_50(Idx)
93702 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
93703 , p_source_64 => l_array_source_64(Idx)
93705 , p_source_66 => l_array_source_66(Idx)
93706 , p_source_67 => l_array_source_67(Idx)
93707 , p_source_68 => l_array_source_68(Idx)
93708 , p_source_69 => l_array_source_69(Idx)
93709 , p_source_70 => l_array_source_70(Idx)
93710 , p_source_71 => l_array_source_71(Idx)
93711 );
93712 If(l_balance_type_code = 'A') THEN
93713 l_actual_gain_loss_ref := l_gain_or_loss_ref;
93714 END IF;
93715
93716 --
93717
93718 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
93719 -- or secondary ledger that has different currency with primary
93720 -- or alc that is calculated by sla
93721 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
93722 (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'))
93723
93724 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
93725 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
93726 AND (l_actual_flag = 'A')) THEN
93727 XLA_AE_LINES_PKG.CreateGainOrLossLines(
93728 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
93729 ,p_application_id => p_application_id
93730 ,p_amb_context_code => 'DEFAULT'
93731 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
93732 ,p_event_class_code => C_EVENT_CLASS_CODE
93733 ,p_event_type_code => C_EVENT_TYPE_CODE
93734
93735 ,p_gain_ccid => g_array_event(l_event_id).array_value_num('source_77')
93736 ,p_loss_ccid => g_array_event(l_event_id).array_value_num('source_78')
93737
93738 ,p_actual_flag => l_actual_flag
93739 ,p_enc_flag => null
93740 ,p_actual_g_l_ref => l_actual_gain_loss_ref
93741 ,p_enc_g_l_ref => null
93742 );
93743 END IF;
93744 END IF;
93745 END IF;
93746
93747 ELSE
93748 --
93749 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
93750 --
93751 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
93752 trace
93753 (p_msg => 'Trancaction revesal option is Y'
93754 ,p_level => C_LEVEL_STATEMENT
93755 ,p_module => l_log_module);
93756 END IF;
93757 END IF;
93758
93759 END LOOP;
93760 l_result := XLA_AE_LINES_PKG.InsertLines ;
93761 end loop;
93762 close line_cur;
93763
93764
93765 --
93766 -- insert headers into xla_ae_headers_gt table
93767 --
93768 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
93769
93770 -- insert into errors table here.
93771
93772 END LOOP;
93773
93774 --
93775 -- 4865292
93776 --
93777 -- Compare g_hdr_extract_count with event count in
93778 -- CreateHeadersAndLines.
93779 --
93780 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
93781
93782 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
93783 trace (p_msg => '# rows extracted from header extract objects '
93784 || ' (running total): '
93785 || g_hdr_extract_count
93786 ,p_level => C_LEVEL_STATEMENT
93787 ,p_module => l_log_module);
93788 END IF;
93789
93790 CLOSE header_cur;
93791 --
93792
93793 --
93794 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
93795 trace
93796 (p_msg => 'END of EventClass_161'
93797 ,p_level => C_LEVEL_PROCEDURE
93798 ,p_module => l_log_module);
93799 END IF;
93800 --
93801 RETURN l_result;
93802 EXCEPTION
93803 WHEN xla_exceptions_pkg.application_exception THEN
93804
93805 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
93806
93807
93808 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
93809
93810 RAISE;
93811 WHEN OTHERS THEN
93812 xla_exceptions_pkg.raise_message
93813 (p_location => 'XLA_00275_AAD_S_000015_PKG.EventClass_161');
93814 END EventClass_161;
93815 --
93816
93817 ---------------------------------------
93818 --
93819 -- PRIVATE PROCEDURE
93820 -- insert_sources_162
93821 --
93822 ----------------------------------------
93823 --
93824 PROCEDURE insert_sources_162(
93825 p_target_ledger_id IN NUMBER
93826 , p_language IN VARCHAR2
93827 , p_sla_ledger_id IN NUMBER
93828 , p_pad_start_date IN DATE
93829 , p_pad_end_date IN DATE
93830 )
93831 IS
93832
93833 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'REVENUE_ALL';
93834 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'REVENUE';
93835 p_apps_owner VARCHAR2(30);
93836 l_log_module VARCHAR2(240);
93837 BEGIN
93838 IF g_log_enabled THEN
93839 l_log_module := C_DEFAULT_MODULE||'.insert_sources_162';
93840 END IF;
93841 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
93842
93843 trace
93844 (p_msg => 'BEGIN of insert_sources_162'
93845 ,p_level => C_LEVEL_PROCEDURE
93846 ,p_module => l_log_module);
93847
93848 END IF;
93849
93850 -- select APPS owner
93851 SELECT oracle_username
93852 INTO p_apps_owner
93853 FROM fnd_oracle_userid
93854 WHERE read_only_flag = 'U'
93855 ;
93859 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
93856
93857 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
93858 trace
93860 ' - p_language = '||p_language||
93861 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
93862 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
93863 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
93864 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
93865 ,p_level => C_LEVEL_STATEMENT
93866 ,p_module => l_log_module);
93867 END IF;
93868
93869
93870 --
93871 INSERT INTO xla_diag_sources --hdr2
93872 (
93873 event_id
93874 , ledger_id
93875 , sla_ledger_id
93876 , description_language
93877 , object_name
93878 , object_type_code
93879 , line_number
93880 , source_application_id
93881 , source_type_code
93882 , source_code
93883 , source_value
93884 , source_meaning
93885 , created_by
93886 , creation_date
93887 , last_update_date
93888 , last_updated_by
93889 , last_update_login
93890 , program_update_date
93891 , program_application_id
93892 , program_id
93893 , request_id
93894 )
93895 SELECT
93896 event_id
93897 , p_target_ledger_id
93898 , p_sla_ledger_id
93899 , p_language
93900 , object_name
93901 , object_type_code
93902 , line_number
93903 , source_application_id
93904 , source_type_code
93905 , source_code
93906 , SUBSTR(source_value ,1,1996)
93907 , SUBSTR(source_meaning ,1,200)
93908 , xla_environment_pkg.g_Usr_Id
93909 , TRUNC(SYSDATE)
93910 , TRUNC(SYSDATE)
93911 , xla_environment_pkg.g_Usr_Id
93912 , xla_environment_pkg.g_Login_Id
93913 , TRUNC(SYSDATE)
93914 , xla_environment_pkg.g_Prog_Appl_Id
93915 , xla_environment_pkg.g_Prog_Id
93916 , xla_environment_pkg.g_Req_Id
93917 FROM (
93918 SELECT xet.event_id event_id
93919 , 0 line_number
93920 , CASE r
93921 WHEN 1 THEN 'PA_XLA_REVENUE_HEADERS_V'
93922 WHEN 2 THEN 'PA_XLA_REVENUE_HEADERS_V'
93923 WHEN 3 THEN 'PA_XLA_REVENUE_HEADERS_V'
93924 WHEN 4 THEN 'PA_XLA_REVENUE_HEADERS_V'
93925 WHEN 5 THEN 'PA_XLA_REVENUE_HEADERS_V'
93926
93927 ELSE null
93928 END object_name
93929 , CASE r
93930 WHEN 1 THEN 'HEADER'
93931 WHEN 2 THEN 'HEADER'
93932 WHEN 3 THEN 'HEADER'
93933 WHEN 4 THEN 'HEADER'
93934 WHEN 5 THEN 'HEADER'
93935
93936 ELSE null
93937 END object_type_code
93938 , CASE r
93939 WHEN 1 THEN '275'
93940 WHEN 2 THEN '275'
93941 WHEN 3 THEN '275'
93942 WHEN 4 THEN '275'
93943 WHEN 5 THEN '275'
93944
93945 ELSE null
93946 END source_application_id
93947 , 'S' source_type_code
93948 , CASE r
93949 WHEN 1 THEN 'CREDITING_REVENUE_FLAG'
93950 WHEN 2 THEN 'EVENT_ID'
93951 WHEN 3 THEN 'GL_DATE'
93952 WHEN 4 THEN 'UER_CCID'
93953 WHEN 5 THEN 'UBR_CCID'
93954
93955 ELSE null
93956 END source_code
93957 , CASE r
93958 WHEN 1 THEN TO_CHAR(h2.CREDITING_REVENUE_FLAG)
93959 WHEN 2 THEN TO_CHAR(h2.EVENT_ID)
93960 WHEN 3 THEN TO_CHAR(h2.GL_DATE)
93961 WHEN 4 THEN TO_CHAR(h2.UER_CCID)
93962 WHEN 5 THEN TO_CHAR(h2.UBR_CCID)
93963
93964 ELSE null
93965 END source_value
93966 , CASE r
93967 WHEN 1 THEN XLA_00275_AAD_S_000015_PKG.GetMeaning(
93968 103371
93969 ,TO_CHAR(h2.CREDITING_REVENUE_FLAG)
93970 ,'CREDITING_REVENUE_FLAG'
93971 ,'S'
93972 ,275)
93973
93974 ELSE null
93975 END source_meaning
93976 FROM xla_events_gt xet
93977 , PA_XLA_REVENUE_HEADERS_V h2
93978 ,(select rownum r from all_objects where rownum <= 5 and owner = p_apps_owner)
93979 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
93980 AND xet.event_class_code = C_EVENT_CLASS_CODE
93981 AND h2.event_id = xet.event_id
93982
93983 )
93984 ;
93985 --
93986 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
93987
93988 trace
93989 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
93990 ,p_level => C_LEVEL_STATEMENT
93991 ,p_module => l_log_module);
93992
93993 END IF;
93994 --
93995
93996
93997
93998 --
93999 INSERT INTO xla_diag_sources --line2
94000 (
94001 event_id
94002 , ledger_id
94003 , sla_ledger_id
94004 , description_language
94005 , object_name
94006 , object_type_code
94007 , line_number
94008 , source_application_id
94009 , source_type_code
94013 , created_by
94010 , source_code
94011 , source_value
94012 , source_meaning
94014 , creation_date
94015 , last_update_date
94016 , last_updated_by
94017 , last_update_login
94018 , program_update_date
94019 , program_application_id
94020 , program_id
94021 , request_id
94022 )
94023 SELECT event_id
94024 , p_target_ledger_id
94025 , p_sla_ledger_id
94026 , p_language
94027 , object_name
94028 , object_type_code
94029 , line_number
94030 , source_application_id
94031 , source_type_code
94032 , source_code
94033 , SUBSTR(source_value,1,1996)
94034 , SUBSTR(source_meaning ,1,200)
94035 , xla_environment_pkg.g_Usr_Id
94036 , TRUNC(SYSDATE)
94037 , TRUNC(SYSDATE)
94038 , xla_environment_pkg.g_Usr_Id
94039 , xla_environment_pkg.g_Login_Id
94040 , TRUNC(SYSDATE)
94041 , xla_environment_pkg.g_Prog_Appl_Id
94042 , xla_environment_pkg.g_Prog_Id
94043 , xla_environment_pkg.g_Req_Id
94044 FROM (
94045 SELECT xet.event_id event_id
94046 , l3.line_number line_number
94047 , CASE r
94048 WHEN 1 THEN 'PA_XLA_REVENUE_LINES_V'
94049 WHEN 2 THEN 'PA_XLA_REVENUE_LINES_V'
94050 WHEN 3 THEN 'PA_XLA_REVENUE_LINES_V'
94051 WHEN 4 THEN 'PA_XLA_REVENUE_LINES_V'
94052 WHEN 5 THEN 'PA_XLA_REVENUE_LINES_V'
94053 WHEN 6 THEN 'PA_XLA_REVENUE_LINES_V'
94054 WHEN 7 THEN 'PA_XLA_REVENUE_LINES_V'
94055 WHEN 8 THEN 'PA_XLA_REVENUE_LINES_V'
94056 WHEN 9 THEN 'PA_XLA_REVENUE_LINES_V'
94057 WHEN 10 THEN 'PA_XLA_REVENUE_LINES_V'
94058 WHEN 11 THEN 'PA_XLA_REVENUE_LINES_V'
94059 WHEN 12 THEN 'PA_XLA_REVENUE_LINES_V'
94060 WHEN 13 THEN 'PA_XLA_REVENUE_LINES_V'
94061 WHEN 14 THEN 'PA_XLA_REVENUE_LINES_V'
94062 WHEN 15 THEN 'PA_XLA_REVENUE_LINES_V'
94063 WHEN 16 THEN 'PA_XLA_REVENUE_LINES_V'
94064 WHEN 17 THEN 'PA_XLA_EVENT_TYPE_REF_V'
94065
94066 ELSE null
94067 END object_name
94068 , CASE r
94069 WHEN 1 THEN 'LINE'
94070 WHEN 2 THEN 'LINE'
94071 WHEN 3 THEN 'LINE'
94072 WHEN 4 THEN 'LINE'
94073 WHEN 5 THEN 'LINE'
94074 WHEN 6 THEN 'LINE'
94075 WHEN 7 THEN 'LINE'
94076 WHEN 8 THEN 'LINE'
94077 WHEN 9 THEN 'LINE'
94078 WHEN 10 THEN 'LINE'
94079 WHEN 11 THEN 'LINE'
94080 WHEN 12 THEN 'LINE'
94081 WHEN 13 THEN 'LINE'
94082 WHEN 14 THEN 'LINE'
94083 WHEN 15 THEN 'LINE'
94084 WHEN 16 THEN 'LINE'
94085 WHEN 17 THEN 'LINE'
94086
94087 ELSE null
94088 END object_type_code
94089 , CASE r
94090 WHEN 1 THEN '275'
94091 WHEN 2 THEN '275'
94092 WHEN 3 THEN '275'
94093 WHEN 4 THEN '275'
94094 WHEN 5 THEN '275'
94095 WHEN 6 THEN '275'
94096 WHEN 7 THEN '275'
94097 WHEN 8 THEN '275'
94098 WHEN 9 THEN '275'
94099 WHEN 10 THEN '275'
94100 WHEN 11 THEN '275'
94101 WHEN 12 THEN '275'
94102 WHEN 13 THEN '275'
94103 WHEN 14 THEN '275'
94104 WHEN 15 THEN '275'
94105 WHEN 16 THEN '275'
94106 WHEN 17 THEN '275'
94107
94108 ELSE null
94109 END source_application_id
94110 , 'S' source_type_code
94111 , CASE r
94112 WHEN 1 THEN 'PERDL_CODE_COMBINATION_ID'
94113 WHEN 2 THEN 'PDR_REALIZED_GAINS_CCID'
94114 WHEN 3 THEN 'PDR_REALIZED_LOSSES_CCID'
94115 WHEN 4 THEN 'PRDL_CODE_COMBINATION_ID'
94116 WHEN 5 THEN 'PDR_UBR_CCID'
94117 WHEN 6 THEN 'PDR_UER_CCID'
94118 WHEN 7 THEN 'ENTERED_CURRENCY_CODE'
94119 WHEN 8 THEN 'EXCHANGE_RATE_DATE'
94120 WHEN 9 THEN 'EXCHANGE_RATE'
94121 WHEN 10 THEN 'EXCHANGE_RATE_TYPE'
94122 WHEN 11 THEN 'ENTERED_AMOUNT'
94123 WHEN 12 THEN 'ACCT_AMOUNT'
94124 WHEN 13 THEN 'REVENUE_DISTRIBUTION_TYPE'
94125 WHEN 14 THEN 'SYSTEM_LINKAGE_FUNCTION'
94126 WHEN 15 THEN 'REVENUE_FIRST_DIST_ID'
94127 WHEN 16 THEN 'REVENUE_SECOND_DIST_ID'
94128 WHEN 17 THEN 'REV_EVENT_TYPE_CLASSIFICATION'
94129
94130 ELSE null
94131 END source_code
94132 , CASE r
94133 WHEN 1 THEN TO_CHAR(l3.PERDL_CODE_COMBINATION_ID)
94134 WHEN 2 THEN TO_CHAR(l3.PDR_REALIZED_GAINS_CCID)
94135 WHEN 3 THEN TO_CHAR(l3.PDR_REALIZED_LOSSES_CCID)
94136 WHEN 4 THEN TO_CHAR(l3.PRDL_CODE_COMBINATION_ID)
94137 WHEN 5 THEN TO_CHAR(l3.PDR_UBR_CCID)
94138 WHEN 6 THEN TO_CHAR(l3.PDR_UER_CCID)
94139 WHEN 7 THEN TO_CHAR(l3.ENTERED_CURRENCY_CODE)
94140 WHEN 8 THEN TO_CHAR(l3.EXCHANGE_RATE_DATE)
94141 WHEN 9 THEN TO_CHAR(l3.EXCHANGE_RATE)
94145 WHEN 13 THEN TO_CHAR(l3.REVENUE_DISTRIBUTION_TYPE)
94142 WHEN 10 THEN TO_CHAR(l3.EXCHANGE_RATE_TYPE)
94143 WHEN 11 THEN TO_CHAR(l3.ENTERED_AMOUNT)
94144 WHEN 12 THEN TO_CHAR(l3.ACCT_AMOUNT)
94146 WHEN 14 THEN TO_CHAR(l3.SYSTEM_LINKAGE_FUNCTION)
94147 WHEN 15 THEN TO_CHAR(l3.REVENUE_FIRST_DIST_ID)
94148 WHEN 16 THEN TO_CHAR(l3.REVENUE_SECOND_DIST_ID)
94149 WHEN 17 THEN TO_CHAR(l1.REV_EVENT_TYPE_CLASSIFICATION)
94150
94151 ELSE null
94152 END source_value
94153 , CASE r
94154 WHEN 17 THEN fvl72.meaning
94155
94156 ELSE null
94157 END source_meaning
94158 FROM xla_events_gt xet
94159 , PA_XLA_EVENT_TYPE_REF_V l1
94160 , PA_XLA_REVENUE_LINES_V l3
94161 , fnd_lookup_values fvl72
94162 , (select rownum r from all_objects where rownum <= 17 and owner = p_apps_owner)
94163 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
94164 AND xet.event_class_code = C_EVENT_CLASS_CODE
94165 AND l3.event_id = xet.event_id
94166 AND l1.rev_event_type (+) =l3.rev_event_type AND fvl72.lookup_type(+) = 'EVENT TYPE CLASSIFICATION'
94167 AND fvl72.lookup_code(+) = l1.REV_EVENT_TYPE_CLASSIFICATION
94168 AND fvl72.view_application_id(+) = 275
94169 AND fvl72.language(+) = USERENV('LANG')
94170
94171 )
94172 ;
94173 --
94174 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
94175
94176 trace
94177 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
94178 ,p_level => C_LEVEL_STATEMENT
94179 ,p_module => l_log_module);
94180
94181 END IF;
94182
94183
94184 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
94185 trace
94186 (p_msg => 'END of insert_sources_162'
94187 ,p_level => C_LEVEL_PROCEDURE
94188 ,p_module => l_log_module);
94189 END IF;
94190 EXCEPTION
94191 WHEN xla_exceptions_pkg.application_exception THEN
94192 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
94193 trace
94194 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
94195 ,p_level => C_LEVEL_EXCEPTION
94196 ,p_module => l_log_module);
94197 END IF;
94198 RAISE;
94199 WHEN OTHERS THEN
94200 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
94201 trace
94202 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
94203 ,p_level => C_LEVEL_EXCEPTION
94204 ,p_module => l_log_module);
94205 END IF;
94206 xla_exceptions_pkg.raise_message
94207 (p_location => 'XLA_00275_AAD_S_000015_PKG.insert_sources_162');
94208 END insert_sources_162;
94209 --
94210
94211 ---------------------------------------
94212 --
94213 -- PRIVATE FUNCTION
94214 -- EventClass_162
94215 --
94216 ----------------------------------------
94217 --
94218 FUNCTION EventClass_162
94219 (p_application_id IN NUMBER
94220 ,p_base_ledger_id IN NUMBER
94221 ,p_target_ledger_id IN NUMBER
94222 ,p_language IN VARCHAR2
94223 ,p_currency_code IN VARCHAR2
94224 ,p_sla_ledger_id IN NUMBER
94225 ,p_pad_start_date IN DATE
94226 ,p_pad_end_date IN DATE
94227 ,p_primary_ledger_id IN NUMBER)
94228 RETURN BOOLEAN IS
94229 --
94230 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'REVENUE_ALL';
94231 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'REVENUE';
94232
94233 l_calculate_acctd_flag VARCHAR2(1) :='N';
94234 l_calculate_g_l_flag VARCHAR2(1) :='N';
94235 --
94236 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
94237 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
94238 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
94239 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
94240 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
94241 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
94242 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
94243 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
94244 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
94245 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
94246 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
94247 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
94248 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
94249 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
94250 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
94251 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
94252 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
94253 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
94254 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
94255 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
94256 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
94257 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
94258 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
94259 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
94260
94261 l_event_id NUMBER;
94265
94262 l_previous_event_id NUMBER;
94263 l_first_event_id NUMBER;
94264 l_last_event_id NUMBER;
94266 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
94267 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
94268 --
94269 --
94270 l_result BOOLEAN := TRUE;
94271 l_rows NUMBER := 1000;
94272 l_event_type_name VARCHAR2(80) := 'All';
94273 l_event_class_name VARCHAR2(80) := 'Revenue';
94274 l_description VARCHAR2(4000);
94275 l_transaction_reversal NUMBER;
94276 l_ae_header_id NUMBER;
94277 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
94278 l_log_module VARCHAR2(240);
94279 --
94280 l_acct_reversal_source VARCHAR2(30);
94281 l_trx_reversal_source VARCHAR2(30);
94282
94283 l_continue_with_lines BOOLEAN := TRUE;
94284 --
94285 l_acc_rev_gl_date_source DATE; -- 4262811
94286 --
94287 type t_array_event_id is table of number index by binary_integer;
94288
94289 l_rec_array_event t_rec_array_event;
94290 l_null_rec_array_event t_rec_array_event;
94291 l_array_ae_header_id xla_number_array_type;
94292 l_actual_flag VARCHAR2(1) := NULL;
94293 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
94294 l_balance_type_code VARCHAR2(1) :=NULL;
94295 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
94296
94297 --
94298 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
94299 --
94300
94301 TYPE t_array_source_48 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.CREDITING_REVENUE_FLAG%TYPE INDEX BY BINARY_INTEGER;
94302 TYPE t_array_source_51 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.EVENT_ID%TYPE INDEX BY BINARY_INTEGER;
94303 TYPE t_array_source_75 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
94304 TYPE t_array_source_77 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.UER_CCID%TYPE INDEX BY BINARY_INTEGER;
94305 TYPE t_array_source_78 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.UBR_CCID%TYPE INDEX BY BINARY_INTEGER;
94306
94307 TYPE t_array_source_1 IS TABLE OF PA_XLA_REVENUE_LINES_V.PERDL_CODE_COMBINATION_ID%TYPE INDEX BY BINARY_INTEGER;
94308 TYPE t_array_source_17 IS TABLE OF PA_XLA_REVENUE_LINES_V.PDR_REALIZED_GAINS_CCID%TYPE INDEX BY BINARY_INTEGER;
94309 TYPE t_array_source_18 IS TABLE OF PA_XLA_REVENUE_LINES_V.PDR_REALIZED_LOSSES_CCID%TYPE INDEX BY BINARY_INTEGER;
94310 TYPE t_array_source_19 IS TABLE OF PA_XLA_REVENUE_LINES_V.PRDL_CODE_COMBINATION_ID%TYPE INDEX BY BINARY_INTEGER;
94311 TYPE t_array_source_20 IS TABLE OF PA_XLA_REVENUE_LINES_V.PDR_UBR_CCID%TYPE INDEX BY BINARY_INTEGER;
94312 TYPE t_array_source_21 IS TABLE OF PA_XLA_REVENUE_LINES_V.PDR_UER_CCID%TYPE INDEX BY BINARY_INTEGER;
94313 TYPE t_array_source_26 IS TABLE OF PA_XLA_REVENUE_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
94314 TYPE t_array_source_28 IS TABLE OF PA_XLA_REVENUE_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
94315 TYPE t_array_source_29 IS TABLE OF PA_XLA_REVENUE_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
94316 TYPE t_array_source_30 IS TABLE OF PA_XLA_REVENUE_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
94317 TYPE t_array_source_42 IS TABLE OF PA_XLA_REVENUE_LINES_V.ENTERED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
94318 TYPE t_array_source_43 IS TABLE OF PA_XLA_REVENUE_LINES_V.ACCT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
94319 TYPE t_array_source_46 IS TABLE OF PA_XLA_REVENUE_LINES_V.REVENUE_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
94320 TYPE t_array_source_47 IS TABLE OF PA_XLA_REVENUE_LINES_V.SYSTEM_LINKAGE_FUNCTION%TYPE INDEX BY BINARY_INTEGER;
94321 TYPE t_array_source_49 IS TABLE OF PA_XLA_REVENUE_LINES_V.REVENUE_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
94322 TYPE t_array_source_50 IS TABLE OF PA_XLA_REVENUE_LINES_V.REVENUE_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
94323 TYPE t_array_source_72 IS TABLE OF PA_XLA_EVENT_TYPE_REF_V.REV_EVENT_TYPE_CLASSIFICATION%TYPE INDEX BY BINARY_INTEGER;
94324
94325 l_array_source_48 t_array_source_48;
94326 l_array_source_51 t_array_source_51;
94327 l_array_source_75 t_array_source_75;
94328 l_array_source_77 t_array_source_77;
94329 l_array_source_78 t_array_source_78;
94330
94331 l_array_source_1 t_array_source_1;
94332 l_array_source_17 t_array_source_17;
94333 l_array_source_18 t_array_source_18;
94334 l_array_source_19 t_array_source_19;
94335 l_array_source_20 t_array_source_20;
94336 l_array_source_21 t_array_source_21;
94337 l_array_source_26 t_array_source_26;
94338 l_array_source_28 t_array_source_28;
94339 l_array_source_29 t_array_source_29;
94340 l_array_source_30 t_array_source_30;
94341 l_array_source_42 t_array_source_42;
94342 l_array_source_43 t_array_source_43;
94343 l_array_source_46 t_array_source_46;
94344 l_array_source_47 t_array_source_47;
94345 l_array_source_49 t_array_source_49;
94346 l_array_source_50 t_array_source_50;
94347 l_array_source_72 t_array_source_72;
94348 l_array_source_72_meaning t_array_lookup_meaning;
94349
94350 --
94351 CURSOR header_cur
94352 IS
94353 SELECT /*+ leading(xet) cardinality(xet,1) */
94354 -- Event Class Code: REVENUE
94355 xet.entity_id
94356 ,xet.legal_entity_id
94357 ,xet.entity_code
94358 ,xet.transaction_number
94359 ,xet.event_id
94360 ,xet.event_class_code
94361 ,xet.event_type_code
94362 ,xet.event_number
94363 ,xet.event_date
94364 ,xet.transaction_date
94365 ,xet.reference_num_1
94366 ,xet.reference_num_2
94367 ,xet.reference_num_3
94368 ,xet.reference_num_4
94369 ,xet.reference_char_1
94370 ,xet.reference_char_2
94371 ,xet.reference_char_3
94372 ,xet.reference_char_4
94373 ,xet.reference_date_1
94374 ,xet.reference_date_2
94375 ,xet.reference_date_3
94379 , h2.CREDITING_REVENUE_FLAG source_48
94376 ,xet.reference_date_4
94377 ,xet.event_created_by
94378 ,xet.budgetary_control_flag
94380 , h2.EVENT_ID source_51
94381 , h2.GL_DATE source_75
94382 , h2.UER_CCID source_77
94383 , h2.UBR_CCID source_78
94384 FROM xla_events_gt xet
94385 , PA_XLA_REVENUE_HEADERS_V h2
94386 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
94387 and xet.event_class_code = C_EVENT_CLASS_CODE
94388 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
94389
94390 ORDER BY event_id
94391 ;
94392
94393
94394 --
94395 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
94396 IS
94397 SELECT /*+ leading(xet) cardinality(xet,1) */
94398 -- Event Class Code: REVENUE
94399 xet.entity_id
94400 ,xet.legal_entity_id
94401 ,xet.entity_code
94402 ,xet.transaction_number
94403 ,xet.event_id
94404 ,xet.event_class_code
94405 ,xet.event_type_code
94406 ,xet.event_number
94407 ,xet.event_date
94408 ,xet.transaction_date
94409 ,xet.reference_num_1
94410 ,xet.reference_num_2
94411 ,xet.reference_num_3
94412 ,xet.reference_num_4
94413 ,xet.reference_char_1
94414 ,xet.reference_char_2
94415 ,xet.reference_char_3
94416 ,xet.reference_char_4
94417 ,xet.reference_date_1
94418 ,xet.reference_date_2
94419 ,xet.reference_date_3
94420 ,xet.reference_date_4
94421 ,xet.event_created_by
94422 ,xet.budgetary_control_flag
94423 , l3.LINE_NUMBER
94424 , l3.PERDL_CODE_COMBINATION_ID source_1
94425 , l3.PDR_REALIZED_GAINS_CCID source_17
94426 , l3.PDR_REALIZED_LOSSES_CCID source_18
94427 , l3.PRDL_CODE_COMBINATION_ID source_19
94428 , l3.PDR_UBR_CCID source_20
94429 , l3.PDR_UER_CCID source_21
94430 , l3.ENTERED_CURRENCY_CODE source_26
94431 , l3.EXCHANGE_RATE_DATE source_28
94432 , l3.EXCHANGE_RATE source_29
94433 , l3.EXCHANGE_RATE_TYPE source_30
94434 , l3.ENTERED_AMOUNT source_42
94435 , l3.ACCT_AMOUNT source_43
94436 , l3.REVENUE_DISTRIBUTION_TYPE source_46
94437 , l3.SYSTEM_LINKAGE_FUNCTION source_47
94438 , l3.REVENUE_FIRST_DIST_ID source_49
94439 , l3.REVENUE_SECOND_DIST_ID source_50
94440 , l1.REV_EVENT_TYPE_CLASSIFICATION source_72
94441 , fvl72.meaning source_72_meaning
94442 FROM xla_events_gt xet
94443 , PA_XLA_EVENT_TYPE_REF_V l1
94444 , PA_XLA_REVENUE_LINES_V l3
94445 , fnd_lookup_values fvl72
94446 WHERE xet.event_id between x_first_event_id and x_last_event_id
94447 and xet.event_date between p_pad_start_date and p_pad_end_date
94448 and xet.event_class_code = C_EVENT_CLASS_CODE
94449 and xet.event_status_code <> 'N' AND l3.event_id = xet.event_id
94450 AND l1.REV_EVENT_TYPE (+) =l3.REV_EVENT_TYPE AND fvl72.lookup_type(+) = 'EVENT TYPE CLASSIFICATION'
94451 AND fvl72.lookup_code(+) = l1.REV_EVENT_TYPE_CLASSIFICATION
94452 AND fvl72.view_application_id(+) = 275
94453 AND fvl72.language(+) = USERENV('LANG')
94454 ;
94455
94456 --
94457 BEGIN
94458 IF g_log_enabled THEN
94459 l_log_module := C_DEFAULT_MODULE||'.EventClass_162';
94460 END IF;
94461 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
94462 trace
94463 (p_msg => 'BEGIN of EventClass_162'
94464 ,p_level => C_LEVEL_PROCEDURE
94465 ,p_module => l_log_module);
94466 END IF;
94467
94468 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
94469 trace
94470 (p_msg => 'p_application_id = '||p_application_id||
94471 ' - p_base_ledger_id = '||p_base_ledger_id||
94472 ' - p_target_ledger_id = '||p_target_ledger_id||
94473 ' - p_language = '||p_language||
94474 ' - p_currency_code = '||p_currency_code||
94475 ' - p_sla_ledger_id = '||p_sla_ledger_id
94476 ,p_level => C_LEVEL_STATEMENT
94477 ,p_module => l_log_module);
94478 END IF;
94479 --
94480 -- initialze arrays
94481 --
94482 g_array_event.DELETE;
94483 l_rec_array_event := l_null_rec_array_event;
94484 --
94485 --------------------------------------
94486 -- 4262811 Initialze MPA Line Number
94487 --------------------------------------
94488 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
94489
94490 --
94491
94492 --
94493 OPEN header_cur;
94494 --
94495 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
94496 trace
94497 (p_msg => 'SQL - FETCH header_cur'
94498 ,p_level => C_LEVEL_STATEMENT
94499 ,p_module => l_log_module);
94500 END IF;
94501 --
94502 LOOP
94503 FETCH header_cur BULK COLLECT INTO
94504 l_array_entity_id
94505 , l_array_legal_entity_id
94506 , l_array_entity_code
94507 , l_array_transaction_num
94508 , l_array_event_id
94509 , l_array_class_code
94510 , l_array_event_type
94511 , l_array_event_number
94512 , l_array_event_date
94513 , l_array_transaction_date
94514 , l_array_reference_num_1
94515 , l_array_reference_num_2
94516 , l_array_reference_num_3
94517 , l_array_reference_num_4
94518 , l_array_reference_char_1
94519 , l_array_reference_char_2
94520 , l_array_reference_char_3
94521 , l_array_reference_char_4
94522 , l_array_reference_date_1
94523 , l_array_reference_date_2
94524 , l_array_reference_date_3
94525 , l_array_reference_date_4
94526 , l_array_event_created_by
94527 , l_array_budgetary_control_flag
94528 , l_array_source_48
94529 , l_array_source_51
94530 , l_array_source_75
94531 , l_array_source_77
94535 IF (C_LEVEL_EVENT >= g_log_level) THEN
94532 , l_array_source_78
94533 LIMIT l_rows;
94534 --
94536 trace
94537 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
94538 ,p_level => C_LEVEL_EVENT
94539 ,p_module => l_log_module);
94540 END IF;
94541 --
94542 EXIT WHEN l_array_entity_id.COUNT = 0;
94543
94544 -- initialize arrays
94545 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
94546 XLA_AE_LINES_PKG.g_rec_lines := NULL;
94547
94548 --
94549 -- Bug 4458708
94550 --
94551 XLA_AE_LINES_PKG.g_LineNumber := 0;
94552
94553
94554 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
94555 g_last_hdr_idx := l_array_event_id.LAST;
94556 --
94557 -- loop for the headers. Each iteration is for each header extract row
94558 -- fetched in header cursor
94559 --
94560 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
94561
94562 --
94563 -- set event info as cache for other routines to refer event attributes
94564 --
94565 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
94566 (p_application_id => p_application_id
94567 ,p_primary_ledger_id => p_primary_ledger_id
94568 ,p_base_ledger_id => p_base_ledger_id
94569 ,p_target_ledger_id => p_target_ledger_id
94570 ,p_entity_id => l_array_entity_id(hdr_idx)
94571 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
94572 ,p_entity_code => l_array_entity_code(hdr_idx)
94573 ,p_transaction_num => l_array_transaction_num(hdr_idx)
94574 ,p_event_id => l_array_event_id(hdr_idx)
94575 ,p_event_class_code => l_array_class_code(hdr_idx)
94576 ,p_event_type_code => l_array_event_type(hdr_idx)
94577 ,p_event_number => l_array_event_number(hdr_idx)
94578 ,p_event_date => l_array_event_date(hdr_idx)
94579 ,p_transaction_date => l_array_transaction_date(hdr_idx)
94580 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
94581 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
94582 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
94583 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
94584 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
94585 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
94586 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
94587 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
94588 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
94589 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
94590 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
94591 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
94592 ,p_event_created_by => l_array_event_created_by(hdr_idx)
94593 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
94594
94595 --
94596 -- set the status of entry to C_VALID (0)
94597 --
94598 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
94599
94600 --
94601 -- initialize a row for ae header
94602 --
94603 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
94604
94605 l_event_id := l_array_event_id(hdr_idx);
94606
94607 --
94608 -- storing the hdr_idx for event. May be used by line cursor.
94609 --
94610 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
94611
94612 --
94613 -- store sources from header extract. This can be improved to
94614 -- store only those sources from header extract that may be used in lines
94615 --
94616
94617 g_array_event(l_event_id).array_value_char('source_48') := l_array_source_48(hdr_idx);
94618 g_array_event(l_event_id).array_value_num('source_51') := l_array_source_51(hdr_idx);
94619 g_array_event(l_event_id).array_value_date('source_75') := l_array_source_75(hdr_idx);
94620 g_array_event(l_event_id).array_value_num('source_77') := l_array_source_77(hdr_idx);
94621 g_array_event(l_event_id).array_value_num('source_78') := l_array_source_78(hdr_idx);
94622
94623 --
94624 -- initilaize the status of ae headers for diffrent balance types
94625 -- the status is initialised to C_NOT_CREATED (2)
94626 --
94627 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
94628 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
94629 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
94630
94631 --
94632 -- call api to validate and store accounting attributes for header
94633 --
94634
94635 ------------------------------------------------------------
94636 -- Accrual Reversal : to get date for Standard Source (NONE)
94637 ------------------------------------------------------------
94638 l_acc_rev_gl_date_source := NULL;
94639
94640 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
94641 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_75');
94642
94643
94644 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
94645
94646 XLA_AE_HEADER_PKG.SetJeCategoryName;
94647
94648 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
94649 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
94650 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
94651 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
94652 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
94653
94654
94655 -- No header level analytical criteria
94656
94657 --
94661
94658 --accounting attribute enhancement, bug 3612931
94659 --
94660 l_trx_reversal_source := SUBSTR(NULL, 1,30);
94662 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
94663 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
94664
94665 xla_accounting_err_pkg.build_message
94666 (p_appli_s_name => 'XLA'
94667 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
94668 ,p_token_1 => 'ACCT_ATTR_NAME'
94669 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
94670 ,p_token_2 => 'PRODUCT_NAME'
94671 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
94672 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
94673 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
94674 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
94675
94676 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
94677 --
94678 -- following sets the accounting attributes needed to reverse
94679 -- accounting for a distributeion
94680 --
94681 xla_ae_lines_pkg.SetTrxReversalAttrs
94682 (p_event_id => l_event_id
94683 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
94684 ,p_trx_reversal_source => l_trx_reversal_source);
94685
94686 END IF;
94687
94688
94689 ----------------------------------------------------------------
94690 -- 4262811 - update the header statuses to invalid in need be
94691 ----------------------------------------------------------------
94692 --
94693 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
94694
94695
94696 -----------------------------------------------
94697 -- No accrual reversal for the event class/type
94698 -----------------------------------------------
94699 ----------------------------------------------------------------
94700
94701 --
94702 -- this ends the header loop iteration for one bulk fetch
94703 --
94704 END LOOP;
94705
94706 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
94707 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
94708
94709 --
94710 -- insert dummy rows into lines gt table that were created due to
94711 -- transaction reversals
94712 --
94713 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
94714 l_result := XLA_AE_LINES_PKG.InsertLines;
94715 END IF;
94716
94717 --
94718 -- reset the temp_line_num for each set of events fetched from header
94719 -- cursor rather than doing it for each new event in line cursor
94720 -- Bug 3939231
94721 --
94722 xla_ae_lines_pkg.g_temp_line_num := 0;
94723
94724
94725
94726 --
94727 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
94728 --
94729 --
94730 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
94731
94732 trace
94733 (p_msg => 'SQL - FETCH line_cur'
94734 ,p_level => C_LEVEL_STATEMENT
94735 ,p_module => l_log_module);
94736
94737 END IF;
94738 --
94739 --
94740 LOOP
94741 --
94742 FETCH line_cur BULK COLLECT INTO
94743 l_array_entity_id
94744 , l_array_legal_entity_id
94745 , l_array_entity_code
94746 , l_array_transaction_num
94747 , l_array_event_id
94748 , l_array_class_code
94749 , l_array_event_type
94750 , l_array_event_number
94751 , l_array_event_date
94752 , l_array_transaction_date
94753 , l_array_reference_num_1
94754 , l_array_reference_num_2
94755 , l_array_reference_num_3
94756 , l_array_reference_num_4
94757 , l_array_reference_char_1
94758 , l_array_reference_char_2
94759 , l_array_reference_char_3
94760 , l_array_reference_char_4
94761 , l_array_reference_date_1
94762 , l_array_reference_date_2
94763 , l_array_reference_date_3
94764 , l_array_reference_date_4
94765 , l_array_event_created_by
94766 , l_array_budgetary_control_flag
94767 , l_array_extract_line_num
94768 , l_array_source_1
94769 , l_array_source_17
94770 , l_array_source_18
94771 , l_array_source_19
94772 , l_array_source_20
94773 , l_array_source_21
94774 , l_array_source_26
94775 , l_array_source_28
94776 , l_array_source_29
94777 , l_array_source_30
94778 , l_array_source_42
94779 , l_array_source_43
94780 , l_array_source_46
94781 , l_array_source_47
94782 , l_array_source_49
94783 , l_array_source_50
94784 , l_array_source_72
94785 , l_array_source_72_meaning
94786 LIMIT l_rows;
94787
94788 --
94789 IF (C_LEVEL_EVENT >= g_log_level) THEN
94790 trace
94791 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
94792 ,p_level => C_LEVEL_EVENT
94793 ,p_module => l_log_module);
94794 END IF;
94795 --
94796 EXIT WHEN l_array_entity_id.count = 0;
94797
94798 XLA_AE_LINES_PKG.g_rec_lines := null;
94799
94800 --
94801 -- Bug 4458708
94802 --
94803 XLA_AE_LINES_PKG.g_LineNumber := 0;
94804 --
94805 --
94806
94807 FOR Idx IN 1..l_array_event_id.count LOOP
94808 --
94809 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
94810 --
94811 l_event_id := l_array_event_id(idx); -- 5648433
94812
94813 --
94817 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
94814 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
94815 --
94816
94818 (g_array_event(l_event_id).array_value_num('header_index'))
94819 ,'N'
94820 ) <> 'Y'
94821 THEN
94822 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
94823 trace
94824 (p_msg => 'Trancaction revesal option is not Y '
94825 ,p_level => C_LEVEL_STATEMENT
94826 ,p_module => l_log_module);
94827 END IF;
94828
94829 --
94830 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
94831 --
94832 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
94833 --
94834 -- set event info as cache for other routines to refer event attributes
94835 --
94836
94837 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
94838 l_previous_event_id := l_event_id;
94839
94840 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
94841 (p_application_id => p_application_id
94842 ,p_primary_ledger_id => p_primary_ledger_id
94843 ,p_base_ledger_id => p_base_ledger_id
94844 ,p_target_ledger_id => p_target_ledger_id
94845 ,p_entity_id => l_array_entity_id(Idx)
94846 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
94847 ,p_entity_code => l_array_entity_code(Idx)
94848 ,p_transaction_num => l_array_transaction_num(Idx)
94849 ,p_event_id => l_array_event_id(Idx)
94850 ,p_event_class_code => l_array_class_code(Idx)
94851 ,p_event_type_code => l_array_event_type(Idx)
94852 ,p_event_number => l_array_event_number(Idx)
94853 ,p_event_date => l_array_event_date(Idx)
94854 ,p_transaction_date => l_array_transaction_date(Idx)
94855 ,p_reference_num_1 => l_array_reference_num_1(Idx)
94856 ,p_reference_num_2 => l_array_reference_num_2(Idx)
94857 ,p_reference_num_3 => l_array_reference_num_3(Idx)
94858 ,p_reference_num_4 => l_array_reference_num_4(Idx)
94859 ,p_reference_char_1 => l_array_reference_char_1(Idx)
94860 ,p_reference_char_2 => l_array_reference_char_2(Idx)
94861 ,p_reference_char_3 => l_array_reference_char_3(Idx)
94862 ,p_reference_char_4 => l_array_reference_char_4(Idx)
94863 ,p_reference_date_1 => l_array_reference_date_1(Idx)
94864 ,p_reference_date_2 => l_array_reference_date_2(Idx)
94865 ,p_reference_date_3 => l_array_reference_date_3(Idx)
94866 ,p_reference_date_4 => l_array_reference_date_4(Idx)
94867 ,p_event_created_by => l_array_event_created_by(Idx)
94868 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
94869 --
94870 END IF;
94871
94872
94873
94874 --
94875 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
94876
94877 l_acct_reversal_source := SUBSTR(NULL, 1,30);
94878
94879 IF l_continue_with_lines THEN
94880 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
94881 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
94882
94883 xla_accounting_err_pkg.build_message
94884 (p_appli_s_name => 'XLA'
94885 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
94886 ,p_token_1 => 'LINE_NUMBER'
94887 ,p_value_1 => l_array_extract_line_num(Idx)
94888 ,p_token_2 => 'PRODUCT_NAME'
94889 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
94890 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
94891 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
94892 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
94893
94894 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
94895 --
94896 -- following sets the accounting attributes needed to reverse
94897 -- accounting for a distributeion
94898 --
94899
94900 --
94901 -- 5217187
94902 --
94903 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
94904 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
94905 g_array_event(l_event_id).array_value_num('header_index'));
94906 --
94907 --
94908
94909 -- No reversal code generated
94910
94911 xla_ae_lines_pkg.SetAcctReversalAttrs
94912 (p_event_id => l_event_id
94913 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
94914 ,p_calculate_acctd_flag => l_calculate_acctd_flag
94915 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
94916 END IF;
94917
94918 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
94919 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
94920
94921 --
94922 AcctLineType_35 (
94923 p_application_id => p_application_id
94924 ,p_event_id => l_event_id
94925 ,p_calculate_acctd_flag => l_calculate_acctd_flag
94926 ,p_calculate_g_l_flag => l_calculate_g_l_flag
94927 ,p_actual_flag => l_actual_flag
94928 ,p_balance_type_code => l_balance_type_code
94929 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
94930
94931 , p_source_19 => l_array_source_19(Idx)
94932 , p_source_26 => l_array_source_26(Idx)
94933 , p_source_28 => l_array_source_28(Idx)
94934 , p_source_29 => l_array_source_29(Idx)
94935 , p_source_30 => l_array_source_30(Idx)
94936 , p_source_42 => l_array_source_42(Idx)
94937 , p_source_43 => l_array_source_43(Idx)
94938 , p_source_46 => l_array_source_46(Idx)
94942 , p_source_50 => l_array_source_50(Idx)
94939 , p_source_47 => l_array_source_47(Idx)
94940 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
94941 , p_source_49 => l_array_source_49(Idx)
94943 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
94944 );
94945 If(l_balance_type_code = 'A') THEN
94946 l_actual_gain_loss_ref := l_gain_or_loss_ref;
94947 END IF;
94948
94949 --
94950
94951
94952 --
94953 AcctLineType_45 (
94954 p_application_id => p_application_id
94955 ,p_event_id => l_event_id
94956 ,p_calculate_acctd_flag => l_calculate_acctd_flag
94957 ,p_calculate_g_l_flag => l_calculate_g_l_flag
94958 ,p_actual_flag => l_actual_flag
94959 ,p_balance_type_code => l_balance_type_code
94960 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
94961
94962 , p_source_19 => l_array_source_19(Idx)
94963 , p_source_26 => l_array_source_26(Idx)
94964 , p_source_42 => l_array_source_42(Idx)
94965 , p_source_43 => l_array_source_43(Idx)
94966 , p_source_46 => l_array_source_46(Idx)
94967 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
94968 , p_source_49 => l_array_source_49(Idx)
94969 , p_source_50 => l_array_source_50(Idx)
94970 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
94971 );
94972 If(l_balance_type_code = 'A') THEN
94973 l_actual_gain_loss_ref := l_gain_or_loss_ref;
94974 END IF;
94975
94976 --
94977
94978
94979 --
94980 AcctLineType_46 (
94981 p_application_id => p_application_id
94982 ,p_event_id => l_event_id
94983 ,p_calculate_acctd_flag => l_calculate_acctd_flag
94984 ,p_calculate_g_l_flag => l_calculate_g_l_flag
94985 ,p_actual_flag => l_actual_flag
94986 ,p_balance_type_code => l_balance_type_code
94987 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
94988
94989 , p_source_19 => l_array_source_19(Idx)
94990 , p_source_26 => l_array_source_26(Idx)
94991 , p_source_28 => l_array_source_28(Idx)
94992 , p_source_29 => l_array_source_29(Idx)
94993 , p_source_30 => l_array_source_30(Idx)
94994 , p_source_42 => l_array_source_42(Idx)
94995 , p_source_43 => l_array_source_43(Idx)
94996 , p_source_46 => l_array_source_46(Idx)
94997 , p_source_47 => l_array_source_47(Idx)
94998 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
94999 , p_source_49 => l_array_source_49(Idx)
95000 , p_source_50 => l_array_source_50(Idx)
95001 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
95002 );
95003 If(l_balance_type_code = 'A') THEN
95004 l_actual_gain_loss_ref := l_gain_or_loss_ref;
95005 END IF;
95006
95007 --
95008
95009
95010 --
95011 AcctLineType_47 (
95012 p_application_id => p_application_id
95013 ,p_event_id => l_event_id
95014 ,p_calculate_acctd_flag => l_calculate_acctd_flag
95015 ,p_calculate_g_l_flag => l_calculate_g_l_flag
95016 ,p_actual_flag => l_actual_flag
95017 ,p_balance_type_code => l_balance_type_code
95018 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
95019
95020 , p_source_1 => l_array_source_1(Idx)
95021 , p_source_26 => l_array_source_26(Idx)
95022 , p_source_28 => l_array_source_28(Idx)
95023 , p_source_29 => l_array_source_29(Idx)
95024 , p_source_30 => l_array_source_30(Idx)
95025 , p_source_42 => l_array_source_42(Idx)
95026 , p_source_43 => l_array_source_43(Idx)
95027 , p_source_46 => l_array_source_46(Idx)
95028 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
95029 , p_source_49 => l_array_source_49(Idx)
95030 , p_source_50 => l_array_source_50(Idx)
95031 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
95032 , p_source_72 => l_array_source_72(Idx)
95033 , p_source_72_meaning => l_array_source_72_meaning(Idx)
95034 );
95035 If(l_balance_type_code = 'A') THEN
95036 l_actual_gain_loss_ref := l_gain_or_loss_ref;
95037 END IF;
95038
95039 --
95040
95041
95042 --
95043 AcctLineType_50 (
95044 p_application_id => p_application_id
95045 ,p_event_id => l_event_id
95046 ,p_calculate_acctd_flag => l_calculate_acctd_flag
95047 ,p_calculate_g_l_flag => l_calculate_g_l_flag
95048 ,p_actual_flag => l_actual_flag
95049 ,p_balance_type_code => l_balance_type_code
95050 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
95051
95052 , p_source_1 => l_array_source_1(Idx)
95053 , p_source_26 => l_array_source_26(Idx)
95054 , p_source_42 => l_array_source_42(Idx)
95055 , p_source_43 => l_array_source_43(Idx)
95056 , p_source_46 => l_array_source_46(Idx)
95057 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
95058 , p_source_49 => l_array_source_49(Idx)
95059 , p_source_50 => l_array_source_50(Idx)
95060 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
95061 , p_source_72 => l_array_source_72(Idx)
95062 , p_source_72_meaning => l_array_source_72_meaning(Idx)
95063 );
95064 If(l_balance_type_code = 'A') THEN
95065 l_actual_gain_loss_ref := l_gain_or_loss_ref;
95066 END IF;
95067
95068 --
95069
95070
95071 --
95072 AcctLineType_51 (
95073 p_application_id => p_application_id
95074 ,p_event_id => l_event_id
95075 ,p_calculate_acctd_flag => l_calculate_acctd_flag
95076 ,p_calculate_g_l_flag => l_calculate_g_l_flag
95077 ,p_actual_flag => l_actual_flag
95078 ,p_balance_type_code => l_balance_type_code
95079 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
95080
95081 , p_source_1 => l_array_source_1(Idx)
95082 , p_source_26 => l_array_source_26(Idx)
95083 , p_source_28 => l_array_source_28(Idx)
95084 , p_source_29 => l_array_source_29(Idx)
95085 , p_source_30 => l_array_source_30(Idx)
95086 , p_source_42 => l_array_source_42(Idx)
95087 , p_source_43 => l_array_source_43(Idx)
95088 , p_source_46 => l_array_source_46(Idx)
95092 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
95089 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
95090 , p_source_49 => l_array_source_49(Idx)
95091 , p_source_50 => l_array_source_50(Idx)
95093 , p_source_72 => l_array_source_72(Idx)
95094 , p_source_72_meaning => l_array_source_72_meaning(Idx)
95095 );
95096 If(l_balance_type_code = 'A') THEN
95097 l_actual_gain_loss_ref := l_gain_or_loss_ref;
95098 END IF;
95099
95100 --
95101
95102
95103 --
95104 AcctLineType_54 (
95105 p_application_id => p_application_id
95106 ,p_event_id => l_event_id
95107 ,p_calculate_acctd_flag => l_calculate_acctd_flag
95108 ,p_calculate_g_l_flag => l_calculate_g_l_flag
95109 ,p_actual_flag => l_actual_flag
95110 ,p_balance_type_code => l_balance_type_code
95111 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
95112
95113 , p_source_1 => l_array_source_1(Idx)
95114 , p_source_26 => l_array_source_26(Idx)
95115 , p_source_42 => l_array_source_42(Idx)
95116 , p_source_43 => l_array_source_43(Idx)
95117 , p_source_46 => l_array_source_46(Idx)
95118 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
95119 , p_source_49 => l_array_source_49(Idx)
95120 , p_source_50 => l_array_source_50(Idx)
95121 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
95122 , p_source_72 => l_array_source_72(Idx)
95123 , p_source_72_meaning => l_array_source_72_meaning(Idx)
95124 );
95125 If(l_balance_type_code = 'A') THEN
95126 l_actual_gain_loss_ref := l_gain_or_loss_ref;
95127 END IF;
95128
95129 --
95130
95131
95132 --
95133 AcctLineType_59 (
95134 p_application_id => p_application_id
95135 ,p_event_id => l_event_id
95136 ,p_calculate_acctd_flag => l_calculate_acctd_flag
95137 ,p_calculate_g_l_flag => l_calculate_g_l_flag
95138 ,p_actual_flag => l_actual_flag
95139 ,p_balance_type_code => l_balance_type_code
95140 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
95141
95142 , p_source_19 => l_array_source_19(Idx)
95143 , p_source_26 => l_array_source_26(Idx)
95144 , p_source_28 => l_array_source_28(Idx)
95145 , p_source_29 => l_array_source_29(Idx)
95146 , p_source_30 => l_array_source_30(Idx)
95147 , p_source_42 => l_array_source_42(Idx)
95148 , p_source_43 => l_array_source_43(Idx)
95149 , p_source_46 => l_array_source_46(Idx)
95150 , p_source_47 => l_array_source_47(Idx)
95151 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
95152 , p_source_49 => l_array_source_49(Idx)
95153 , p_source_50 => l_array_source_50(Idx)
95154 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
95155 );
95156 If(l_balance_type_code = 'A') THEN
95157 l_actual_gain_loss_ref := l_gain_or_loss_ref;
95158 END IF;
95159
95160 --
95161
95162
95163 --
95164 AcctLineType_60 (
95165 p_application_id => p_application_id
95166 ,p_event_id => l_event_id
95167 ,p_calculate_acctd_flag => l_calculate_acctd_flag
95168 ,p_calculate_g_l_flag => l_calculate_g_l_flag
95169 ,p_actual_flag => l_actual_flag
95170 ,p_balance_type_code => l_balance_type_code
95171 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
95172
95173 , p_source_19 => l_array_source_19(Idx)
95174 , p_source_26 => l_array_source_26(Idx)
95175 , p_source_28 => l_array_source_28(Idx)
95176 , p_source_29 => l_array_source_29(Idx)
95177 , p_source_30 => l_array_source_30(Idx)
95178 , p_source_42 => l_array_source_42(Idx)
95179 , p_source_43 => l_array_source_43(Idx)
95180 , p_source_46 => l_array_source_46(Idx)
95181 , p_source_47 => l_array_source_47(Idx)
95182 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
95183 , p_source_49 => l_array_source_49(Idx)
95184 , p_source_50 => l_array_source_50(Idx)
95185 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
95186 );
95187 If(l_balance_type_code = 'A') THEN
95188 l_actual_gain_loss_ref := l_gain_or_loss_ref;
95189 END IF;
95190
95191 --
95192
95193
95194 --
95195 AcctLineType_61 (
95196 p_application_id => p_application_id
95197 ,p_event_id => l_event_id
95198 ,p_calculate_acctd_flag => l_calculate_acctd_flag
95199 ,p_calculate_g_l_flag => l_calculate_g_l_flag
95200 ,p_actual_flag => l_actual_flag
95201 ,p_balance_type_code => l_balance_type_code
95202 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
95203
95204 , p_source_19 => l_array_source_19(Idx)
95205 , p_source_26 => l_array_source_26(Idx)
95206 , p_source_28 => l_array_source_28(Idx)
95207 , p_source_29 => l_array_source_29(Idx)
95208 , p_source_30 => l_array_source_30(Idx)
95209 , p_source_42 => l_array_source_42(Idx)
95210 , p_source_43 => l_array_source_43(Idx)
95211 , p_source_46 => l_array_source_46(Idx)
95212 , p_source_47 => l_array_source_47(Idx)
95213 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
95214 , p_source_49 => l_array_source_49(Idx)
95215 , p_source_50 => l_array_source_50(Idx)
95216 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
95217 );
95218 If(l_balance_type_code = 'A') THEN
95219 l_actual_gain_loss_ref := l_gain_or_loss_ref;
95220 END IF;
95221
95222 --
95223
95224
95225 --
95226 AcctLineType_114 (
95227 p_application_id => p_application_id
95228 ,p_event_id => l_event_id
95229 ,p_calculate_acctd_flag => l_calculate_acctd_flag
95230 ,p_calculate_g_l_flag => l_calculate_g_l_flag
95231 ,p_actual_flag => l_actual_flag
95232 ,p_balance_type_code => l_balance_type_code
95233 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
95234
95235 , p_source_17 => l_array_source_17(Idx)
95236 , p_source_26 => l_array_source_26(Idx)
95237 , p_source_28 => l_array_source_28(Idx)
95238 , p_source_29 => l_array_source_29(Idx)
95242 , p_source_46 => l_array_source_46(Idx)
95239 , p_source_30 => l_array_source_30(Idx)
95240 , p_source_42 => l_array_source_42(Idx)
95241 , p_source_43 => l_array_source_43(Idx)
95243 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
95244 , p_source_49 => l_array_source_49(Idx)
95245 , p_source_50 => l_array_source_50(Idx)
95246 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
95247 );
95248 If(l_balance_type_code = 'A') THEN
95249 l_actual_gain_loss_ref := l_gain_or_loss_ref;
95250 END IF;
95251
95252 --
95253
95254
95255 --
95256 AcctLineType_116 (
95257 p_application_id => p_application_id
95258 ,p_event_id => l_event_id
95259 ,p_calculate_acctd_flag => l_calculate_acctd_flag
95260 ,p_calculate_g_l_flag => l_calculate_g_l_flag
95261 ,p_actual_flag => l_actual_flag
95262 ,p_balance_type_code => l_balance_type_code
95263 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
95264
95265 , p_source_18 => l_array_source_18(Idx)
95266 , p_source_26 => l_array_source_26(Idx)
95267 , p_source_28 => l_array_source_28(Idx)
95268 , p_source_29 => l_array_source_29(Idx)
95269 , p_source_30 => l_array_source_30(Idx)
95270 , p_source_42 => l_array_source_42(Idx)
95271 , p_source_43 => l_array_source_43(Idx)
95272 , p_source_46 => l_array_source_46(Idx)
95273 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
95274 , p_source_49 => l_array_source_49(Idx)
95275 , p_source_50 => l_array_source_50(Idx)
95276 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
95277 );
95278 If(l_balance_type_code = 'A') THEN
95279 l_actual_gain_loss_ref := l_gain_or_loss_ref;
95280 END IF;
95281
95282 --
95283
95284
95285 --
95286 AcctLineType_135 (
95287 p_application_id => p_application_id
95288 ,p_event_id => l_event_id
95289 ,p_calculate_acctd_flag => l_calculate_acctd_flag
95290 ,p_calculate_g_l_flag => l_calculate_g_l_flag
95291 ,p_actual_flag => l_actual_flag
95292 ,p_balance_type_code => l_balance_type_code
95293 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
95294
95295 , p_source_20 => l_array_source_20(Idx)
95296 , p_source_26 => l_array_source_26(Idx)
95297 , p_source_28 => l_array_source_28(Idx)
95298 , p_source_29 => l_array_source_29(Idx)
95299 , p_source_30 => l_array_source_30(Idx)
95300 , p_source_42 => l_array_source_42(Idx)
95301 , p_source_43 => l_array_source_43(Idx)
95302 , p_source_46 => l_array_source_46(Idx)
95303 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
95304 , p_source_49 => l_array_source_49(Idx)
95305 , p_source_50 => l_array_source_50(Idx)
95306 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
95307 );
95308 If(l_balance_type_code = 'A') THEN
95309 l_actual_gain_loss_ref := l_gain_or_loss_ref;
95310 END IF;
95311
95312 --
95313
95314
95315 --
95316 AcctLineType_138 (
95317 p_application_id => p_application_id
95318 ,p_event_id => l_event_id
95319 ,p_calculate_acctd_flag => l_calculate_acctd_flag
95320 ,p_calculate_g_l_flag => l_calculate_g_l_flag
95321 ,p_actual_flag => l_actual_flag
95322 ,p_balance_type_code => l_balance_type_code
95323 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
95324
95325 , p_source_20 => l_array_source_20(Idx)
95326 , p_source_26 => l_array_source_26(Idx)
95327 , p_source_42 => l_array_source_42(Idx)
95328 , p_source_43 => l_array_source_43(Idx)
95329 , p_source_46 => l_array_source_46(Idx)
95330 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
95331 , p_source_49 => l_array_source_49(Idx)
95332 , p_source_50 => l_array_source_50(Idx)
95333 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
95334 );
95335 If(l_balance_type_code = 'A') THEN
95336 l_actual_gain_loss_ref := l_gain_or_loss_ref;
95337 END IF;
95338
95339 --
95340
95341
95342 --
95343 AcctLineType_139 (
95344 p_application_id => p_application_id
95345 ,p_event_id => l_event_id
95346 ,p_calculate_acctd_flag => l_calculate_acctd_flag
95347 ,p_calculate_g_l_flag => l_calculate_g_l_flag
95348 ,p_actual_flag => l_actual_flag
95349 ,p_balance_type_code => l_balance_type_code
95350 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
95351
95352 , p_source_21 => l_array_source_21(Idx)
95353 , p_source_26 => l_array_source_26(Idx)
95354 , p_source_28 => l_array_source_28(Idx)
95355 , p_source_29 => l_array_source_29(Idx)
95356 , p_source_30 => l_array_source_30(Idx)
95357 , p_source_42 => l_array_source_42(Idx)
95358 , p_source_43 => l_array_source_43(Idx)
95359 , p_source_46 => l_array_source_46(Idx)
95360 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
95361 , p_source_49 => l_array_source_49(Idx)
95362 , p_source_50 => l_array_source_50(Idx)
95363 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
95364 );
95365 If(l_balance_type_code = 'A') THEN
95366 l_actual_gain_loss_ref := l_gain_or_loss_ref;
95367 END IF;
95368
95369 --
95370
95371
95372 --
95373 AcctLineType_142 (
95374 p_application_id => p_application_id
95375 ,p_event_id => l_event_id
95376 ,p_calculate_acctd_flag => l_calculate_acctd_flag
95377 ,p_calculate_g_l_flag => l_calculate_g_l_flag
95378 ,p_actual_flag => l_actual_flag
95379 ,p_balance_type_code => l_balance_type_code
95380 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
95381
95382 , p_source_21 => l_array_source_21(Idx)
95383 , p_source_26 => l_array_source_26(Idx)
95384 , p_source_42 => l_array_source_42(Idx)
95385 , p_source_43 => l_array_source_43(Idx)
95386 , p_source_46 => l_array_source_46(Idx)
95387 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
95388 , p_source_49 => l_array_source_49(Idx)
95392 If(l_balance_type_code = 'A') THEN
95389 , p_source_50 => l_array_source_50(Idx)
95390 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
95391 );
95393 l_actual_gain_loss_ref := l_gain_or_loss_ref;
95394 END IF;
95395
95396 --
95397
95398
95399 --
95400 AcctLineType_145 (
95401 p_application_id => p_application_id
95402 ,p_event_id => l_event_id
95403 ,p_calculate_acctd_flag => l_calculate_acctd_flag
95404 ,p_calculate_g_l_flag => l_calculate_g_l_flag
95405 ,p_actual_flag => l_actual_flag
95406 ,p_balance_type_code => l_balance_type_code
95407 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
95408
95409 , p_source_19 => l_array_source_19(Idx)
95410 , p_source_26 => l_array_source_26(Idx)
95411 , p_source_28 => l_array_source_28(Idx)
95412 , p_source_29 => l_array_source_29(Idx)
95413 , p_source_30 => l_array_source_30(Idx)
95414 , p_source_42 => l_array_source_42(Idx)
95415 , p_source_43 => l_array_source_43(Idx)
95416 , p_source_46 => l_array_source_46(Idx)
95417 , p_source_47 => l_array_source_47(Idx)
95418 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
95419 , p_source_49 => l_array_source_49(Idx)
95420 , p_source_50 => l_array_source_50(Idx)
95421 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
95422 );
95423 If(l_balance_type_code = 'A') THEN
95424 l_actual_gain_loss_ref := l_gain_or_loss_ref;
95425 END IF;
95426
95427 --
95428
95429
95430 --
95431 AcctLineType_146 (
95432 p_application_id => p_application_id
95433 ,p_event_id => l_event_id
95434 ,p_calculate_acctd_flag => l_calculate_acctd_flag
95435 ,p_calculate_g_l_flag => l_calculate_g_l_flag
95436 ,p_actual_flag => l_actual_flag
95437 ,p_balance_type_code => l_balance_type_code
95438 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
95439
95440 , p_source_19 => l_array_source_19(Idx)
95441 , p_source_26 => l_array_source_26(Idx)
95442 , p_source_28 => l_array_source_28(Idx)
95443 , p_source_29 => l_array_source_29(Idx)
95444 , p_source_30 => l_array_source_30(Idx)
95445 , p_source_42 => l_array_source_42(Idx)
95446 , p_source_43 => l_array_source_43(Idx)
95447 , p_source_46 => l_array_source_46(Idx)
95448 , p_source_47 => l_array_source_47(Idx)
95449 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
95450 , p_source_49 => l_array_source_49(Idx)
95451 , p_source_50 => l_array_source_50(Idx)
95452 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
95453 );
95454 If(l_balance_type_code = 'A') THEN
95455 l_actual_gain_loss_ref := l_gain_or_loss_ref;
95456 END IF;
95457
95458 --
95459
95460
95461 --
95462 AcctLineType_147 (
95463 p_application_id => p_application_id
95464 ,p_event_id => l_event_id
95465 ,p_calculate_acctd_flag => l_calculate_acctd_flag
95466 ,p_calculate_g_l_flag => l_calculate_g_l_flag
95467 ,p_actual_flag => l_actual_flag
95468 ,p_balance_type_code => l_balance_type_code
95469 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
95470
95471 , p_source_19 => l_array_source_19(Idx)
95472 , p_source_26 => l_array_source_26(Idx)
95473 , p_source_28 => l_array_source_28(Idx)
95474 , p_source_29 => l_array_source_29(Idx)
95475 , p_source_30 => l_array_source_30(Idx)
95476 , p_source_42 => l_array_source_42(Idx)
95477 , p_source_43 => l_array_source_43(Idx)
95478 , p_source_46 => l_array_source_46(Idx)
95479 , p_source_47 => l_array_source_47(Idx)
95480 , p_source_48 => g_array_event(l_event_id).array_value_char('source_48')
95481 , p_source_49 => l_array_source_49(Idx)
95482 , p_source_50 => l_array_source_50(Idx)
95483 , p_source_51 => g_array_event(l_event_id).array_value_num('source_51')
95484 );
95485 If(l_balance_type_code = 'A') THEN
95486 l_actual_gain_loss_ref := l_gain_or_loss_ref;
95487 END IF;
95488
95489 --
95490
95491 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
95492 -- or secondary ledger that has different currency with primary
95493 -- or alc that is calculated by sla
95494 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
95495 (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'))
95496
95497 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
95498 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
95499 AND (l_actual_flag = 'A')) THEN
95500 XLA_AE_LINES_PKG.CreateGainOrLossLines(
95501 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
95502 ,p_application_id => p_application_id
95503 ,p_amb_context_code => 'DEFAULT'
95504 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
95505 ,p_event_class_code => C_EVENT_CLASS_CODE
95506 ,p_event_type_code => C_EVENT_TYPE_CODE
95507
95508 ,p_gain_ccid => g_array_event(l_event_id).array_value_num('source_77')
95509 ,p_loss_ccid => g_array_event(l_event_id).array_value_num('source_78')
95510
95511 ,p_actual_flag => l_actual_flag
95512 ,p_enc_flag => null
95513 ,p_actual_g_l_ref => l_actual_gain_loss_ref
95514 ,p_enc_g_l_ref => null
95515 );
95516 END IF;
95517 END IF;
95518 END IF;
95519
95520 ELSE
95521 --
95522 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
95523 --
95524 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
95525 trace
95526 (p_msg => 'Trancaction revesal option is Y'
95527 ,p_level => C_LEVEL_STATEMENT
95531
95528 ,p_module => l_log_module);
95529 END IF;
95530 END IF;
95532 END LOOP;
95533 l_result := XLA_AE_LINES_PKG.InsertLines ;
95534 end loop;
95535 close line_cur;
95536
95537
95538 --
95539 -- insert headers into xla_ae_headers_gt table
95540 --
95541 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
95542
95543 -- insert into errors table here.
95544
95545 END LOOP;
95546
95547 --
95548 -- 4865292
95549 --
95550 -- Compare g_hdr_extract_count with event count in
95551 -- CreateHeadersAndLines.
95552 --
95553 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
95554
95555 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
95556 trace (p_msg => '# rows extracted from header extract objects '
95557 || ' (running total): '
95558 || g_hdr_extract_count
95559 ,p_level => C_LEVEL_STATEMENT
95560 ,p_module => l_log_module);
95561 END IF;
95562
95563 CLOSE header_cur;
95564 --
95565
95566 --
95567 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
95568 trace
95569 (p_msg => 'END of EventClass_162'
95570 ,p_level => C_LEVEL_PROCEDURE
95571 ,p_module => l_log_module);
95572 END IF;
95573 --
95574 RETURN l_result;
95575 EXCEPTION
95576 WHEN xla_exceptions_pkg.application_exception THEN
95577
95578 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
95579
95580
95581 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
95582
95583 RAISE;
95584 WHEN OTHERS THEN
95585 xla_exceptions_pkg.raise_message
95586 (p_location => 'XLA_00275_AAD_S_000015_PKG.EventClass_162');
95587 END EventClass_162;
95588 --
95589
95590 ---------------------------------------
95591 --
95592 -- PRIVATE PROCEDURE
95593 -- insert_sources_163
95594 --
95595 ----------------------------------------
95596 --
95597 PROCEDURE insert_sources_163(
95598 p_target_ledger_id IN NUMBER
95599 , p_language IN VARCHAR2
95600 , p_sla_ledger_id IN NUMBER
95601 , p_pad_start_date IN DATE
95602 , p_pad_end_date IN DATE
95603 )
95604 IS
95605
95606 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'SUPPLIER_COST_ADJ_ALL';
95607 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'SUPPLIER_COST_ADJ';
95608 p_apps_owner VARCHAR2(30);
95609 l_log_module VARCHAR2(240);
95610 BEGIN
95611 IF g_log_enabled THEN
95612 l_log_module := C_DEFAULT_MODULE||'.insert_sources_163';
95613 END IF;
95614 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
95615
95616 trace
95617 (p_msg => 'BEGIN of insert_sources_163'
95618 ,p_level => C_LEVEL_PROCEDURE
95619 ,p_module => l_log_module);
95620
95621 END IF;
95622
95623 -- select APPS owner
95624 SELECT oracle_username
95625 INTO p_apps_owner
95626 FROM fnd_oracle_userid
95627 WHERE read_only_flag = 'U'
95628 ;
95629
95630 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
95631 trace
95632 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
95633 ' - p_language = '||p_language||
95634 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
95635 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
95636 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
95637 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
95638 ,p_level => C_LEVEL_STATEMENT
95639 ,p_module => l_log_module);
95640 END IF;
95641
95642
95643 --
95644 INSERT INTO xla_diag_sources --hdr2
95645 (
95646 event_id
95647 , ledger_id
95648 , sla_ledger_id
95649 , description_language
95650 , object_name
95651 , object_type_code
95652 , line_number
95653 , source_application_id
95654 , source_type_code
95655 , source_code
95656 , source_value
95657 , source_meaning
95658 , created_by
95659 , creation_date
95660 , last_update_date
95661 , last_updated_by
95662 , last_update_login
95663 , program_update_date
95664 , program_application_id
95665 , program_id
95666 , request_id
95667 )
95668 SELECT
95669 event_id
95670 , p_target_ledger_id
95671 , p_sla_ledger_id
95672 , p_language
95673 , object_name
95674 , object_type_code
95675 , line_number
95676 , source_application_id
95677 , source_type_code
95678 , source_code
95679 , SUBSTR(source_value ,1,1996)
95680 , SUBSTR(source_meaning ,1,200)
95681 , xla_environment_pkg.g_Usr_Id
95682 , TRUNC(SYSDATE)
95683 , TRUNC(SYSDATE)
95684 , xla_environment_pkg.g_Usr_Id
95685 , xla_environment_pkg.g_Login_Id
95686 , TRUNC(SYSDATE)
95687 , xla_environment_pkg.g_Prog_Appl_Id
95688 , xla_environment_pkg.g_Prog_Id
95689 , xla_environment_pkg.g_Req_Id
95690 FROM (
95691 SELECT xet.event_id event_id
95692 , 0 line_number
95693 , CASE r
95694 WHEN 1 THEN 'GMS_XLA_AWARD_REF_V'
95695 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
95696 WHEN 3 THEN 'PA_XLA_EXP_HEADER_V'
95697 WHEN 4 THEN 'PA_XLA_EXP_HEADER_V'
95698
95702 WHEN 1 THEN 'HEADER'
95699 ELSE null
95700 END object_name
95701 , CASE r
95703 WHEN 2 THEN 'HEADER'
95704 WHEN 3 THEN 'HEADER'
95705 WHEN 4 THEN 'HEADER'
95706
95707 ELSE null
95708 END object_type_code
95709 , CASE r
95710 WHEN 1 THEN '275'
95711 WHEN 2 THEN '275'
95712 WHEN 3 THEN '275'
95713 WHEN 4 THEN '275'
95714
95715 ELSE null
95716 END source_application_id
95717 , 'S' source_type_code
95718 , CASE r
95719 WHEN 1 THEN 'PO_DISTRIBUTION_ID'
95720 WHEN 2 THEN 'EXCHANGE_RATE_VARIANCE_FLAG'
95721 WHEN 3 THEN 'EXPENDITURE_ITEM_ID'
95722 WHEN 4 THEN 'GL_DATE'
95723
95724 ELSE null
95725 END source_code
95726 , CASE r
95727 WHEN 1 THEN TO_CHAR(h1.PO_DISTRIBUTION_ID)
95728 WHEN 2 THEN TO_CHAR(h3.EXCHANGE_RATE_VARIANCE_FLAG)
95729 WHEN 3 THEN TO_CHAR(h3.EXPENDITURE_ITEM_ID)
95730 WHEN 4 THEN TO_CHAR(h3.GL_DATE)
95731
95732 ELSE null
95733 END source_value
95734 , CASE r
95735 WHEN 2 THEN XLA_00275_AAD_S_000015_PKG.GetMeaning(
95736 103371
95737 ,TO_CHAR(h3.EXCHANGE_RATE_VARIANCE_FLAG)
95738 ,'EXCHANGE_RATE_VARIANCE_FLAG'
95739 ,'S'
95740 ,275)
95741
95742 ELSE null
95743 END source_meaning
95744 FROM xla_events_gt xet
95745 , GMS_XLA_AWARD_REF_V h1
95746 , PA_XLA_EXP_HEADER_V h3
95747 ,(select rownum r from all_objects where rownum <= 4 and owner = p_apps_owner)
95748 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
95749 AND xet.event_class_code = C_EVENT_CLASS_CODE
95750 AND h3.event_id = xet.event_id
95751 AND h1.expenditure_item_id (+) =h3.expenditure_item_id and h1.document_type (+) = 'exp'
95752 )
95753 ;
95754 --
95755 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
95756
95757 trace
95758 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
95759 ,p_level => C_LEVEL_STATEMENT
95760 ,p_module => l_log_module);
95761
95762 END IF;
95763 --
95764
95765
95766
95767 --
95768 INSERT INTO xla_diag_sources --line2
95769 (
95770 event_id
95771 , ledger_id
95772 , sla_ledger_id
95773 , description_language
95774 , object_name
95775 , object_type_code
95776 , line_number
95777 , source_application_id
95778 , source_type_code
95779 , source_code
95780 , source_value
95781 , source_meaning
95782 , created_by
95783 , creation_date
95784 , last_update_date
95785 , last_updated_by
95786 , last_update_login
95787 , program_update_date
95788 , program_application_id
95789 , program_id
95790 , request_id
95791 )
95792 SELECT event_id
95793 , p_target_ledger_id
95794 , p_sla_ledger_id
95795 , p_language
95796 , object_name
95797 , object_type_code
95798 , line_number
95799 , source_application_id
95800 , source_type_code
95801 , source_code
95802 , SUBSTR(source_value,1,1996)
95803 , SUBSTR(source_meaning ,1,200)
95804 , xla_environment_pkg.g_Usr_Id
95805 , TRUNC(SYSDATE)
95806 , TRUNC(SYSDATE)
95807 , xla_environment_pkg.g_Usr_Id
95808 , xla_environment_pkg.g_Login_Id
95809 , TRUNC(SYSDATE)
95810 , xla_environment_pkg.g_Prog_Appl_Id
95811 , xla_environment_pkg.g_Prog_Id
95812 , xla_environment_pkg.g_Req_Id
95813 FROM (
95814 SELECT xet.event_id event_id
95815 , l2.line_number line_number
95816 , CASE r
95817 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
95818 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
95819 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
95820 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
95821 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
95822 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
95823 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
95824 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
95825 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
95826 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
95827 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
95828 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
95829 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
95830 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
95831 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
95832 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
95833 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
95834 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
95835
95836 ELSE null
95837 END object_name
95838 , CASE r
95839 WHEN 1 THEN 'LINE'
95840 WHEN 2 THEN 'LINE'
95841 WHEN 3 THEN 'LINE'
95842 WHEN 4 THEN 'LINE'
95843 WHEN 5 THEN 'LINE'
95844 WHEN 6 THEN 'LINE'
95848 WHEN 10 THEN 'LINE'
95845 WHEN 7 THEN 'LINE'
95846 WHEN 8 THEN 'LINE'
95847 WHEN 9 THEN 'LINE'
95849 WHEN 11 THEN 'LINE'
95850 WHEN 12 THEN 'LINE'
95851 WHEN 13 THEN 'LINE'
95852 WHEN 14 THEN 'LINE'
95853 WHEN 15 THEN 'LINE'
95854 WHEN 16 THEN 'LINE'
95855 WHEN 17 THEN 'LINE'
95856 WHEN 18 THEN 'LINE'
95857
95858 ELSE null
95859 END object_type_code
95860 , CASE r
95861 WHEN 1 THEN '275'
95862 WHEN 2 THEN '275'
95863 WHEN 3 THEN '275'
95864 WHEN 4 THEN '275'
95865 WHEN 5 THEN '275'
95866 WHEN 6 THEN '275'
95867 WHEN 7 THEN '275'
95868 WHEN 8 THEN '275'
95869 WHEN 9 THEN '275'
95870 WHEN 10 THEN '275'
95871 WHEN 11 THEN '275'
95872 WHEN 12 THEN '275'
95873 WHEN 13 THEN '275'
95874 WHEN 14 THEN '275'
95875 WHEN 15 THEN '275'
95876 WHEN 16 THEN '275'
95877 WHEN 17 THEN '275'
95878 WHEN 18 THEN '275'
95879
95880 ELSE null
95881 END source_application_id
95882 , 'S' source_type_code
95883 , CASE r
95884 WHEN 1 THEN 'COST_CCID'
95885 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
95886 WHEN 3 THEN 'ADJ_COST_CCID'
95887 WHEN 4 THEN 'COST_CLEARING_CCID'
95888 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
95889 WHEN 6 THEN 'REVERSING_LINE_FLAG'
95890 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
95891 WHEN 8 THEN 'ENTERED_RAW_COST'
95892 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
95893 WHEN 10 THEN 'ACCT_RAW_COST'
95894 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
95895 WHEN 12 THEN 'EXCHANGE_RATE'
95896 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
95897 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
95898 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
95899 WHEN 16 THEN 'LINE_NUMBER'
95900 WHEN 17 THEN 'LINE_TYPE'
95901 WHEN 18 THEN 'LINE_NUM_REVERSED'
95902
95903 ELSE null
95904 END source_code
95905 , CASE r
95906 WHEN 1 THEN TO_CHAR(l2.COST_CCID)
95907 WHEN 2 THEN TO_CHAR(l2.ALLOW_OVERRIDE_CCID_FLAG)
95908 WHEN 3 THEN TO_CHAR(l2.ADJ_COST_CCID)
95909 WHEN 4 THEN TO_CHAR(l2.COST_CLEARING_CCID)
95910 WHEN 5 THEN TO_CHAR(l2.ADJ_COST_CLEARING_CCID)
95911 WHEN 6 THEN TO_CHAR(l2.REVERSING_LINE_FLAG)
95912 WHEN 7 THEN TO_CHAR(l2.ACTUAL_UPG_CR_ACCT_CLASS)
95913 WHEN 8 THEN TO_CHAR(l2.ENTERED_RAW_COST)
95914 WHEN 9 THEN TO_CHAR(l2.ENTERED_CURRENCY_CODE)
95915 WHEN 10 THEN TO_CHAR(l2.ACCT_RAW_COST)
95916 WHEN 11 THEN TO_CHAR(l2.EXCHANGE_RATE_DATE)
95917 WHEN 12 THEN TO_CHAR(l2.EXCHANGE_RATE)
95918 WHEN 13 THEN TO_CHAR(l2.EXCHANGE_RATE_TYPE)
95919 WHEN 14 THEN TO_CHAR(l2.ACTUAL_UPG_DR_ACCT_CLASS)
95920 WHEN 15 THEN TO_CHAR(l2.USE_ACT_UPG_ATTRIB_FLAG)
95921 WHEN 16 THEN TO_CHAR(l2.LINE_NUMBER)
95922 WHEN 17 THEN TO_CHAR(l2.LINE_TYPE)
95923 WHEN 18 THEN TO_CHAR(l2.LINE_NUM_REVERSED)
95924
95925 ELSE null
95926 END source_value
95927 , CASE r
95928 WHEN 2 THEN XLA_00275_AAD_S_000015_PKG.GetMeaning(
95929 103371
95930 ,TO_CHAR(l2.ALLOW_OVERRIDE_CCID_FLAG)
95931 ,'ALLOW_OVERRIDE_CCID_FLAG'
95932 ,'S'
95933 ,275)
95934 WHEN 17 THEN fvl35.meaning
95935
95936 ELSE null
95937 END source_meaning
95938 FROM xla_events_gt xet
95939 , PA_XLA_CDL_LINES_V l2
95940 , fnd_lookup_values fvl35
95941 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
95942 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
95943 AND xet.event_class_code = C_EVENT_CLASS_CODE
95944 AND l2.event_id = xet.event_id
95945 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
95946 AND fvl35.lookup_code(+) = l2.LINE_TYPE
95947 AND fvl35.view_application_id(+) = 275
95948 AND fvl35.language(+) = USERENV('LANG')
95949
95950 )
95951 ;
95952 --
95953 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
95954
95955 trace
95956 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
95957 ,p_level => C_LEVEL_STATEMENT
95958 ,p_module => l_log_module);
95959
95960 END IF;
95961
95962
95963 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
95964 trace
95965 (p_msg => 'END of insert_sources_163'
95966 ,p_level => C_LEVEL_PROCEDURE
95967 ,p_module => l_log_module);
95968 END IF;
95969 EXCEPTION
95970 WHEN xla_exceptions_pkg.application_exception THEN
95971 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
95972 trace
95973 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
95977 RAISE;
95974 ,p_level => C_LEVEL_EXCEPTION
95975 ,p_module => l_log_module);
95976 END IF;
95978 WHEN OTHERS THEN
95979 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
95980 trace
95981 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
95982 ,p_level => C_LEVEL_EXCEPTION
95983 ,p_module => l_log_module);
95984 END IF;
95985 xla_exceptions_pkg.raise_message
95986 (p_location => 'XLA_00275_AAD_S_000015_PKG.insert_sources_163');
95987 END insert_sources_163;
95988 --
95989
95990 ---------------------------------------
95991 --
95992 -- PRIVATE FUNCTION
95993 -- EventClass_163
95994 --
95995 ----------------------------------------
95996 --
95997 FUNCTION EventClass_163
95998 (p_application_id IN NUMBER
95999 ,p_base_ledger_id IN NUMBER
96000 ,p_target_ledger_id IN NUMBER
96001 ,p_language IN VARCHAR2
96002 ,p_currency_code IN VARCHAR2
96003 ,p_sla_ledger_id IN NUMBER
96004 ,p_pad_start_date IN DATE
96005 ,p_pad_end_date IN DATE
96006 ,p_primary_ledger_id IN NUMBER)
96007 RETURN BOOLEAN IS
96008 --
96009 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'SUPPLIER_COST_ADJ_ALL';
96010 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'SUPPLIER_COST_ADJ';
96011
96012 l_calculate_acctd_flag VARCHAR2(1) :='N';
96013 l_calculate_g_l_flag VARCHAR2(1) :='N';
96014 --
96015 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
96016 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
96017 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
96018 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
96019 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
96020 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
96021 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
96022 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
96023 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
96024 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
96025 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
96026 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
96027 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
96028 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
96029 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
96030 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
96031 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
96032 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
96033 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
96034 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
96035 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
96036 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
96037 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
96038 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
96039
96040 l_event_id NUMBER;
96041 l_previous_event_id NUMBER;
96042 l_first_event_id NUMBER;
96043 l_last_event_id NUMBER;
96044
96045 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
96046 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
96047 --
96048 --
96049 l_result BOOLEAN := TRUE;
96050 l_rows NUMBER := 1000;
96051 l_event_type_name VARCHAR2(80) := 'All';
96052 l_event_class_name VARCHAR2(80) := 'Supplier Cost Adjustment';
96053 l_description VARCHAR2(4000);
96054 l_transaction_reversal NUMBER;
96055 l_ae_header_id NUMBER;
96056 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
96057 l_log_module VARCHAR2(240);
96058 --
96059 l_acct_reversal_source VARCHAR2(30);
96060 l_trx_reversal_source VARCHAR2(30);
96061
96062 l_continue_with_lines BOOLEAN := TRUE;
96063 --
96064 l_acc_rev_gl_date_source DATE; -- 4262811
96065 --
96066 type t_array_event_id is table of number index by binary_integer;
96067
96068 l_rec_array_event t_rec_array_event;
96069 l_null_rec_array_event t_rec_array_event;
96070 l_array_ae_header_id xla_number_array_type;
96071 l_actual_flag VARCHAR2(1) := NULL;
96072 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
96073 l_balance_type_code VARCHAR2(1) :=NULL;
96074 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
96075
96076 --
96077 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
96078 --
96079
96080 TYPE t_array_source_2 IS TABLE OF GMS_XLA_AWARD_REF_V.PO_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
96081 TYPE t_array_source_22 IS TABLE OF PA_XLA_EXP_HEADER_V.EXCHANGE_RATE_VARIANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
96082 TYPE t_array_source_33 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
96083 TYPE t_array_source_75 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
96084
96085 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
96086 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
96090 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
96087 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
96088 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
96089 TYPE t_array_source_8 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
96091 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
96092 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
96093 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
96094 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
96095 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
96096 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
96097 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
96098 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
96099 TYPE t_array_source_32 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
96100 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
96101 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
96102 TYPE t_array_source_36 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
96103
96104 l_array_source_2 t_array_source_2;
96105 l_array_source_22 t_array_source_22;
96106 l_array_source_33 t_array_source_33;
96107 l_array_source_75 t_array_source_75;
96108
96109 l_array_source_4 t_array_source_4;
96110 l_array_source_5 t_array_source_5;
96111 l_array_source_6 t_array_source_6;
96112 l_array_source_7 t_array_source_7;
96113 l_array_source_8 t_array_source_8;
96114 l_array_source_23 t_array_source_23;
96115 l_array_source_24 t_array_source_24;
96116 l_array_source_25 t_array_source_25;
96117 l_array_source_26 t_array_source_26;
96118 l_array_source_27 t_array_source_27;
96119 l_array_source_28 t_array_source_28;
96120 l_array_source_29 t_array_source_29;
96121 l_array_source_30 t_array_source_30;
96122 l_array_source_31 t_array_source_31;
96123 l_array_source_32 t_array_source_32;
96124 l_array_source_34 t_array_source_34;
96125 l_array_source_35 t_array_source_35;
96126 l_array_source_35_meaning t_array_lookup_meaning;
96127 l_array_source_36 t_array_source_36;
96128
96129 --
96130 CURSOR header_cur
96131 IS
96132 SELECT /*+ leading(xet) cardinality(xet,1) */
96133 -- Event Class Code: SUPPLIER_COST_ADJ
96134 xet.entity_id
96135 ,xet.legal_entity_id
96136 ,xet.entity_code
96137 ,xet.transaction_number
96138 ,xet.event_id
96139 ,xet.event_class_code
96140 ,xet.event_type_code
96141 ,xet.event_number
96142 ,xet.event_date
96143 ,xet.transaction_date
96144 ,xet.reference_num_1
96145 ,xet.reference_num_2
96146 ,xet.reference_num_3
96147 ,xet.reference_num_4
96148 ,xet.reference_char_1
96149 ,xet.reference_char_2
96150 ,xet.reference_char_3
96151 ,xet.reference_char_4
96152 ,xet.reference_date_1
96153 ,xet.reference_date_2
96154 ,xet.reference_date_3
96155 ,xet.reference_date_4
96156 ,xet.event_created_by
96157 ,xet.budgetary_control_flag
96158 , h1.PO_DISTRIBUTION_ID source_2
96159 , h3.EXCHANGE_RATE_VARIANCE_FLAG source_22
96160 , h3.EXPENDITURE_ITEM_ID source_33
96161 , h3.GL_DATE source_75
96162 FROM xla_events_gt xet
96163 , GMS_XLA_AWARD_REF_V h1
96164 , PA_XLA_EXP_HEADER_V h3
96165 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
96166 and xet.event_class_code = C_EVENT_CLASS_CODE
96167 and xet.event_status_code <> 'N' AND h3.event_id = xet.event_id
96168 AND h1.expenditure_item_id (+) =h3.expenditure_item_id AND h1.document_type (+) = 'EXP'
96169 ORDER BY event_id
96170 ;
96171
96172
96173 --
96174 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
96175 IS
96176 SELECT /*+ leading(xet) cardinality(xet,1) */
96177 -- Event Class Code: SUPPLIER_COST_ADJ
96178 xet.entity_id
96179 ,xet.legal_entity_id
96180 ,xet.entity_code
96181 ,xet.transaction_number
96182 ,xet.event_id
96183 ,xet.event_class_code
96184 ,xet.event_type_code
96185 ,xet.event_number
96186 ,xet.event_date
96187 ,xet.transaction_date
96188 ,xet.reference_num_1
96189 ,xet.reference_num_2
96190 ,xet.reference_num_3
96191 ,xet.reference_num_4
96192 ,xet.reference_char_1
96193 ,xet.reference_char_2
96194 ,xet.reference_char_3
96195 ,xet.reference_char_4
96196 ,xet.reference_date_1
96197 ,xet.reference_date_2
96198 ,xet.reference_date_3
96199 ,xet.reference_date_4
96200 ,xet.event_created_by
96201 ,xet.budgetary_control_flag
96202 , l2.LINE_NUMBER
96203 , l2.COST_CCID source_4
96204 , l2.ALLOW_OVERRIDE_CCID_FLAG source_5
96205 , l2.ADJ_COST_CCID source_6
96206 , l2.COST_CLEARING_CCID source_7
96207 , l2.ADJ_COST_CLEARING_CCID source_8
96208 , l2.REVERSING_LINE_FLAG source_23
96209 , l2.ACTUAL_UPG_CR_ACCT_CLASS source_24
96210 , l2.ENTERED_RAW_COST source_25
96211 , l2.ENTERED_CURRENCY_CODE source_26
96212 , l2.ACCT_RAW_COST source_27
96213 , l2.EXCHANGE_RATE_DATE source_28
96214 , l2.EXCHANGE_RATE source_29
96215 , l2.EXCHANGE_RATE_TYPE source_30
96216 , l2.ACTUAL_UPG_DR_ACCT_CLASS source_31
96220 , fvl35.meaning source_35_meaning
96217 , l2.USE_ACT_UPG_ATTRIB_FLAG source_32
96218 , l2.LINE_NUMBER source_34
96219 , l2.LINE_TYPE source_35
96221 , l2.LINE_NUM_REVERSED source_36
96222 FROM xla_events_gt xet
96223 , PA_XLA_CDL_LINES_V l2
96224 , fnd_lookup_values fvl35
96225 WHERE xet.event_id between x_first_event_id and x_last_event_id
96226 and xet.event_date between p_pad_start_date and p_pad_end_date
96227 and xet.event_class_code = C_EVENT_CLASS_CODE
96228 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
96229 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
96230 AND fvl35.lookup_code(+) = l2.LINE_TYPE
96231 AND fvl35.view_application_id(+) = 275
96232 AND fvl35.language(+) = USERENV('LANG')
96233 ;
96234
96235 --
96236 BEGIN
96237 IF g_log_enabled THEN
96238 l_log_module := C_DEFAULT_MODULE||'.EventClass_163';
96239 END IF;
96240 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
96241 trace
96242 (p_msg => 'BEGIN of EventClass_163'
96243 ,p_level => C_LEVEL_PROCEDURE
96244 ,p_module => l_log_module);
96245 END IF;
96246
96247 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
96248 trace
96249 (p_msg => 'p_application_id = '||p_application_id||
96250 ' - p_base_ledger_id = '||p_base_ledger_id||
96251 ' - p_target_ledger_id = '||p_target_ledger_id||
96252 ' - p_language = '||p_language||
96253 ' - p_currency_code = '||p_currency_code||
96254 ' - p_sla_ledger_id = '||p_sla_ledger_id
96255 ,p_level => C_LEVEL_STATEMENT
96256 ,p_module => l_log_module);
96257 END IF;
96258 --
96259 -- initialze arrays
96260 --
96261 g_array_event.DELETE;
96262 l_rec_array_event := l_null_rec_array_event;
96263 --
96264 --------------------------------------
96265 -- 4262811 Initialze MPA Line Number
96266 --------------------------------------
96267 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
96268
96269 --
96270
96271 --
96272 OPEN header_cur;
96273 --
96274 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
96275 trace
96276 (p_msg => 'SQL - FETCH header_cur'
96277 ,p_level => C_LEVEL_STATEMENT
96278 ,p_module => l_log_module);
96279 END IF;
96280 --
96281 LOOP
96282 FETCH header_cur BULK COLLECT INTO
96283 l_array_entity_id
96284 , l_array_legal_entity_id
96285 , l_array_entity_code
96286 , l_array_transaction_num
96287 , l_array_event_id
96288 , l_array_class_code
96289 , l_array_event_type
96290 , l_array_event_number
96291 , l_array_event_date
96292 , l_array_transaction_date
96293 , l_array_reference_num_1
96294 , l_array_reference_num_2
96295 , l_array_reference_num_3
96296 , l_array_reference_num_4
96297 , l_array_reference_char_1
96298 , l_array_reference_char_2
96299 , l_array_reference_char_3
96300 , l_array_reference_char_4
96301 , l_array_reference_date_1
96302 , l_array_reference_date_2
96303 , l_array_reference_date_3
96304 , l_array_reference_date_4
96305 , l_array_event_created_by
96306 , l_array_budgetary_control_flag
96307 , l_array_source_2
96308 , l_array_source_22
96309 , l_array_source_33
96310 , l_array_source_75
96311 LIMIT l_rows;
96312 --
96313 IF (C_LEVEL_EVENT >= g_log_level) THEN
96314 trace
96315 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
96316 ,p_level => C_LEVEL_EVENT
96317 ,p_module => l_log_module);
96318 END IF;
96319 --
96320 EXIT WHEN l_array_entity_id.COUNT = 0;
96321
96322 -- initialize arrays
96323 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
96324 XLA_AE_LINES_PKG.g_rec_lines := NULL;
96325
96326 --
96327 -- Bug 4458708
96328 --
96329 XLA_AE_LINES_PKG.g_LineNumber := 0;
96330
96331
96332 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
96333 g_last_hdr_idx := l_array_event_id.LAST;
96334 --
96335 -- loop for the headers. Each iteration is for each header extract row
96336 -- fetched in header cursor
96337 --
96338 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
96339
96340 --
96341 -- set event info as cache for other routines to refer event attributes
96342 --
96343 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
96344 (p_application_id => p_application_id
96345 ,p_primary_ledger_id => p_primary_ledger_id
96346 ,p_base_ledger_id => p_base_ledger_id
96347 ,p_target_ledger_id => p_target_ledger_id
96348 ,p_entity_id => l_array_entity_id(hdr_idx)
96349 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
96350 ,p_entity_code => l_array_entity_code(hdr_idx)
96351 ,p_transaction_num => l_array_transaction_num(hdr_idx)
96352 ,p_event_id => l_array_event_id(hdr_idx)
96353 ,p_event_class_code => l_array_class_code(hdr_idx)
96354 ,p_event_type_code => l_array_event_type(hdr_idx)
96355 ,p_event_number => l_array_event_number(hdr_idx)
96356 ,p_event_date => l_array_event_date(hdr_idx)
96357 ,p_transaction_date => l_array_transaction_date(hdr_idx)
96358 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
96359 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
96360 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
96361 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
96365 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
96362 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
96363 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
96364 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
96366 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
96367 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
96368 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
96369 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
96370 ,p_event_created_by => l_array_event_created_by(hdr_idx)
96371 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
96372
96373 --
96374 -- set the status of entry to C_VALID (0)
96375 --
96376 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
96377
96378 --
96379 -- initialize a row for ae header
96380 --
96381 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
96382
96383 l_event_id := l_array_event_id(hdr_idx);
96384
96385 --
96386 -- storing the hdr_idx for event. May be used by line cursor.
96387 --
96388 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
96389
96390 --
96391 -- store sources from header extract. This can be improved to
96392 -- store only those sources from header extract that may be used in lines
96393 --
96394
96395 g_array_event(l_event_id).array_value_num('source_2') := l_array_source_2(hdr_idx);
96396 g_array_event(l_event_id).array_value_char('source_22') := l_array_source_22(hdr_idx);
96397 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
96398 g_array_event(l_event_id).array_value_date('source_75') := l_array_source_75(hdr_idx);
96399
96400 --
96401 -- initilaize the status of ae headers for diffrent balance types
96402 -- the status is initialised to C_NOT_CREATED (2)
96403 --
96404 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
96405 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
96406 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
96407
96408 --
96409 -- call api to validate and store accounting attributes for header
96410 --
96411
96412 ------------------------------------------------------------
96413 -- Accrual Reversal : to get date for Standard Source (NONE)
96414 ------------------------------------------------------------
96415 l_acc_rev_gl_date_source := NULL;
96416
96417 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
96418 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_75');
96419
96420
96421 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
96422
96423 XLA_AE_HEADER_PKG.SetJeCategoryName;
96424
96425 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
96426 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
96427 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
96428 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
96429 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
96430
96431
96432 -- No header level analytical criteria
96433
96434 --
96435 --accounting attribute enhancement, bug 3612931
96436 --
96437 l_trx_reversal_source := SUBSTR(NULL, 1,30);
96438
96439 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
96440 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
96441
96442 xla_accounting_err_pkg.build_message
96443 (p_appli_s_name => 'XLA'
96444 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
96445 ,p_token_1 => 'ACCT_ATTR_NAME'
96446 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
96447 ,p_token_2 => 'PRODUCT_NAME'
96448 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
96449 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
96450 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
96451 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
96452
96453 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
96454 --
96455 -- following sets the accounting attributes needed to reverse
96456 -- accounting for a distributeion
96457 --
96458 xla_ae_lines_pkg.SetTrxReversalAttrs
96459 (p_event_id => l_event_id
96460 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
96461 ,p_trx_reversal_source => l_trx_reversal_source);
96462
96463 END IF;
96464
96465
96466 ----------------------------------------------------------------
96467 -- 4262811 - update the header statuses to invalid in need be
96468 ----------------------------------------------------------------
96469 --
96470 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
96471
96472
96473 -----------------------------------------------
96474 -- No accrual reversal for the event class/type
96475 -----------------------------------------------
96476 ----------------------------------------------------------------
96477
96478 --
96479 -- this ends the header loop iteration for one bulk fetch
96480 --
96481 END LOOP;
96482
96483 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
96484 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
96485
96486 --
96487 -- insert dummy rows into lines gt table that were created due to
96488 -- transaction reversals
96492 END IF;
96489 --
96490 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
96491 l_result := XLA_AE_LINES_PKG.InsertLines;
96493
96494 --
96495 -- reset the temp_line_num for each set of events fetched from header
96496 -- cursor rather than doing it for each new event in line cursor
96497 -- Bug 3939231
96498 --
96499 xla_ae_lines_pkg.g_temp_line_num := 0;
96500
96501
96502
96503 --
96504 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
96505 --
96506 --
96507 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
96508
96509 trace
96510 (p_msg => 'SQL - FETCH line_cur'
96511 ,p_level => C_LEVEL_STATEMENT
96512 ,p_module => l_log_module);
96513
96514 END IF;
96515 --
96516 --
96517 LOOP
96518 --
96519 FETCH line_cur BULK COLLECT INTO
96520 l_array_entity_id
96521 , l_array_legal_entity_id
96522 , l_array_entity_code
96523 , l_array_transaction_num
96524 , l_array_event_id
96525 , l_array_class_code
96526 , l_array_event_type
96527 , l_array_event_number
96528 , l_array_event_date
96529 , l_array_transaction_date
96530 , l_array_reference_num_1
96531 , l_array_reference_num_2
96532 , l_array_reference_num_3
96533 , l_array_reference_num_4
96534 , l_array_reference_char_1
96535 , l_array_reference_char_2
96536 , l_array_reference_char_3
96537 , l_array_reference_char_4
96538 , l_array_reference_date_1
96539 , l_array_reference_date_2
96540 , l_array_reference_date_3
96541 , l_array_reference_date_4
96542 , l_array_event_created_by
96543 , l_array_budgetary_control_flag
96544 , l_array_extract_line_num
96545 , l_array_source_4
96546 , l_array_source_5
96547 , l_array_source_6
96548 , l_array_source_7
96549 , l_array_source_8
96550 , l_array_source_23
96551 , l_array_source_24
96552 , l_array_source_25
96553 , l_array_source_26
96554 , l_array_source_27
96555 , l_array_source_28
96556 , l_array_source_29
96557 , l_array_source_30
96558 , l_array_source_31
96559 , l_array_source_32
96560 , l_array_source_34
96561 , l_array_source_35
96562 , l_array_source_35_meaning
96563 , l_array_source_36
96564 LIMIT l_rows;
96565
96566 --
96567 IF (C_LEVEL_EVENT >= g_log_level) THEN
96568 trace
96569 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
96570 ,p_level => C_LEVEL_EVENT
96571 ,p_module => l_log_module);
96572 END IF;
96573 --
96574 EXIT WHEN l_array_entity_id.count = 0;
96575
96576 XLA_AE_LINES_PKG.g_rec_lines := null;
96577
96578 --
96579 -- Bug 4458708
96580 --
96581 XLA_AE_LINES_PKG.g_LineNumber := 0;
96582 --
96583 --
96584
96585 FOR Idx IN 1..l_array_event_id.count LOOP
96586 --
96587 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
96588 --
96589 l_event_id := l_array_event_id(idx); -- 5648433
96590
96591 --
96592 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
96593 --
96594
96595 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
96596 (g_array_event(l_event_id).array_value_num('header_index'))
96597 ,'N'
96598 ) <> 'Y'
96599 THEN
96600 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
96601 trace
96602 (p_msg => 'Trancaction revesal option is not Y '
96603 ,p_level => C_LEVEL_STATEMENT
96604 ,p_module => l_log_module);
96605 END IF;
96606
96607 --
96608 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
96609 --
96610 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
96611 --
96612 -- set event info as cache for other routines to refer event attributes
96613 --
96614
96615 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
96616 l_previous_event_id := l_event_id;
96617
96618 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
96619 (p_application_id => p_application_id
96620 ,p_primary_ledger_id => p_primary_ledger_id
96621 ,p_base_ledger_id => p_base_ledger_id
96622 ,p_target_ledger_id => p_target_ledger_id
96623 ,p_entity_id => l_array_entity_id(Idx)
96624 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
96625 ,p_entity_code => l_array_entity_code(Idx)
96626 ,p_transaction_num => l_array_transaction_num(Idx)
96627 ,p_event_id => l_array_event_id(Idx)
96628 ,p_event_class_code => l_array_class_code(Idx)
96629 ,p_event_type_code => l_array_event_type(Idx)
96630 ,p_event_number => l_array_event_number(Idx)
96631 ,p_event_date => l_array_event_date(Idx)
96632 ,p_transaction_date => l_array_transaction_date(Idx)
96633 ,p_reference_num_1 => l_array_reference_num_1(Idx)
96634 ,p_reference_num_2 => l_array_reference_num_2(Idx)
96635 ,p_reference_num_3 => l_array_reference_num_3(Idx)
96636 ,p_reference_num_4 => l_array_reference_num_4(Idx)
96637 ,p_reference_char_1 => l_array_reference_char_1(Idx)
96638 ,p_reference_char_2 => l_array_reference_char_2(Idx)
96639 ,p_reference_char_3 => l_array_reference_char_3(Idx)
96640 ,p_reference_char_4 => l_array_reference_char_4(Idx)
96644 ,p_reference_date_4 => l_array_reference_date_4(Idx)
96641 ,p_reference_date_1 => l_array_reference_date_1(Idx)
96642 ,p_reference_date_2 => l_array_reference_date_2(Idx)
96643 ,p_reference_date_3 => l_array_reference_date_3(Idx)
96645 ,p_event_created_by => l_array_event_created_by(Idx)
96646 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
96647 --
96648 END IF;
96649
96650
96651
96652 --
96653 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
96654
96655 l_acct_reversal_source := SUBSTR(l_array_source_23(Idx), 1,30);
96656
96657 IF l_continue_with_lines THEN
96658 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
96659 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
96660
96661 xla_accounting_err_pkg.build_message
96662 (p_appli_s_name => 'XLA'
96663 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
96664 ,p_token_1 => 'LINE_NUMBER'
96665 ,p_value_1 => l_array_extract_line_num(Idx)
96666 ,p_token_2 => 'PRODUCT_NAME'
96667 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
96668 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
96669 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
96670 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
96671
96672 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
96673 --
96674 -- following sets the accounting attributes needed to reverse
96675 -- accounting for a distributeion
96676 --
96677
96678 --
96679 -- 5217187
96680 --
96681 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
96682 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
96683 g_array_event(l_event_id).array_value_num('header_index'));
96684 --
96685 --
96686
96687 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
96688 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_23(Idx);
96689 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
96690 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_24(Idx);
96691 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
96692 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_7(Idx));
96693 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
96694 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_25(Idx);
96695 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
96696 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_26(Idx);
96697 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
96698 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_27(Idx);
96699 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
96700 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_28(Idx);
96701 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
96702 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_29(Idx);
96703 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
96704 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_30(Idx);
96705 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
96706 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_31(Idx);
96707 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
96708 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_4(Idx));
96709 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
96710 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_25(Idx);
96711 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
96712 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_26(Idx);
96713 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
96714 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_27(Idx);
96715 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
96716 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_28(Idx);
96717 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
96718 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_29(Idx);
96719 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
96720 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_30(Idx);
96721 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
96722 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_32(Idx);
96723 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
96724 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_33');
96725 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
96726 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_34(Idx);
96727 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
96728 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_35(Idx);
96729 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
96730 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_33');
96731 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
96732 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_36(Idx);
96733 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
96737 xla_ae_lines_pkg.SetAcctReversalAttrs
96734 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_35(Idx);
96735
96736
96738 (p_event_id => l_event_id
96739 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
96740 ,p_calculate_acctd_flag => l_calculate_acctd_flag
96741 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
96742 END IF;
96743
96744 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
96745 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
96746
96747 --
96748 AcctLineType_30 (
96749 p_application_id => p_application_id
96750 ,p_event_id => l_event_id
96751 ,p_calculate_acctd_flag => l_calculate_acctd_flag
96752 ,p_calculate_g_l_flag => l_calculate_g_l_flag
96753 ,p_actual_flag => l_actual_flag
96754 ,p_balance_type_code => l_balance_type_code
96755 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
96756
96757 , p_source_4 => l_array_source_4(Idx)
96758 , p_source_5 => l_array_source_5(Idx)
96759 , p_source_6 => l_array_source_6(Idx)
96760 , p_source_7 => l_array_source_7(Idx)
96761 , p_source_22 => g_array_event(l_event_id).array_value_char('source_22')
96762 , p_source_23 => l_array_source_23(Idx)
96763 , p_source_24 => l_array_source_24(Idx)
96764 , p_source_25 => l_array_source_25(Idx)
96765 , p_source_26 => l_array_source_26(Idx)
96766 , p_source_27 => l_array_source_27(Idx)
96767 , p_source_28 => l_array_source_28(Idx)
96768 , p_source_29 => l_array_source_29(Idx)
96769 , p_source_30 => l_array_source_30(Idx)
96770 , p_source_31 => l_array_source_31(Idx)
96771 , p_source_32 => l_array_source_32(Idx)
96772 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
96773 , p_source_34 => l_array_source_34(Idx)
96774 , p_source_35 => l_array_source_35(Idx)
96775 , p_source_35_meaning => l_array_source_35_meaning(Idx)
96776 , p_source_36 => l_array_source_36(Idx)
96777 );
96778 If(l_balance_type_code = 'A') THEN
96779 l_actual_gain_loss_ref := l_gain_or_loss_ref;
96780 END IF;
96781
96782 --
96783
96784
96785 --
96786 AcctLineType_31 (
96787 p_application_id => p_application_id
96788 ,p_event_id => l_event_id
96789 ,p_calculate_acctd_flag => l_calculate_acctd_flag
96790 ,p_calculate_g_l_flag => l_calculate_g_l_flag
96791 ,p_actual_flag => l_actual_flag
96792 ,p_balance_type_code => l_balance_type_code
96793 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
96794
96795 , p_source_4 => l_array_source_4(Idx)
96796 , p_source_5 => l_array_source_5(Idx)
96797 , p_source_7 => l_array_source_7(Idx)
96798 , p_source_8 => l_array_source_8(Idx)
96799 , p_source_22 => g_array_event(l_event_id).array_value_char('source_22')
96800 , p_source_23 => l_array_source_23(Idx)
96801 , p_source_24 => l_array_source_24(Idx)
96802 , p_source_25 => l_array_source_25(Idx)
96803 , p_source_26 => l_array_source_26(Idx)
96804 , p_source_27 => l_array_source_27(Idx)
96805 , p_source_28 => l_array_source_28(Idx)
96806 , p_source_29 => l_array_source_29(Idx)
96807 , p_source_30 => l_array_source_30(Idx)
96808 , p_source_31 => l_array_source_31(Idx)
96809 , p_source_32 => l_array_source_32(Idx)
96810 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
96811 , p_source_34 => l_array_source_34(Idx)
96812 , p_source_35 => l_array_source_35(Idx)
96813 , p_source_35_meaning => l_array_source_35_meaning(Idx)
96814 , p_source_36 => l_array_source_36(Idx)
96815 );
96816 If(l_balance_type_code = 'A') THEN
96817 l_actual_gain_loss_ref := l_gain_or_loss_ref;
96818 END IF;
96819
96820 --
96821
96822
96823 --
96824 AcctLineType_56 (
96825 p_application_id => p_application_id
96826 ,p_event_id => l_event_id
96827 ,p_calculate_acctd_flag => l_calculate_acctd_flag
96828 ,p_calculate_g_l_flag => l_calculate_g_l_flag
96829 ,p_actual_flag => l_actual_flag
96830 ,p_balance_type_code => l_balance_type_code
96831 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
96832
96833 , p_source_2 => g_array_event(l_event_id).array_value_num('source_2')
96834 , p_source_4 => l_array_source_4(Idx)
96835 , p_source_5 => l_array_source_5(Idx)
96836 , p_source_6 => l_array_source_6(Idx)
96837 , p_source_7 => l_array_source_7(Idx)
96838 , p_source_22 => g_array_event(l_event_id).array_value_char('source_22')
96839 , p_source_23 => l_array_source_23(Idx)
96840 , p_source_24 => l_array_source_24(Idx)
96841 , p_source_25 => l_array_source_25(Idx)
96842 , p_source_26 => l_array_source_26(Idx)
96843 , p_source_27 => l_array_source_27(Idx)
96844 , p_source_28 => l_array_source_28(Idx)
96845 , p_source_29 => l_array_source_29(Idx)
96846 , p_source_30 => l_array_source_30(Idx)
96847 , p_source_31 => l_array_source_31(Idx)
96848 , p_source_32 => l_array_source_32(Idx)
96849 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
96850 , p_source_34 => l_array_source_34(Idx)
96851 , p_source_35 => l_array_source_35(Idx)
96852 , p_source_35_meaning => l_array_source_35_meaning(Idx)
96853 , p_source_36 => l_array_source_36(Idx)
96854 );
96855 If(l_balance_type_code = 'A') THEN
96856 l_actual_gain_loss_ref := l_gain_or_loss_ref;
96857 END IF;
96858
96859 --
96860
96861
96862 --
96863 AcctLineType_58 (
96864 p_application_id => p_application_id
96865 ,p_event_id => l_event_id
96866 ,p_calculate_acctd_flag => l_calculate_acctd_flag
96867 ,p_calculate_g_l_flag => l_calculate_g_l_flag
96868 ,p_actual_flag => l_actual_flag
96869 ,p_balance_type_code => l_balance_type_code
96870 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
96871
96872 , p_source_4 => l_array_source_4(Idx)
96873 , p_source_5 => l_array_source_5(Idx)
96874 , p_source_7 => l_array_source_7(Idx)
96875 , p_source_8 => l_array_source_8(Idx)
96879 , p_source_25 => l_array_source_25(Idx)
96876 , p_source_22 => g_array_event(l_event_id).array_value_char('source_22')
96877 , p_source_23 => l_array_source_23(Idx)
96878 , p_source_24 => l_array_source_24(Idx)
96880 , p_source_26 => l_array_source_26(Idx)
96881 , p_source_27 => l_array_source_27(Idx)
96882 , p_source_28 => l_array_source_28(Idx)
96883 , p_source_29 => l_array_source_29(Idx)
96884 , p_source_30 => l_array_source_30(Idx)
96885 , p_source_31 => l_array_source_31(Idx)
96886 , p_source_32 => l_array_source_32(Idx)
96887 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
96888 , p_source_34 => l_array_source_34(Idx)
96889 , p_source_35 => l_array_source_35(Idx)
96890 , p_source_35_meaning => l_array_source_35_meaning(Idx)
96891 , p_source_36 => l_array_source_36(Idx)
96892 );
96893 If(l_balance_type_code = 'A') THEN
96894 l_actual_gain_loss_ref := l_gain_or_loss_ref;
96895 END IF;
96896
96897 --
96898
96899
96900 --
96901 AcctLineType_77 (
96902 p_application_id => p_application_id
96903 ,p_event_id => l_event_id
96904 ,p_calculate_acctd_flag => l_calculate_acctd_flag
96905 ,p_calculate_g_l_flag => l_calculate_g_l_flag
96906 ,p_actual_flag => l_actual_flag
96907 ,p_balance_type_code => l_balance_type_code
96908 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
96909
96910 , p_source_4 => l_array_source_4(Idx)
96911 , p_source_5 => l_array_source_5(Idx)
96912 , p_source_6 => l_array_source_6(Idx)
96913 , p_source_7 => l_array_source_7(Idx)
96914 , p_source_22 => g_array_event(l_event_id).array_value_char('source_22')
96915 , p_source_23 => l_array_source_23(Idx)
96916 , p_source_24 => l_array_source_24(Idx)
96917 , p_source_25 => l_array_source_25(Idx)
96918 , p_source_26 => l_array_source_26(Idx)
96919 , p_source_27 => l_array_source_27(Idx)
96920 , p_source_28 => l_array_source_28(Idx)
96921 , p_source_29 => l_array_source_29(Idx)
96922 , p_source_30 => l_array_source_30(Idx)
96923 , p_source_31 => l_array_source_31(Idx)
96924 , p_source_32 => l_array_source_32(Idx)
96925 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
96926 , p_source_34 => l_array_source_34(Idx)
96927 , p_source_35 => l_array_source_35(Idx)
96928 , p_source_35_meaning => l_array_source_35_meaning(Idx)
96929 , p_source_36 => l_array_source_36(Idx)
96930 );
96931 If(l_balance_type_code = 'A') THEN
96932 l_actual_gain_loss_ref := l_gain_or_loss_ref;
96933 END IF;
96934
96935 --
96936
96937
96938 --
96939 AcctLineType_78 (
96940 p_application_id => p_application_id
96941 ,p_event_id => l_event_id
96942 ,p_calculate_acctd_flag => l_calculate_acctd_flag
96943 ,p_calculate_g_l_flag => l_calculate_g_l_flag
96944 ,p_actual_flag => l_actual_flag
96945 ,p_balance_type_code => l_balance_type_code
96946 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
96947
96948 , p_source_4 => l_array_source_4(Idx)
96949 , p_source_5 => l_array_source_5(Idx)
96950 , p_source_7 => l_array_source_7(Idx)
96951 , p_source_8 => l_array_source_8(Idx)
96952 , p_source_22 => g_array_event(l_event_id).array_value_char('source_22')
96953 , p_source_23 => l_array_source_23(Idx)
96954 , p_source_24 => l_array_source_24(Idx)
96955 , p_source_25 => l_array_source_25(Idx)
96956 , p_source_26 => l_array_source_26(Idx)
96957 , p_source_27 => l_array_source_27(Idx)
96958 , p_source_28 => l_array_source_28(Idx)
96959 , p_source_29 => l_array_source_29(Idx)
96960 , p_source_30 => l_array_source_30(Idx)
96961 , p_source_31 => l_array_source_31(Idx)
96962 , p_source_32 => l_array_source_32(Idx)
96963 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
96964 , p_source_34 => l_array_source_34(Idx)
96965 , p_source_35 => l_array_source_35(Idx)
96966 , p_source_35_meaning => l_array_source_35_meaning(Idx)
96967 , p_source_36 => l_array_source_36(Idx)
96968 );
96969 If(l_balance_type_code = 'A') THEN
96970 l_actual_gain_loss_ref := l_gain_or_loss_ref;
96971 END IF;
96972
96973 --
96974
96975
96976 --
96977 AcctLineType_83 (
96978 p_application_id => p_application_id
96979 ,p_event_id => l_event_id
96980 ,p_calculate_acctd_flag => l_calculate_acctd_flag
96981 ,p_calculate_g_l_flag => l_calculate_g_l_flag
96982 ,p_actual_flag => l_actual_flag
96983 ,p_balance_type_code => l_balance_type_code
96984 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
96985
96986 , p_source_2 => g_array_event(l_event_id).array_value_num('source_2')
96987 , p_source_4 => l_array_source_4(Idx)
96988 , p_source_5 => l_array_source_5(Idx)
96989 , p_source_6 => l_array_source_6(Idx)
96990 , p_source_7 => l_array_source_7(Idx)
96991 , p_source_22 => g_array_event(l_event_id).array_value_char('source_22')
96992 , p_source_23 => l_array_source_23(Idx)
96993 , p_source_24 => l_array_source_24(Idx)
96994 , p_source_25 => l_array_source_25(Idx)
96995 , p_source_26 => l_array_source_26(Idx)
96996 , p_source_27 => l_array_source_27(Idx)
96997 , p_source_28 => l_array_source_28(Idx)
96998 , p_source_29 => l_array_source_29(Idx)
96999 , p_source_30 => l_array_source_30(Idx)
97000 , p_source_31 => l_array_source_31(Idx)
97001 , p_source_32 => l_array_source_32(Idx)
97002 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
97003 , p_source_34 => l_array_source_34(Idx)
97004 , p_source_35 => l_array_source_35(Idx)
97005 , p_source_35_meaning => l_array_source_35_meaning(Idx)
97006 , p_source_36 => l_array_source_36(Idx)
97007 );
97008 If(l_balance_type_code = 'A') THEN
97009 l_actual_gain_loss_ref := l_gain_or_loss_ref;
97010 END IF;
97011
97012 --
97013
97014
97015 --
97016 AcctLineType_96 (
97017 p_application_id => p_application_id
97018 ,p_event_id => l_event_id
97019 ,p_calculate_acctd_flag => l_calculate_acctd_flag
97023 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
97020 ,p_calculate_g_l_flag => l_calculate_g_l_flag
97021 ,p_actual_flag => l_actual_flag
97022 ,p_balance_type_code => l_balance_type_code
97024
97025 , p_source_4 => l_array_source_4(Idx)
97026 , p_source_5 => l_array_source_5(Idx)
97027 , p_source_7 => l_array_source_7(Idx)
97028 , p_source_8 => l_array_source_8(Idx)
97029 , p_source_22 => g_array_event(l_event_id).array_value_char('source_22')
97030 , p_source_23 => l_array_source_23(Idx)
97031 , p_source_24 => l_array_source_24(Idx)
97032 , p_source_25 => l_array_source_25(Idx)
97033 , p_source_26 => l_array_source_26(Idx)
97034 , p_source_27 => l_array_source_27(Idx)
97035 , p_source_28 => l_array_source_28(Idx)
97036 , p_source_29 => l_array_source_29(Idx)
97037 , p_source_30 => l_array_source_30(Idx)
97038 , p_source_31 => l_array_source_31(Idx)
97039 , p_source_32 => l_array_source_32(Idx)
97040 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
97041 , p_source_34 => l_array_source_34(Idx)
97042 , p_source_35 => l_array_source_35(Idx)
97043 , p_source_35_meaning => l_array_source_35_meaning(Idx)
97044 , p_source_36 => l_array_source_36(Idx)
97045 );
97046 If(l_balance_type_code = 'A') THEN
97047 l_actual_gain_loss_ref := l_gain_or_loss_ref;
97048 END IF;
97049
97050 --
97051
97052 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
97053 -- or secondary ledger that has different currency with primary
97054 -- or alc that is calculated by sla
97055 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
97056 (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'))
97057
97058 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
97059 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
97060 AND (l_actual_flag = 'A')) THEN
97061 XLA_AE_LINES_PKG.CreateGainOrLossLines(
97062 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
97063 ,p_application_id => p_application_id
97064 ,p_amb_context_code => 'DEFAULT'
97065 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
97066 ,p_event_class_code => C_EVENT_CLASS_CODE
97067 ,p_event_type_code => C_EVENT_TYPE_CODE
97068
97069 ,p_gain_ccid => -1
97070 ,p_loss_ccid => -1
97071
97072 ,p_actual_flag => l_actual_flag
97073 ,p_enc_flag => null
97074 ,p_actual_g_l_ref => l_actual_gain_loss_ref
97075 ,p_enc_g_l_ref => null
97076 );
97077 END IF;
97078 END IF;
97079 END IF;
97080
97081 ELSE
97082 --
97083 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
97084 --
97085 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
97086 trace
97087 (p_msg => 'Trancaction revesal option is Y'
97088 ,p_level => C_LEVEL_STATEMENT
97089 ,p_module => l_log_module);
97090 END IF;
97091 END IF;
97092
97093 END LOOP;
97094 l_result := XLA_AE_LINES_PKG.InsertLines ;
97095 end loop;
97096 close line_cur;
97097
97098
97099 --
97100 -- insert headers into xla_ae_headers_gt table
97101 --
97102 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
97103
97104 -- insert into errors table here.
97105
97106 END LOOP;
97107
97108 --
97109 -- 4865292
97110 --
97111 -- Compare g_hdr_extract_count with event count in
97112 -- CreateHeadersAndLines.
97113 --
97114 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
97115
97116 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
97117 trace (p_msg => '# rows extracted from header extract objects '
97118 || ' (running total): '
97119 || g_hdr_extract_count
97120 ,p_level => C_LEVEL_STATEMENT
97121 ,p_module => l_log_module);
97122 END IF;
97123
97124 CLOSE header_cur;
97125 --
97126
97127 --
97128 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
97129 trace
97130 (p_msg => 'END of EventClass_163'
97131 ,p_level => C_LEVEL_PROCEDURE
97132 ,p_module => l_log_module);
97133 END IF;
97134 --
97135 RETURN l_result;
97136 EXCEPTION
97137 WHEN xla_exceptions_pkg.application_exception THEN
97138
97139 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
97140
97141
97142 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
97143
97144 RAISE;
97145 WHEN OTHERS THEN
97146 xla_exceptions_pkg.raise_message
97147 (p_location => 'XLA_00275_AAD_S_000015_PKG.EventClass_163');
97148 END EventClass_163;
97149 --
97150
97151 ---------------------------------------
97152 --
97153 -- PRIVATE PROCEDURE
97154 -- insert_sources_164
97155 --
97156 ----------------------------------------
97157 --
97158 PROCEDURE insert_sources_164(
97159 p_target_ledger_id IN NUMBER
97160 , p_language IN VARCHAR2
97161 , p_sla_ledger_id IN NUMBER
97162 , p_pad_start_date IN DATE
97163 , p_pad_end_date IN DATE
97164 )
97165 IS
97166
97167 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'SUPPLIER_COST_ALL';
97168 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'SUPPLIER_COST';
97169 p_apps_owner VARCHAR2(30);
97173 l_log_module := C_DEFAULT_MODULE||'.insert_sources_164';
97170 l_log_module VARCHAR2(240);
97171 BEGIN
97172 IF g_log_enabled THEN
97174 END IF;
97175 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
97176
97177 trace
97178 (p_msg => 'BEGIN of insert_sources_164'
97179 ,p_level => C_LEVEL_PROCEDURE
97180 ,p_module => l_log_module);
97181
97182 END IF;
97183
97184 -- select APPS owner
97185 SELECT oracle_username
97186 INTO p_apps_owner
97187 FROM fnd_oracle_userid
97188 WHERE read_only_flag = 'U'
97189 ;
97190
97191 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
97192 trace
97193 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
97194 ' - p_language = '||p_language||
97195 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
97196 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
97197 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
97198 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
97199 ,p_level => C_LEVEL_STATEMENT
97200 ,p_module => l_log_module);
97201 END IF;
97202
97203
97204 --
97205 INSERT INTO xla_diag_sources --hdr2
97206 (
97207 event_id
97208 , ledger_id
97209 , sla_ledger_id
97210 , description_language
97211 , object_name
97212 , object_type_code
97213 , line_number
97214 , source_application_id
97215 , source_type_code
97216 , source_code
97217 , source_value
97218 , source_meaning
97219 , created_by
97220 , creation_date
97221 , last_update_date
97222 , last_updated_by
97223 , last_update_login
97224 , program_update_date
97225 , program_application_id
97226 , program_id
97227 , request_id
97228 )
97229 SELECT
97230 event_id
97231 , p_target_ledger_id
97232 , p_sla_ledger_id
97233 , p_language
97234 , object_name
97235 , object_type_code
97236 , line_number
97237 , source_application_id
97238 , source_type_code
97239 , source_code
97240 , SUBSTR(source_value ,1,1996)
97241 , SUBSTR(source_meaning ,1,200)
97242 , xla_environment_pkg.g_Usr_Id
97243 , TRUNC(SYSDATE)
97244 , TRUNC(SYSDATE)
97245 , xla_environment_pkg.g_Usr_Id
97246 , xla_environment_pkg.g_Login_Id
97247 , TRUNC(SYSDATE)
97248 , xla_environment_pkg.g_Prog_Appl_Id
97249 , xla_environment_pkg.g_Prog_Id
97250 , xla_environment_pkg.g_Req_Id
97251 FROM (
97252 SELECT xet.event_id event_id
97253 , 0 line_number
97254 , CASE r
97255 WHEN 1 THEN 'GMS_XLA_AWARD_REF_V'
97256 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
97257 WHEN 3 THEN 'PA_XLA_EXP_HEADER_V'
97258 WHEN 4 THEN 'PA_XLA_EXP_HEADER_V'
97259
97260 ELSE null
97261 END object_name
97262 , CASE r
97263 WHEN 1 THEN 'HEADER'
97264 WHEN 2 THEN 'HEADER'
97265 WHEN 3 THEN 'HEADER'
97266 WHEN 4 THEN 'HEADER'
97267
97268 ELSE null
97269 END object_type_code
97270 , CASE r
97271 WHEN 1 THEN '275'
97272 WHEN 2 THEN '275'
97273 WHEN 3 THEN '275'
97274 WHEN 4 THEN '275'
97275
97276 ELSE null
97277 END source_application_id
97278 , 'S' source_type_code
97279 , CASE r
97280 WHEN 1 THEN 'PO_DISTRIBUTION_ID'
97281 WHEN 2 THEN 'EXCHANGE_RATE_VARIANCE_FLAG'
97282 WHEN 3 THEN 'EXPENDITURE_ITEM_ID'
97283 WHEN 4 THEN 'GL_DATE'
97284
97285 ELSE null
97286 END source_code
97287 , CASE r
97288 WHEN 1 THEN TO_CHAR(h1.PO_DISTRIBUTION_ID)
97289 WHEN 2 THEN TO_CHAR(h3.EXCHANGE_RATE_VARIANCE_FLAG)
97290 WHEN 3 THEN TO_CHAR(h3.EXPENDITURE_ITEM_ID)
97291 WHEN 4 THEN TO_CHAR(h3.GL_DATE)
97292
97293 ELSE null
97294 END source_value
97295 , CASE r
97296 WHEN 2 THEN XLA_00275_AAD_S_000015_PKG.GetMeaning(
97297 103371
97298 ,TO_CHAR(h3.EXCHANGE_RATE_VARIANCE_FLAG)
97299 ,'EXCHANGE_RATE_VARIANCE_FLAG'
97300 ,'S'
97301 ,275)
97302
97303 ELSE null
97304 END source_meaning
97305 FROM xla_events_gt xet
97306 , GMS_XLA_AWARD_REF_V h1
97307 , PA_XLA_EXP_HEADER_V h3
97308 ,(select rownum r from all_objects where rownum <= 4 and owner = p_apps_owner)
97309 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
97310 AND xet.event_class_code = C_EVENT_CLASS_CODE
97311 AND h3.event_id = xet.event_id
97312 AND h1.expenditure_item_id (+) =h3.expenditure_item_id and h1.document_type (+) = 'exp'
97313 )
97314 ;
97315 --
97316 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
97317
97318 trace
97319 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
97323 END IF;
97320 ,p_level => C_LEVEL_STATEMENT
97321 ,p_module => l_log_module);
97322
97324 --
97325
97326
97327
97328 --
97329 INSERT INTO xla_diag_sources --line2
97330 (
97331 event_id
97332 , ledger_id
97333 , sla_ledger_id
97334 , description_language
97335 , object_name
97336 , object_type_code
97337 , line_number
97338 , source_application_id
97339 , source_type_code
97340 , source_code
97341 , source_value
97342 , source_meaning
97343 , created_by
97344 , creation_date
97345 , last_update_date
97346 , last_updated_by
97347 , last_update_login
97348 , program_update_date
97349 , program_application_id
97350 , program_id
97351 , request_id
97352 )
97353 SELECT event_id
97354 , p_target_ledger_id
97355 , p_sla_ledger_id
97356 , p_language
97357 , object_name
97358 , object_type_code
97359 , line_number
97360 , source_application_id
97361 , source_type_code
97362 , source_code
97363 , SUBSTR(source_value,1,1996)
97364 , SUBSTR(source_meaning ,1,200)
97365 , xla_environment_pkg.g_Usr_Id
97366 , TRUNC(SYSDATE)
97367 , TRUNC(SYSDATE)
97368 , xla_environment_pkg.g_Usr_Id
97369 , xla_environment_pkg.g_Login_Id
97370 , TRUNC(SYSDATE)
97371 , xla_environment_pkg.g_Prog_Appl_Id
97372 , xla_environment_pkg.g_Prog_Id
97373 , xla_environment_pkg.g_Req_Id
97374 FROM (
97375 SELECT xet.event_id event_id
97376 , l2.line_number line_number
97377 , CASE r
97378 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
97379 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
97380 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
97381 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
97382 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
97383 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
97384 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
97385 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
97386 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
97387 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
97388 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
97389 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
97390 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
97391 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
97392 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
97393 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
97394 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
97395 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
97396
97397 ELSE null
97398 END object_name
97399 , CASE r
97400 WHEN 1 THEN 'LINE'
97401 WHEN 2 THEN 'LINE'
97402 WHEN 3 THEN 'LINE'
97403 WHEN 4 THEN 'LINE'
97404 WHEN 5 THEN 'LINE'
97405 WHEN 6 THEN 'LINE'
97406 WHEN 7 THEN 'LINE'
97407 WHEN 8 THEN 'LINE'
97408 WHEN 9 THEN 'LINE'
97409 WHEN 10 THEN 'LINE'
97410 WHEN 11 THEN 'LINE'
97411 WHEN 12 THEN 'LINE'
97412 WHEN 13 THEN 'LINE'
97413 WHEN 14 THEN 'LINE'
97414 WHEN 15 THEN 'LINE'
97415 WHEN 16 THEN 'LINE'
97416 WHEN 17 THEN 'LINE'
97417 WHEN 18 THEN 'LINE'
97418
97419 ELSE null
97420 END object_type_code
97421 , CASE r
97422 WHEN 1 THEN '275'
97423 WHEN 2 THEN '275'
97424 WHEN 3 THEN '275'
97425 WHEN 4 THEN '275'
97426 WHEN 5 THEN '275'
97427 WHEN 6 THEN '275'
97428 WHEN 7 THEN '275'
97429 WHEN 8 THEN '275'
97430 WHEN 9 THEN '275'
97431 WHEN 10 THEN '275'
97432 WHEN 11 THEN '275'
97433 WHEN 12 THEN '275'
97434 WHEN 13 THEN '275'
97435 WHEN 14 THEN '275'
97436 WHEN 15 THEN '275'
97437 WHEN 16 THEN '275'
97438 WHEN 17 THEN '275'
97439 WHEN 18 THEN '275'
97440
97441 ELSE null
97442 END source_application_id
97443 , 'S' source_type_code
97444 , CASE r
97445 WHEN 1 THEN 'COST_CCID'
97446 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
97447 WHEN 3 THEN 'ADJ_COST_CCID'
97448 WHEN 4 THEN 'COST_CLEARING_CCID'
97449 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
97450 WHEN 6 THEN 'REVERSING_LINE_FLAG'
97451 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
97452 WHEN 8 THEN 'ENTERED_RAW_COST'
97453 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
97454 WHEN 10 THEN 'ACCT_RAW_COST'
97455 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
97456 WHEN 12 THEN 'EXCHANGE_RATE'
97457 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
97458 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
97459 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
97460 WHEN 16 THEN 'LINE_NUMBER'
97461 WHEN 17 THEN 'LINE_TYPE'
97462 WHEN 18 THEN 'LINE_NUM_REVERSED'
97463
97464 ELSE null
97468 WHEN 2 THEN TO_CHAR(l2.ALLOW_OVERRIDE_CCID_FLAG)
97465 END source_code
97466 , CASE r
97467 WHEN 1 THEN TO_CHAR(l2.COST_CCID)
97469 WHEN 3 THEN TO_CHAR(l2.ADJ_COST_CCID)
97470 WHEN 4 THEN TO_CHAR(l2.COST_CLEARING_CCID)
97471 WHEN 5 THEN TO_CHAR(l2.ADJ_COST_CLEARING_CCID)
97472 WHEN 6 THEN TO_CHAR(l2.REVERSING_LINE_FLAG)
97473 WHEN 7 THEN TO_CHAR(l2.ACTUAL_UPG_CR_ACCT_CLASS)
97474 WHEN 8 THEN TO_CHAR(l2.ENTERED_RAW_COST)
97475 WHEN 9 THEN TO_CHAR(l2.ENTERED_CURRENCY_CODE)
97476 WHEN 10 THEN TO_CHAR(l2.ACCT_RAW_COST)
97477 WHEN 11 THEN TO_CHAR(l2.EXCHANGE_RATE_DATE)
97478 WHEN 12 THEN TO_CHAR(l2.EXCHANGE_RATE)
97479 WHEN 13 THEN TO_CHAR(l2.EXCHANGE_RATE_TYPE)
97480 WHEN 14 THEN TO_CHAR(l2.ACTUAL_UPG_DR_ACCT_CLASS)
97481 WHEN 15 THEN TO_CHAR(l2.USE_ACT_UPG_ATTRIB_FLAG)
97482 WHEN 16 THEN TO_CHAR(l2.LINE_NUMBER)
97483 WHEN 17 THEN TO_CHAR(l2.LINE_TYPE)
97484 WHEN 18 THEN TO_CHAR(l2.LINE_NUM_REVERSED)
97485
97486 ELSE null
97487 END source_value
97488 , CASE r
97489 WHEN 2 THEN XLA_00275_AAD_S_000015_PKG.GetMeaning(
97490 103371
97491 ,TO_CHAR(l2.ALLOW_OVERRIDE_CCID_FLAG)
97492 ,'ALLOW_OVERRIDE_CCID_FLAG'
97493 ,'S'
97494 ,275)
97495 WHEN 17 THEN fvl35.meaning
97496
97497 ELSE null
97498 END source_meaning
97499 FROM xla_events_gt xet
97500 , PA_XLA_CDL_LINES_V l2
97501 , fnd_lookup_values fvl35
97502 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
97503 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
97504 AND xet.event_class_code = C_EVENT_CLASS_CODE
97505 AND l2.event_id = xet.event_id
97506 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
97507 AND fvl35.lookup_code(+) = l2.LINE_TYPE
97508 AND fvl35.view_application_id(+) = 275
97509 AND fvl35.language(+) = USERENV('LANG')
97510
97511 )
97512 ;
97513 --
97514 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
97515
97516 trace
97517 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
97518 ,p_level => C_LEVEL_STATEMENT
97519 ,p_module => l_log_module);
97520
97521 END IF;
97522
97523
97524 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
97525 trace
97526 (p_msg => 'END of insert_sources_164'
97527 ,p_level => C_LEVEL_PROCEDURE
97528 ,p_module => l_log_module);
97529 END IF;
97530 EXCEPTION
97531 WHEN xla_exceptions_pkg.application_exception THEN
97532 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
97533 trace
97534 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
97535 ,p_level => C_LEVEL_EXCEPTION
97536 ,p_module => l_log_module);
97537 END IF;
97538 RAISE;
97539 WHEN OTHERS THEN
97540 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
97541 trace
97542 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
97543 ,p_level => C_LEVEL_EXCEPTION
97544 ,p_module => l_log_module);
97545 END IF;
97546 xla_exceptions_pkg.raise_message
97547 (p_location => 'XLA_00275_AAD_S_000015_PKG.insert_sources_164');
97548 END insert_sources_164;
97549 --
97550
97551 ---------------------------------------
97552 --
97553 -- PRIVATE FUNCTION
97554 -- EventClass_164
97555 --
97556 ----------------------------------------
97557 --
97558 FUNCTION EventClass_164
97559 (p_application_id IN NUMBER
97560 ,p_base_ledger_id IN NUMBER
97561 ,p_target_ledger_id IN NUMBER
97562 ,p_language IN VARCHAR2
97563 ,p_currency_code IN VARCHAR2
97564 ,p_sla_ledger_id IN NUMBER
97565 ,p_pad_start_date IN DATE
97566 ,p_pad_end_date IN DATE
97567 ,p_primary_ledger_id IN NUMBER)
97568 RETURN BOOLEAN IS
97569 --
97570 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'SUPPLIER_COST_ALL';
97571 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'SUPPLIER_COST';
97572
97573 l_calculate_acctd_flag VARCHAR2(1) :='N';
97574 l_calculate_g_l_flag VARCHAR2(1) :='N';
97575 --
97576 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
97577 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
97578 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
97579 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
97580 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
97581 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
97582 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
97583 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
97584 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
97585 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
97586 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
97587 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
97588 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
97592 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
97589 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
97590 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
97591 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
97593 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
97594 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
97595 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
97596 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
97597 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
97598 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
97599 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
97600
97601 l_event_id NUMBER;
97602 l_previous_event_id NUMBER;
97603 l_first_event_id NUMBER;
97604 l_last_event_id NUMBER;
97605
97606 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
97607 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
97608 --
97609 --
97610 l_result BOOLEAN := TRUE;
97611 l_rows NUMBER := 1000;
97612 l_event_type_name VARCHAR2(80) := 'All';
97613 l_event_class_name VARCHAR2(80) := 'Supplier Cost';
97614 l_description VARCHAR2(4000);
97615 l_transaction_reversal NUMBER;
97616 l_ae_header_id NUMBER;
97617 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
97618 l_log_module VARCHAR2(240);
97619 --
97620 l_acct_reversal_source VARCHAR2(30);
97621 l_trx_reversal_source VARCHAR2(30);
97622
97623 l_continue_with_lines BOOLEAN := TRUE;
97624 --
97625 l_acc_rev_gl_date_source DATE; -- 4262811
97626 --
97627 type t_array_event_id is table of number index by binary_integer;
97628
97629 l_rec_array_event t_rec_array_event;
97630 l_null_rec_array_event t_rec_array_event;
97631 l_array_ae_header_id xla_number_array_type;
97632 l_actual_flag VARCHAR2(1) := NULL;
97633 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
97634 l_balance_type_code VARCHAR2(1) :=NULL;
97635 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
97636
97637 --
97638 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
97639 --
97640
97641 TYPE t_array_source_2 IS TABLE OF GMS_XLA_AWARD_REF_V.PO_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
97642 TYPE t_array_source_22 IS TABLE OF PA_XLA_EXP_HEADER_V.EXCHANGE_RATE_VARIANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
97643 TYPE t_array_source_33 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
97644 TYPE t_array_source_75 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
97645
97646 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
97647 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
97648 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
97649 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
97650 TYPE t_array_source_8 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
97651 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
97652 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
97653 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
97654 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
97655 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
97656 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
97657 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
97658 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
97659 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
97660 TYPE t_array_source_32 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
97661 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
97662 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
97663 TYPE t_array_source_36 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
97664
97665 l_array_source_2 t_array_source_2;
97666 l_array_source_22 t_array_source_22;
97667 l_array_source_33 t_array_source_33;
97668 l_array_source_75 t_array_source_75;
97669
97670 l_array_source_4 t_array_source_4;
97671 l_array_source_5 t_array_source_5;
97672 l_array_source_6 t_array_source_6;
97673 l_array_source_7 t_array_source_7;
97674 l_array_source_8 t_array_source_8;
97675 l_array_source_23 t_array_source_23;
97676 l_array_source_24 t_array_source_24;
97677 l_array_source_25 t_array_source_25;
97678 l_array_source_26 t_array_source_26;
97679 l_array_source_27 t_array_source_27;
97680 l_array_source_28 t_array_source_28;
97681 l_array_source_29 t_array_source_29;
97682 l_array_source_30 t_array_source_30;
97683 l_array_source_31 t_array_source_31;
97684 l_array_source_32 t_array_source_32;
97685 l_array_source_34 t_array_source_34;
97686 l_array_source_35 t_array_source_35;
97687 l_array_source_35_meaning t_array_lookup_meaning;
97688 l_array_source_36 t_array_source_36;
97689
97693 SELECT /*+ leading(xet) cardinality(xet,1) */
97690 --
97691 CURSOR header_cur
97692 IS
97694 -- Event Class Code: SUPPLIER_COST
97695 xet.entity_id
97696 ,xet.legal_entity_id
97697 ,xet.entity_code
97698 ,xet.transaction_number
97699 ,xet.event_id
97700 ,xet.event_class_code
97701 ,xet.event_type_code
97702 ,xet.event_number
97703 ,xet.event_date
97704 ,xet.transaction_date
97705 ,xet.reference_num_1
97706 ,xet.reference_num_2
97707 ,xet.reference_num_3
97708 ,xet.reference_num_4
97709 ,xet.reference_char_1
97710 ,xet.reference_char_2
97711 ,xet.reference_char_3
97712 ,xet.reference_char_4
97713 ,xet.reference_date_1
97714 ,xet.reference_date_2
97715 ,xet.reference_date_3
97716 ,xet.reference_date_4
97717 ,xet.event_created_by
97718 ,xet.budgetary_control_flag
97719 , h1.PO_DISTRIBUTION_ID source_2
97720 , h3.EXCHANGE_RATE_VARIANCE_FLAG source_22
97721 , h3.EXPENDITURE_ITEM_ID source_33
97722 , h3.GL_DATE source_75
97723 FROM xla_events_gt xet
97724 , GMS_XLA_AWARD_REF_V h1
97725 , PA_XLA_EXP_HEADER_V h3
97726 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
97727 and xet.event_class_code = C_EVENT_CLASS_CODE
97728 and xet.event_status_code <> 'N' AND h3.event_id = xet.event_id
97729 AND h1.expenditure_item_id (+) =h3.expenditure_item_id AND h1.document_type (+) = 'EXP'
97730 ORDER BY event_id
97731 ;
97732
97733
97734 --
97735 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
97736 IS
97737 SELECT /*+ leading(xet) cardinality(xet,1) */
97738 -- Event Class Code: SUPPLIER_COST
97739 xet.entity_id
97740 ,xet.legal_entity_id
97741 ,xet.entity_code
97742 ,xet.transaction_number
97743 ,xet.event_id
97744 ,xet.event_class_code
97745 ,xet.event_type_code
97746 ,xet.event_number
97747 ,xet.event_date
97748 ,xet.transaction_date
97749 ,xet.reference_num_1
97750 ,xet.reference_num_2
97751 ,xet.reference_num_3
97752 ,xet.reference_num_4
97753 ,xet.reference_char_1
97754 ,xet.reference_char_2
97755 ,xet.reference_char_3
97756 ,xet.reference_char_4
97757 ,xet.reference_date_1
97758 ,xet.reference_date_2
97759 ,xet.reference_date_3
97760 ,xet.reference_date_4
97761 ,xet.event_created_by
97762 ,xet.budgetary_control_flag
97763 , l2.LINE_NUMBER
97764 , l2.COST_CCID source_4
97765 , l2.ALLOW_OVERRIDE_CCID_FLAG source_5
97766 , l2.ADJ_COST_CCID source_6
97767 , l2.COST_CLEARING_CCID source_7
97768 , l2.ADJ_COST_CLEARING_CCID source_8
97769 , l2.REVERSING_LINE_FLAG source_23
97770 , l2.ACTUAL_UPG_CR_ACCT_CLASS source_24
97771 , l2.ENTERED_RAW_COST source_25
97772 , l2.ENTERED_CURRENCY_CODE source_26
97773 , l2.ACCT_RAW_COST source_27
97774 , l2.EXCHANGE_RATE_DATE source_28
97775 , l2.EXCHANGE_RATE source_29
97776 , l2.EXCHANGE_RATE_TYPE source_30
97777 , l2.ACTUAL_UPG_DR_ACCT_CLASS source_31
97778 , l2.USE_ACT_UPG_ATTRIB_FLAG source_32
97779 , l2.LINE_NUMBER source_34
97780 , l2.LINE_TYPE source_35
97781 , fvl35.meaning source_35_meaning
97782 , l2.LINE_NUM_REVERSED source_36
97783 FROM xla_events_gt xet
97784 , PA_XLA_CDL_LINES_V l2
97785 , fnd_lookup_values fvl35
97786 WHERE xet.event_id between x_first_event_id and x_last_event_id
97787 and xet.event_date between p_pad_start_date and p_pad_end_date
97788 and xet.event_class_code = C_EVENT_CLASS_CODE
97789 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
97790 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
97791 AND fvl35.lookup_code(+) = l2.LINE_TYPE
97792 AND fvl35.view_application_id(+) = 275
97793 AND fvl35.language(+) = USERENV('LANG')
97794 ;
97795
97796 --
97797 BEGIN
97798 IF g_log_enabled THEN
97799 l_log_module := C_DEFAULT_MODULE||'.EventClass_164';
97800 END IF;
97801 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
97802 trace
97803 (p_msg => 'BEGIN of EventClass_164'
97804 ,p_level => C_LEVEL_PROCEDURE
97805 ,p_module => l_log_module);
97806 END IF;
97807
97808 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
97809 trace
97810 (p_msg => 'p_application_id = '||p_application_id||
97811 ' - p_base_ledger_id = '||p_base_ledger_id||
97812 ' - p_target_ledger_id = '||p_target_ledger_id||
97813 ' - p_language = '||p_language||
97814 ' - p_currency_code = '||p_currency_code||
97815 ' - p_sla_ledger_id = '||p_sla_ledger_id
97816 ,p_level => C_LEVEL_STATEMENT
97817 ,p_module => l_log_module);
97818 END IF;
97819 --
97820 -- initialze arrays
97821 --
97822 g_array_event.DELETE;
97823 l_rec_array_event := l_null_rec_array_event;
97824 --
97825 --------------------------------------
97826 -- 4262811 Initialze MPA Line Number
97827 --------------------------------------
97828 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
97829
97830 --
97831
97832 --
97833 OPEN header_cur;
97834 --
97835 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
97836 trace
97837 (p_msg => 'SQL - FETCH header_cur'
97838 ,p_level => C_LEVEL_STATEMENT
97839 ,p_module => l_log_module);
97840 END IF;
97841 --
97842 LOOP
97843 FETCH header_cur BULK COLLECT INTO
97844 l_array_entity_id
97845 , l_array_legal_entity_id
97846 , l_array_entity_code
97847 , l_array_transaction_num
97848 , l_array_event_id
97849 , l_array_class_code
97853 , l_array_transaction_date
97850 , l_array_event_type
97851 , l_array_event_number
97852 , l_array_event_date
97854 , l_array_reference_num_1
97855 , l_array_reference_num_2
97856 , l_array_reference_num_3
97857 , l_array_reference_num_4
97858 , l_array_reference_char_1
97859 , l_array_reference_char_2
97860 , l_array_reference_char_3
97861 , l_array_reference_char_4
97862 , l_array_reference_date_1
97863 , l_array_reference_date_2
97864 , l_array_reference_date_3
97865 , l_array_reference_date_4
97866 , l_array_event_created_by
97867 , l_array_budgetary_control_flag
97868 , l_array_source_2
97869 , l_array_source_22
97870 , l_array_source_33
97871 , l_array_source_75
97872 LIMIT l_rows;
97873 --
97874 IF (C_LEVEL_EVENT >= g_log_level) THEN
97875 trace
97876 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
97877 ,p_level => C_LEVEL_EVENT
97878 ,p_module => l_log_module);
97879 END IF;
97880 --
97881 EXIT WHEN l_array_entity_id.COUNT = 0;
97882
97883 -- initialize arrays
97884 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
97885 XLA_AE_LINES_PKG.g_rec_lines := NULL;
97886
97887 --
97888 -- Bug 4458708
97889 --
97890 XLA_AE_LINES_PKG.g_LineNumber := 0;
97891
97892
97893 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
97894 g_last_hdr_idx := l_array_event_id.LAST;
97895 --
97896 -- loop for the headers. Each iteration is for each header extract row
97897 -- fetched in header cursor
97898 --
97899 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
97900
97901 --
97902 -- set event info as cache for other routines to refer event attributes
97903 --
97904 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
97905 (p_application_id => p_application_id
97906 ,p_primary_ledger_id => p_primary_ledger_id
97907 ,p_base_ledger_id => p_base_ledger_id
97908 ,p_target_ledger_id => p_target_ledger_id
97909 ,p_entity_id => l_array_entity_id(hdr_idx)
97910 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
97911 ,p_entity_code => l_array_entity_code(hdr_idx)
97912 ,p_transaction_num => l_array_transaction_num(hdr_idx)
97913 ,p_event_id => l_array_event_id(hdr_idx)
97914 ,p_event_class_code => l_array_class_code(hdr_idx)
97915 ,p_event_type_code => l_array_event_type(hdr_idx)
97916 ,p_event_number => l_array_event_number(hdr_idx)
97917 ,p_event_date => l_array_event_date(hdr_idx)
97918 ,p_transaction_date => l_array_transaction_date(hdr_idx)
97919 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
97920 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
97921 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
97922 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
97923 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
97924 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
97925 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
97926 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
97927 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
97928 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
97929 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
97930 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
97931 ,p_event_created_by => l_array_event_created_by(hdr_idx)
97932 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
97933
97934 --
97935 -- set the status of entry to C_VALID (0)
97936 --
97937 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
97938
97939 --
97940 -- initialize a row for ae header
97941 --
97942 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
97943
97944 l_event_id := l_array_event_id(hdr_idx);
97945
97946 --
97947 -- storing the hdr_idx for event. May be used by line cursor.
97948 --
97949 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
97950
97951 --
97952 -- store sources from header extract. This can be improved to
97953 -- store only those sources from header extract that may be used in lines
97954 --
97955
97956 g_array_event(l_event_id).array_value_num('source_2') := l_array_source_2(hdr_idx);
97957 g_array_event(l_event_id).array_value_char('source_22') := l_array_source_22(hdr_idx);
97958 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
97959 g_array_event(l_event_id).array_value_date('source_75') := l_array_source_75(hdr_idx);
97960
97961 --
97962 -- initilaize the status of ae headers for diffrent balance types
97963 -- the status is initialised to C_NOT_CREATED (2)
97964 --
97965 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
97966 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
97967 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
97968
97969 --
97970 -- call api to validate and store accounting attributes for header
97971 --
97972
97973 ------------------------------------------------------------
97974 -- Accrual Reversal : to get date for Standard Source (NONE)
97975 ------------------------------------------------------------
97976 l_acc_rev_gl_date_source := NULL;
97977
97978 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
97979 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_75');
97980
97981
97985
97982 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
97983
97984 XLA_AE_HEADER_PKG.SetJeCategoryName;
97986 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
97987 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
97988 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
97989 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
97990 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
97991
97992
97993 -- No header level analytical criteria
97994
97995 --
97996 --accounting attribute enhancement, bug 3612931
97997 --
97998 l_trx_reversal_source := SUBSTR(NULL, 1,30);
97999
98000 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
98001 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
98002
98003 xla_accounting_err_pkg.build_message
98004 (p_appli_s_name => 'XLA'
98005 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
98006 ,p_token_1 => 'ACCT_ATTR_NAME'
98007 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
98008 ,p_token_2 => 'PRODUCT_NAME'
98009 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
98010 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
98011 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
98012 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
98013
98014 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
98015 --
98016 -- following sets the accounting attributes needed to reverse
98017 -- accounting for a distributeion
98018 --
98019 xla_ae_lines_pkg.SetTrxReversalAttrs
98020 (p_event_id => l_event_id
98021 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
98022 ,p_trx_reversal_source => l_trx_reversal_source);
98023
98024 END IF;
98025
98026
98027 ----------------------------------------------------------------
98028 -- 4262811 - update the header statuses to invalid in need be
98029 ----------------------------------------------------------------
98030 --
98031 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
98032
98033
98034 -----------------------------------------------
98035 -- No accrual reversal for the event class/type
98036 -----------------------------------------------
98037 ----------------------------------------------------------------
98038
98039 --
98040 -- this ends the header loop iteration for one bulk fetch
98041 --
98042 END LOOP;
98043
98044 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
98045 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
98046
98047 --
98048 -- insert dummy rows into lines gt table that were created due to
98049 -- transaction reversals
98050 --
98051 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
98052 l_result := XLA_AE_LINES_PKG.InsertLines;
98053 END IF;
98054
98055 --
98056 -- reset the temp_line_num for each set of events fetched from header
98057 -- cursor rather than doing it for each new event in line cursor
98058 -- Bug 3939231
98059 --
98060 xla_ae_lines_pkg.g_temp_line_num := 0;
98061
98062
98063
98064 --
98065 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
98066 --
98067 --
98068 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
98069
98070 trace
98071 (p_msg => 'SQL - FETCH line_cur'
98072 ,p_level => C_LEVEL_STATEMENT
98073 ,p_module => l_log_module);
98074
98075 END IF;
98076 --
98077 --
98078 LOOP
98079 --
98080 FETCH line_cur BULK COLLECT INTO
98081 l_array_entity_id
98082 , l_array_legal_entity_id
98083 , l_array_entity_code
98084 , l_array_transaction_num
98085 , l_array_event_id
98086 , l_array_class_code
98087 , l_array_event_type
98088 , l_array_event_number
98089 , l_array_event_date
98090 , l_array_transaction_date
98091 , l_array_reference_num_1
98092 , l_array_reference_num_2
98093 , l_array_reference_num_3
98094 , l_array_reference_num_4
98095 , l_array_reference_char_1
98096 , l_array_reference_char_2
98097 , l_array_reference_char_3
98098 , l_array_reference_char_4
98099 , l_array_reference_date_1
98100 , l_array_reference_date_2
98101 , l_array_reference_date_3
98102 , l_array_reference_date_4
98103 , l_array_event_created_by
98104 , l_array_budgetary_control_flag
98105 , l_array_extract_line_num
98106 , l_array_source_4
98107 , l_array_source_5
98108 , l_array_source_6
98109 , l_array_source_7
98110 , l_array_source_8
98111 , l_array_source_23
98112 , l_array_source_24
98113 , l_array_source_25
98114 , l_array_source_26
98115 , l_array_source_27
98116 , l_array_source_28
98117 , l_array_source_29
98118 , l_array_source_30
98119 , l_array_source_31
98120 , l_array_source_32
98121 , l_array_source_34
98122 , l_array_source_35
98123 , l_array_source_35_meaning
98124 , l_array_source_36
98125 LIMIT l_rows;
98126
98127 --
98128 IF (C_LEVEL_EVENT >= g_log_level) THEN
98129 trace
98130 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
98134 --
98131 ,p_level => C_LEVEL_EVENT
98132 ,p_module => l_log_module);
98133 END IF;
98135 EXIT WHEN l_array_entity_id.count = 0;
98136
98137 XLA_AE_LINES_PKG.g_rec_lines := null;
98138
98139 --
98140 -- Bug 4458708
98141 --
98142 XLA_AE_LINES_PKG.g_LineNumber := 0;
98143 --
98144 --
98145
98146 FOR Idx IN 1..l_array_event_id.count LOOP
98147 --
98148 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
98149 --
98150 l_event_id := l_array_event_id(idx); -- 5648433
98151
98152 --
98153 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
98154 --
98155
98156 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
98157 (g_array_event(l_event_id).array_value_num('header_index'))
98158 ,'N'
98159 ) <> 'Y'
98160 THEN
98161 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
98162 trace
98163 (p_msg => 'Trancaction revesal option is not Y '
98164 ,p_level => C_LEVEL_STATEMENT
98165 ,p_module => l_log_module);
98166 END IF;
98167
98168 --
98169 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
98170 --
98171 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
98172 --
98173 -- set event info as cache for other routines to refer event attributes
98174 --
98175
98176 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
98177 l_previous_event_id := l_event_id;
98178
98179 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
98180 (p_application_id => p_application_id
98181 ,p_primary_ledger_id => p_primary_ledger_id
98182 ,p_base_ledger_id => p_base_ledger_id
98183 ,p_target_ledger_id => p_target_ledger_id
98184 ,p_entity_id => l_array_entity_id(Idx)
98185 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
98186 ,p_entity_code => l_array_entity_code(Idx)
98187 ,p_transaction_num => l_array_transaction_num(Idx)
98188 ,p_event_id => l_array_event_id(Idx)
98189 ,p_event_class_code => l_array_class_code(Idx)
98190 ,p_event_type_code => l_array_event_type(Idx)
98191 ,p_event_number => l_array_event_number(Idx)
98192 ,p_event_date => l_array_event_date(Idx)
98193 ,p_transaction_date => l_array_transaction_date(Idx)
98194 ,p_reference_num_1 => l_array_reference_num_1(Idx)
98195 ,p_reference_num_2 => l_array_reference_num_2(Idx)
98196 ,p_reference_num_3 => l_array_reference_num_3(Idx)
98197 ,p_reference_num_4 => l_array_reference_num_4(Idx)
98198 ,p_reference_char_1 => l_array_reference_char_1(Idx)
98199 ,p_reference_char_2 => l_array_reference_char_2(Idx)
98200 ,p_reference_char_3 => l_array_reference_char_3(Idx)
98201 ,p_reference_char_4 => l_array_reference_char_4(Idx)
98202 ,p_reference_date_1 => l_array_reference_date_1(Idx)
98203 ,p_reference_date_2 => l_array_reference_date_2(Idx)
98204 ,p_reference_date_3 => l_array_reference_date_3(Idx)
98205 ,p_reference_date_4 => l_array_reference_date_4(Idx)
98206 ,p_event_created_by => l_array_event_created_by(Idx)
98207 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
98208 --
98209 END IF;
98210
98211
98212
98213 --
98214 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
98215
98216 l_acct_reversal_source := SUBSTR(l_array_source_23(Idx), 1,30);
98217
98218 IF l_continue_with_lines THEN
98219 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
98220 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
98221
98222 xla_accounting_err_pkg.build_message
98223 (p_appli_s_name => 'XLA'
98224 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
98225 ,p_token_1 => 'LINE_NUMBER'
98226 ,p_value_1 => l_array_extract_line_num(Idx)
98227 ,p_token_2 => 'PRODUCT_NAME'
98228 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
98229 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
98230 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
98231 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
98232
98233 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
98234 --
98235 -- following sets the accounting attributes needed to reverse
98236 -- accounting for a distributeion
98237 --
98238
98239 --
98240 -- 5217187
98241 --
98242 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
98243 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
98244 g_array_event(l_event_id).array_value_num('header_index'));
98245 --
98246 --
98247
98248 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
98249 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_23(Idx);
98250 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
98251 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_24(Idx);
98252 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
98253 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_7(Idx));
98254 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
98258 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
98255 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_25(Idx);
98256 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
98257 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_26(Idx);
98259 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_27(Idx);
98260 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
98261 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_28(Idx);
98262 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
98263 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_29(Idx);
98264 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
98265 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_30(Idx);
98266 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
98267 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_31(Idx);
98268 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
98269 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_4(Idx));
98270 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
98271 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_25(Idx);
98272 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
98273 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_26(Idx);
98274 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
98275 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_27(Idx);
98276 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
98277 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_28(Idx);
98278 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
98279 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_29(Idx);
98280 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
98281 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_30(Idx);
98282 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
98283 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_32(Idx);
98284 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
98285 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_33');
98286 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
98287 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_34(Idx);
98288 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
98289 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_35(Idx);
98290 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
98291 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_33');
98292 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
98293 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_36(Idx);
98294 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
98295 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_35(Idx);
98296
98297
98298 xla_ae_lines_pkg.SetAcctReversalAttrs
98299 (p_event_id => l_event_id
98300 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
98301 ,p_calculate_acctd_flag => l_calculate_acctd_flag
98302 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
98303 END IF;
98304
98305 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
98306 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
98307
98308 --
98309 AcctLineType_29 (
98310 p_application_id => p_application_id
98311 ,p_event_id => l_event_id
98312 ,p_calculate_acctd_flag => l_calculate_acctd_flag
98313 ,p_calculate_g_l_flag => l_calculate_g_l_flag
98314 ,p_actual_flag => l_actual_flag
98315 ,p_balance_type_code => l_balance_type_code
98316 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
98317
98318 , p_source_4 => l_array_source_4(Idx)
98319 , p_source_5 => l_array_source_5(Idx)
98320 , p_source_6 => l_array_source_6(Idx)
98321 , p_source_7 => l_array_source_7(Idx)
98322 , p_source_22 => g_array_event(l_event_id).array_value_char('source_22')
98323 , p_source_23 => l_array_source_23(Idx)
98324 , p_source_24 => l_array_source_24(Idx)
98325 , p_source_25 => l_array_source_25(Idx)
98326 , p_source_26 => l_array_source_26(Idx)
98327 , p_source_27 => l_array_source_27(Idx)
98328 , p_source_28 => l_array_source_28(Idx)
98329 , p_source_29 => l_array_source_29(Idx)
98330 , p_source_30 => l_array_source_30(Idx)
98331 , p_source_31 => l_array_source_31(Idx)
98332 , p_source_32 => l_array_source_32(Idx)
98333 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
98334 , p_source_34 => l_array_source_34(Idx)
98335 , p_source_35 => l_array_source_35(Idx)
98336 , p_source_35_meaning => l_array_source_35_meaning(Idx)
98337 , p_source_36 => l_array_source_36(Idx)
98338 );
98339 If(l_balance_type_code = 'A') THEN
98340 l_actual_gain_loss_ref := l_gain_or_loss_ref;
98341 END IF;
98342
98343 --
98344
98345
98346 --
98347 AcctLineType_32 (
98348 p_application_id => p_application_id
98349 ,p_event_id => l_event_id
98350 ,p_calculate_acctd_flag => l_calculate_acctd_flag
98351 ,p_calculate_g_l_flag => l_calculate_g_l_flag
98352 ,p_actual_flag => l_actual_flag
98353 ,p_balance_type_code => l_balance_type_code
98354 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
98355
98356 , p_source_4 => l_array_source_4(Idx)
98357 , p_source_5 => l_array_source_5(Idx)
98358 , p_source_7 => l_array_source_7(Idx)
98359 , p_source_8 => l_array_source_8(Idx)
98360 , p_source_22 => g_array_event(l_event_id).array_value_char('source_22')
98361 , p_source_23 => l_array_source_23(Idx)
98365 , p_source_27 => l_array_source_27(Idx)
98362 , p_source_24 => l_array_source_24(Idx)
98363 , p_source_25 => l_array_source_25(Idx)
98364 , p_source_26 => l_array_source_26(Idx)
98366 , p_source_28 => l_array_source_28(Idx)
98367 , p_source_29 => l_array_source_29(Idx)
98368 , p_source_30 => l_array_source_30(Idx)
98369 , p_source_31 => l_array_source_31(Idx)
98370 , p_source_32 => l_array_source_32(Idx)
98371 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
98372 , p_source_34 => l_array_source_34(Idx)
98373 , p_source_35 => l_array_source_35(Idx)
98374 , p_source_35_meaning => l_array_source_35_meaning(Idx)
98375 , p_source_36 => l_array_source_36(Idx)
98376 );
98377 If(l_balance_type_code = 'A') THEN
98378 l_actual_gain_loss_ref := l_gain_or_loss_ref;
98379 END IF;
98380
98381 --
98382
98383
98384 --
98385 AcctLineType_55 (
98386 p_application_id => p_application_id
98387 ,p_event_id => l_event_id
98388 ,p_calculate_acctd_flag => l_calculate_acctd_flag
98389 ,p_calculate_g_l_flag => l_calculate_g_l_flag
98390 ,p_actual_flag => l_actual_flag
98391 ,p_balance_type_code => l_balance_type_code
98392 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
98393
98394 , p_source_2 => g_array_event(l_event_id).array_value_num('source_2')
98395 , p_source_4 => l_array_source_4(Idx)
98396 , p_source_5 => l_array_source_5(Idx)
98397 , p_source_6 => l_array_source_6(Idx)
98398 , p_source_7 => l_array_source_7(Idx)
98399 , p_source_22 => g_array_event(l_event_id).array_value_char('source_22')
98400 , p_source_23 => l_array_source_23(Idx)
98401 , p_source_24 => l_array_source_24(Idx)
98402 , p_source_25 => l_array_source_25(Idx)
98403 , p_source_26 => l_array_source_26(Idx)
98404 , p_source_27 => l_array_source_27(Idx)
98405 , p_source_28 => l_array_source_28(Idx)
98406 , p_source_29 => l_array_source_29(Idx)
98407 , p_source_30 => l_array_source_30(Idx)
98408 , p_source_31 => l_array_source_31(Idx)
98409 , p_source_32 => l_array_source_32(Idx)
98410 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
98411 , p_source_34 => l_array_source_34(Idx)
98412 , p_source_35 => l_array_source_35(Idx)
98413 , p_source_35_meaning => l_array_source_35_meaning(Idx)
98414 , p_source_36 => l_array_source_36(Idx)
98415 );
98416 If(l_balance_type_code = 'A') THEN
98417 l_actual_gain_loss_ref := l_gain_or_loss_ref;
98418 END IF;
98419
98420 --
98421
98422
98423 --
98424 AcctLineType_57 (
98425 p_application_id => p_application_id
98426 ,p_event_id => l_event_id
98427 ,p_calculate_acctd_flag => l_calculate_acctd_flag
98428 ,p_calculate_g_l_flag => l_calculate_g_l_flag
98429 ,p_actual_flag => l_actual_flag
98430 ,p_balance_type_code => l_balance_type_code
98431 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
98432
98433 , p_source_4 => l_array_source_4(Idx)
98434 , p_source_5 => l_array_source_5(Idx)
98435 , p_source_7 => l_array_source_7(Idx)
98436 , p_source_8 => l_array_source_8(Idx)
98437 , p_source_22 => g_array_event(l_event_id).array_value_char('source_22')
98438 , p_source_23 => l_array_source_23(Idx)
98439 , p_source_24 => l_array_source_24(Idx)
98440 , p_source_25 => l_array_source_25(Idx)
98441 , p_source_26 => l_array_source_26(Idx)
98442 , p_source_27 => l_array_source_27(Idx)
98443 , p_source_28 => l_array_source_28(Idx)
98444 , p_source_29 => l_array_source_29(Idx)
98445 , p_source_30 => l_array_source_30(Idx)
98446 , p_source_31 => l_array_source_31(Idx)
98447 , p_source_32 => l_array_source_32(Idx)
98448 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
98449 , p_source_34 => l_array_source_34(Idx)
98450 , p_source_35 => l_array_source_35(Idx)
98451 , p_source_35_meaning => l_array_source_35_meaning(Idx)
98452 , p_source_36 => l_array_source_36(Idx)
98453 );
98454 If(l_balance_type_code = 'A') THEN
98455 l_actual_gain_loss_ref := l_gain_or_loss_ref;
98456 END IF;
98457
98458 --
98459
98460
98461 --
98462 AcctLineType_67 (
98463 p_application_id => p_application_id
98464 ,p_event_id => l_event_id
98465 ,p_calculate_acctd_flag => l_calculate_acctd_flag
98466 ,p_calculate_g_l_flag => l_calculate_g_l_flag
98467 ,p_actual_flag => l_actual_flag
98468 ,p_balance_type_code => l_balance_type_code
98469 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
98470
98471 , p_source_4 => l_array_source_4(Idx)
98472 , p_source_5 => l_array_source_5(Idx)
98473 , p_source_6 => l_array_source_6(Idx)
98474 , p_source_7 => l_array_source_7(Idx)
98475 , p_source_22 => g_array_event(l_event_id).array_value_char('source_22')
98476 , p_source_23 => l_array_source_23(Idx)
98477 , p_source_24 => l_array_source_24(Idx)
98478 , p_source_25 => l_array_source_25(Idx)
98479 , p_source_26 => l_array_source_26(Idx)
98480 , p_source_27 => l_array_source_27(Idx)
98481 , p_source_28 => l_array_source_28(Idx)
98482 , p_source_29 => l_array_source_29(Idx)
98483 , p_source_30 => l_array_source_30(Idx)
98484 , p_source_31 => l_array_source_31(Idx)
98485 , p_source_32 => l_array_source_32(Idx)
98486 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
98487 , p_source_34 => l_array_source_34(Idx)
98488 , p_source_35 => l_array_source_35(Idx)
98489 , p_source_35_meaning => l_array_source_35_meaning(Idx)
98490 , p_source_36 => l_array_source_36(Idx)
98491 );
98492 If(l_balance_type_code = 'A') THEN
98493 l_actual_gain_loss_ref := l_gain_or_loss_ref;
98494 END IF;
98495
98496 --
98497
98498
98499 --
98500 AcctLineType_88 (
98501 p_application_id => p_application_id
98502 ,p_event_id => l_event_id
98503 ,p_calculate_acctd_flag => l_calculate_acctd_flag
98504 ,p_calculate_g_l_flag => l_calculate_g_l_flag
98505 ,p_actual_flag => l_actual_flag
98509 , p_source_4 => l_array_source_4(Idx)
98506 ,p_balance_type_code => l_balance_type_code
98507 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
98508
98510 , p_source_5 => l_array_source_5(Idx)
98511 , p_source_7 => l_array_source_7(Idx)
98512 , p_source_8 => l_array_source_8(Idx)
98513 , p_source_22 => g_array_event(l_event_id).array_value_char('source_22')
98514 , p_source_23 => l_array_source_23(Idx)
98515 , p_source_24 => l_array_source_24(Idx)
98516 , p_source_25 => l_array_source_25(Idx)
98517 , p_source_26 => l_array_source_26(Idx)
98518 , p_source_27 => l_array_source_27(Idx)
98519 , p_source_28 => l_array_source_28(Idx)
98520 , p_source_29 => l_array_source_29(Idx)
98521 , p_source_30 => l_array_source_30(Idx)
98522 , p_source_31 => l_array_source_31(Idx)
98523 , p_source_32 => l_array_source_32(Idx)
98524 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
98525 , p_source_34 => l_array_source_34(Idx)
98526 , p_source_35 => l_array_source_35(Idx)
98527 , p_source_35_meaning => l_array_source_35_meaning(Idx)
98528 , p_source_36 => l_array_source_36(Idx)
98529 );
98530 If(l_balance_type_code = 'A') THEN
98531 l_actual_gain_loss_ref := l_gain_or_loss_ref;
98532 END IF;
98533
98534 --
98535
98536
98537 --
98538 AcctLineType_106 (
98539 p_application_id => p_application_id
98540 ,p_event_id => l_event_id
98541 ,p_calculate_acctd_flag => l_calculate_acctd_flag
98542 ,p_calculate_g_l_flag => l_calculate_g_l_flag
98543 ,p_actual_flag => l_actual_flag
98544 ,p_balance_type_code => l_balance_type_code
98545 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
98546
98547 , p_source_4 => l_array_source_4(Idx)
98548 , p_source_5 => l_array_source_5(Idx)
98549 , p_source_7 => l_array_source_7(Idx)
98550 , p_source_8 => l_array_source_8(Idx)
98551 , p_source_22 => g_array_event(l_event_id).array_value_char('source_22')
98552 , p_source_23 => l_array_source_23(Idx)
98553 , p_source_24 => l_array_source_24(Idx)
98554 , p_source_25 => l_array_source_25(Idx)
98555 , p_source_26 => l_array_source_26(Idx)
98556 , p_source_27 => l_array_source_27(Idx)
98557 , p_source_28 => l_array_source_28(Idx)
98558 , p_source_29 => l_array_source_29(Idx)
98559 , p_source_30 => l_array_source_30(Idx)
98560 , p_source_31 => l_array_source_31(Idx)
98561 , p_source_32 => l_array_source_32(Idx)
98562 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
98563 , p_source_34 => l_array_source_34(Idx)
98564 , p_source_35 => l_array_source_35(Idx)
98565 , p_source_35_meaning => l_array_source_35_meaning(Idx)
98566 , p_source_36 => l_array_source_36(Idx)
98567 );
98568 If(l_balance_type_code = 'A') THEN
98569 l_actual_gain_loss_ref := l_gain_or_loss_ref;
98570 END IF;
98571
98572 --
98573
98574
98575 --
98576 AcctLineType_110 (
98577 p_application_id => p_application_id
98578 ,p_event_id => l_event_id
98579 ,p_calculate_acctd_flag => l_calculate_acctd_flag
98580 ,p_calculate_g_l_flag => l_calculate_g_l_flag
98581 ,p_actual_flag => l_actual_flag
98582 ,p_balance_type_code => l_balance_type_code
98583 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
98584
98585 , p_source_2 => g_array_event(l_event_id).array_value_num('source_2')
98586 , p_source_4 => l_array_source_4(Idx)
98587 , p_source_5 => l_array_source_5(Idx)
98588 , p_source_6 => l_array_source_6(Idx)
98589 , p_source_7 => l_array_source_7(Idx)
98590 , p_source_22 => g_array_event(l_event_id).array_value_char('source_22')
98591 , p_source_23 => l_array_source_23(Idx)
98592 , p_source_24 => l_array_source_24(Idx)
98593 , p_source_25 => l_array_source_25(Idx)
98594 , p_source_26 => l_array_source_26(Idx)
98595 , p_source_27 => l_array_source_27(Idx)
98596 , p_source_28 => l_array_source_28(Idx)
98597 , p_source_29 => l_array_source_29(Idx)
98598 , p_source_30 => l_array_source_30(Idx)
98599 , p_source_31 => l_array_source_31(Idx)
98600 , p_source_32 => l_array_source_32(Idx)
98601 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
98602 , p_source_34 => l_array_source_34(Idx)
98603 , p_source_35 => l_array_source_35(Idx)
98604 , p_source_35_meaning => l_array_source_35_meaning(Idx)
98605 , p_source_36 => l_array_source_36(Idx)
98606 );
98607 If(l_balance_type_code = 'A') THEN
98608 l_actual_gain_loss_ref := l_gain_or_loss_ref;
98609 END IF;
98610
98611 --
98612
98613 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
98614 -- or secondary ledger that has different currency with primary
98615 -- or alc that is calculated by sla
98616 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
98617 (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'))
98618
98619 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
98620 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
98621 AND (l_actual_flag = 'A')) THEN
98622 XLA_AE_LINES_PKG.CreateGainOrLossLines(
98623 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
98624 ,p_application_id => p_application_id
98625 ,p_amb_context_code => 'DEFAULT'
98626 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
98627 ,p_event_class_code => C_EVENT_CLASS_CODE
98628 ,p_event_type_code => C_EVENT_TYPE_CODE
98629
98630 ,p_gain_ccid => -1
98631 ,p_loss_ccid => -1
98632
98633 ,p_actual_flag => l_actual_flag
98634 ,p_enc_flag => null
98635 ,p_actual_g_l_ref => l_actual_gain_loss_ref
98636 ,p_enc_g_l_ref => null
98637 );
98641
98638 END IF;
98639 END IF;
98640 END IF;
98642 ELSE
98643 --
98644 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
98645 --
98646 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
98647 trace
98648 (p_msg => 'Trancaction revesal option is Y'
98649 ,p_level => C_LEVEL_STATEMENT
98650 ,p_module => l_log_module);
98651 END IF;
98652 END IF;
98653
98654 END LOOP;
98655 l_result := XLA_AE_LINES_PKG.InsertLines ;
98656 end loop;
98657 close line_cur;
98658
98659
98660 --
98661 -- insert headers into xla_ae_headers_gt table
98662 --
98663 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
98664
98665 -- insert into errors table here.
98666
98667 END LOOP;
98668
98669 --
98670 -- 4865292
98671 --
98672 -- Compare g_hdr_extract_count with event count in
98673 -- CreateHeadersAndLines.
98674 --
98675 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
98676
98677 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
98678 trace (p_msg => '# rows extracted from header extract objects '
98679 || ' (running total): '
98680 || g_hdr_extract_count
98681 ,p_level => C_LEVEL_STATEMENT
98682 ,p_module => l_log_module);
98683 END IF;
98684
98685 CLOSE header_cur;
98686 --
98687
98688 --
98689 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
98690 trace
98691 (p_msg => 'END of EventClass_164'
98692 ,p_level => C_LEVEL_PROCEDURE
98693 ,p_module => l_log_module);
98694 END IF;
98695 --
98696 RETURN l_result;
98697 EXCEPTION
98698 WHEN xla_exceptions_pkg.application_exception THEN
98699
98700 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
98701
98702
98703 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
98704
98705 RAISE;
98706 WHEN OTHERS THEN
98707 xla_exceptions_pkg.raise_message
98708 (p_location => 'XLA_00275_AAD_S_000015_PKG.EventClass_164');
98709 END EventClass_164;
98710 --
98711
98712 ---------------------------------------
98713 --
98714 -- PRIVATE PROCEDURE
98715 -- insert_sources_165
98716 --
98717 ----------------------------------------
98718 --
98719 PROCEDURE insert_sources_165(
98720 p_target_ledger_id IN NUMBER
98721 , p_language IN VARCHAR2
98722 , p_sla_ledger_id IN NUMBER
98723 , p_pad_start_date IN DATE
98724 , p_pad_end_date IN DATE
98725 )
98726 IS
98727
98728 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'TOT_BURDENED_COST_ADJ_ALL';
98729 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'TOT_BURDENED_COST_ADJ';
98730 p_apps_owner VARCHAR2(30);
98731 l_log_module VARCHAR2(240);
98732 BEGIN
98733 IF g_log_enabled THEN
98734 l_log_module := C_DEFAULT_MODULE||'.insert_sources_165';
98735 END IF;
98736 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
98737
98738 trace
98739 (p_msg => 'BEGIN of insert_sources_165'
98740 ,p_level => C_LEVEL_PROCEDURE
98741 ,p_module => l_log_module);
98742
98743 END IF;
98744
98745 -- select APPS owner
98746 SELECT oracle_username
98747 INTO p_apps_owner
98748 FROM fnd_oracle_userid
98749 WHERE read_only_flag = 'U'
98750 ;
98751
98752 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
98753 trace
98754 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
98755 ' - p_language = '||p_language||
98756 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
98757 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
98758 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
98759 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
98760 ,p_level => C_LEVEL_STATEMENT
98761 ,p_module => l_log_module);
98762 END IF;
98763
98764
98765 --
98766 INSERT INTO xla_diag_sources --hdr2
98767 (
98768 event_id
98769 , ledger_id
98770 , sla_ledger_id
98771 , description_language
98772 , object_name
98773 , object_type_code
98774 , line_number
98775 , source_application_id
98776 , source_type_code
98777 , source_code
98778 , source_value
98779 , source_meaning
98780 , created_by
98781 , creation_date
98782 , last_update_date
98783 , last_updated_by
98784 , last_update_login
98785 , program_update_date
98786 , program_application_id
98787 , program_id
98788 , request_id
98789 )
98790 SELECT
98791 event_id
98792 , p_target_ledger_id
98793 , p_sla_ledger_id
98794 , p_language
98795 , object_name
98796 , object_type_code
98797 , line_number
98798 , source_application_id
98799 , source_type_code
98800 , source_code
98801 , SUBSTR(source_value ,1,1996)
98802 , SUBSTR(source_meaning ,1,200)
98803 , xla_environment_pkg.g_Usr_Id
98804 , TRUNC(SYSDATE)
98805 , TRUNC(SYSDATE)
98806 , xla_environment_pkg.g_Usr_Id
98807 , xla_environment_pkg.g_Login_Id
98808 , TRUNC(SYSDATE)
98809 , xla_environment_pkg.g_Prog_Appl_Id
98810 , xla_environment_pkg.g_Prog_Id
98811 , xla_environment_pkg.g_Req_Id
98815 , CASE r
98812 FROM (
98813 SELECT xet.event_id event_id
98814 , 0 line_number
98816 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
98817 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
98818
98819 ELSE null
98820 END object_name
98821 , CASE r
98822 WHEN 1 THEN 'HEADER'
98823 WHEN 2 THEN 'HEADER'
98824
98825 ELSE null
98826 END object_type_code
98827 , CASE r
98828 WHEN 1 THEN '275'
98829 WHEN 2 THEN '275'
98830
98831 ELSE null
98832 END source_application_id
98833 , 'S' source_type_code
98834 , CASE r
98835 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
98836 WHEN 2 THEN 'GL_DATE'
98837
98838 ELSE null
98839 END source_code
98840 , CASE r
98841 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
98842 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
98843
98844 ELSE null
98845 END source_value
98846 , null source_meaning
98847 FROM xla_events_gt xet
98848 , PA_XLA_EXP_HEADER_V h2
98849 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
98850 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
98851 AND xet.event_class_code = C_EVENT_CLASS_CODE
98852 AND h2.event_id = xet.event_id
98853
98854 )
98855 ;
98856 --
98857 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
98858
98859 trace
98860 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
98861 ,p_level => C_LEVEL_STATEMENT
98862 ,p_module => l_log_module);
98863
98864 END IF;
98865 --
98866
98867
98868
98869 --
98870 INSERT INTO xla_diag_sources --line2
98871 (
98872 event_id
98873 , ledger_id
98874 , sla_ledger_id
98875 , description_language
98876 , object_name
98877 , object_type_code
98878 , line_number
98879 , source_application_id
98880 , source_type_code
98881 , source_code
98882 , source_value
98883 , source_meaning
98884 , created_by
98885 , creation_date
98886 , last_update_date
98887 , last_updated_by
98888 , last_update_login
98889 , program_update_date
98890 , program_application_id
98891 , program_id
98892 , request_id
98893 )
98894 SELECT event_id
98895 , p_target_ledger_id
98896 , p_sla_ledger_id
98897 , p_language
98898 , object_name
98899 , object_type_code
98900 , line_number
98901 , source_application_id
98902 , source_type_code
98903 , source_code
98904 , SUBSTR(source_value,1,1996)
98905 , SUBSTR(source_meaning ,1,200)
98906 , xla_environment_pkg.g_Usr_Id
98907 , TRUNC(SYSDATE)
98908 , TRUNC(SYSDATE)
98909 , xla_environment_pkg.g_Usr_Id
98910 , xla_environment_pkg.g_Login_Id
98911 , TRUNC(SYSDATE)
98912 , xla_environment_pkg.g_Prog_Appl_Id
98913 , xla_environment_pkg.g_Prog_Id
98914 , xla_environment_pkg.g_Req_Id
98915 FROM (
98916 SELECT xet.event_id event_id
98917 , l1.line_number line_number
98918 , CASE r
98919 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
98920 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
98921 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
98922 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
98923 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
98924 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
98925 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
98926 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
98927 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
98928 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
98929 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
98930 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
98931 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
98932 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
98933 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
98934 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
98935 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
98936 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
98937 WHEN 19 THEN 'PA_XLA_CDL_LINES_V'
98938 WHEN 20 THEN 'PA_XLA_CDL_LINES_V'
98939 WHEN 21 THEN 'PA_XLA_CDL_LINES_V'
98940 WHEN 22 THEN 'PA_XLA_CDL_LINES_V'
98941 WHEN 23 THEN 'PA_XLA_CDL_LINES_V'
98942 WHEN 24 THEN 'PA_XLA_CDL_LINES_V'
98943 WHEN 25 THEN 'PA_XLA_CDL_LINES_V'
98944 WHEN 26 THEN 'PA_XLA_CDL_LINES_V'
98945 WHEN 27 THEN 'PA_XLA_CDL_LINES_V'
98946 WHEN 28 THEN 'PA_XLA_CDL_LINES_V'
98947 WHEN 29 THEN 'PA_XLA_CDL_LINES_V'
98948 WHEN 30 THEN 'PA_XLA_CDL_LINES_V'
98949
98950 ELSE null
98951 END object_name
98952 , CASE r
98953 WHEN 1 THEN 'LINE'
98954 WHEN 2 THEN 'LINE'
98955 WHEN 3 THEN 'LINE'
98956 WHEN 4 THEN 'LINE'
98957 WHEN 5 THEN 'LINE'
98961 WHEN 9 THEN 'LINE'
98958 WHEN 6 THEN 'LINE'
98959 WHEN 7 THEN 'LINE'
98960 WHEN 8 THEN 'LINE'
98962 WHEN 10 THEN 'LINE'
98963 WHEN 11 THEN 'LINE'
98964 WHEN 12 THEN 'LINE'
98965 WHEN 13 THEN 'LINE'
98966 WHEN 14 THEN 'LINE'
98967 WHEN 15 THEN 'LINE'
98968 WHEN 16 THEN 'LINE'
98969 WHEN 17 THEN 'LINE'
98970 WHEN 18 THEN 'LINE'
98971 WHEN 19 THEN 'LINE'
98972 WHEN 20 THEN 'LINE'
98973 WHEN 21 THEN 'LINE'
98974 WHEN 22 THEN 'LINE'
98975 WHEN 23 THEN 'LINE'
98976 WHEN 24 THEN 'LINE'
98977 WHEN 25 THEN 'LINE'
98978 WHEN 26 THEN 'LINE'
98979 WHEN 27 THEN 'LINE'
98980 WHEN 28 THEN 'LINE'
98981 WHEN 29 THEN 'LINE'
98982 WHEN 30 THEN 'LINE'
98983
98984 ELSE null
98985 END object_type_code
98986 , CASE r
98987 WHEN 1 THEN '275'
98988 WHEN 2 THEN '275'
98989 WHEN 3 THEN '275'
98990 WHEN 4 THEN '275'
98991 WHEN 5 THEN '275'
98992 WHEN 6 THEN '275'
98993 WHEN 7 THEN '275'
98994 WHEN 8 THEN '275'
98995 WHEN 9 THEN '275'
98996 WHEN 10 THEN '275'
98997 WHEN 11 THEN '275'
98998 WHEN 12 THEN '275'
98999 WHEN 13 THEN '275'
99000 WHEN 14 THEN '275'
99001 WHEN 15 THEN '275'
99002 WHEN 16 THEN '275'
99003 WHEN 17 THEN '275'
99004 WHEN 18 THEN '275'
99005 WHEN 19 THEN '275'
99006 WHEN 20 THEN '275'
99007 WHEN 21 THEN '275'
99008 WHEN 22 THEN '275'
99009 WHEN 23 THEN '275'
99010 WHEN 24 THEN '275'
99011 WHEN 25 THEN '275'
99012 WHEN 26 THEN '275'
99013 WHEN 27 THEN '275'
99014 WHEN 28 THEN '275'
99015 WHEN 29 THEN '275'
99016 WHEN 30 THEN '275'
99017
99018 ELSE null
99019 END source_application_id
99020 , 'S' source_type_code
99021 , CASE r
99022 WHEN 1 THEN 'BUDGET_CCID'
99023 WHEN 2 THEN 'COST_CCID'
99024 WHEN 3 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
99025 WHEN 4 THEN 'ADJ_COST_CCID'
99026 WHEN 5 THEN 'COST_CLEARING_CCID'
99027 WHEN 6 THEN 'ADJ_COST_CLEARING_CCID'
99028 WHEN 7 THEN 'REVERSING_LINE_FLAG'
99029 WHEN 8 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
99030 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
99031 WHEN 10 THEN 'EXCHANGE_RATE_DATE'
99032 WHEN 11 THEN 'EXCHANGE_RATE'
99033 WHEN 12 THEN 'EXCHANGE_RATE_TYPE'
99034 WHEN 13 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
99035 WHEN 14 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
99036 WHEN 15 THEN 'LINE_NUMBER'
99037 WHEN 16 THEN 'LINE_TYPE'
99038 WHEN 17 THEN 'LINE_NUM_REVERSED'
99039 WHEN 18 THEN 'USE_ENC_UPG_ATTRIB_FLAG'
99040 WHEN 19 THEN 'ENTERED_BURDENED_COST'
99041 WHEN 20 THEN 'ACCT_BURDENED_COST'
99042 WHEN 21 THEN 'ENCUMBRANCE_AMOUNT'
99043 WHEN 22 THEN 'PA_APPLICATION_ID'
99044 WHEN 23 THEN 'PA_DISTRIBUTION_TYPE'
99045 WHEN 24 THEN 'PA_ENTITY_CODE'
99046 WHEN 25 THEN 'PA_FIRST_DIST_ID'
99047 WHEN 26 THEN 'PA_FIRST_SYS_TRANS_ID'
99048 WHEN 27 THEN 'PA_SECOND_DIST_ID'
99049 WHEN 28 THEN 'ENC_UPG_CR_ACCT_CLASS'
99050 WHEN 29 THEN 'ENCUMBRANCE_TYPE_ID'
99051 WHEN 30 THEN 'PROJ_ENCUMBRANCE_TYPE_ID'
99052
99053 ELSE null
99054 END source_code
99055 , CASE r
99056 WHEN 1 THEN TO_CHAR(l1.BUDGET_CCID)
99057 WHEN 2 THEN TO_CHAR(l1.COST_CCID)
99058 WHEN 3 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
99059 WHEN 4 THEN TO_CHAR(l1.ADJ_COST_CCID)
99060 WHEN 5 THEN TO_CHAR(l1.COST_CLEARING_CCID)
99061 WHEN 6 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
99062 WHEN 7 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
99063 WHEN 8 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
99064 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
99065 WHEN 10 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
99066 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE)
99067 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
99068 WHEN 13 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
99069 WHEN 14 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
99070 WHEN 15 THEN TO_CHAR(l1.LINE_NUMBER)
99071 WHEN 16 THEN TO_CHAR(l1.LINE_TYPE)
99072 WHEN 17 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
99073 WHEN 18 THEN TO_CHAR(l1.USE_ENC_UPG_ATTRIB_FLAG)
99074 WHEN 19 THEN TO_CHAR(l1.ENTERED_BURDENED_COST)
99075 WHEN 20 THEN TO_CHAR(l1.ACCT_BURDENED_COST)
99076 WHEN 21 THEN TO_CHAR(l1.ENCUMBRANCE_AMOUNT)
99077 WHEN 22 THEN TO_CHAR(l1.PA_APPLICATION_ID)
99078 WHEN 23 THEN TO_CHAR(l1.PA_DISTRIBUTION_TYPE)
99082 WHEN 27 THEN TO_CHAR(l1.PA_SECOND_DIST_ID)
99079 WHEN 24 THEN TO_CHAR(l1.PA_ENTITY_CODE)
99080 WHEN 25 THEN TO_CHAR(l1.PA_FIRST_DIST_ID)
99081 WHEN 26 THEN TO_CHAR(l1.PA_FIRST_SYS_TRANS_ID)
99083 WHEN 28 THEN TO_CHAR(l1.ENC_UPG_CR_ACCT_CLASS)
99084 WHEN 29 THEN TO_CHAR(l1.ENCUMBRANCE_TYPE_ID)
99085 WHEN 30 THEN TO_CHAR(l1.PROJ_ENCUMBRANCE_TYPE_ID)
99086
99087 ELSE null
99088 END source_value
99089 , CASE r
99090 WHEN 3 THEN XLA_00275_AAD_S_000015_PKG.GetMeaning(
99091 103371
99092 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
99093 ,'ALLOW_OVERRIDE_CCID_FLAG'
99094 ,'S'
99095 ,275)
99096 WHEN 16 THEN fvl35.meaning
99097
99098 ELSE null
99099 END source_meaning
99100 FROM xla_events_gt xet
99101 , PA_XLA_CDL_LINES_V l1
99102 , fnd_lookup_values fvl35
99103 , (select rownum r from all_objects where rownum <= 30 and owner = p_apps_owner)
99104 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
99105 AND xet.event_class_code = C_EVENT_CLASS_CODE
99106 AND l1.event_id = xet.event_id
99107 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
99108 AND fvl35.lookup_code(+) = l1.LINE_TYPE
99109 AND fvl35.view_application_id(+) = 275
99110 AND fvl35.language(+) = USERENV('LANG')
99111
99112 )
99113 ;
99114 --
99115 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
99116
99117 trace
99118 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
99119 ,p_level => C_LEVEL_STATEMENT
99120 ,p_module => l_log_module);
99121
99122 END IF;
99123
99124
99125 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
99126 trace
99127 (p_msg => 'END of insert_sources_165'
99128 ,p_level => C_LEVEL_PROCEDURE
99129 ,p_module => l_log_module);
99130 END IF;
99131 EXCEPTION
99132 WHEN xla_exceptions_pkg.application_exception THEN
99133 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
99134 trace
99135 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
99136 ,p_level => C_LEVEL_EXCEPTION
99137 ,p_module => l_log_module);
99138 END IF;
99139 RAISE;
99140 WHEN OTHERS THEN
99141 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
99142 trace
99143 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
99144 ,p_level => C_LEVEL_EXCEPTION
99145 ,p_module => l_log_module);
99146 END IF;
99147 xla_exceptions_pkg.raise_message
99148 (p_location => 'XLA_00275_AAD_S_000015_PKG.insert_sources_165');
99149 END insert_sources_165;
99150 --
99151
99152 ---------------------------------------
99153 --
99154 -- PRIVATE FUNCTION
99155 -- EventClass_165
99156 --
99157 ----------------------------------------
99158 --
99159 FUNCTION EventClass_165
99160 (p_application_id IN NUMBER
99161 ,p_base_ledger_id IN NUMBER
99162 ,p_target_ledger_id IN NUMBER
99163 ,p_language IN VARCHAR2
99164 ,p_currency_code IN VARCHAR2
99165 ,p_sla_ledger_id IN NUMBER
99166 ,p_pad_start_date IN DATE
99167 ,p_pad_end_date IN DATE
99168 ,p_primary_ledger_id IN NUMBER)
99169 RETURN BOOLEAN IS
99170 --
99171 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'TOT_BURDENED_COST_ADJ_ALL';
99172 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'TOT_BURDENED_COST_ADJ';
99173
99174 l_calculate_acctd_flag VARCHAR2(1) :='N';
99175 l_calculate_g_l_flag VARCHAR2(1) :='N';
99176 --
99177 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
99178 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
99179 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
99180 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
99181 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
99182 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
99183 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
99184 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
99185 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
99186 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
99187 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
99188 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
99189 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
99190 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
99191 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
99192 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
99193 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
99194 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
99195 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
99196 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
99197 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
99198 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
99199 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
99203 l_previous_event_id NUMBER;
99200 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
99201
99202 l_event_id NUMBER;
99204 l_first_event_id NUMBER;
99205 l_last_event_id NUMBER;
99206
99207 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
99208 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
99209 --
99210 --
99211 l_result BOOLEAN := TRUE;
99212 l_rows NUMBER := 1000;
99213 l_event_type_name VARCHAR2(80) := 'All';
99214 l_event_class_name VARCHAR2(80) := 'Total Burdened Cost Adjustment';
99215 l_description VARCHAR2(4000);
99216 l_transaction_reversal NUMBER;
99217 l_ae_header_id NUMBER;
99218 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
99219 l_log_module VARCHAR2(240);
99220 --
99221 l_acct_reversal_source VARCHAR2(30);
99222 l_trx_reversal_source VARCHAR2(30);
99223
99224 l_continue_with_lines BOOLEAN := TRUE;
99225 --
99226 l_acc_rev_gl_date_source DATE; -- 4262811
99227 --
99228 type t_array_event_id is table of number index by binary_integer;
99229
99230 l_rec_array_event t_rec_array_event;
99231 l_null_rec_array_event t_rec_array_event;
99232 l_array_ae_header_id xla_number_array_type;
99233 l_actual_flag VARCHAR2(1) := NULL;
99234 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
99235 l_balance_type_code VARCHAR2(1) :=NULL;
99236 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
99237
99238 --
99239 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
99240 --
99241
99242 TYPE t_array_source_33 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
99243 TYPE t_array_source_75 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
99244
99245 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.BUDGET_CCID%TYPE INDEX BY BINARY_INTEGER;
99246 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
99247 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
99248 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
99249 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
99250 TYPE t_array_source_8 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
99251 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
99252 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
99253 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
99254 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
99255 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
99256 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
99257 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
99258 TYPE t_array_source_32 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
99259 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
99260 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
99261 TYPE t_array_source_36 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
99262 TYPE t_array_source_44 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
99263 TYPE t_array_source_52 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_BURDENED_COST%TYPE INDEX BY BINARY_INTEGER;
99264 TYPE t_array_source_53 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_BURDENED_COST%TYPE INDEX BY BINARY_INTEGER;
99265 TYPE t_array_source_54 IS TABLE OF PA_XLA_CDL_LINES_V.ENCUMBRANCE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
99266 TYPE t_array_source_55 IS TABLE OF PA_XLA_CDL_LINES_V.PA_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
99267 TYPE t_array_source_56 IS TABLE OF PA_XLA_CDL_LINES_V.PA_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
99268 TYPE t_array_source_57 IS TABLE OF PA_XLA_CDL_LINES_V.PA_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
99269 TYPE t_array_source_58 IS TABLE OF PA_XLA_CDL_LINES_V.PA_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
99270 TYPE t_array_source_59 IS TABLE OF PA_XLA_CDL_LINES_V.PA_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
99271 TYPE t_array_source_60 IS TABLE OF PA_XLA_CDL_LINES_V.PA_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
99272 TYPE t_array_source_61 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
99273 TYPE t_array_source_62 IS TABLE OF PA_XLA_CDL_LINES_V.ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
99274 TYPE t_array_source_63 IS TABLE OF PA_XLA_CDL_LINES_V.PROJ_ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
99275
99276 l_array_source_33 t_array_source_33;
99277 l_array_source_75 t_array_source_75;
99278
99279 l_array_source_3 t_array_source_3;
99280 l_array_source_4 t_array_source_4;
99281 l_array_source_5 t_array_source_5;
99282 l_array_source_6 t_array_source_6;
99283 l_array_source_7 t_array_source_7;
99284 l_array_source_8 t_array_source_8;
99285 l_array_source_23 t_array_source_23;
99286 l_array_source_24 t_array_source_24;
99287 l_array_source_26 t_array_source_26;
99288 l_array_source_28 t_array_source_28;
99289 l_array_source_29 t_array_source_29;
99290 l_array_source_30 t_array_source_30;
99291 l_array_source_31 t_array_source_31;
99292 l_array_source_32 t_array_source_32;
99293 l_array_source_34 t_array_source_34;
99294 l_array_source_35 t_array_source_35;
99295 l_array_source_35_meaning t_array_lookup_meaning;
99299 l_array_source_53 t_array_source_53;
99296 l_array_source_36 t_array_source_36;
99297 l_array_source_44 t_array_source_44;
99298 l_array_source_52 t_array_source_52;
99300 l_array_source_54 t_array_source_54;
99301 l_array_source_55 t_array_source_55;
99302 l_array_source_56 t_array_source_56;
99303 l_array_source_57 t_array_source_57;
99304 l_array_source_58 t_array_source_58;
99305 l_array_source_59 t_array_source_59;
99306 l_array_source_60 t_array_source_60;
99307 l_array_source_61 t_array_source_61;
99308 l_array_source_62 t_array_source_62;
99309 l_array_source_63 t_array_source_63;
99310
99311 --
99312 CURSOR header_cur
99313 IS
99314 SELECT /*+ leading(xet) cardinality(xet,1) */
99315 -- Event Class Code: TOT_BURDENED_COST_ADJ
99316 xet.entity_id
99317 ,xet.legal_entity_id
99318 ,xet.entity_code
99319 ,xet.transaction_number
99320 ,xet.event_id
99321 ,xet.event_class_code
99322 ,xet.event_type_code
99323 ,xet.event_number
99324 ,xet.event_date
99325 ,xet.transaction_date
99326 ,xet.reference_num_1
99327 ,xet.reference_num_2
99328 ,xet.reference_num_3
99329 ,xet.reference_num_4
99330 ,xet.reference_char_1
99331 ,xet.reference_char_2
99332 ,xet.reference_char_3
99333 ,xet.reference_char_4
99334 ,xet.reference_date_1
99335 ,xet.reference_date_2
99336 ,xet.reference_date_3
99337 ,xet.reference_date_4
99338 ,xet.event_created_by
99339 ,xet.budgetary_control_flag
99340 , h2.EXPENDITURE_ITEM_ID source_33
99341 , h2.GL_DATE source_75
99342 FROM xla_events_gt xet
99343 , PA_XLA_EXP_HEADER_V h2
99344 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
99345 and xet.event_class_code = C_EVENT_CLASS_CODE
99346 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
99347
99348 ORDER BY event_id
99349 ;
99350
99351
99352 --
99353 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
99354 IS
99355 SELECT /*+ leading(xet) cardinality(xet,1) */
99356 -- Event Class Code: TOT_BURDENED_COST_ADJ
99357 xet.entity_id
99358 ,xet.legal_entity_id
99359 ,xet.entity_code
99360 ,xet.transaction_number
99361 ,xet.event_id
99362 ,xet.event_class_code
99363 ,xet.event_type_code
99364 ,xet.event_number
99365 ,xet.event_date
99366 ,xet.transaction_date
99367 ,xet.reference_num_1
99368 ,xet.reference_num_2
99369 ,xet.reference_num_3
99370 ,xet.reference_num_4
99371 ,xet.reference_char_1
99372 ,xet.reference_char_2
99373 ,xet.reference_char_3
99374 ,xet.reference_char_4
99375 ,xet.reference_date_1
99376 ,xet.reference_date_2
99377 ,xet.reference_date_3
99378 ,xet.reference_date_4
99379 ,xet.event_created_by
99380 ,xet.budgetary_control_flag
99381 , l1.LINE_NUMBER
99382 , l1.BUDGET_CCID source_3
99383 , l1.COST_CCID source_4
99384 , l1.ALLOW_OVERRIDE_CCID_FLAG source_5
99385 , l1.ADJ_COST_CCID source_6
99386 , l1.COST_CLEARING_CCID source_7
99387 , l1.ADJ_COST_CLEARING_CCID source_8
99388 , l1.REVERSING_LINE_FLAG source_23
99389 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_24
99390 , l1.ENTERED_CURRENCY_CODE source_26
99391 , l1.EXCHANGE_RATE_DATE source_28
99392 , l1.EXCHANGE_RATE source_29
99393 , l1.EXCHANGE_RATE_TYPE source_30
99394 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_31
99395 , l1.USE_ACT_UPG_ATTRIB_FLAG source_32
99396 , l1.LINE_NUMBER source_34
99397 , l1.LINE_TYPE source_35
99398 , fvl35.meaning source_35_meaning
99399 , l1.LINE_NUM_REVERSED source_36
99400 , l1.USE_ENC_UPG_ATTRIB_FLAG source_44
99401 , l1.ENTERED_BURDENED_COST source_52
99402 , l1.ACCT_BURDENED_COST source_53
99403 , l1.ENCUMBRANCE_AMOUNT source_54
99404 , l1.PA_APPLICATION_ID source_55
99405 , l1.PA_DISTRIBUTION_TYPE source_56
99406 , l1.PA_ENTITY_CODE source_57
99407 , l1.PA_FIRST_DIST_ID source_58
99408 , l1.PA_FIRST_SYS_TRANS_ID source_59
99409 , l1.PA_SECOND_DIST_ID source_60
99410 , l1.ENC_UPG_CR_ACCT_CLASS source_61
99411 , l1.ENCUMBRANCE_TYPE_ID source_62
99412 , l1.PROJ_ENCUMBRANCE_TYPE_ID source_63
99413 FROM xla_events_gt xet
99414 , PA_XLA_CDL_LINES_V l1
99415 , fnd_lookup_values fvl35
99416 WHERE xet.event_id between x_first_event_id and x_last_event_id
99417 and xet.event_date between p_pad_start_date and p_pad_end_date
99418 and xet.event_class_code = C_EVENT_CLASS_CODE
99419 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
99420 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
99421 AND fvl35.lookup_code(+) = l1.LINE_TYPE
99422 AND fvl35.view_application_id(+) = 275
99423 AND fvl35.language(+) = USERENV('LANG')
99424 ;
99425
99426 --
99427 BEGIN
99428 IF g_log_enabled THEN
99429 l_log_module := C_DEFAULT_MODULE||'.EventClass_165';
99430 END IF;
99431 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
99432 trace
99433 (p_msg => 'BEGIN of EventClass_165'
99434 ,p_level => C_LEVEL_PROCEDURE
99435 ,p_module => l_log_module);
99436 END IF;
99437
99438 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
99439 trace
99440 (p_msg => 'p_application_id = '||p_application_id||
99441 ' - p_base_ledger_id = '||p_base_ledger_id||
99442 ' - p_target_ledger_id = '||p_target_ledger_id||
99443 ' - p_language = '||p_language||
99444 ' - p_currency_code = '||p_currency_code||
99445 ' - p_sla_ledger_id = '||p_sla_ledger_id
99449 --
99446 ,p_level => C_LEVEL_STATEMENT
99447 ,p_module => l_log_module);
99448 END IF;
99450 -- initialze arrays
99451 --
99452 g_array_event.DELETE;
99453 l_rec_array_event := l_null_rec_array_event;
99454 --
99455 --------------------------------------
99456 -- 4262811 Initialze MPA Line Number
99457 --------------------------------------
99458 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
99459
99460 --
99461
99462 --
99463 OPEN header_cur;
99464 --
99465 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
99466 trace
99467 (p_msg => 'SQL - FETCH header_cur'
99468 ,p_level => C_LEVEL_STATEMENT
99469 ,p_module => l_log_module);
99470 END IF;
99471 --
99472 LOOP
99473 FETCH header_cur BULK COLLECT INTO
99474 l_array_entity_id
99475 , l_array_legal_entity_id
99476 , l_array_entity_code
99477 , l_array_transaction_num
99478 , l_array_event_id
99479 , l_array_class_code
99480 , l_array_event_type
99481 , l_array_event_number
99482 , l_array_event_date
99483 , l_array_transaction_date
99484 , l_array_reference_num_1
99485 , l_array_reference_num_2
99486 , l_array_reference_num_3
99487 , l_array_reference_num_4
99488 , l_array_reference_char_1
99489 , l_array_reference_char_2
99490 , l_array_reference_char_3
99491 , l_array_reference_char_4
99492 , l_array_reference_date_1
99493 , l_array_reference_date_2
99494 , l_array_reference_date_3
99495 , l_array_reference_date_4
99496 , l_array_event_created_by
99497 , l_array_budgetary_control_flag
99498 , l_array_source_33
99499 , l_array_source_75
99500 LIMIT l_rows;
99501 --
99502 IF (C_LEVEL_EVENT >= g_log_level) THEN
99503 trace
99504 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
99505 ,p_level => C_LEVEL_EVENT
99506 ,p_module => l_log_module);
99507 END IF;
99508 --
99509 EXIT WHEN l_array_entity_id.COUNT = 0;
99510
99511 -- initialize arrays
99512 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
99513 XLA_AE_LINES_PKG.g_rec_lines := NULL;
99514
99515 --
99516 -- Bug 4458708
99517 --
99518 XLA_AE_LINES_PKG.g_LineNumber := 0;
99519
99520
99521 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
99522 g_last_hdr_idx := l_array_event_id.LAST;
99523 --
99524 -- loop for the headers. Each iteration is for each header extract row
99525 -- fetched in header cursor
99526 --
99527 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
99528
99529 --
99530 -- set event info as cache for other routines to refer event attributes
99531 --
99532 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
99533 (p_application_id => p_application_id
99534 ,p_primary_ledger_id => p_primary_ledger_id
99535 ,p_base_ledger_id => p_base_ledger_id
99536 ,p_target_ledger_id => p_target_ledger_id
99537 ,p_entity_id => l_array_entity_id(hdr_idx)
99538 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
99539 ,p_entity_code => l_array_entity_code(hdr_idx)
99540 ,p_transaction_num => l_array_transaction_num(hdr_idx)
99541 ,p_event_id => l_array_event_id(hdr_idx)
99542 ,p_event_class_code => l_array_class_code(hdr_idx)
99543 ,p_event_type_code => l_array_event_type(hdr_idx)
99544 ,p_event_number => l_array_event_number(hdr_idx)
99545 ,p_event_date => l_array_event_date(hdr_idx)
99546 ,p_transaction_date => l_array_transaction_date(hdr_idx)
99547 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
99548 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
99549 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
99550 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
99551 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
99552 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
99553 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
99554 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
99555 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
99556 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
99557 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
99558 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
99559 ,p_event_created_by => l_array_event_created_by(hdr_idx)
99560 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
99561
99562 --
99563 -- set the status of entry to C_VALID (0)
99564 --
99565 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
99566
99567 --
99568 -- initialize a row for ae header
99569 --
99570 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
99571
99572 l_event_id := l_array_event_id(hdr_idx);
99573
99574 --
99575 -- storing the hdr_idx for event. May be used by line cursor.
99576 --
99577 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
99578
99579 --
99580 -- store sources from header extract. This can be improved to
99581 -- store only those sources from header extract that may be used in lines
99582 --
99583
99584 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
99585 g_array_event(l_event_id).array_value_date('source_75') := l_array_source_75(hdr_idx);
99586
99587 --
99588 -- initilaize the status of ae headers for diffrent balance types
99589 -- the status is initialised to C_NOT_CREATED (2)
99590 --
99594
99591 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
99592 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
99593 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
99595 --
99596 -- call api to validate and store accounting attributes for header
99597 --
99598
99599 ------------------------------------------------------------
99600 -- Accrual Reversal : to get date for Standard Source (NONE)
99601 ------------------------------------------------------------
99602 l_acc_rev_gl_date_source := NULL;
99603
99604 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
99605 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_75');
99606
99607
99608 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
99609
99610 XLA_AE_HEADER_PKG.SetJeCategoryName;
99611
99612 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
99613 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
99614 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
99615 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
99616 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
99617
99618
99619 -- No header level analytical criteria
99620
99621 --
99622 --accounting attribute enhancement, bug 3612931
99623 --
99624 l_trx_reversal_source := SUBSTR(NULL, 1,30);
99625
99626 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
99627 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
99628
99629 xla_accounting_err_pkg.build_message
99630 (p_appli_s_name => 'XLA'
99631 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
99632 ,p_token_1 => 'ACCT_ATTR_NAME'
99633 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
99634 ,p_token_2 => 'PRODUCT_NAME'
99635 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
99636 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
99637 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
99638 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
99639
99640 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
99641 --
99642 -- following sets the accounting attributes needed to reverse
99643 -- accounting for a distributeion
99644 --
99645 xla_ae_lines_pkg.SetTrxReversalAttrs
99646 (p_event_id => l_event_id
99647 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
99648 ,p_trx_reversal_source => l_trx_reversal_source);
99649
99650 END IF;
99651
99652
99653 ----------------------------------------------------------------
99654 -- 4262811 - update the header statuses to invalid in need be
99655 ----------------------------------------------------------------
99656 --
99657 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
99658
99659
99660 -----------------------------------------------
99661 -- No accrual reversal for the event class/type
99662 -----------------------------------------------
99663 ----------------------------------------------------------------
99664
99665 --
99666 -- this ends the header loop iteration for one bulk fetch
99667 --
99668 END LOOP;
99669
99670 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
99671 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
99672
99673 --
99674 -- insert dummy rows into lines gt table that were created due to
99675 -- transaction reversals
99676 --
99677 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
99678 l_result := XLA_AE_LINES_PKG.InsertLines;
99679 END IF;
99680
99681 --
99682 -- reset the temp_line_num for each set of events fetched from header
99683 -- cursor rather than doing it for each new event in line cursor
99684 -- Bug 3939231
99685 --
99686 xla_ae_lines_pkg.g_temp_line_num := 0;
99687
99688
99689
99690 --
99691 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
99692 --
99693 --
99694 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
99695
99696 trace
99697 (p_msg => 'SQL - FETCH line_cur'
99698 ,p_level => C_LEVEL_STATEMENT
99699 ,p_module => l_log_module);
99700
99701 END IF;
99702 --
99703 --
99704 LOOP
99705 --
99706 FETCH line_cur BULK COLLECT INTO
99707 l_array_entity_id
99708 , l_array_legal_entity_id
99709 , l_array_entity_code
99710 , l_array_transaction_num
99711 , l_array_event_id
99712 , l_array_class_code
99713 , l_array_event_type
99714 , l_array_event_number
99715 , l_array_event_date
99716 , l_array_transaction_date
99717 , l_array_reference_num_1
99718 , l_array_reference_num_2
99719 , l_array_reference_num_3
99720 , l_array_reference_num_4
99721 , l_array_reference_char_1
99722 , l_array_reference_char_2
99723 , l_array_reference_char_3
99724 , l_array_reference_char_4
99725 , l_array_reference_date_1
99726 , l_array_reference_date_2
99727 , l_array_reference_date_3
99728 , l_array_reference_date_4
99729 , l_array_event_created_by
99730 , l_array_budgetary_control_flag
99731 , l_array_extract_line_num
99735 , l_array_source_6
99732 , l_array_source_3
99733 , l_array_source_4
99734 , l_array_source_5
99736 , l_array_source_7
99737 , l_array_source_8
99738 , l_array_source_23
99739 , l_array_source_24
99740 , l_array_source_26
99741 , l_array_source_28
99742 , l_array_source_29
99743 , l_array_source_30
99744 , l_array_source_31
99745 , l_array_source_32
99746 , l_array_source_34
99747 , l_array_source_35
99748 , l_array_source_35_meaning
99749 , l_array_source_36
99750 , l_array_source_44
99751 , l_array_source_52
99752 , l_array_source_53
99753 , l_array_source_54
99754 , l_array_source_55
99755 , l_array_source_56
99756 , l_array_source_57
99757 , l_array_source_58
99758 , l_array_source_59
99759 , l_array_source_60
99760 , l_array_source_61
99761 , l_array_source_62
99762 , l_array_source_63
99763 LIMIT l_rows;
99764
99765 --
99766 IF (C_LEVEL_EVENT >= g_log_level) THEN
99767 trace
99768 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
99769 ,p_level => C_LEVEL_EVENT
99770 ,p_module => l_log_module);
99771 END IF;
99772 --
99773 EXIT WHEN l_array_entity_id.count = 0;
99774
99775 XLA_AE_LINES_PKG.g_rec_lines := null;
99776
99777 --
99778 -- Bug 4458708
99779 --
99780 XLA_AE_LINES_PKG.g_LineNumber := 0;
99781 --
99782 --
99783
99784 FOR Idx IN 1..l_array_event_id.count LOOP
99785 --
99786 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
99787 --
99788 l_event_id := l_array_event_id(idx); -- 5648433
99789
99790 --
99791 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
99792 --
99793
99794 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
99795 (g_array_event(l_event_id).array_value_num('header_index'))
99796 ,'N'
99797 ) <> 'Y'
99798 THEN
99799 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
99800 trace
99801 (p_msg => 'Trancaction revesal option is not Y '
99802 ,p_level => C_LEVEL_STATEMENT
99803 ,p_module => l_log_module);
99804 END IF;
99805
99806 --
99807 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
99808 --
99809 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
99810 --
99811 -- set event info as cache for other routines to refer event attributes
99812 --
99813
99814 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
99815 l_previous_event_id := l_event_id;
99816
99817 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
99818 (p_application_id => p_application_id
99819 ,p_primary_ledger_id => p_primary_ledger_id
99820 ,p_base_ledger_id => p_base_ledger_id
99821 ,p_target_ledger_id => p_target_ledger_id
99822 ,p_entity_id => l_array_entity_id(Idx)
99823 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
99824 ,p_entity_code => l_array_entity_code(Idx)
99825 ,p_transaction_num => l_array_transaction_num(Idx)
99826 ,p_event_id => l_array_event_id(Idx)
99827 ,p_event_class_code => l_array_class_code(Idx)
99828 ,p_event_type_code => l_array_event_type(Idx)
99829 ,p_event_number => l_array_event_number(Idx)
99830 ,p_event_date => l_array_event_date(Idx)
99831 ,p_transaction_date => l_array_transaction_date(Idx)
99832 ,p_reference_num_1 => l_array_reference_num_1(Idx)
99833 ,p_reference_num_2 => l_array_reference_num_2(Idx)
99834 ,p_reference_num_3 => l_array_reference_num_3(Idx)
99835 ,p_reference_num_4 => l_array_reference_num_4(Idx)
99836 ,p_reference_char_1 => l_array_reference_char_1(Idx)
99837 ,p_reference_char_2 => l_array_reference_char_2(Idx)
99838 ,p_reference_char_3 => l_array_reference_char_3(Idx)
99839 ,p_reference_char_4 => l_array_reference_char_4(Idx)
99840 ,p_reference_date_1 => l_array_reference_date_1(Idx)
99841 ,p_reference_date_2 => l_array_reference_date_2(Idx)
99842 ,p_reference_date_3 => l_array_reference_date_3(Idx)
99843 ,p_reference_date_4 => l_array_reference_date_4(Idx)
99844 ,p_event_created_by => l_array_event_created_by(Idx)
99845 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
99846 --
99847 END IF;
99848
99849
99850
99851 --
99852 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
99853
99854 l_acct_reversal_source := SUBSTR(l_array_source_23(Idx), 1,30);
99855
99856 IF l_continue_with_lines THEN
99857 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
99858 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
99859
99860 xla_accounting_err_pkg.build_message
99861 (p_appli_s_name => 'XLA'
99862 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
99863 ,p_token_1 => 'LINE_NUMBER'
99864 ,p_value_1 => l_array_extract_line_num(Idx)
99865 ,p_token_2 => 'PRODUCT_NAME'
99866 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
99867 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
99868 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
99872 --
99869 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
99870
99871 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
99873 -- following sets the accounting attributes needed to reverse
99874 -- accounting for a distributeion
99875 --
99876
99877 --
99878 -- 5217187
99879 --
99880 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
99881 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
99882 g_array_event(l_event_id).array_value_num('header_index'));
99883 --
99884 --
99885
99886 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
99887 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_23(Idx);
99888 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
99889 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_24(Idx);
99890 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
99891 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_7(Idx));
99892 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
99893 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_52(Idx);
99894 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
99895 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_26(Idx);
99896 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
99897 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_53(Idx);
99898 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
99899 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_28(Idx);
99900 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
99901 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_29(Idx);
99902 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
99903 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_30(Idx);
99904 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
99905 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_31(Idx);
99906 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
99907 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_4(Idx));
99908 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
99909 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_52(Idx);
99910 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
99911 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_26(Idx);
99912 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
99913 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_53(Idx);
99914 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
99915 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_28(Idx);
99916 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
99917 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_29(Idx);
99918 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
99919 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_30(Idx);
99920 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
99921 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_32(Idx);
99922 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
99923 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_33');
99924 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
99925 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_34(Idx);
99926 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
99927 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_35(Idx);
99928 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ACCT_CLASS';
99929 l_rec_rev_acct_attrs.array_char_value(23) := l_array_source_61(Idx);
99930 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_CCID';
99931 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_3(Idx);
99932 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_AMT';
99933 l_rec_rev_acct_attrs.array_num_value(25) := l_array_source_54(Idx);
99934 l_rec_rev_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_ENTERED_CURR';
99935 l_rec_rev_acct_attrs.array_char_value(26) :=
99936 xla_ae_sources_pkg.GetSystemSourceChar(
99937 p_source_code => 'XLA_CURRENCY_CODE'
99938 , p_source_type_code => 'Y'
99939 , p_source_application_id => 602
99940 );
99941 l_rec_rev_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_DR_LEDGER_AMT';
99942 l_rec_rev_acct_attrs.array_num_value(27) := l_array_source_54(Idx);
99943 l_rec_rev_acct_attrs.array_acct_attr_code(28) := 'ENC_UPG_OPTION';
99944 l_rec_rev_acct_attrs.array_char_value(28) := l_array_source_44(Idx);
99945 l_rec_rev_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID1';
99946 l_rec_rev_acct_attrs.array_num_value(29) := g_array_event(l_event_id).array_value_num('source_33');
99947 l_rec_rev_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID2';
99948 l_rec_rev_acct_attrs.array_num_value(30) := l_array_source_36(Idx);
99949 l_rec_rev_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
99950 l_rec_rev_acct_attrs.array_char_value(31) := l_array_source_35(Idx);
99951 l_rec_rev_acct_attrs.array_acct_attr_code(32) := 'UPG_CR_ENC_TYPE_ID';
99952 l_rec_rev_acct_attrs.array_num_value(32) := l_array_source_62(Idx);
99953 l_rec_rev_acct_attrs.array_acct_attr_code(33) := 'UPG_DR_ENC_TYPE_ID';
99954 l_rec_rev_acct_attrs.array_num_value(33) := l_array_source_63(Idx);
99955
99956
99957 xla_ae_lines_pkg.SetAcctReversalAttrs
99961 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
99958 (p_event_id => l_event_id
99959 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
99960 ,p_calculate_acctd_flag => l_calculate_acctd_flag
99962 END IF;
99963
99964 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
99965 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
99966
99967 --
99968 AcctLineType_128 (
99969 p_application_id => p_application_id
99970 ,p_event_id => l_event_id
99971 ,p_calculate_acctd_flag => l_calculate_acctd_flag
99972 ,p_calculate_g_l_flag => l_calculate_g_l_flag
99973 ,p_actual_flag => l_actual_flag
99974 ,p_balance_type_code => l_balance_type_code
99975 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
99976
99977 , p_source_3 => l_array_source_3(Idx)
99978 , p_source_4 => l_array_source_4(Idx)
99979 , p_source_5 => l_array_source_5(Idx)
99980 , p_source_6 => l_array_source_6(Idx)
99981 , p_source_7 => l_array_source_7(Idx)
99982 , p_source_23 => l_array_source_23(Idx)
99983 , p_source_24 => l_array_source_24(Idx)
99984 , p_source_26 => l_array_source_26(Idx)
99985 , p_source_28 => l_array_source_28(Idx)
99986 , p_source_29 => l_array_source_29(Idx)
99987 , p_source_30 => l_array_source_30(Idx)
99988 , p_source_31 => l_array_source_31(Idx)
99989 , p_source_32 => l_array_source_32(Idx)
99990 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
99991 , p_source_34 => l_array_source_34(Idx)
99992 , p_source_35 => l_array_source_35(Idx)
99993 , p_source_35_meaning => l_array_source_35_meaning(Idx)
99994 , p_source_36 => l_array_source_36(Idx)
99995 , p_source_44 => l_array_source_44(Idx)
99996 , p_source_52 => l_array_source_52(Idx)
99997 , p_source_53 => l_array_source_53(Idx)
99998 , p_source_54 => l_array_source_54(Idx)
99999 , p_source_55 => l_array_source_55(Idx)
100000 , p_source_56 => l_array_source_56(Idx)
100001 , p_source_57 => l_array_source_57(Idx)
100002 , p_source_58 => l_array_source_58(Idx)
100003 , p_source_59 => l_array_source_59(Idx)
100004 , p_source_60 => l_array_source_60(Idx)
100005 , p_source_61 => l_array_source_61(Idx)
100006 , p_source_62 => l_array_source_62(Idx)
100007 , p_source_63 => l_array_source_63(Idx)
100008 );
100009 If(l_balance_type_code = 'A') THEN
100010 l_actual_gain_loss_ref := l_gain_or_loss_ref;
100011 END IF;
100012
100013 --
100014
100015
100016 --
100017 AcctLineType_130 (
100018 p_application_id => p_application_id
100019 ,p_event_id => l_event_id
100020 ,p_calculate_acctd_flag => l_calculate_acctd_flag
100021 ,p_calculate_g_l_flag => l_calculate_g_l_flag
100022 ,p_actual_flag => l_actual_flag
100023 ,p_balance_type_code => l_balance_type_code
100024 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
100025
100026 , p_source_3 => l_array_source_3(Idx)
100027 , p_source_4 => l_array_source_4(Idx)
100028 , p_source_5 => l_array_source_5(Idx)
100029 , p_source_7 => l_array_source_7(Idx)
100030 , p_source_8 => l_array_source_8(Idx)
100031 , p_source_23 => l_array_source_23(Idx)
100032 , p_source_24 => l_array_source_24(Idx)
100033 , p_source_26 => l_array_source_26(Idx)
100034 , p_source_28 => l_array_source_28(Idx)
100035 , p_source_29 => l_array_source_29(Idx)
100036 , p_source_30 => l_array_source_30(Idx)
100037 , p_source_31 => l_array_source_31(Idx)
100038 , p_source_32 => l_array_source_32(Idx)
100039 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
100040 , p_source_34 => l_array_source_34(Idx)
100041 , p_source_35 => l_array_source_35(Idx)
100042 , p_source_35_meaning => l_array_source_35_meaning(Idx)
100043 , p_source_36 => l_array_source_36(Idx)
100044 , p_source_44 => l_array_source_44(Idx)
100045 , p_source_52 => l_array_source_52(Idx)
100046 , p_source_53 => l_array_source_53(Idx)
100047 , p_source_54 => l_array_source_54(Idx)
100048 , p_source_55 => l_array_source_55(Idx)
100049 , p_source_56 => l_array_source_56(Idx)
100050 , p_source_57 => l_array_source_57(Idx)
100051 , p_source_58 => l_array_source_58(Idx)
100052 , p_source_59 => l_array_source_59(Idx)
100053 , p_source_60 => l_array_source_60(Idx)
100054 , p_source_61 => l_array_source_61(Idx)
100055 , p_source_62 => l_array_source_62(Idx)
100056 , p_source_63 => l_array_source_63(Idx)
100057 );
100058 If(l_balance_type_code = 'A') THEN
100059 l_actual_gain_loss_ref := l_gain_or_loss_ref;
100060 END IF;
100061
100062 --
100063
100064
100065 --
100066 AcctLineType_131 (
100067 p_application_id => p_application_id
100068 ,p_event_id => l_event_id
100069 ,p_calculate_acctd_flag => l_calculate_acctd_flag
100070 ,p_calculate_g_l_flag => l_calculate_g_l_flag
100071 ,p_actual_flag => l_actual_flag
100072 ,p_balance_type_code => l_balance_type_code
100073 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
100074
100075 , p_source_3 => l_array_source_3(Idx)
100076 , p_source_4 => l_array_source_4(Idx)
100077 , p_source_5 => l_array_source_5(Idx)
100078 , p_source_6 => l_array_source_6(Idx)
100079 , p_source_7 => l_array_source_7(Idx)
100080 , p_source_23 => l_array_source_23(Idx)
100081 , p_source_24 => l_array_source_24(Idx)
100082 , p_source_26 => l_array_source_26(Idx)
100083 , p_source_28 => l_array_source_28(Idx)
100084 , p_source_29 => l_array_source_29(Idx)
100085 , p_source_30 => l_array_source_30(Idx)
100086 , p_source_31 => l_array_source_31(Idx)
100087 , p_source_32 => l_array_source_32(Idx)
100088 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
100089 , p_source_34 => l_array_source_34(Idx)
100090 , p_source_35 => l_array_source_35(Idx)
100091 , p_source_35_meaning => l_array_source_35_meaning(Idx)
100092 , p_source_36 => l_array_source_36(Idx)
100093 , p_source_44 => l_array_source_44(Idx)
100094 , p_source_52 => l_array_source_52(Idx)
100095 , p_source_53 => l_array_source_53(Idx)
100096 , p_source_54 => l_array_source_54(Idx)
100100 , p_source_58 => l_array_source_58(Idx)
100097 , p_source_55 => l_array_source_55(Idx)
100098 , p_source_56 => l_array_source_56(Idx)
100099 , p_source_57 => l_array_source_57(Idx)
100101 , p_source_59 => l_array_source_59(Idx)
100102 , p_source_60 => l_array_source_60(Idx)
100103 , p_source_61 => l_array_source_61(Idx)
100104 , p_source_62 => l_array_source_62(Idx)
100105 , p_source_63 => l_array_source_63(Idx)
100106 );
100107 If(l_balance_type_code = 'A') THEN
100108 l_actual_gain_loss_ref := l_gain_or_loss_ref;
100109 END IF;
100110
100111 --
100112
100113
100114 --
100115 AcctLineType_134 (
100116 p_application_id => p_application_id
100117 ,p_event_id => l_event_id
100118 ,p_calculate_acctd_flag => l_calculate_acctd_flag
100119 ,p_calculate_g_l_flag => l_calculate_g_l_flag
100120 ,p_actual_flag => l_actual_flag
100121 ,p_balance_type_code => l_balance_type_code
100122 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
100123
100124 , p_source_3 => l_array_source_3(Idx)
100125 , p_source_4 => l_array_source_4(Idx)
100126 , p_source_5 => l_array_source_5(Idx)
100127 , p_source_7 => l_array_source_7(Idx)
100128 , p_source_8 => l_array_source_8(Idx)
100129 , p_source_23 => l_array_source_23(Idx)
100130 , p_source_24 => l_array_source_24(Idx)
100131 , p_source_26 => l_array_source_26(Idx)
100132 , p_source_28 => l_array_source_28(Idx)
100133 , p_source_29 => l_array_source_29(Idx)
100134 , p_source_30 => l_array_source_30(Idx)
100135 , p_source_31 => l_array_source_31(Idx)
100136 , p_source_32 => l_array_source_32(Idx)
100137 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
100138 , p_source_34 => l_array_source_34(Idx)
100139 , p_source_35 => l_array_source_35(Idx)
100140 , p_source_35_meaning => l_array_source_35_meaning(Idx)
100141 , p_source_36 => l_array_source_36(Idx)
100142 , p_source_44 => l_array_source_44(Idx)
100143 , p_source_52 => l_array_source_52(Idx)
100144 , p_source_53 => l_array_source_53(Idx)
100145 , p_source_54 => l_array_source_54(Idx)
100146 , p_source_55 => l_array_source_55(Idx)
100147 , p_source_56 => l_array_source_56(Idx)
100148 , p_source_57 => l_array_source_57(Idx)
100149 , p_source_58 => l_array_source_58(Idx)
100150 , p_source_59 => l_array_source_59(Idx)
100151 , p_source_60 => l_array_source_60(Idx)
100152 , p_source_61 => l_array_source_61(Idx)
100153 , p_source_62 => l_array_source_62(Idx)
100154 , p_source_63 => l_array_source_63(Idx)
100155 );
100156 If(l_balance_type_code = 'A') THEN
100157 l_actual_gain_loss_ref := l_gain_or_loss_ref;
100158 END IF;
100159
100160 --
100161
100162 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
100163 -- or secondary ledger that has different currency with primary
100164 -- or alc that is calculated by sla
100165 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
100166 (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'))
100167
100168 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
100169 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
100170 AND (l_actual_flag = 'A')) THEN
100171 XLA_AE_LINES_PKG.CreateGainOrLossLines(
100172 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
100173 ,p_application_id => p_application_id
100174 ,p_amb_context_code => 'DEFAULT'
100175 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
100176 ,p_event_class_code => C_EVENT_CLASS_CODE
100177 ,p_event_type_code => C_EVENT_TYPE_CODE
100178
100179 ,p_gain_ccid => -1
100180 ,p_loss_ccid => -1
100181
100182 ,p_actual_flag => l_actual_flag
100183 ,p_enc_flag => null
100184 ,p_actual_g_l_ref => l_actual_gain_loss_ref
100185 ,p_enc_g_l_ref => null
100186 );
100187 END IF;
100188 END IF;
100189 END IF;
100190
100191 ELSE
100192 --
100193 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
100194 --
100195 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
100196 trace
100197 (p_msg => 'Trancaction revesal option is Y'
100198 ,p_level => C_LEVEL_STATEMENT
100199 ,p_module => l_log_module);
100200 END IF;
100201 END IF;
100202
100203 END LOOP;
100204 l_result := XLA_AE_LINES_PKG.InsertLines ;
100205 end loop;
100206 close line_cur;
100207
100208
100209 --
100210 -- insert headers into xla_ae_headers_gt table
100211 --
100212 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
100213
100214 -- insert into errors table here.
100215
100216 END LOOP;
100217
100218 --
100219 -- 4865292
100220 --
100221 -- Compare g_hdr_extract_count with event count in
100222 -- CreateHeadersAndLines.
100223 --
100224 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
100225
100226 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
100227 trace (p_msg => '# rows extracted from header extract objects '
100228 || ' (running total): '
100229 || g_hdr_extract_count
100230 ,p_level => C_LEVEL_STATEMENT
100231 ,p_module => l_log_module);
100232 END IF;
100233
100234 CLOSE header_cur;
100235 --
100236
100237 --
100238 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
100239 trace
100240 (p_msg => 'END of EventClass_165'
100241 ,p_level => C_LEVEL_PROCEDURE
100242 ,p_module => l_log_module);
100243 END IF;
100244 --
100245 RETURN l_result;
100246 EXCEPTION
100250
100247 WHEN xla_exceptions_pkg.application_exception THEN
100248
100249 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
100251
100252 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
100253
100254 RAISE;
100255 WHEN OTHERS THEN
100256 xla_exceptions_pkg.raise_message
100257 (p_location => 'XLA_00275_AAD_S_000015_PKG.EventClass_165');
100258 END EventClass_165;
100259 --
100260
100261 ---------------------------------------
100262 --
100263 -- PRIVATE PROCEDURE
100264 -- insert_sources_166
100265 --
100266 ----------------------------------------
100267 --
100268 PROCEDURE insert_sources_166(
100269 p_target_ledger_id IN NUMBER
100270 , p_language IN VARCHAR2
100271 , p_sla_ledger_id IN NUMBER
100272 , p_pad_start_date IN DATE
100273 , p_pad_end_date IN DATE
100274 )
100275 IS
100276
100277 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'TOT_BURDENED_COST_ALL';
100278 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'TOT_BURDENED_COST';
100279 p_apps_owner VARCHAR2(30);
100280 l_log_module VARCHAR2(240);
100281 BEGIN
100282 IF g_log_enabled THEN
100283 l_log_module := C_DEFAULT_MODULE||'.insert_sources_166';
100284 END IF;
100285 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
100286
100287 trace
100288 (p_msg => 'BEGIN of insert_sources_166'
100289 ,p_level => C_LEVEL_PROCEDURE
100290 ,p_module => l_log_module);
100291
100292 END IF;
100293
100294 -- select APPS owner
100295 SELECT oracle_username
100296 INTO p_apps_owner
100297 FROM fnd_oracle_userid
100298 WHERE read_only_flag = 'U'
100299 ;
100300
100301 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
100302 trace
100303 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
100304 ' - p_language = '||p_language||
100305 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
100306 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
100307 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
100308 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
100309 ,p_level => C_LEVEL_STATEMENT
100310 ,p_module => l_log_module);
100311 END IF;
100312
100313
100314 --
100315 INSERT INTO xla_diag_sources --hdr2
100316 (
100317 event_id
100318 , ledger_id
100319 , sla_ledger_id
100320 , description_language
100321 , object_name
100322 , object_type_code
100323 , line_number
100324 , source_application_id
100325 , source_type_code
100326 , source_code
100327 , source_value
100328 , source_meaning
100329 , created_by
100330 , creation_date
100331 , last_update_date
100332 , last_updated_by
100333 , last_update_login
100334 , program_update_date
100335 , program_application_id
100336 , program_id
100337 , request_id
100338 )
100339 SELECT
100340 event_id
100341 , p_target_ledger_id
100342 , p_sla_ledger_id
100343 , p_language
100344 , object_name
100345 , object_type_code
100346 , line_number
100347 , source_application_id
100348 , source_type_code
100349 , source_code
100350 , SUBSTR(source_value ,1,1996)
100351 , SUBSTR(source_meaning ,1,200)
100352 , xla_environment_pkg.g_Usr_Id
100353 , TRUNC(SYSDATE)
100354 , TRUNC(SYSDATE)
100355 , xla_environment_pkg.g_Usr_Id
100356 , xla_environment_pkg.g_Login_Id
100357 , TRUNC(SYSDATE)
100358 , xla_environment_pkg.g_Prog_Appl_Id
100359 , xla_environment_pkg.g_Prog_Id
100360 , xla_environment_pkg.g_Req_Id
100361 FROM (
100362 SELECT xet.event_id event_id
100363 , 0 line_number
100364 , CASE r
100365 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
100366 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
100367
100368 ELSE null
100369 END object_name
100370 , CASE r
100371 WHEN 1 THEN 'HEADER'
100372 WHEN 2 THEN 'HEADER'
100373
100374 ELSE null
100375 END object_type_code
100376 , CASE r
100377 WHEN 1 THEN '275'
100378 WHEN 2 THEN '275'
100379
100380 ELSE null
100381 END source_application_id
100382 , 'S' source_type_code
100383 , CASE r
100384 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
100385 WHEN 2 THEN 'GL_DATE'
100386
100387 ELSE null
100388 END source_code
100389 , CASE r
100390 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
100391 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
100392
100393 ELSE null
100394 END source_value
100395 , null source_meaning
100396 FROM xla_events_gt xet
100397 , PA_XLA_EXP_HEADER_V h2
100398 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
100399 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
100400 AND xet.event_class_code = C_EVENT_CLASS_CODE
100401 AND h2.event_id = xet.event_id
100405 --
100402
100403 )
100404 ;
100406 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
100407
100408 trace
100409 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
100410 ,p_level => C_LEVEL_STATEMENT
100411 ,p_module => l_log_module);
100412
100413 END IF;
100414 --
100415
100416
100417
100418 --
100419 INSERT INTO xla_diag_sources --line2
100420 (
100421 event_id
100422 , ledger_id
100423 , sla_ledger_id
100424 , description_language
100425 , object_name
100426 , object_type_code
100427 , line_number
100428 , source_application_id
100429 , source_type_code
100430 , source_code
100431 , source_value
100432 , source_meaning
100433 , created_by
100434 , creation_date
100435 , last_update_date
100436 , last_updated_by
100437 , last_update_login
100438 , program_update_date
100439 , program_application_id
100440 , program_id
100441 , request_id
100442 )
100443 SELECT event_id
100444 , p_target_ledger_id
100445 , p_sla_ledger_id
100446 , p_language
100447 , object_name
100448 , object_type_code
100449 , line_number
100450 , source_application_id
100451 , source_type_code
100452 , source_code
100453 , SUBSTR(source_value,1,1996)
100454 , SUBSTR(source_meaning ,1,200)
100455 , xla_environment_pkg.g_Usr_Id
100456 , TRUNC(SYSDATE)
100457 , TRUNC(SYSDATE)
100458 , xla_environment_pkg.g_Usr_Id
100459 , xla_environment_pkg.g_Login_Id
100460 , TRUNC(SYSDATE)
100461 , xla_environment_pkg.g_Prog_Appl_Id
100462 , xla_environment_pkg.g_Prog_Id
100463 , xla_environment_pkg.g_Req_Id
100464 FROM (
100465 SELECT xet.event_id event_id
100466 , l1.line_number line_number
100467 , CASE r
100468 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
100469 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
100470 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
100471 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
100472 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
100473 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
100474 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
100475 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
100476 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
100477 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
100478 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
100479 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
100480 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
100481 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
100482 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
100483 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
100484 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
100485 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
100486 WHEN 19 THEN 'PA_XLA_CDL_LINES_V'
100487 WHEN 20 THEN 'PA_XLA_CDL_LINES_V'
100488 WHEN 21 THEN 'PA_XLA_CDL_LINES_V'
100489 WHEN 22 THEN 'PA_XLA_CDL_LINES_V'
100490 WHEN 23 THEN 'PA_XLA_CDL_LINES_V'
100491 WHEN 24 THEN 'PA_XLA_CDL_LINES_V'
100492 WHEN 25 THEN 'PA_XLA_CDL_LINES_V'
100493 WHEN 26 THEN 'PA_XLA_CDL_LINES_V'
100494 WHEN 27 THEN 'PA_XLA_CDL_LINES_V'
100495 WHEN 28 THEN 'PA_XLA_CDL_LINES_V'
100496 WHEN 29 THEN 'PA_XLA_CDL_LINES_V'
100497 WHEN 30 THEN 'PA_XLA_CDL_LINES_V'
100498 WHEN 31 THEN 'PA_XLA_CDL_LINES_V'
100499
100500 ELSE null
100501 END object_name
100502 , CASE r
100503 WHEN 1 THEN 'LINE'
100504 WHEN 2 THEN 'LINE'
100505 WHEN 3 THEN 'LINE'
100506 WHEN 4 THEN 'LINE'
100507 WHEN 5 THEN 'LINE'
100508 WHEN 6 THEN 'LINE'
100509 WHEN 7 THEN 'LINE'
100510 WHEN 8 THEN 'LINE'
100511 WHEN 9 THEN 'LINE'
100512 WHEN 10 THEN 'LINE'
100513 WHEN 11 THEN 'LINE'
100514 WHEN 12 THEN 'LINE'
100515 WHEN 13 THEN 'LINE'
100516 WHEN 14 THEN 'LINE'
100517 WHEN 15 THEN 'LINE'
100518 WHEN 16 THEN 'LINE'
100519 WHEN 17 THEN 'LINE'
100520 WHEN 18 THEN 'LINE'
100521 WHEN 19 THEN 'LINE'
100522 WHEN 20 THEN 'LINE'
100523 WHEN 21 THEN 'LINE'
100524 WHEN 22 THEN 'LINE'
100525 WHEN 23 THEN 'LINE'
100526 WHEN 24 THEN 'LINE'
100527 WHEN 25 THEN 'LINE'
100528 WHEN 26 THEN 'LINE'
100529 WHEN 27 THEN 'LINE'
100530 WHEN 28 THEN 'LINE'
100531 WHEN 29 THEN 'LINE'
100532 WHEN 30 THEN 'LINE'
100533 WHEN 31 THEN 'LINE'
100534
100535 ELSE null
100536 END object_type_code
100537 , CASE r
100538 WHEN 1 THEN '275'
100539 WHEN 2 THEN '275'
100540 WHEN 3 THEN '275'
100541 WHEN 4 THEN '275'
100542 WHEN 5 THEN '275'
100543 WHEN 6 THEN '275'
100544 WHEN 7 THEN '275'
100545 WHEN 8 THEN '275'
100546 WHEN 9 THEN '275'
100547 WHEN 10 THEN '275'
100548 WHEN 11 THEN '275'
100549 WHEN 12 THEN '275'
100553 WHEN 16 THEN '275'
100550 WHEN 13 THEN '275'
100551 WHEN 14 THEN '275'
100552 WHEN 15 THEN '275'
100554 WHEN 17 THEN '275'
100555 WHEN 18 THEN '275'
100556 WHEN 19 THEN '275'
100557 WHEN 20 THEN '275'
100558 WHEN 21 THEN '275'
100559 WHEN 22 THEN '275'
100560 WHEN 23 THEN '275'
100561 WHEN 24 THEN '275'
100562 WHEN 25 THEN '275'
100563 WHEN 26 THEN '275'
100564 WHEN 27 THEN '275'
100565 WHEN 28 THEN '275'
100566 WHEN 29 THEN '275'
100567 WHEN 30 THEN '275'
100568 WHEN 31 THEN '275'
100569
100570 ELSE null
100571 END source_application_id
100572 , 'S' source_type_code
100573 , CASE r
100574 WHEN 1 THEN 'BUDGET_CCID'
100575 WHEN 2 THEN 'COST_CCID'
100576 WHEN 3 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
100577 WHEN 4 THEN 'ADJ_COST_CCID'
100578 WHEN 5 THEN 'COST_CLEARING_CCID'
100579 WHEN 6 THEN 'ADJ_COST_CLEARING_CCID'
100580 WHEN 7 THEN 'REVERSING_LINE_FLAG'
100581 WHEN 8 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
100582 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
100583 WHEN 10 THEN 'EXCHANGE_RATE_DATE'
100584 WHEN 11 THEN 'EXCHANGE_RATE'
100585 WHEN 12 THEN 'EXCHANGE_RATE_TYPE'
100586 WHEN 13 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
100587 WHEN 14 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
100588 WHEN 15 THEN 'LINE_NUMBER'
100589 WHEN 16 THEN 'LINE_TYPE'
100590 WHEN 17 THEN 'LINE_NUM_REVERSED'
100591 WHEN 18 THEN 'ENC_UPG_DR_ACCT_CLASS'
100592 WHEN 19 THEN 'USE_ENC_UPG_ATTRIB_FLAG'
100593 WHEN 20 THEN 'ENTERED_BURDENED_COST'
100594 WHEN 21 THEN 'ACCT_BURDENED_COST'
100595 WHEN 22 THEN 'ENCUMBRANCE_AMOUNT'
100596 WHEN 23 THEN 'PA_APPLICATION_ID'
100597 WHEN 24 THEN 'PA_DISTRIBUTION_TYPE'
100598 WHEN 25 THEN 'PA_ENTITY_CODE'
100599 WHEN 26 THEN 'PA_FIRST_DIST_ID'
100600 WHEN 27 THEN 'PA_FIRST_SYS_TRANS_ID'
100601 WHEN 28 THEN 'PA_SECOND_DIST_ID'
100602 WHEN 29 THEN 'ENC_UPG_CR_ACCT_CLASS'
100603 WHEN 30 THEN 'ENCUMBRANCE_TYPE_ID'
100604 WHEN 31 THEN 'PROJ_ENCUMBRANCE_TYPE_ID'
100605
100606 ELSE null
100607 END source_code
100608 , CASE r
100609 WHEN 1 THEN TO_CHAR(l1.BUDGET_CCID)
100610 WHEN 2 THEN TO_CHAR(l1.COST_CCID)
100611 WHEN 3 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
100612 WHEN 4 THEN TO_CHAR(l1.ADJ_COST_CCID)
100613 WHEN 5 THEN TO_CHAR(l1.COST_CLEARING_CCID)
100614 WHEN 6 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
100615 WHEN 7 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
100616 WHEN 8 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
100617 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
100618 WHEN 10 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
100619 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE)
100620 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
100621 WHEN 13 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
100622 WHEN 14 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
100623 WHEN 15 THEN TO_CHAR(l1.LINE_NUMBER)
100624 WHEN 16 THEN TO_CHAR(l1.LINE_TYPE)
100625 WHEN 17 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
100626 WHEN 18 THEN TO_CHAR(l1.ENC_UPG_DR_ACCT_CLASS)
100627 WHEN 19 THEN TO_CHAR(l1.USE_ENC_UPG_ATTRIB_FLAG)
100628 WHEN 20 THEN TO_CHAR(l1.ENTERED_BURDENED_COST)
100629 WHEN 21 THEN TO_CHAR(l1.ACCT_BURDENED_COST)
100630 WHEN 22 THEN TO_CHAR(l1.ENCUMBRANCE_AMOUNT)
100631 WHEN 23 THEN TO_CHAR(l1.PA_APPLICATION_ID)
100632 WHEN 24 THEN TO_CHAR(l1.PA_DISTRIBUTION_TYPE)
100633 WHEN 25 THEN TO_CHAR(l1.PA_ENTITY_CODE)
100634 WHEN 26 THEN TO_CHAR(l1.PA_FIRST_DIST_ID)
100635 WHEN 27 THEN TO_CHAR(l1.PA_FIRST_SYS_TRANS_ID)
100636 WHEN 28 THEN TO_CHAR(l1.PA_SECOND_DIST_ID)
100637 WHEN 29 THEN TO_CHAR(l1.ENC_UPG_CR_ACCT_CLASS)
100638 WHEN 30 THEN TO_CHAR(l1.ENCUMBRANCE_TYPE_ID)
100639 WHEN 31 THEN TO_CHAR(l1.PROJ_ENCUMBRANCE_TYPE_ID)
100640
100641 ELSE null
100642 END source_value
100643 , CASE r
100644 WHEN 3 THEN XLA_00275_AAD_S_000015_PKG.GetMeaning(
100645 103371
100646 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
100647 ,'ALLOW_OVERRIDE_CCID_FLAG'
100648 ,'S'
100649 ,275)
100650 WHEN 16 THEN fvl35.meaning
100651
100652 ELSE null
100653 END source_meaning
100654 FROM xla_events_gt xet
100655 , PA_XLA_CDL_LINES_V l1
100656 , fnd_lookup_values fvl35
100657 , (select rownum r from all_objects where rownum <= 31 and owner = p_apps_owner)
100658 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
100659 AND xet.event_class_code = C_EVENT_CLASS_CODE
100660 AND l1.event_id = xet.event_id
100661 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
100662 AND fvl35.lookup_code(+) = l1.LINE_TYPE
100666 )
100663 AND fvl35.view_application_id(+) = 275
100664 AND fvl35.language(+) = USERENV('LANG')
100665
100667 ;
100668 --
100669 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
100670
100671 trace
100672 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
100673 ,p_level => C_LEVEL_STATEMENT
100674 ,p_module => l_log_module);
100675
100676 END IF;
100677
100678
100679 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
100680 trace
100681 (p_msg => 'END of insert_sources_166'
100682 ,p_level => C_LEVEL_PROCEDURE
100683 ,p_module => l_log_module);
100684 END IF;
100685 EXCEPTION
100686 WHEN xla_exceptions_pkg.application_exception THEN
100687 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
100688 trace
100689 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
100690 ,p_level => C_LEVEL_EXCEPTION
100691 ,p_module => l_log_module);
100692 END IF;
100693 RAISE;
100694 WHEN OTHERS THEN
100695 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
100696 trace
100697 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
100698 ,p_level => C_LEVEL_EXCEPTION
100699 ,p_module => l_log_module);
100700 END IF;
100701 xla_exceptions_pkg.raise_message
100702 (p_location => 'XLA_00275_AAD_S_000015_PKG.insert_sources_166');
100703 END insert_sources_166;
100704 --
100705
100706 ---------------------------------------
100707 --
100708 -- PRIVATE FUNCTION
100709 -- EventClass_166
100710 --
100711 ----------------------------------------
100712 --
100713 FUNCTION EventClass_166
100714 (p_application_id IN NUMBER
100715 ,p_base_ledger_id IN NUMBER
100716 ,p_target_ledger_id IN NUMBER
100717 ,p_language IN VARCHAR2
100718 ,p_currency_code IN VARCHAR2
100719 ,p_sla_ledger_id IN NUMBER
100720 ,p_pad_start_date IN DATE
100721 ,p_pad_end_date IN DATE
100722 ,p_primary_ledger_id IN NUMBER)
100723 RETURN BOOLEAN IS
100724 --
100725 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'TOT_BURDENED_COST_ALL';
100726 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'TOT_BURDENED_COST';
100727
100728 l_calculate_acctd_flag VARCHAR2(1) :='N';
100729 l_calculate_g_l_flag VARCHAR2(1) :='N';
100730 --
100731 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
100732 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
100733 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
100734 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
100735 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
100736 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
100737 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
100738 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
100739 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
100740 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
100741 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
100742 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
100743 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
100744 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
100745 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
100746 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
100747 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
100748 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
100749 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
100750 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
100751 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
100752 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
100753 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
100754 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
100755
100756 l_event_id NUMBER;
100757 l_previous_event_id NUMBER;
100758 l_first_event_id NUMBER;
100759 l_last_event_id NUMBER;
100760
100761 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
100762 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
100763 --
100764 --
100765 l_result BOOLEAN := TRUE;
100766 l_rows NUMBER := 1000;
100767 l_event_type_name VARCHAR2(80) := 'All';
100768 l_event_class_name VARCHAR2(80) := 'Total Burdened Cost';
100769 l_description VARCHAR2(4000);
100770 l_transaction_reversal NUMBER;
100771 l_ae_header_id NUMBER;
100772 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
100773 l_log_module VARCHAR2(240);
100774 --
100775 l_acct_reversal_source VARCHAR2(30);
100776 l_trx_reversal_source VARCHAR2(30);
100777
100778 l_continue_with_lines BOOLEAN := TRUE;
100779 --
100780 l_acc_rev_gl_date_source DATE; -- 4262811
100781 --
100782 type t_array_event_id is table of number index by binary_integer;
100783
100784 l_rec_array_event t_rec_array_event;
100785 l_null_rec_array_event t_rec_array_event;
100786 l_array_ae_header_id xla_number_array_type;
100787 l_actual_flag VARCHAR2(1) := NULL;
100788 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
100792 --
100789 l_balance_type_code VARCHAR2(1) :=NULL;
100790 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
100791
100793 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
100794 --
100795
100796 TYPE t_array_source_33 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
100797 TYPE t_array_source_75 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
100798
100799 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.BUDGET_CCID%TYPE INDEX BY BINARY_INTEGER;
100800 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
100801 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
100802 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
100803 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
100804 TYPE t_array_source_8 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
100805 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
100806 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
100807 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
100808 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
100809 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
100810 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
100811 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
100812 TYPE t_array_source_32 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
100813 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
100814 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
100815 TYPE t_array_source_36 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
100816 TYPE t_array_source_41 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
100817 TYPE t_array_source_44 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
100818 TYPE t_array_source_52 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_BURDENED_COST%TYPE INDEX BY BINARY_INTEGER;
100819 TYPE t_array_source_53 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_BURDENED_COST%TYPE INDEX BY BINARY_INTEGER;
100820 TYPE t_array_source_54 IS TABLE OF PA_XLA_CDL_LINES_V.ENCUMBRANCE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
100821 TYPE t_array_source_55 IS TABLE OF PA_XLA_CDL_LINES_V.PA_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
100822 TYPE t_array_source_56 IS TABLE OF PA_XLA_CDL_LINES_V.PA_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
100823 TYPE t_array_source_57 IS TABLE OF PA_XLA_CDL_LINES_V.PA_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
100824 TYPE t_array_source_58 IS TABLE OF PA_XLA_CDL_LINES_V.PA_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
100825 TYPE t_array_source_59 IS TABLE OF PA_XLA_CDL_LINES_V.PA_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
100826 TYPE t_array_source_60 IS TABLE OF PA_XLA_CDL_LINES_V.PA_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
100827 TYPE t_array_source_61 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
100828 TYPE t_array_source_62 IS TABLE OF PA_XLA_CDL_LINES_V.ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
100829 TYPE t_array_source_63 IS TABLE OF PA_XLA_CDL_LINES_V.PROJ_ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
100830
100831 l_array_source_33 t_array_source_33;
100832 l_array_source_75 t_array_source_75;
100833
100834 l_array_source_3 t_array_source_3;
100835 l_array_source_4 t_array_source_4;
100836 l_array_source_5 t_array_source_5;
100837 l_array_source_6 t_array_source_6;
100838 l_array_source_7 t_array_source_7;
100839 l_array_source_8 t_array_source_8;
100840 l_array_source_23 t_array_source_23;
100841 l_array_source_24 t_array_source_24;
100842 l_array_source_26 t_array_source_26;
100843 l_array_source_28 t_array_source_28;
100844 l_array_source_29 t_array_source_29;
100845 l_array_source_30 t_array_source_30;
100846 l_array_source_31 t_array_source_31;
100847 l_array_source_32 t_array_source_32;
100848 l_array_source_34 t_array_source_34;
100849 l_array_source_35 t_array_source_35;
100850 l_array_source_35_meaning t_array_lookup_meaning;
100851 l_array_source_36 t_array_source_36;
100852 l_array_source_41 t_array_source_41;
100853 l_array_source_44 t_array_source_44;
100854 l_array_source_52 t_array_source_52;
100855 l_array_source_53 t_array_source_53;
100856 l_array_source_54 t_array_source_54;
100857 l_array_source_55 t_array_source_55;
100858 l_array_source_56 t_array_source_56;
100859 l_array_source_57 t_array_source_57;
100860 l_array_source_58 t_array_source_58;
100861 l_array_source_59 t_array_source_59;
100862 l_array_source_60 t_array_source_60;
100863 l_array_source_61 t_array_source_61;
100864 l_array_source_62 t_array_source_62;
100865 l_array_source_63 t_array_source_63;
100866
100867 --
100868 CURSOR header_cur
100869 IS
100870 SELECT /*+ leading(xet) cardinality(xet,1) */
100871 -- Event Class Code: TOT_BURDENED_COST
100872 xet.entity_id
100873 ,xet.legal_entity_id
100874 ,xet.entity_code
100875 ,xet.transaction_number
100876 ,xet.event_id
100877 ,xet.event_class_code
100878 ,xet.event_type_code
100879 ,xet.event_number
100880 ,xet.event_date
100881 ,xet.transaction_date
100882 ,xet.reference_num_1
100883 ,xet.reference_num_2
100884 ,xet.reference_num_3
100885 ,xet.reference_num_4
100886 ,xet.reference_char_1
100887 ,xet.reference_char_2
100888 ,xet.reference_char_3
100889 ,xet.reference_char_4
100890 ,xet.reference_date_1
100891 ,xet.reference_date_2
100895 ,xet.budgetary_control_flag
100892 ,xet.reference_date_3
100893 ,xet.reference_date_4
100894 ,xet.event_created_by
100896 , h2.EXPENDITURE_ITEM_ID source_33
100897 , h2.GL_DATE source_75
100898 FROM xla_events_gt xet
100899 , PA_XLA_EXP_HEADER_V h2
100900 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
100901 and xet.event_class_code = C_EVENT_CLASS_CODE
100902 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
100903
100904 ORDER BY event_id
100905 ;
100906
100907
100908 --
100909 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
100910 IS
100911 SELECT /*+ leading(xet) cardinality(xet,1) */
100912 -- Event Class Code: TOT_BURDENED_COST
100913 xet.entity_id
100914 ,xet.legal_entity_id
100915 ,xet.entity_code
100916 ,xet.transaction_number
100917 ,xet.event_id
100918 ,xet.event_class_code
100919 ,xet.event_type_code
100920 ,xet.event_number
100921 ,xet.event_date
100922 ,xet.transaction_date
100923 ,xet.reference_num_1
100924 ,xet.reference_num_2
100925 ,xet.reference_num_3
100926 ,xet.reference_num_4
100927 ,xet.reference_char_1
100928 ,xet.reference_char_2
100929 ,xet.reference_char_3
100930 ,xet.reference_char_4
100931 ,xet.reference_date_1
100932 ,xet.reference_date_2
100933 ,xet.reference_date_3
100934 ,xet.reference_date_4
100935 ,xet.event_created_by
100936 ,xet.budgetary_control_flag
100937 , l1.LINE_NUMBER
100938 , l1.BUDGET_CCID source_3
100939 , l1.COST_CCID source_4
100940 , l1.ALLOW_OVERRIDE_CCID_FLAG source_5
100941 , l1.ADJ_COST_CCID source_6
100942 , l1.COST_CLEARING_CCID source_7
100943 , l1.ADJ_COST_CLEARING_CCID source_8
100944 , l1.REVERSING_LINE_FLAG source_23
100945 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_24
100946 , l1.ENTERED_CURRENCY_CODE source_26
100947 , l1.EXCHANGE_RATE_DATE source_28
100948 , l1.EXCHANGE_RATE source_29
100949 , l1.EXCHANGE_RATE_TYPE source_30
100950 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_31
100951 , l1.USE_ACT_UPG_ATTRIB_FLAG source_32
100952 , l1.LINE_NUMBER source_34
100953 , l1.LINE_TYPE source_35
100954 , fvl35.meaning source_35_meaning
100955 , l1.LINE_NUM_REVERSED source_36
100956 , l1.ENC_UPG_DR_ACCT_CLASS source_41
100957 , l1.USE_ENC_UPG_ATTRIB_FLAG source_44
100958 , l1.ENTERED_BURDENED_COST source_52
100959 , l1.ACCT_BURDENED_COST source_53
100960 , l1.ENCUMBRANCE_AMOUNT source_54
100961 , l1.PA_APPLICATION_ID source_55
100962 , l1.PA_DISTRIBUTION_TYPE source_56
100963 , l1.PA_ENTITY_CODE source_57
100964 , l1.PA_FIRST_DIST_ID source_58
100965 , l1.PA_FIRST_SYS_TRANS_ID source_59
100966 , l1.PA_SECOND_DIST_ID source_60
100967 , l1.ENC_UPG_CR_ACCT_CLASS source_61
100968 , l1.ENCUMBRANCE_TYPE_ID source_62
100969 , l1.PROJ_ENCUMBRANCE_TYPE_ID source_63
100970 FROM xla_events_gt xet
100971 , PA_XLA_CDL_LINES_V l1
100972 , fnd_lookup_values fvl35
100973 WHERE xet.event_id between x_first_event_id and x_last_event_id
100974 and xet.event_date between p_pad_start_date and p_pad_end_date
100975 and xet.event_class_code = C_EVENT_CLASS_CODE
100976 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
100977 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
100978 AND fvl35.lookup_code(+) = l1.LINE_TYPE
100979 AND fvl35.view_application_id(+) = 275
100980 AND fvl35.language(+) = USERENV('LANG')
100981 ;
100982
100983 --
100984 BEGIN
100985 IF g_log_enabled THEN
100986 l_log_module := C_DEFAULT_MODULE||'.EventClass_166';
100987 END IF;
100988 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
100989 trace
100990 (p_msg => 'BEGIN of EventClass_166'
100991 ,p_level => C_LEVEL_PROCEDURE
100992 ,p_module => l_log_module);
100993 END IF;
100994
100995 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
100996 trace
100997 (p_msg => 'p_application_id = '||p_application_id||
100998 ' - p_base_ledger_id = '||p_base_ledger_id||
100999 ' - p_target_ledger_id = '||p_target_ledger_id||
101000 ' - p_language = '||p_language||
101001 ' - p_currency_code = '||p_currency_code||
101002 ' - p_sla_ledger_id = '||p_sla_ledger_id
101003 ,p_level => C_LEVEL_STATEMENT
101004 ,p_module => l_log_module);
101005 END IF;
101006 --
101007 -- initialze arrays
101008 --
101009 g_array_event.DELETE;
101010 l_rec_array_event := l_null_rec_array_event;
101011 --
101012 --------------------------------------
101013 -- 4262811 Initialze MPA Line Number
101014 --------------------------------------
101015 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
101016
101017 --
101018
101019 --
101020 OPEN header_cur;
101021 --
101022 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
101023 trace
101024 (p_msg => 'SQL - FETCH header_cur'
101025 ,p_level => C_LEVEL_STATEMENT
101026 ,p_module => l_log_module);
101027 END IF;
101028 --
101029 LOOP
101030 FETCH header_cur BULK COLLECT INTO
101031 l_array_entity_id
101032 , l_array_legal_entity_id
101033 , l_array_entity_code
101034 , l_array_transaction_num
101035 , l_array_event_id
101036 , l_array_class_code
101037 , l_array_event_type
101038 , l_array_event_number
101039 , l_array_event_date
101040 , l_array_transaction_date
101041 , l_array_reference_num_1
101042 , l_array_reference_num_2
101043 , l_array_reference_num_3
101044 , l_array_reference_num_4
101045 , l_array_reference_char_1
101046 , l_array_reference_char_2
101050 , l_array_reference_date_2
101047 , l_array_reference_char_3
101048 , l_array_reference_char_4
101049 , l_array_reference_date_1
101051 , l_array_reference_date_3
101052 , l_array_reference_date_4
101053 , l_array_event_created_by
101054 , l_array_budgetary_control_flag
101055 , l_array_source_33
101056 , l_array_source_75
101057 LIMIT l_rows;
101058 --
101059 IF (C_LEVEL_EVENT >= g_log_level) THEN
101060 trace
101061 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
101062 ,p_level => C_LEVEL_EVENT
101063 ,p_module => l_log_module);
101064 END IF;
101065 --
101066 EXIT WHEN l_array_entity_id.COUNT = 0;
101067
101068 -- initialize arrays
101069 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
101070 XLA_AE_LINES_PKG.g_rec_lines := NULL;
101071
101072 --
101073 -- Bug 4458708
101074 --
101075 XLA_AE_LINES_PKG.g_LineNumber := 0;
101076
101077
101078 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
101079 g_last_hdr_idx := l_array_event_id.LAST;
101080 --
101081 -- loop for the headers. Each iteration is for each header extract row
101082 -- fetched in header cursor
101083 --
101084 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
101085
101086 --
101087 -- set event info as cache for other routines to refer event attributes
101088 --
101089 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
101090 (p_application_id => p_application_id
101091 ,p_primary_ledger_id => p_primary_ledger_id
101092 ,p_base_ledger_id => p_base_ledger_id
101093 ,p_target_ledger_id => p_target_ledger_id
101094 ,p_entity_id => l_array_entity_id(hdr_idx)
101095 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
101096 ,p_entity_code => l_array_entity_code(hdr_idx)
101097 ,p_transaction_num => l_array_transaction_num(hdr_idx)
101098 ,p_event_id => l_array_event_id(hdr_idx)
101099 ,p_event_class_code => l_array_class_code(hdr_idx)
101100 ,p_event_type_code => l_array_event_type(hdr_idx)
101101 ,p_event_number => l_array_event_number(hdr_idx)
101102 ,p_event_date => l_array_event_date(hdr_idx)
101103 ,p_transaction_date => l_array_transaction_date(hdr_idx)
101104 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
101105 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
101106 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
101107 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
101108 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
101109 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
101110 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
101111 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
101112 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
101113 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
101114 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
101115 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
101116 ,p_event_created_by => l_array_event_created_by(hdr_idx)
101117 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
101118
101119 --
101120 -- set the status of entry to C_VALID (0)
101121 --
101122 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
101123
101124 --
101125 -- initialize a row for ae header
101126 --
101127 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
101128
101129 l_event_id := l_array_event_id(hdr_idx);
101130
101131 --
101132 -- storing the hdr_idx for event. May be used by line cursor.
101133 --
101134 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
101135
101136 --
101137 -- store sources from header extract. This can be improved to
101138 -- store only those sources from header extract that may be used in lines
101139 --
101140
101141 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
101142 g_array_event(l_event_id).array_value_date('source_75') := l_array_source_75(hdr_idx);
101143
101144 --
101145 -- initilaize the status of ae headers for diffrent balance types
101146 -- the status is initialised to C_NOT_CREATED (2)
101147 --
101148 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
101149 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
101150 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
101151
101152 --
101153 -- call api to validate and store accounting attributes for header
101154 --
101155
101156 ------------------------------------------------------------
101157 -- Accrual Reversal : to get date for Standard Source (NONE)
101158 ------------------------------------------------------------
101159 l_acc_rev_gl_date_source := NULL;
101160
101161 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
101162 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_75');
101163
101164
101165 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
101166
101167 XLA_AE_HEADER_PKG.SetJeCategoryName;
101168
101169 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
101170 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
101171 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
101172 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
101173 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
101174
101175
101179 --accounting attribute enhancement, bug 3612931
101176 -- No header level analytical criteria
101177
101178 --
101180 --
101181 l_trx_reversal_source := SUBSTR(NULL, 1,30);
101182
101183 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
101184 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
101185
101186 xla_accounting_err_pkg.build_message
101187 (p_appli_s_name => 'XLA'
101188 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
101189 ,p_token_1 => 'ACCT_ATTR_NAME'
101190 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
101191 ,p_token_2 => 'PRODUCT_NAME'
101192 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
101193 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
101194 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
101195 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
101196
101197 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
101198 --
101199 -- following sets the accounting attributes needed to reverse
101200 -- accounting for a distributeion
101201 --
101202 xla_ae_lines_pkg.SetTrxReversalAttrs
101203 (p_event_id => l_event_id
101204 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
101205 ,p_trx_reversal_source => l_trx_reversal_source);
101206
101207 END IF;
101208
101209
101210 ----------------------------------------------------------------
101211 -- 4262811 - update the header statuses to invalid in need be
101212 ----------------------------------------------------------------
101213 --
101214 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
101215
101216
101217 -----------------------------------------------
101218 -- No accrual reversal for the event class/type
101219 -----------------------------------------------
101220 ----------------------------------------------------------------
101221
101222 --
101223 -- this ends the header loop iteration for one bulk fetch
101224 --
101225 END LOOP;
101226
101227 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
101228 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
101229
101230 --
101231 -- insert dummy rows into lines gt table that were created due to
101232 -- transaction reversals
101233 --
101234 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
101235 l_result := XLA_AE_LINES_PKG.InsertLines;
101236 END IF;
101237
101238 --
101239 -- reset the temp_line_num for each set of events fetched from header
101240 -- cursor rather than doing it for each new event in line cursor
101241 -- Bug 3939231
101242 --
101243 xla_ae_lines_pkg.g_temp_line_num := 0;
101244
101245
101246
101247 --
101248 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
101249 --
101250 --
101251 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
101252
101253 trace
101254 (p_msg => 'SQL - FETCH line_cur'
101255 ,p_level => C_LEVEL_STATEMENT
101256 ,p_module => l_log_module);
101257
101258 END IF;
101259 --
101260 --
101261 LOOP
101262 --
101263 FETCH line_cur BULK COLLECT INTO
101264 l_array_entity_id
101265 , l_array_legal_entity_id
101266 , l_array_entity_code
101267 , l_array_transaction_num
101268 , l_array_event_id
101269 , l_array_class_code
101270 , l_array_event_type
101271 , l_array_event_number
101272 , l_array_event_date
101273 , l_array_transaction_date
101274 , l_array_reference_num_1
101275 , l_array_reference_num_2
101276 , l_array_reference_num_3
101277 , l_array_reference_num_4
101278 , l_array_reference_char_1
101279 , l_array_reference_char_2
101280 , l_array_reference_char_3
101281 , l_array_reference_char_4
101282 , l_array_reference_date_1
101283 , l_array_reference_date_2
101284 , l_array_reference_date_3
101285 , l_array_reference_date_4
101286 , l_array_event_created_by
101287 , l_array_budgetary_control_flag
101288 , l_array_extract_line_num
101289 , l_array_source_3
101290 , l_array_source_4
101291 , l_array_source_5
101292 , l_array_source_6
101293 , l_array_source_7
101294 , l_array_source_8
101295 , l_array_source_23
101296 , l_array_source_24
101297 , l_array_source_26
101298 , l_array_source_28
101299 , l_array_source_29
101300 , l_array_source_30
101301 , l_array_source_31
101302 , l_array_source_32
101303 , l_array_source_34
101304 , l_array_source_35
101305 , l_array_source_35_meaning
101306 , l_array_source_36
101307 , l_array_source_41
101308 , l_array_source_44
101309 , l_array_source_52
101310 , l_array_source_53
101311 , l_array_source_54
101312 , l_array_source_55
101313 , l_array_source_56
101314 , l_array_source_57
101315 , l_array_source_58
101316 , l_array_source_59
101317 , l_array_source_60
101318 , l_array_source_61
101319 , l_array_source_62
101320 , l_array_source_63
101321 LIMIT l_rows;
101322
101323 --
101324 IF (C_LEVEL_EVENT >= g_log_level) THEN
101325 trace
101326 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
101327 ,p_level => C_LEVEL_EVENT
101328 ,p_module => l_log_module);
101329 END IF;
101330 --
101334
101331 EXIT WHEN l_array_entity_id.count = 0;
101332
101333 XLA_AE_LINES_PKG.g_rec_lines := null;
101335 --
101336 -- Bug 4458708
101337 --
101338 XLA_AE_LINES_PKG.g_LineNumber := 0;
101339 --
101340 --
101341
101342 FOR Idx IN 1..l_array_event_id.count LOOP
101343 --
101344 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
101345 --
101346 l_event_id := l_array_event_id(idx); -- 5648433
101347
101348 --
101349 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
101350 --
101351
101352 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
101353 (g_array_event(l_event_id).array_value_num('header_index'))
101354 ,'N'
101355 ) <> 'Y'
101356 THEN
101357 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
101358 trace
101359 (p_msg => 'Trancaction revesal option is not Y '
101360 ,p_level => C_LEVEL_STATEMENT
101361 ,p_module => l_log_module);
101362 END IF;
101363
101364 --
101365 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
101366 --
101367 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
101368 --
101369 -- set event info as cache for other routines to refer event attributes
101370 --
101371
101372 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
101373 l_previous_event_id := l_event_id;
101374
101375 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
101376 (p_application_id => p_application_id
101377 ,p_primary_ledger_id => p_primary_ledger_id
101378 ,p_base_ledger_id => p_base_ledger_id
101379 ,p_target_ledger_id => p_target_ledger_id
101380 ,p_entity_id => l_array_entity_id(Idx)
101381 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
101382 ,p_entity_code => l_array_entity_code(Idx)
101383 ,p_transaction_num => l_array_transaction_num(Idx)
101384 ,p_event_id => l_array_event_id(Idx)
101385 ,p_event_class_code => l_array_class_code(Idx)
101386 ,p_event_type_code => l_array_event_type(Idx)
101387 ,p_event_number => l_array_event_number(Idx)
101388 ,p_event_date => l_array_event_date(Idx)
101389 ,p_transaction_date => l_array_transaction_date(Idx)
101390 ,p_reference_num_1 => l_array_reference_num_1(Idx)
101391 ,p_reference_num_2 => l_array_reference_num_2(Idx)
101392 ,p_reference_num_3 => l_array_reference_num_3(Idx)
101393 ,p_reference_num_4 => l_array_reference_num_4(Idx)
101394 ,p_reference_char_1 => l_array_reference_char_1(Idx)
101395 ,p_reference_char_2 => l_array_reference_char_2(Idx)
101396 ,p_reference_char_3 => l_array_reference_char_3(Idx)
101397 ,p_reference_char_4 => l_array_reference_char_4(Idx)
101398 ,p_reference_date_1 => l_array_reference_date_1(Idx)
101399 ,p_reference_date_2 => l_array_reference_date_2(Idx)
101400 ,p_reference_date_3 => l_array_reference_date_3(Idx)
101401 ,p_reference_date_4 => l_array_reference_date_4(Idx)
101402 ,p_event_created_by => l_array_event_created_by(Idx)
101403 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
101404 --
101405 END IF;
101406
101407
101408
101409 --
101410 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
101411
101412 l_acct_reversal_source := SUBSTR(l_array_source_23(Idx), 1,30);
101413
101414 IF l_continue_with_lines THEN
101415 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
101416 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
101417
101418 xla_accounting_err_pkg.build_message
101419 (p_appli_s_name => 'XLA'
101420 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
101421 ,p_token_1 => 'LINE_NUMBER'
101422 ,p_value_1 => l_array_extract_line_num(Idx)
101423 ,p_token_2 => 'PRODUCT_NAME'
101424 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
101425 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
101426 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
101427 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
101428
101429 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
101430 --
101431 -- following sets the accounting attributes needed to reverse
101432 -- accounting for a distributeion
101433 --
101434
101435 --
101436 -- 5217187
101437 --
101438 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
101439 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
101440 g_array_event(l_event_id).array_value_num('header_index'));
101441 --
101442 --
101443
101444 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
101445 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_23(Idx);
101446 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
101447 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_24(Idx);
101448 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
101449 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_7(Idx));
101450 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
101451 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_52(Idx);
101452 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
101456 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
101453 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_26(Idx);
101454 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
101455 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_53(Idx);
101457 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_28(Idx);
101458 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
101459 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_29(Idx);
101460 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
101461 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_30(Idx);
101462 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
101463 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_31(Idx);
101464 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
101465 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_4(Idx));
101466 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
101467 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_52(Idx);
101468 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
101469 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_26(Idx);
101470 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
101471 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_53(Idx);
101472 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
101473 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_28(Idx);
101474 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
101475 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_29(Idx);
101476 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
101477 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_30(Idx);
101478 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
101479 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_32(Idx);
101480 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
101481 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_33');
101482 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
101483 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_34(Idx);
101484 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
101485 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_35(Idx);
101486 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_CR_ACCT_CLASS';
101487 l_rec_rev_acct_attrs.array_char_value(23) := l_array_source_41(Idx);
101488 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_CR_CCID';
101489 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_3(Idx);
101490 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_CR_ENTERED_AMT';
101491 l_rec_rev_acct_attrs.array_num_value(25) := l_array_source_54(Idx);
101492 l_rec_rev_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_CR_ENTERED_CURR';
101493 l_rec_rev_acct_attrs.array_char_value(26) :=
101494 xla_ae_sources_pkg.GetSystemSourceChar(
101495 p_source_code => 'XLA_CURRENCY_CODE'
101496 , p_source_type_code => 'Y'
101497 , p_source_application_id => 602
101498 );
101499 l_rec_rev_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_CR_LEDGER_AMT';
101500 l_rec_rev_acct_attrs.array_num_value(27) := l_array_source_54(Idx);
101501 l_rec_rev_acct_attrs.array_acct_attr_code(28) := 'ENC_UPG_DR_ACCT_CLASS';
101502 l_rec_rev_acct_attrs.array_char_value(28) := l_array_source_61(Idx);
101503 l_rec_rev_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_CCID';
101504 l_rec_rev_acct_attrs.array_num_value(29) := l_array_source_3(Idx);
101505 l_rec_rev_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_ENTERED_AMT';
101506 l_rec_rev_acct_attrs.array_num_value(30) := l_array_source_54(Idx);
101507 l_rec_rev_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_CURR';
101508 l_rec_rev_acct_attrs.array_char_value(31) :=
101509 xla_ae_sources_pkg.GetSystemSourceChar(
101510 p_source_code => 'XLA_CURRENCY_CODE'
101511 , p_source_type_code => 'Y'
101512 , p_source_application_id => 602
101513 );
101514 l_rec_rev_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_LEDGER_AMT';
101515 l_rec_rev_acct_attrs.array_num_value(32) := l_array_source_54(Idx);
101516 l_rec_rev_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_OPTION';
101517 l_rec_rev_acct_attrs.array_char_value(33) := l_array_source_44(Idx);
101518 l_rec_rev_acct_attrs.array_acct_attr_code(34) := 'GAIN_LOSS_REFERENCE';
101519 l_rec_rev_acct_attrs.array_num_value(34) := g_array_event(l_event_id).array_value_num('source_33');
101520 l_rec_rev_acct_attrs.array_acct_attr_code(35) := 'REVERSED_DISTRIBUTION_ID1';
101521 l_rec_rev_acct_attrs.array_num_value(35) := g_array_event(l_event_id).array_value_num('source_33');
101522 l_rec_rev_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID2';
101523 l_rec_rev_acct_attrs.array_num_value(36) := l_array_source_36(Idx);
101524 l_rec_rev_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
101525 l_rec_rev_acct_attrs.array_char_value(37) := l_array_source_35(Idx);
101526 l_rec_rev_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
101527 l_rec_rev_acct_attrs.array_num_value(38) := l_array_source_62(Idx);
101528 l_rec_rev_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
101529 l_rec_rev_acct_attrs.array_num_value(39) := l_array_source_63(Idx);
101530
101531
101532 xla_ae_lines_pkg.SetAcctReversalAttrs
101533 (p_event_id => l_event_id
101534 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
101535 ,p_calculate_acctd_flag => l_calculate_acctd_flag
101536 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
101537 END IF;
101538
101542 --
101539 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
101540 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
101541
101543 AcctLineType_127 (
101544 p_application_id => p_application_id
101545 ,p_event_id => l_event_id
101546 ,p_calculate_acctd_flag => l_calculate_acctd_flag
101547 ,p_calculate_g_l_flag => l_calculate_g_l_flag
101548 ,p_actual_flag => l_actual_flag
101549 ,p_balance_type_code => l_balance_type_code
101550 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101551
101552 , p_source_3 => l_array_source_3(Idx)
101553 , p_source_4 => l_array_source_4(Idx)
101554 , p_source_5 => l_array_source_5(Idx)
101555 , p_source_6 => l_array_source_6(Idx)
101556 , p_source_7 => l_array_source_7(Idx)
101557 , p_source_23 => l_array_source_23(Idx)
101558 , p_source_24 => l_array_source_24(Idx)
101559 , p_source_26 => l_array_source_26(Idx)
101560 , p_source_28 => l_array_source_28(Idx)
101561 , p_source_29 => l_array_source_29(Idx)
101562 , p_source_30 => l_array_source_30(Idx)
101563 , p_source_31 => l_array_source_31(Idx)
101564 , p_source_32 => l_array_source_32(Idx)
101565 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
101566 , p_source_34 => l_array_source_34(Idx)
101567 , p_source_35 => l_array_source_35(Idx)
101568 , p_source_35_meaning => l_array_source_35_meaning(Idx)
101569 , p_source_36 => l_array_source_36(Idx)
101570 , p_source_41 => l_array_source_41(Idx)
101571 , p_source_44 => l_array_source_44(Idx)
101572 , p_source_52 => l_array_source_52(Idx)
101573 , p_source_53 => l_array_source_53(Idx)
101574 , p_source_54 => l_array_source_54(Idx)
101575 , p_source_55 => l_array_source_55(Idx)
101576 , p_source_56 => l_array_source_56(Idx)
101577 , p_source_57 => l_array_source_57(Idx)
101578 , p_source_58 => l_array_source_58(Idx)
101579 , p_source_59 => l_array_source_59(Idx)
101580 , p_source_60 => l_array_source_60(Idx)
101581 , p_source_61 => l_array_source_61(Idx)
101582 , p_source_62 => l_array_source_62(Idx)
101583 , p_source_63 => l_array_source_63(Idx)
101584 );
101585 If(l_balance_type_code = 'A') THEN
101586 l_actual_gain_loss_ref := l_gain_or_loss_ref;
101587 END IF;
101588
101589 --
101590
101591
101592 --
101593 AcctLineType_129 (
101594 p_application_id => p_application_id
101595 ,p_event_id => l_event_id
101596 ,p_calculate_acctd_flag => l_calculate_acctd_flag
101597 ,p_calculate_g_l_flag => l_calculate_g_l_flag
101598 ,p_actual_flag => l_actual_flag
101599 ,p_balance_type_code => l_balance_type_code
101600 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101601
101602 , p_source_3 => l_array_source_3(Idx)
101603 , p_source_4 => l_array_source_4(Idx)
101604 , p_source_5 => l_array_source_5(Idx)
101605 , p_source_7 => l_array_source_7(Idx)
101606 , p_source_8 => l_array_source_8(Idx)
101607 , p_source_23 => l_array_source_23(Idx)
101608 , p_source_24 => l_array_source_24(Idx)
101609 , p_source_26 => l_array_source_26(Idx)
101610 , p_source_28 => l_array_source_28(Idx)
101611 , p_source_29 => l_array_source_29(Idx)
101612 , p_source_30 => l_array_source_30(Idx)
101613 , p_source_31 => l_array_source_31(Idx)
101614 , p_source_32 => l_array_source_32(Idx)
101615 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
101616 , p_source_34 => l_array_source_34(Idx)
101617 , p_source_35 => l_array_source_35(Idx)
101618 , p_source_35_meaning => l_array_source_35_meaning(Idx)
101619 , p_source_36 => l_array_source_36(Idx)
101620 , p_source_41 => l_array_source_41(Idx)
101621 , p_source_44 => l_array_source_44(Idx)
101622 , p_source_52 => l_array_source_52(Idx)
101623 , p_source_53 => l_array_source_53(Idx)
101624 , p_source_54 => l_array_source_54(Idx)
101625 , p_source_55 => l_array_source_55(Idx)
101626 , p_source_56 => l_array_source_56(Idx)
101627 , p_source_57 => l_array_source_57(Idx)
101628 , p_source_58 => l_array_source_58(Idx)
101629 , p_source_59 => l_array_source_59(Idx)
101630 , p_source_60 => l_array_source_60(Idx)
101631 , p_source_61 => l_array_source_61(Idx)
101632 , p_source_62 => l_array_source_62(Idx)
101633 , p_source_63 => l_array_source_63(Idx)
101634 );
101635 If(l_balance_type_code = 'A') THEN
101636 l_actual_gain_loss_ref := l_gain_or_loss_ref;
101637 END IF;
101638
101639 --
101640
101641
101642 --
101643 AcctLineType_132 (
101644 p_application_id => p_application_id
101645 ,p_event_id => l_event_id
101646 ,p_calculate_acctd_flag => l_calculate_acctd_flag
101647 ,p_calculate_g_l_flag => l_calculate_g_l_flag
101648 ,p_actual_flag => l_actual_flag
101649 ,p_balance_type_code => l_balance_type_code
101650 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101651
101652 , p_source_3 => l_array_source_3(Idx)
101653 , p_source_4 => l_array_source_4(Idx)
101654 , p_source_5 => l_array_source_5(Idx)
101655 , p_source_7 => l_array_source_7(Idx)
101656 , p_source_8 => l_array_source_8(Idx)
101657 , p_source_23 => l_array_source_23(Idx)
101658 , p_source_24 => l_array_source_24(Idx)
101659 , p_source_26 => l_array_source_26(Idx)
101660 , p_source_28 => l_array_source_28(Idx)
101661 , p_source_29 => l_array_source_29(Idx)
101662 , p_source_30 => l_array_source_30(Idx)
101663 , p_source_31 => l_array_source_31(Idx)
101664 , p_source_32 => l_array_source_32(Idx)
101665 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
101666 , p_source_34 => l_array_source_34(Idx)
101667 , p_source_35 => l_array_source_35(Idx)
101668 , p_source_35_meaning => l_array_source_35_meaning(Idx)
101669 , p_source_36 => l_array_source_36(Idx)
101670 , p_source_41 => l_array_source_41(Idx)
101671 , p_source_44 => l_array_source_44(Idx)
101672 , p_source_52 => l_array_source_52(Idx)
101673 , p_source_53 => l_array_source_53(Idx)
101674 , p_source_54 => l_array_source_54(Idx)
101675 , p_source_55 => l_array_source_55(Idx)
101676 , p_source_56 => l_array_source_56(Idx)
101677 , p_source_57 => l_array_source_57(Idx)
101681 , p_source_61 => l_array_source_61(Idx)
101678 , p_source_58 => l_array_source_58(Idx)
101679 , p_source_59 => l_array_source_59(Idx)
101680 , p_source_60 => l_array_source_60(Idx)
101682 , p_source_62 => l_array_source_62(Idx)
101683 , p_source_63 => l_array_source_63(Idx)
101684 );
101685 If(l_balance_type_code = 'A') THEN
101686 l_actual_gain_loss_ref := l_gain_or_loss_ref;
101687 END IF;
101688
101689 --
101690
101691
101692 --
101693 AcctLineType_133 (
101694 p_application_id => p_application_id
101695 ,p_event_id => l_event_id
101696 ,p_calculate_acctd_flag => l_calculate_acctd_flag
101697 ,p_calculate_g_l_flag => l_calculate_g_l_flag
101698 ,p_actual_flag => l_actual_flag
101699 ,p_balance_type_code => l_balance_type_code
101700 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
101701
101702 , p_source_3 => l_array_source_3(Idx)
101703 , p_source_4 => l_array_source_4(Idx)
101704 , p_source_5 => l_array_source_5(Idx)
101705 , p_source_6 => l_array_source_6(Idx)
101706 , p_source_7 => l_array_source_7(Idx)
101707 , p_source_23 => l_array_source_23(Idx)
101708 , p_source_24 => l_array_source_24(Idx)
101709 , p_source_26 => l_array_source_26(Idx)
101710 , p_source_28 => l_array_source_28(Idx)
101711 , p_source_29 => l_array_source_29(Idx)
101712 , p_source_30 => l_array_source_30(Idx)
101713 , p_source_31 => l_array_source_31(Idx)
101714 , p_source_32 => l_array_source_32(Idx)
101715 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
101716 , p_source_34 => l_array_source_34(Idx)
101717 , p_source_35 => l_array_source_35(Idx)
101718 , p_source_35_meaning => l_array_source_35_meaning(Idx)
101719 , p_source_36 => l_array_source_36(Idx)
101720 , p_source_41 => l_array_source_41(Idx)
101721 , p_source_44 => l_array_source_44(Idx)
101722 , p_source_52 => l_array_source_52(Idx)
101723 , p_source_53 => l_array_source_53(Idx)
101724 , p_source_54 => l_array_source_54(Idx)
101725 , p_source_55 => l_array_source_55(Idx)
101726 , p_source_56 => l_array_source_56(Idx)
101727 , p_source_57 => l_array_source_57(Idx)
101728 , p_source_58 => l_array_source_58(Idx)
101729 , p_source_59 => l_array_source_59(Idx)
101730 , p_source_60 => l_array_source_60(Idx)
101731 , p_source_61 => l_array_source_61(Idx)
101732 , p_source_62 => l_array_source_62(Idx)
101733 , p_source_63 => l_array_source_63(Idx)
101734 );
101735 If(l_balance_type_code = 'A') THEN
101736 l_actual_gain_loss_ref := l_gain_or_loss_ref;
101737 END IF;
101738
101739 --
101740
101741 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
101742 -- or secondary ledger that has different currency with primary
101743 -- or alc that is calculated by sla
101744 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
101745 (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'))
101746
101747 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
101748 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
101749 AND (l_actual_flag = 'A')) THEN
101750 XLA_AE_LINES_PKG.CreateGainOrLossLines(
101751 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
101752 ,p_application_id => p_application_id
101753 ,p_amb_context_code => 'DEFAULT'
101754 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
101755 ,p_event_class_code => C_EVENT_CLASS_CODE
101756 ,p_event_type_code => C_EVENT_TYPE_CODE
101757
101758 ,p_gain_ccid => -1
101759 ,p_loss_ccid => -1
101760
101761 ,p_actual_flag => l_actual_flag
101762 ,p_enc_flag => null
101763 ,p_actual_g_l_ref => l_actual_gain_loss_ref
101764 ,p_enc_g_l_ref => null
101765 );
101766 END IF;
101767 END IF;
101768 END IF;
101769
101770 ELSE
101771 --
101772 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
101773 --
101774 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
101775 trace
101776 (p_msg => 'Trancaction revesal option is Y'
101777 ,p_level => C_LEVEL_STATEMENT
101778 ,p_module => l_log_module);
101779 END IF;
101780 END IF;
101781
101782 END LOOP;
101783 l_result := XLA_AE_LINES_PKG.InsertLines ;
101784 end loop;
101785 close line_cur;
101786
101787
101788 --
101789 -- insert headers into xla_ae_headers_gt table
101790 --
101791 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
101792
101793 -- insert into errors table here.
101794
101795 END LOOP;
101796
101797 --
101798 -- 4865292
101799 --
101800 -- Compare g_hdr_extract_count with event count in
101801 -- CreateHeadersAndLines.
101802 --
101803 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
101804
101805 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
101806 trace (p_msg => '# rows extracted from header extract objects '
101807 || ' (running total): '
101808 || g_hdr_extract_count
101809 ,p_level => C_LEVEL_STATEMENT
101810 ,p_module => l_log_module);
101811 END IF;
101812
101813 CLOSE header_cur;
101814 --
101815
101816 --
101817 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
101818 trace
101819 (p_msg => 'END of EventClass_166'
101820 ,p_level => C_LEVEL_PROCEDURE
101821 ,p_module => l_log_module);
101822 END IF;
101823 --
101824 RETURN l_result;
101825 EXCEPTION
101826 WHEN xla_exceptions_pkg.application_exception THEN
101827
101831 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
101828 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
101829
101830
101832
101833 RAISE;
101834 WHEN OTHERS THEN
101835 xla_exceptions_pkg.raise_message
101836 (p_location => 'XLA_00275_AAD_S_000015_PKG.EventClass_166');
101837 END EventClass_166;
101838 --
101839
101840 ---------------------------------------
101841 --
101842 -- PRIVATE PROCEDURE
101843 -- insert_sources_167
101844 --
101845 ----------------------------------------
101846 --
101847 PROCEDURE insert_sources_167(
101848 p_target_ledger_id IN NUMBER
101849 , p_language IN VARCHAR2
101850 , p_sla_ledger_id IN NUMBER
101851 , p_pad_start_date IN DATE
101852 , p_pad_end_date IN DATE
101853 )
101854 IS
101855
101856 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'USG_COST_ADJ_ALL';
101857 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'USG_COST_ADJ';
101858 p_apps_owner VARCHAR2(30);
101859 l_log_module VARCHAR2(240);
101860 BEGIN
101861 IF g_log_enabled THEN
101862 l_log_module := C_DEFAULT_MODULE||'.insert_sources_167';
101863 END IF;
101864 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
101865
101866 trace
101867 (p_msg => 'BEGIN of insert_sources_167'
101868 ,p_level => C_LEVEL_PROCEDURE
101869 ,p_module => l_log_module);
101870
101871 END IF;
101872
101873 -- select APPS owner
101874 SELECT oracle_username
101875 INTO p_apps_owner
101876 FROM fnd_oracle_userid
101877 WHERE read_only_flag = 'U'
101878 ;
101879
101880 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
101881 trace
101882 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
101883 ' - p_language = '||p_language||
101884 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
101885 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
101886 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
101887 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
101888 ,p_level => C_LEVEL_STATEMENT
101889 ,p_module => l_log_module);
101890 END IF;
101891
101892
101893 --
101894 INSERT INTO xla_diag_sources --hdr2
101895 (
101896 event_id
101897 , ledger_id
101898 , sla_ledger_id
101899 , description_language
101900 , object_name
101901 , object_type_code
101902 , line_number
101903 , source_application_id
101904 , source_type_code
101905 , source_code
101906 , source_value
101907 , source_meaning
101908 , created_by
101909 , creation_date
101910 , last_update_date
101911 , last_updated_by
101912 , last_update_login
101913 , program_update_date
101914 , program_application_id
101915 , program_id
101916 , request_id
101917 )
101918 SELECT
101919 event_id
101920 , p_target_ledger_id
101921 , p_sla_ledger_id
101922 , p_language
101923 , object_name
101924 , object_type_code
101925 , line_number
101926 , source_application_id
101927 , source_type_code
101928 , source_code
101929 , SUBSTR(source_value ,1,1996)
101930 , SUBSTR(source_meaning ,1,200)
101931 , xla_environment_pkg.g_Usr_Id
101932 , TRUNC(SYSDATE)
101933 , TRUNC(SYSDATE)
101934 , xla_environment_pkg.g_Usr_Id
101935 , xla_environment_pkg.g_Login_Id
101936 , TRUNC(SYSDATE)
101937 , xla_environment_pkg.g_Prog_Appl_Id
101938 , xla_environment_pkg.g_Prog_Id
101939 , xla_environment_pkg.g_Req_Id
101940 FROM (
101941 SELECT xet.event_id event_id
101942 , 0 line_number
101943 , CASE r
101944 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
101945 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
101946
101947 ELSE null
101948 END object_name
101949 , CASE r
101950 WHEN 1 THEN 'HEADER'
101951 WHEN 2 THEN 'HEADER'
101952
101953 ELSE null
101954 END object_type_code
101955 , CASE r
101956 WHEN 1 THEN '275'
101957 WHEN 2 THEN '275'
101958
101959 ELSE null
101960 END source_application_id
101961 , 'S' source_type_code
101962 , CASE r
101963 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
101964 WHEN 2 THEN 'GL_DATE'
101965
101966 ELSE null
101967 END source_code
101968 , CASE r
101969 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
101970 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
101971
101972 ELSE null
101973 END source_value
101974 , null source_meaning
101975 FROM xla_events_gt xet
101976 , PA_XLA_EXP_HEADER_V h2
101977 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
101978 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
101979 AND xet.event_class_code = C_EVENT_CLASS_CODE
101980 AND h2.event_id = xet.event_id
101981
101982 )
101983 ;
101984 --
101988 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
101985 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
101986
101987 trace
101989 ,p_level => C_LEVEL_STATEMENT
101990 ,p_module => l_log_module);
101991
101992 END IF;
101993 --
101994
101995
101996
101997 --
101998 INSERT INTO xla_diag_sources --line2
101999 (
102000 event_id
102001 , ledger_id
102002 , sla_ledger_id
102003 , description_language
102004 , object_name
102005 , object_type_code
102006 , line_number
102007 , source_application_id
102008 , source_type_code
102009 , source_code
102010 , source_value
102011 , source_meaning
102012 , created_by
102013 , creation_date
102014 , last_update_date
102015 , last_updated_by
102016 , last_update_login
102017 , program_update_date
102018 , program_application_id
102019 , program_id
102020 , request_id
102021 )
102022 SELECT event_id
102023 , p_target_ledger_id
102024 , p_sla_ledger_id
102025 , p_language
102026 , object_name
102027 , object_type_code
102028 , line_number
102029 , source_application_id
102030 , source_type_code
102031 , source_code
102032 , SUBSTR(source_value,1,1996)
102033 , SUBSTR(source_meaning ,1,200)
102034 , xla_environment_pkg.g_Usr_Id
102035 , TRUNC(SYSDATE)
102036 , TRUNC(SYSDATE)
102037 , xla_environment_pkg.g_Usr_Id
102038 , xla_environment_pkg.g_Login_Id
102039 , TRUNC(SYSDATE)
102040 , xla_environment_pkg.g_Prog_Appl_Id
102041 , xla_environment_pkg.g_Prog_Id
102042 , xla_environment_pkg.g_Req_Id
102043 FROM (
102044 SELECT xet.event_id event_id
102045 , l1.line_number line_number
102046 , CASE r
102047 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
102048 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
102049 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
102050 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
102051 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
102052 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
102053 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
102054 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
102055 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
102056 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
102057 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
102058 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
102059 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
102060 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
102061 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
102062 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
102063 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
102064 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
102065
102066 ELSE null
102067 END object_name
102068 , CASE r
102069 WHEN 1 THEN 'LINE'
102070 WHEN 2 THEN 'LINE'
102071 WHEN 3 THEN 'LINE'
102072 WHEN 4 THEN 'LINE'
102073 WHEN 5 THEN 'LINE'
102074 WHEN 6 THEN 'LINE'
102075 WHEN 7 THEN 'LINE'
102076 WHEN 8 THEN 'LINE'
102077 WHEN 9 THEN 'LINE'
102078 WHEN 10 THEN 'LINE'
102079 WHEN 11 THEN 'LINE'
102080 WHEN 12 THEN 'LINE'
102081 WHEN 13 THEN 'LINE'
102082 WHEN 14 THEN 'LINE'
102083 WHEN 15 THEN 'LINE'
102084 WHEN 16 THEN 'LINE'
102085 WHEN 17 THEN 'LINE'
102086 WHEN 18 THEN 'LINE'
102087
102088 ELSE null
102089 END object_type_code
102090 , CASE r
102091 WHEN 1 THEN '275'
102092 WHEN 2 THEN '275'
102093 WHEN 3 THEN '275'
102094 WHEN 4 THEN '275'
102095 WHEN 5 THEN '275'
102096 WHEN 6 THEN '275'
102097 WHEN 7 THEN '275'
102098 WHEN 8 THEN '275'
102099 WHEN 9 THEN '275'
102100 WHEN 10 THEN '275'
102101 WHEN 11 THEN '275'
102102 WHEN 12 THEN '275'
102103 WHEN 13 THEN '275'
102104 WHEN 14 THEN '275'
102105 WHEN 15 THEN '275'
102106 WHEN 16 THEN '275'
102107 WHEN 17 THEN '275'
102108 WHEN 18 THEN '275'
102109
102110 ELSE null
102111 END source_application_id
102112 , 'S' source_type_code
102113 , CASE r
102114 WHEN 1 THEN 'COST_CCID'
102115 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
102116 WHEN 3 THEN 'ADJ_COST_CCID'
102117 WHEN 4 THEN 'COST_CLEARING_CCID'
102118 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
102119 WHEN 6 THEN 'REVERSING_LINE_FLAG'
102120 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
102121 WHEN 8 THEN 'ENTERED_RAW_COST'
102122 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
102123 WHEN 10 THEN 'ACCT_RAW_COST'
102124 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
102125 WHEN 12 THEN 'EXCHANGE_RATE'
102126 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
102127 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
102128 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
102129 WHEN 16 THEN 'LINE_NUMBER'
102133 ELSE null
102130 WHEN 17 THEN 'LINE_TYPE'
102131 WHEN 18 THEN 'LINE_NUM_REVERSED'
102132
102134 END source_code
102135 , CASE r
102136 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
102137 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
102138 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
102139 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
102140 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
102141 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
102142 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
102143 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
102144 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
102145 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
102146 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
102147 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
102148 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
102149 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
102150 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
102151 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
102152 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
102153 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
102154
102155 ELSE null
102156 END source_value
102157 , CASE r
102158 WHEN 2 THEN XLA_00275_AAD_S_000015_PKG.GetMeaning(
102159 103371
102160 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
102161 ,'ALLOW_OVERRIDE_CCID_FLAG'
102162 ,'S'
102163 ,275)
102164 WHEN 17 THEN fvl35.meaning
102165
102166 ELSE null
102167 END source_meaning
102168 FROM xla_events_gt xet
102169 , PA_XLA_CDL_LINES_V l1
102170 , fnd_lookup_values fvl35
102171 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
102172 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
102173 AND xet.event_class_code = C_EVENT_CLASS_CODE
102174 AND l1.event_id = xet.event_id
102175 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
102176 AND fvl35.lookup_code(+) = l1.LINE_TYPE
102177 AND fvl35.view_application_id(+) = 275
102178 AND fvl35.language(+) = USERENV('LANG')
102179
102180 )
102181 ;
102182 --
102183 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
102184
102185 trace
102186 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
102187 ,p_level => C_LEVEL_STATEMENT
102188 ,p_module => l_log_module);
102189
102190 END IF;
102191
102192
102193 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
102194 trace
102195 (p_msg => 'END of insert_sources_167'
102196 ,p_level => C_LEVEL_PROCEDURE
102197 ,p_module => l_log_module);
102198 END IF;
102199 EXCEPTION
102200 WHEN xla_exceptions_pkg.application_exception THEN
102201 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
102202 trace
102203 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
102204 ,p_level => C_LEVEL_EXCEPTION
102205 ,p_module => l_log_module);
102206 END IF;
102207 RAISE;
102208 WHEN OTHERS THEN
102209 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
102210 trace
102211 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
102212 ,p_level => C_LEVEL_EXCEPTION
102213 ,p_module => l_log_module);
102214 END IF;
102215 xla_exceptions_pkg.raise_message
102216 (p_location => 'XLA_00275_AAD_S_000015_PKG.insert_sources_167');
102217 END insert_sources_167;
102218 --
102219
102220 ---------------------------------------
102221 --
102222 -- PRIVATE FUNCTION
102223 -- EventClass_167
102224 --
102225 ----------------------------------------
102226 --
102227 FUNCTION EventClass_167
102228 (p_application_id IN NUMBER
102229 ,p_base_ledger_id IN NUMBER
102230 ,p_target_ledger_id IN NUMBER
102231 ,p_language IN VARCHAR2
102232 ,p_currency_code IN VARCHAR2
102233 ,p_sla_ledger_id IN NUMBER
102234 ,p_pad_start_date IN DATE
102235 ,p_pad_end_date IN DATE
102236 ,p_primary_ledger_id IN NUMBER)
102237 RETURN BOOLEAN IS
102238 --
102239 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'USG_COST_ADJ_ALL';
102240 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'USG_COST_ADJ';
102241
102242 l_calculate_acctd_flag VARCHAR2(1) :='N';
102243 l_calculate_g_l_flag VARCHAR2(1) :='N';
102244 --
102245 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
102246 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
102247 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
102248 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
102249 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
102250 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
102251 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
102252 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
102253 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
102254 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
102255 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
102259 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
102256 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
102257 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
102258 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
102260 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
102261 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
102262 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
102263 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
102264 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
102265 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
102266 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
102267 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
102268 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
102269
102270 l_event_id NUMBER;
102271 l_previous_event_id NUMBER;
102272 l_first_event_id NUMBER;
102273 l_last_event_id NUMBER;
102274
102275 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
102276 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
102277 --
102278 --
102279 l_result BOOLEAN := TRUE;
102280 l_rows NUMBER := 1000;
102281 l_event_type_name VARCHAR2(80) := 'All';
102282 l_event_class_name VARCHAR2(80) := 'Usage Cost Adjustment';
102283 l_description VARCHAR2(4000);
102284 l_transaction_reversal NUMBER;
102285 l_ae_header_id NUMBER;
102286 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
102287 l_log_module VARCHAR2(240);
102288 --
102289 l_acct_reversal_source VARCHAR2(30);
102290 l_trx_reversal_source VARCHAR2(30);
102291
102292 l_continue_with_lines BOOLEAN := TRUE;
102293 --
102294 l_acc_rev_gl_date_source DATE; -- 4262811
102295 --
102296 type t_array_event_id is table of number index by binary_integer;
102297
102298 l_rec_array_event t_rec_array_event;
102299 l_null_rec_array_event t_rec_array_event;
102300 l_array_ae_header_id xla_number_array_type;
102301 l_actual_flag VARCHAR2(1) := NULL;
102302 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
102303 l_balance_type_code VARCHAR2(1) :=NULL;
102304 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
102305
102306 --
102307 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
102308 --
102309
102310 TYPE t_array_source_33 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
102311 TYPE t_array_source_75 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
102312
102313 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
102314 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
102315 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
102316 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
102317 TYPE t_array_source_8 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
102318 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
102319 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
102320 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
102321 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
102322 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
102323 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
102324 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
102325 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
102326 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
102327 TYPE t_array_source_32 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
102328 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
102329 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
102330 TYPE t_array_source_36 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
102331
102332 l_array_source_33 t_array_source_33;
102333 l_array_source_75 t_array_source_75;
102334
102335 l_array_source_4 t_array_source_4;
102336 l_array_source_5 t_array_source_5;
102337 l_array_source_6 t_array_source_6;
102338 l_array_source_7 t_array_source_7;
102339 l_array_source_8 t_array_source_8;
102340 l_array_source_23 t_array_source_23;
102341 l_array_source_24 t_array_source_24;
102342 l_array_source_25 t_array_source_25;
102343 l_array_source_26 t_array_source_26;
102344 l_array_source_27 t_array_source_27;
102345 l_array_source_28 t_array_source_28;
102346 l_array_source_29 t_array_source_29;
102347 l_array_source_30 t_array_source_30;
102348 l_array_source_31 t_array_source_31;
102349 l_array_source_32 t_array_source_32;
102350 l_array_source_34 t_array_source_34;
102351 l_array_source_35 t_array_source_35;
102352 l_array_source_35_meaning t_array_lookup_meaning;
102353 l_array_source_36 t_array_source_36;
102354
102355 --
102356 CURSOR header_cur
102357 IS
102358 SELECT /*+ leading(xet) cardinality(xet,1) */
102359 -- Event Class Code: USG_COST_ADJ
102363 ,xet.transaction_number
102360 xet.entity_id
102361 ,xet.legal_entity_id
102362 ,xet.entity_code
102364 ,xet.event_id
102365 ,xet.event_class_code
102366 ,xet.event_type_code
102367 ,xet.event_number
102368 ,xet.event_date
102369 ,xet.transaction_date
102370 ,xet.reference_num_1
102371 ,xet.reference_num_2
102372 ,xet.reference_num_3
102373 ,xet.reference_num_4
102374 ,xet.reference_char_1
102375 ,xet.reference_char_2
102376 ,xet.reference_char_3
102377 ,xet.reference_char_4
102378 ,xet.reference_date_1
102379 ,xet.reference_date_2
102380 ,xet.reference_date_3
102381 ,xet.reference_date_4
102382 ,xet.event_created_by
102383 ,xet.budgetary_control_flag
102384 , h2.EXPENDITURE_ITEM_ID source_33
102385 , h2.GL_DATE source_75
102386 FROM xla_events_gt xet
102387 , PA_XLA_EXP_HEADER_V h2
102388 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
102389 and xet.event_class_code = C_EVENT_CLASS_CODE
102390 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
102391
102392 ORDER BY event_id
102393 ;
102394
102395
102396 --
102397 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
102398 IS
102399 SELECT /*+ leading(xet) cardinality(xet,1) */
102400 -- Event Class Code: USG_COST_ADJ
102401 xet.entity_id
102402 ,xet.legal_entity_id
102403 ,xet.entity_code
102404 ,xet.transaction_number
102405 ,xet.event_id
102406 ,xet.event_class_code
102407 ,xet.event_type_code
102408 ,xet.event_number
102409 ,xet.event_date
102410 ,xet.transaction_date
102411 ,xet.reference_num_1
102412 ,xet.reference_num_2
102413 ,xet.reference_num_3
102414 ,xet.reference_num_4
102415 ,xet.reference_char_1
102416 ,xet.reference_char_2
102417 ,xet.reference_char_3
102418 ,xet.reference_char_4
102419 ,xet.reference_date_1
102420 ,xet.reference_date_2
102421 ,xet.reference_date_3
102422 ,xet.reference_date_4
102423 ,xet.event_created_by
102424 ,xet.budgetary_control_flag
102425 , l1.LINE_NUMBER
102426 , l1.COST_CCID source_4
102427 , l1.ALLOW_OVERRIDE_CCID_FLAG source_5
102428 , l1.ADJ_COST_CCID source_6
102429 , l1.COST_CLEARING_CCID source_7
102430 , l1.ADJ_COST_CLEARING_CCID source_8
102431 , l1.REVERSING_LINE_FLAG source_23
102432 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_24
102433 , l1.ENTERED_RAW_COST source_25
102434 , l1.ENTERED_CURRENCY_CODE source_26
102435 , l1.ACCT_RAW_COST source_27
102436 , l1.EXCHANGE_RATE_DATE source_28
102437 , l1.EXCHANGE_RATE source_29
102438 , l1.EXCHANGE_RATE_TYPE source_30
102439 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_31
102440 , l1.USE_ACT_UPG_ATTRIB_FLAG source_32
102441 , l1.LINE_NUMBER source_34
102442 , l1.LINE_TYPE source_35
102443 , fvl35.meaning source_35_meaning
102444 , l1.LINE_NUM_REVERSED source_36
102445 FROM xla_events_gt xet
102446 , PA_XLA_CDL_LINES_V l1
102447 , fnd_lookup_values fvl35
102448 WHERE xet.event_id between x_first_event_id and x_last_event_id
102449 and xet.event_date between p_pad_start_date and p_pad_end_date
102450 and xet.event_class_code = C_EVENT_CLASS_CODE
102451 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
102452 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
102453 AND fvl35.lookup_code(+) = l1.LINE_TYPE
102454 AND fvl35.view_application_id(+) = 275
102455 AND fvl35.language(+) = USERENV('LANG')
102456 ;
102457
102458 --
102459 BEGIN
102460 IF g_log_enabled THEN
102461 l_log_module := C_DEFAULT_MODULE||'.EventClass_167';
102462 END IF;
102463 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
102464 trace
102465 (p_msg => 'BEGIN of EventClass_167'
102466 ,p_level => C_LEVEL_PROCEDURE
102467 ,p_module => l_log_module);
102468 END IF;
102469
102470 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
102471 trace
102472 (p_msg => 'p_application_id = '||p_application_id||
102473 ' - p_base_ledger_id = '||p_base_ledger_id||
102474 ' - p_target_ledger_id = '||p_target_ledger_id||
102475 ' - p_language = '||p_language||
102476 ' - p_currency_code = '||p_currency_code||
102477 ' - p_sla_ledger_id = '||p_sla_ledger_id
102478 ,p_level => C_LEVEL_STATEMENT
102479 ,p_module => l_log_module);
102480 END IF;
102481 --
102482 -- initialze arrays
102483 --
102484 g_array_event.DELETE;
102485 l_rec_array_event := l_null_rec_array_event;
102486 --
102487 --------------------------------------
102488 -- 4262811 Initialze MPA Line Number
102489 --------------------------------------
102490 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
102491
102492 --
102493
102494 --
102495 OPEN header_cur;
102496 --
102497 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
102498 trace
102499 (p_msg => 'SQL - FETCH header_cur'
102500 ,p_level => C_LEVEL_STATEMENT
102501 ,p_module => l_log_module);
102502 END IF;
102503 --
102504 LOOP
102505 FETCH header_cur BULK COLLECT INTO
102506 l_array_entity_id
102507 , l_array_legal_entity_id
102508 , l_array_entity_code
102509 , l_array_transaction_num
102510 , l_array_event_id
102511 , l_array_class_code
102512 , l_array_event_type
102513 , l_array_event_number
102514 , l_array_event_date
102515 , l_array_transaction_date
102516 , l_array_reference_num_1
102517 , l_array_reference_num_2
102518 , l_array_reference_num_3
102519 , l_array_reference_num_4
102520 , l_array_reference_char_1
102524 , l_array_reference_date_1
102521 , l_array_reference_char_2
102522 , l_array_reference_char_3
102523 , l_array_reference_char_4
102525 , l_array_reference_date_2
102526 , l_array_reference_date_3
102527 , l_array_reference_date_4
102528 , l_array_event_created_by
102529 , l_array_budgetary_control_flag
102530 , l_array_source_33
102531 , l_array_source_75
102532 LIMIT l_rows;
102533 --
102534 IF (C_LEVEL_EVENT >= g_log_level) THEN
102535 trace
102536 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
102537 ,p_level => C_LEVEL_EVENT
102538 ,p_module => l_log_module);
102539 END IF;
102540 --
102541 EXIT WHEN l_array_entity_id.COUNT = 0;
102542
102543 -- initialize arrays
102544 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
102545 XLA_AE_LINES_PKG.g_rec_lines := NULL;
102546
102547 --
102548 -- Bug 4458708
102549 --
102550 XLA_AE_LINES_PKG.g_LineNumber := 0;
102551
102552
102553 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
102554 g_last_hdr_idx := l_array_event_id.LAST;
102555 --
102556 -- loop for the headers. Each iteration is for each header extract row
102557 -- fetched in header cursor
102558 --
102559 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
102560
102561 --
102562 -- set event info as cache for other routines to refer event attributes
102563 --
102564 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
102565 (p_application_id => p_application_id
102566 ,p_primary_ledger_id => p_primary_ledger_id
102567 ,p_base_ledger_id => p_base_ledger_id
102568 ,p_target_ledger_id => p_target_ledger_id
102569 ,p_entity_id => l_array_entity_id(hdr_idx)
102570 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
102571 ,p_entity_code => l_array_entity_code(hdr_idx)
102572 ,p_transaction_num => l_array_transaction_num(hdr_idx)
102573 ,p_event_id => l_array_event_id(hdr_idx)
102574 ,p_event_class_code => l_array_class_code(hdr_idx)
102575 ,p_event_type_code => l_array_event_type(hdr_idx)
102576 ,p_event_number => l_array_event_number(hdr_idx)
102577 ,p_event_date => l_array_event_date(hdr_idx)
102578 ,p_transaction_date => l_array_transaction_date(hdr_idx)
102579 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
102580 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
102581 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
102582 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
102583 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
102584 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
102585 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
102586 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
102587 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
102588 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
102589 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
102590 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
102591 ,p_event_created_by => l_array_event_created_by(hdr_idx)
102592 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
102593
102594 --
102595 -- set the status of entry to C_VALID (0)
102596 --
102597 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
102598
102599 --
102600 -- initialize a row for ae header
102601 --
102602 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
102603
102604 l_event_id := l_array_event_id(hdr_idx);
102605
102606 --
102607 -- storing the hdr_idx for event. May be used by line cursor.
102608 --
102609 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
102610
102611 --
102612 -- store sources from header extract. This can be improved to
102613 -- store only those sources from header extract that may be used in lines
102614 --
102615
102616 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
102617 g_array_event(l_event_id).array_value_date('source_75') := l_array_source_75(hdr_idx);
102618
102619 --
102620 -- initilaize the status of ae headers for diffrent balance types
102621 -- the status is initialised to C_NOT_CREATED (2)
102622 --
102623 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
102624 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
102625 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
102626
102627 --
102628 -- call api to validate and store accounting attributes for header
102629 --
102630
102631 ------------------------------------------------------------
102632 -- Accrual Reversal : to get date for Standard Source (NONE)
102633 ------------------------------------------------------------
102634 l_acc_rev_gl_date_source := NULL;
102635
102636 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
102637 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_75');
102638
102639
102640 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
102641
102642 XLA_AE_HEADER_PKG.SetJeCategoryName;
102643
102644 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
102645 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
102646 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
102647 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
102651 -- No header level analytical criteria
102648 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
102649
102650
102652
102653 --
102654 --accounting attribute enhancement, bug 3612931
102655 --
102656 l_trx_reversal_source := SUBSTR(NULL, 1,30);
102657
102658 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
102659 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
102660
102661 xla_accounting_err_pkg.build_message
102662 (p_appli_s_name => 'XLA'
102663 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
102664 ,p_token_1 => 'ACCT_ATTR_NAME'
102665 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
102666 ,p_token_2 => 'PRODUCT_NAME'
102667 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
102668 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
102669 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
102670 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
102671
102672 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
102673 --
102674 -- following sets the accounting attributes needed to reverse
102675 -- accounting for a distributeion
102676 --
102677 xla_ae_lines_pkg.SetTrxReversalAttrs
102678 (p_event_id => l_event_id
102679 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
102680 ,p_trx_reversal_source => l_trx_reversal_source);
102681
102682 END IF;
102683
102684
102685 ----------------------------------------------------------------
102686 -- 4262811 - update the header statuses to invalid in need be
102687 ----------------------------------------------------------------
102688 --
102689 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
102690
102691
102692 -----------------------------------------------
102693 -- No accrual reversal for the event class/type
102694 -----------------------------------------------
102695 ----------------------------------------------------------------
102696
102697 --
102698 -- this ends the header loop iteration for one bulk fetch
102699 --
102700 END LOOP;
102701
102702 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
102703 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
102704
102705 --
102706 -- insert dummy rows into lines gt table that were created due to
102707 -- transaction reversals
102708 --
102709 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
102710 l_result := XLA_AE_LINES_PKG.InsertLines;
102711 END IF;
102712
102713 --
102714 -- reset the temp_line_num for each set of events fetched from header
102715 -- cursor rather than doing it for each new event in line cursor
102716 -- Bug 3939231
102717 --
102718 xla_ae_lines_pkg.g_temp_line_num := 0;
102719
102720
102721
102722 --
102723 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
102724 --
102725 --
102726 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
102727
102728 trace
102729 (p_msg => 'SQL - FETCH line_cur'
102730 ,p_level => C_LEVEL_STATEMENT
102731 ,p_module => l_log_module);
102732
102733 END IF;
102734 --
102735 --
102736 LOOP
102737 --
102738 FETCH line_cur BULK COLLECT INTO
102739 l_array_entity_id
102740 , l_array_legal_entity_id
102741 , l_array_entity_code
102742 , l_array_transaction_num
102743 , l_array_event_id
102744 , l_array_class_code
102745 , l_array_event_type
102746 , l_array_event_number
102747 , l_array_event_date
102748 , l_array_transaction_date
102749 , l_array_reference_num_1
102750 , l_array_reference_num_2
102751 , l_array_reference_num_3
102752 , l_array_reference_num_4
102753 , l_array_reference_char_1
102754 , l_array_reference_char_2
102755 , l_array_reference_char_3
102756 , l_array_reference_char_4
102757 , l_array_reference_date_1
102758 , l_array_reference_date_2
102759 , l_array_reference_date_3
102760 , l_array_reference_date_4
102761 , l_array_event_created_by
102762 , l_array_budgetary_control_flag
102763 , l_array_extract_line_num
102764 , l_array_source_4
102765 , l_array_source_5
102766 , l_array_source_6
102767 , l_array_source_7
102768 , l_array_source_8
102769 , l_array_source_23
102770 , l_array_source_24
102771 , l_array_source_25
102772 , l_array_source_26
102773 , l_array_source_27
102774 , l_array_source_28
102775 , l_array_source_29
102776 , l_array_source_30
102777 , l_array_source_31
102778 , l_array_source_32
102779 , l_array_source_34
102780 , l_array_source_35
102781 , l_array_source_35_meaning
102782 , l_array_source_36
102783 LIMIT l_rows;
102784
102785 --
102786 IF (C_LEVEL_EVENT >= g_log_level) THEN
102787 trace
102788 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
102789 ,p_level => C_LEVEL_EVENT
102790 ,p_module => l_log_module);
102791 END IF;
102792 --
102793 EXIT WHEN l_array_entity_id.count = 0;
102794
102795 XLA_AE_LINES_PKG.g_rec_lines := null;
102796
102797 --
102798 -- Bug 4458708
102799 --
102800 XLA_AE_LINES_PKG.g_LineNumber := 0;
102801 --
102802 --
102803
102804 FOR Idx IN 1..l_array_event_id.count LOOP
102805 --
102809
102806 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
102807 --
102808 l_event_id := l_array_event_id(idx); -- 5648433
102810 --
102811 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
102812 --
102813
102814 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
102815 (g_array_event(l_event_id).array_value_num('header_index'))
102816 ,'N'
102817 ) <> 'Y'
102818 THEN
102819 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
102820 trace
102821 (p_msg => 'Trancaction revesal option is not Y '
102822 ,p_level => C_LEVEL_STATEMENT
102823 ,p_module => l_log_module);
102824 END IF;
102825
102826 --
102827 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
102828 --
102829 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
102830 --
102831 -- set event info as cache for other routines to refer event attributes
102832 --
102833
102834 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
102835 l_previous_event_id := l_event_id;
102836
102837 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
102838 (p_application_id => p_application_id
102839 ,p_primary_ledger_id => p_primary_ledger_id
102840 ,p_base_ledger_id => p_base_ledger_id
102841 ,p_target_ledger_id => p_target_ledger_id
102842 ,p_entity_id => l_array_entity_id(Idx)
102843 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
102844 ,p_entity_code => l_array_entity_code(Idx)
102845 ,p_transaction_num => l_array_transaction_num(Idx)
102846 ,p_event_id => l_array_event_id(Idx)
102847 ,p_event_class_code => l_array_class_code(Idx)
102848 ,p_event_type_code => l_array_event_type(Idx)
102849 ,p_event_number => l_array_event_number(Idx)
102850 ,p_event_date => l_array_event_date(Idx)
102851 ,p_transaction_date => l_array_transaction_date(Idx)
102852 ,p_reference_num_1 => l_array_reference_num_1(Idx)
102853 ,p_reference_num_2 => l_array_reference_num_2(Idx)
102854 ,p_reference_num_3 => l_array_reference_num_3(Idx)
102855 ,p_reference_num_4 => l_array_reference_num_4(Idx)
102856 ,p_reference_char_1 => l_array_reference_char_1(Idx)
102857 ,p_reference_char_2 => l_array_reference_char_2(Idx)
102858 ,p_reference_char_3 => l_array_reference_char_3(Idx)
102859 ,p_reference_char_4 => l_array_reference_char_4(Idx)
102860 ,p_reference_date_1 => l_array_reference_date_1(Idx)
102861 ,p_reference_date_2 => l_array_reference_date_2(Idx)
102862 ,p_reference_date_3 => l_array_reference_date_3(Idx)
102863 ,p_reference_date_4 => l_array_reference_date_4(Idx)
102864 ,p_event_created_by => l_array_event_created_by(Idx)
102865 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
102866 --
102867 END IF;
102868
102869
102870
102871 --
102872 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
102873
102874 l_acct_reversal_source := SUBSTR(l_array_source_23(Idx), 1,30);
102875
102876 IF l_continue_with_lines THEN
102877 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
102878 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
102879
102880 xla_accounting_err_pkg.build_message
102881 (p_appli_s_name => 'XLA'
102882 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
102883 ,p_token_1 => 'LINE_NUMBER'
102884 ,p_value_1 => l_array_extract_line_num(Idx)
102885 ,p_token_2 => 'PRODUCT_NAME'
102886 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
102887 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
102888 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
102889 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
102890
102891 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
102892 --
102893 -- following sets the accounting attributes needed to reverse
102894 -- accounting for a distributeion
102895 --
102896
102897 --
102898 -- 5217187
102899 --
102900 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
102901 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
102902 g_array_event(l_event_id).array_value_num('header_index'));
102903 --
102904 --
102905
102906 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
102907 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_23(Idx);
102908 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
102909 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_24(Idx);
102910 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
102911 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_7(Idx));
102912 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
102913 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_25(Idx);
102914 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
102915 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_26(Idx);
102916 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
102917 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_27(Idx);
102918 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
102922 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
102919 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_28(Idx);
102920 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
102921 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_29(Idx);
102923 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_30(Idx);
102924 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
102925 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_31(Idx);
102926 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
102927 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_4(Idx));
102928 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
102929 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_25(Idx);
102930 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
102931 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_26(Idx);
102932 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
102933 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_27(Idx);
102934 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
102935 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_28(Idx);
102936 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
102937 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_29(Idx);
102938 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
102939 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_30(Idx);
102940 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
102941 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_32(Idx);
102942 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
102943 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_33');
102944 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
102945 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_34(Idx);
102946 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
102947 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_35(Idx);
102948 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
102949 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_33');
102950 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
102951 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_36(Idx);
102952 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
102953 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_35(Idx);
102954
102955
102956 xla_ae_lines_pkg.SetAcctReversalAttrs
102957 (p_event_id => l_event_id
102958 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
102959 ,p_calculate_acctd_flag => l_calculate_acctd_flag
102960 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
102961 END IF;
102962
102963 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
102964 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
102965
102966 --
102967 AcctLineType_76 (
102968 p_application_id => p_application_id
102969 ,p_event_id => l_event_id
102970 ,p_calculate_acctd_flag => l_calculate_acctd_flag
102971 ,p_calculate_g_l_flag => l_calculate_g_l_flag
102972 ,p_actual_flag => l_actual_flag
102973 ,p_balance_type_code => l_balance_type_code
102974 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
102975
102976 , p_source_4 => l_array_source_4(Idx)
102977 , p_source_5 => l_array_source_5(Idx)
102978 , p_source_6 => l_array_source_6(Idx)
102979 , p_source_7 => l_array_source_7(Idx)
102980 , p_source_23 => l_array_source_23(Idx)
102981 , p_source_24 => l_array_source_24(Idx)
102982 , p_source_25 => l_array_source_25(Idx)
102983 , p_source_26 => l_array_source_26(Idx)
102984 , p_source_27 => l_array_source_27(Idx)
102985 , p_source_28 => l_array_source_28(Idx)
102986 , p_source_29 => l_array_source_29(Idx)
102987 , p_source_30 => l_array_source_30(Idx)
102988 , p_source_31 => l_array_source_31(Idx)
102989 , p_source_32 => l_array_source_32(Idx)
102990 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
102991 , p_source_34 => l_array_source_34(Idx)
102992 , p_source_35 => l_array_source_35(Idx)
102993 , p_source_35_meaning => l_array_source_35_meaning(Idx)
102994 , p_source_36 => l_array_source_36(Idx)
102995 );
102996 If(l_balance_type_code = 'A') THEN
102997 l_actual_gain_loss_ref := l_gain_or_loss_ref;
102998 END IF;
102999
103000 --
103001
103002
103003 --
103004 AcctLineType_81 (
103005 p_application_id => p_application_id
103006 ,p_event_id => l_event_id
103007 ,p_calculate_acctd_flag => l_calculate_acctd_flag
103008 ,p_calculate_g_l_flag => l_calculate_g_l_flag
103009 ,p_actual_flag => l_actual_flag
103010 ,p_balance_type_code => l_balance_type_code
103011 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
103012
103013 , p_source_4 => l_array_source_4(Idx)
103014 , p_source_5 => l_array_source_5(Idx)
103015 , p_source_6 => l_array_source_6(Idx)
103016 , p_source_7 => l_array_source_7(Idx)
103017 , p_source_23 => l_array_source_23(Idx)
103018 , p_source_24 => l_array_source_24(Idx)
103019 , p_source_25 => l_array_source_25(Idx)
103020 , p_source_26 => l_array_source_26(Idx)
103021 , p_source_27 => l_array_source_27(Idx)
103022 , p_source_28 => l_array_source_28(Idx)
103023 , p_source_29 => l_array_source_29(Idx)
103024 , p_source_30 => l_array_source_30(Idx)
103025 , p_source_31 => l_array_source_31(Idx)
103026 , p_source_32 => l_array_source_32(Idx)
103027 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
103028 , p_source_34 => l_array_source_34(Idx)
103029 , p_source_35 => l_array_source_35(Idx)
103033 If(l_balance_type_code = 'A') THEN
103030 , p_source_35_meaning => l_array_source_35_meaning(Idx)
103031 , p_source_36 => l_array_source_36(Idx)
103032 );
103034 l_actual_gain_loss_ref := l_gain_or_loss_ref;
103035 END IF;
103036
103037 --
103038
103039
103040 --
103041 AcctLineType_92 (
103042 p_application_id => p_application_id
103043 ,p_event_id => l_event_id
103044 ,p_calculate_acctd_flag => l_calculate_acctd_flag
103045 ,p_calculate_g_l_flag => l_calculate_g_l_flag
103046 ,p_actual_flag => l_actual_flag
103047 ,p_balance_type_code => l_balance_type_code
103048 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
103049
103050 , p_source_4 => l_array_source_4(Idx)
103051 , p_source_5 => l_array_source_5(Idx)
103052 , p_source_7 => l_array_source_7(Idx)
103053 , p_source_8 => l_array_source_8(Idx)
103054 , p_source_23 => l_array_source_23(Idx)
103055 , p_source_24 => l_array_source_24(Idx)
103056 , p_source_25 => l_array_source_25(Idx)
103057 , p_source_26 => l_array_source_26(Idx)
103058 , p_source_27 => l_array_source_27(Idx)
103059 , p_source_28 => l_array_source_28(Idx)
103060 , p_source_29 => l_array_source_29(Idx)
103061 , p_source_30 => l_array_source_30(Idx)
103062 , p_source_31 => l_array_source_31(Idx)
103063 , p_source_32 => l_array_source_32(Idx)
103064 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
103065 , p_source_34 => l_array_source_34(Idx)
103066 , p_source_35 => l_array_source_35(Idx)
103067 , p_source_35_meaning => l_array_source_35_meaning(Idx)
103068 , p_source_36 => l_array_source_36(Idx)
103069 );
103070 If(l_balance_type_code = 'A') THEN
103071 l_actual_gain_loss_ref := l_gain_or_loss_ref;
103072 END IF;
103073
103074 --
103075
103076
103077 --
103078 AcctLineType_101 (
103079 p_application_id => p_application_id
103080 ,p_event_id => l_event_id
103081 ,p_calculate_acctd_flag => l_calculate_acctd_flag
103082 ,p_calculate_g_l_flag => l_calculate_g_l_flag
103083 ,p_actual_flag => l_actual_flag
103084 ,p_balance_type_code => l_balance_type_code
103085 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
103086
103087 , p_source_4 => l_array_source_4(Idx)
103088 , p_source_5 => l_array_source_5(Idx)
103089 , p_source_7 => l_array_source_7(Idx)
103090 , p_source_8 => l_array_source_8(Idx)
103091 , p_source_23 => l_array_source_23(Idx)
103092 , p_source_24 => l_array_source_24(Idx)
103093 , p_source_25 => l_array_source_25(Idx)
103094 , p_source_26 => l_array_source_26(Idx)
103095 , p_source_27 => l_array_source_27(Idx)
103096 , p_source_28 => l_array_source_28(Idx)
103097 , p_source_29 => l_array_source_29(Idx)
103098 , p_source_30 => l_array_source_30(Idx)
103099 , p_source_31 => l_array_source_31(Idx)
103100 , p_source_32 => l_array_source_32(Idx)
103101 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
103102 , p_source_34 => l_array_source_34(Idx)
103103 , p_source_35 => l_array_source_35(Idx)
103104 , p_source_35_meaning => l_array_source_35_meaning(Idx)
103105 , p_source_36 => l_array_source_36(Idx)
103106 );
103107 If(l_balance_type_code = 'A') THEN
103108 l_actual_gain_loss_ref := l_gain_or_loss_ref;
103109 END IF;
103110
103111 --
103112
103113 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
103114 -- or secondary ledger that has different currency with primary
103115 -- or alc that is calculated by sla
103116 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
103117 (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'))
103118
103119 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
103120 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
103121 AND (l_actual_flag = 'A')) THEN
103122 XLA_AE_LINES_PKG.CreateGainOrLossLines(
103123 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
103124 ,p_application_id => p_application_id
103125 ,p_amb_context_code => 'DEFAULT'
103126 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
103127 ,p_event_class_code => C_EVENT_CLASS_CODE
103128 ,p_event_type_code => C_EVENT_TYPE_CODE
103129
103130 ,p_gain_ccid => -1
103131 ,p_loss_ccid => -1
103132
103133 ,p_actual_flag => l_actual_flag
103134 ,p_enc_flag => null
103135 ,p_actual_g_l_ref => l_actual_gain_loss_ref
103136 ,p_enc_g_l_ref => null
103137 );
103138 END IF;
103139 END IF;
103140 END IF;
103141
103142 ELSE
103143 --
103144 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
103145 --
103146 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
103147 trace
103148 (p_msg => 'Trancaction revesal option is Y'
103149 ,p_level => C_LEVEL_STATEMENT
103150 ,p_module => l_log_module);
103151 END IF;
103152 END IF;
103153
103154 END LOOP;
103155 l_result := XLA_AE_LINES_PKG.InsertLines ;
103156 end loop;
103157 close line_cur;
103158
103159
103160 --
103161 -- insert headers into xla_ae_headers_gt table
103162 --
103163 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
103164
103165 -- insert into errors table here.
103166
103167 END LOOP;
103168
103169 --
103170 -- 4865292
103171 --
103172 -- Compare g_hdr_extract_count with event count in
103173 -- CreateHeadersAndLines.
103174 --
103175 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
103176
103177 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
103181 ,p_level => C_LEVEL_STATEMENT
103178 trace (p_msg => '# rows extracted from header extract objects '
103179 || ' (running total): '
103180 || g_hdr_extract_count
103182 ,p_module => l_log_module);
103183 END IF;
103184
103185 CLOSE header_cur;
103186 --
103187
103188 --
103189 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
103190 trace
103191 (p_msg => 'END of EventClass_167'
103192 ,p_level => C_LEVEL_PROCEDURE
103193 ,p_module => l_log_module);
103194 END IF;
103195 --
103196 RETURN l_result;
103197 EXCEPTION
103198 WHEN xla_exceptions_pkg.application_exception THEN
103199
103200 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
103201
103202
103203 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
103204
103205 RAISE;
103206 WHEN OTHERS THEN
103207 xla_exceptions_pkg.raise_message
103208 (p_location => 'XLA_00275_AAD_S_000015_PKG.EventClass_167');
103209 END EventClass_167;
103210 --
103211
103212 ---------------------------------------
103213 --
103214 -- PRIVATE PROCEDURE
103215 -- insert_sources_168
103216 --
103217 ----------------------------------------
103218 --
103219 PROCEDURE insert_sources_168(
103220 p_target_ledger_id IN NUMBER
103221 , p_language IN VARCHAR2
103222 , p_sla_ledger_id IN NUMBER
103223 , p_pad_start_date IN DATE
103224 , p_pad_end_date IN DATE
103225 )
103226 IS
103227
103228 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'USG_COST_ALL';
103229 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'USG_COST';
103230 p_apps_owner VARCHAR2(30);
103231 l_log_module VARCHAR2(240);
103232 BEGIN
103233 IF g_log_enabled THEN
103234 l_log_module := C_DEFAULT_MODULE||'.insert_sources_168';
103235 END IF;
103236 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
103237
103238 trace
103239 (p_msg => 'BEGIN of insert_sources_168'
103240 ,p_level => C_LEVEL_PROCEDURE
103241 ,p_module => l_log_module);
103242
103243 END IF;
103244
103245 -- select APPS owner
103246 SELECT oracle_username
103247 INTO p_apps_owner
103248 FROM fnd_oracle_userid
103249 WHERE read_only_flag = 'U'
103250 ;
103251
103252 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
103253 trace
103254 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
103255 ' - p_language = '||p_language||
103256 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
103257 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
103258 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
103259 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
103260 ,p_level => C_LEVEL_STATEMENT
103261 ,p_module => l_log_module);
103262 END IF;
103263
103264
103265 --
103266 INSERT INTO xla_diag_sources --hdr2
103267 (
103268 event_id
103269 , ledger_id
103270 , sla_ledger_id
103271 , description_language
103272 , object_name
103273 , object_type_code
103274 , line_number
103275 , source_application_id
103276 , source_type_code
103277 , source_code
103278 , source_value
103279 , source_meaning
103280 , created_by
103281 , creation_date
103282 , last_update_date
103283 , last_updated_by
103284 , last_update_login
103285 , program_update_date
103286 , program_application_id
103287 , program_id
103288 , request_id
103289 )
103290 SELECT
103291 event_id
103292 , p_target_ledger_id
103293 , p_sla_ledger_id
103294 , p_language
103295 , object_name
103296 , object_type_code
103297 , line_number
103298 , source_application_id
103299 , source_type_code
103300 , source_code
103301 , SUBSTR(source_value ,1,1996)
103302 , SUBSTR(source_meaning ,1,200)
103303 , xla_environment_pkg.g_Usr_Id
103304 , TRUNC(SYSDATE)
103305 , TRUNC(SYSDATE)
103306 , xla_environment_pkg.g_Usr_Id
103307 , xla_environment_pkg.g_Login_Id
103308 , TRUNC(SYSDATE)
103309 , xla_environment_pkg.g_Prog_Appl_Id
103310 , xla_environment_pkg.g_Prog_Id
103311 , xla_environment_pkg.g_Req_Id
103312 FROM (
103313 SELECT xet.event_id event_id
103314 , 0 line_number
103315 , CASE r
103316 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
103317 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
103318
103319 ELSE null
103320 END object_name
103321 , CASE r
103322 WHEN 1 THEN 'HEADER'
103323 WHEN 2 THEN 'HEADER'
103324
103325 ELSE null
103326 END object_type_code
103327 , CASE r
103328 WHEN 1 THEN '275'
103329 WHEN 2 THEN '275'
103330
103331 ELSE null
103332 END source_application_id
103333 , 'S' source_type_code
103334 , CASE r
103335 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
103336 WHEN 2 THEN 'GL_DATE'
103337
103338 ELSE null
103339 END source_code
103340 , CASE r
103344 ELSE null
103341 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
103342 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
103343
103345 END source_value
103346 , null source_meaning
103347 FROM xla_events_gt xet
103348 , PA_XLA_EXP_HEADER_V h2
103349 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
103350 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
103351 AND xet.event_class_code = C_EVENT_CLASS_CODE
103352 AND h2.event_id = xet.event_id
103353
103354 )
103355 ;
103356 --
103357 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
103358
103359 trace
103360 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
103361 ,p_level => C_LEVEL_STATEMENT
103362 ,p_module => l_log_module);
103363
103364 END IF;
103365 --
103366
103367
103368
103369 --
103370 INSERT INTO xla_diag_sources --line2
103371 (
103372 event_id
103373 , ledger_id
103374 , sla_ledger_id
103375 , description_language
103376 , object_name
103377 , object_type_code
103378 , line_number
103379 , source_application_id
103380 , source_type_code
103381 , source_code
103382 , source_value
103383 , source_meaning
103384 , created_by
103385 , creation_date
103386 , last_update_date
103387 , last_updated_by
103388 , last_update_login
103389 , program_update_date
103390 , program_application_id
103391 , program_id
103392 , request_id
103393 )
103394 SELECT event_id
103395 , p_target_ledger_id
103396 , p_sla_ledger_id
103397 , p_language
103398 , object_name
103399 , object_type_code
103400 , line_number
103401 , source_application_id
103402 , source_type_code
103403 , source_code
103404 , SUBSTR(source_value,1,1996)
103405 , SUBSTR(source_meaning ,1,200)
103406 , xla_environment_pkg.g_Usr_Id
103407 , TRUNC(SYSDATE)
103408 , TRUNC(SYSDATE)
103409 , xla_environment_pkg.g_Usr_Id
103410 , xla_environment_pkg.g_Login_Id
103411 , TRUNC(SYSDATE)
103412 , xla_environment_pkg.g_Prog_Appl_Id
103413 , xla_environment_pkg.g_Prog_Id
103414 , xla_environment_pkg.g_Req_Id
103415 FROM (
103416 SELECT xet.event_id event_id
103417 , l1.line_number line_number
103418 , CASE r
103419 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
103420 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
103421 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
103422 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
103423 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
103424 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
103425 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
103426 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
103427 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
103428 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
103429 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
103430 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
103431 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
103432 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
103433 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
103434 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
103435 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
103436 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
103437
103438 ELSE null
103439 END object_name
103440 , CASE r
103441 WHEN 1 THEN 'LINE'
103442 WHEN 2 THEN 'LINE'
103443 WHEN 3 THEN 'LINE'
103444 WHEN 4 THEN 'LINE'
103445 WHEN 5 THEN 'LINE'
103446 WHEN 6 THEN 'LINE'
103447 WHEN 7 THEN 'LINE'
103448 WHEN 8 THEN 'LINE'
103449 WHEN 9 THEN 'LINE'
103450 WHEN 10 THEN 'LINE'
103451 WHEN 11 THEN 'LINE'
103452 WHEN 12 THEN 'LINE'
103453 WHEN 13 THEN 'LINE'
103454 WHEN 14 THEN 'LINE'
103455 WHEN 15 THEN 'LINE'
103456 WHEN 16 THEN 'LINE'
103457 WHEN 17 THEN 'LINE'
103458 WHEN 18 THEN 'LINE'
103459
103460 ELSE null
103461 END object_type_code
103462 , CASE r
103463 WHEN 1 THEN '275'
103464 WHEN 2 THEN '275'
103465 WHEN 3 THEN '275'
103466 WHEN 4 THEN '275'
103467 WHEN 5 THEN '275'
103468 WHEN 6 THEN '275'
103469 WHEN 7 THEN '275'
103470 WHEN 8 THEN '275'
103471 WHEN 9 THEN '275'
103472 WHEN 10 THEN '275'
103473 WHEN 11 THEN '275'
103474 WHEN 12 THEN '275'
103475 WHEN 13 THEN '275'
103476 WHEN 14 THEN '275'
103477 WHEN 15 THEN '275'
103478 WHEN 16 THEN '275'
103479 WHEN 17 THEN '275'
103480 WHEN 18 THEN '275'
103481
103482 ELSE null
103483 END source_application_id
103484 , 'S' source_type_code
103485 , CASE r
103486 WHEN 1 THEN 'COST_CCID'
103487 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
103488 WHEN 3 THEN 'ADJ_COST_CCID'
103492 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
103489 WHEN 4 THEN 'COST_CLEARING_CCID'
103490 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
103491 WHEN 6 THEN 'REVERSING_LINE_FLAG'
103493 WHEN 8 THEN 'ENTERED_RAW_COST'
103494 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
103495 WHEN 10 THEN 'ACCT_RAW_COST'
103496 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
103497 WHEN 12 THEN 'EXCHANGE_RATE'
103498 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
103499 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
103500 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
103501 WHEN 16 THEN 'LINE_NUMBER'
103502 WHEN 17 THEN 'LINE_TYPE'
103503 WHEN 18 THEN 'LINE_NUM_REVERSED'
103504
103505 ELSE null
103506 END source_code
103507 , CASE r
103508 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
103509 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
103510 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
103511 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
103512 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
103513 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
103514 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
103515 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
103516 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
103517 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
103518 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
103519 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
103520 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
103521 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
103522 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
103523 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
103524 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
103525 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
103526
103527 ELSE null
103528 END source_value
103529 , CASE r
103530 WHEN 2 THEN XLA_00275_AAD_S_000015_PKG.GetMeaning(
103531 103371
103532 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
103533 ,'ALLOW_OVERRIDE_CCID_FLAG'
103534 ,'S'
103535 ,275)
103536 WHEN 17 THEN fvl35.meaning
103537
103538 ELSE null
103539 END source_meaning
103540 FROM xla_events_gt xet
103541 , PA_XLA_CDL_LINES_V l1
103542 , fnd_lookup_values fvl35
103543 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
103544 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
103545 AND xet.event_class_code = C_EVENT_CLASS_CODE
103546 AND l1.event_id = xet.event_id
103547 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
103548 AND fvl35.lookup_code(+) = l1.LINE_TYPE
103549 AND fvl35.view_application_id(+) = 275
103550 AND fvl35.language(+) = USERENV('LANG')
103551
103552 )
103553 ;
103554 --
103555 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
103556
103557 trace
103558 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
103559 ,p_level => C_LEVEL_STATEMENT
103560 ,p_module => l_log_module);
103561
103562 END IF;
103563
103564
103565 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
103566 trace
103567 (p_msg => 'END of insert_sources_168'
103568 ,p_level => C_LEVEL_PROCEDURE
103569 ,p_module => l_log_module);
103570 END IF;
103571 EXCEPTION
103572 WHEN xla_exceptions_pkg.application_exception THEN
103573 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
103574 trace
103575 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
103576 ,p_level => C_LEVEL_EXCEPTION
103577 ,p_module => l_log_module);
103578 END IF;
103579 RAISE;
103580 WHEN OTHERS THEN
103581 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
103582 trace
103583 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
103584 ,p_level => C_LEVEL_EXCEPTION
103585 ,p_module => l_log_module);
103586 END IF;
103587 xla_exceptions_pkg.raise_message
103588 (p_location => 'XLA_00275_AAD_S_000015_PKG.insert_sources_168');
103589 END insert_sources_168;
103590 --
103591
103592 ---------------------------------------
103593 --
103594 -- PRIVATE FUNCTION
103595 -- EventClass_168
103596 --
103597 ----------------------------------------
103598 --
103599 FUNCTION EventClass_168
103600 (p_application_id IN NUMBER
103601 ,p_base_ledger_id IN NUMBER
103602 ,p_target_ledger_id IN NUMBER
103603 ,p_language IN VARCHAR2
103604 ,p_currency_code IN VARCHAR2
103605 ,p_sla_ledger_id IN NUMBER
103606 ,p_pad_start_date IN DATE
103607 ,p_pad_end_date IN DATE
103608 ,p_primary_ledger_id IN NUMBER)
103609 RETURN BOOLEAN IS
103610 --
103611 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'USG_COST_ALL';
103612 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'USG_COST';
103613
103614 l_calculate_acctd_flag VARCHAR2(1) :='N';
103615 l_calculate_g_l_flag VARCHAR2(1) :='N';
103616 --
103617 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
103618 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
103622 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
103619 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
103620 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
103621 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
103623 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
103624 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
103625 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
103626 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
103627 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
103628 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
103629 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
103630 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
103631 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
103632 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
103633 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
103634 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
103635 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
103636 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
103637 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
103638 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
103639 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
103640 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
103641
103642 l_event_id NUMBER;
103643 l_previous_event_id NUMBER;
103644 l_first_event_id NUMBER;
103645 l_last_event_id NUMBER;
103646
103647 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
103648 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
103649 --
103650 --
103651 l_result BOOLEAN := TRUE;
103652 l_rows NUMBER := 1000;
103653 l_event_type_name VARCHAR2(80) := 'All';
103654 l_event_class_name VARCHAR2(80) := 'Usage Cost';
103655 l_description VARCHAR2(4000);
103656 l_transaction_reversal NUMBER;
103657 l_ae_header_id NUMBER;
103658 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
103659 l_log_module VARCHAR2(240);
103660 --
103661 l_acct_reversal_source VARCHAR2(30);
103662 l_trx_reversal_source VARCHAR2(30);
103663
103664 l_continue_with_lines BOOLEAN := TRUE;
103665 --
103666 l_acc_rev_gl_date_source DATE; -- 4262811
103667 --
103668 type t_array_event_id is table of number index by binary_integer;
103669
103670 l_rec_array_event t_rec_array_event;
103671 l_null_rec_array_event t_rec_array_event;
103672 l_array_ae_header_id xla_number_array_type;
103673 l_actual_flag VARCHAR2(1) := NULL;
103674 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
103675 l_balance_type_code VARCHAR2(1) :=NULL;
103676 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
103677
103678 --
103679 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
103680 --
103681
103682 TYPE t_array_source_33 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
103683 TYPE t_array_source_75 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
103684
103685 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
103686 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
103687 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
103688 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
103689 TYPE t_array_source_8 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
103690 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
103691 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
103692 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
103693 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
103694 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
103695 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
103696 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
103697 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
103698 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
103699 TYPE t_array_source_32 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
103700 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
103701 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
103702 TYPE t_array_source_36 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
103703
103704 l_array_source_33 t_array_source_33;
103705 l_array_source_75 t_array_source_75;
103706
103707 l_array_source_4 t_array_source_4;
103708 l_array_source_5 t_array_source_5;
103709 l_array_source_6 t_array_source_6;
103710 l_array_source_7 t_array_source_7;
103711 l_array_source_8 t_array_source_8;
103712 l_array_source_23 t_array_source_23;
103713 l_array_source_24 t_array_source_24;
103714 l_array_source_25 t_array_source_25;
103718 l_array_source_29 t_array_source_29;
103715 l_array_source_26 t_array_source_26;
103716 l_array_source_27 t_array_source_27;
103717 l_array_source_28 t_array_source_28;
103719 l_array_source_30 t_array_source_30;
103720 l_array_source_31 t_array_source_31;
103721 l_array_source_32 t_array_source_32;
103722 l_array_source_34 t_array_source_34;
103723 l_array_source_35 t_array_source_35;
103724 l_array_source_35_meaning t_array_lookup_meaning;
103725 l_array_source_36 t_array_source_36;
103726
103727 --
103728 CURSOR header_cur
103729 IS
103730 SELECT /*+ leading(xet) cardinality(xet,1) */
103731 -- Event Class Code: USG_COST
103732 xet.entity_id
103733 ,xet.legal_entity_id
103734 ,xet.entity_code
103735 ,xet.transaction_number
103736 ,xet.event_id
103737 ,xet.event_class_code
103738 ,xet.event_type_code
103739 ,xet.event_number
103740 ,xet.event_date
103741 ,xet.transaction_date
103742 ,xet.reference_num_1
103743 ,xet.reference_num_2
103744 ,xet.reference_num_3
103745 ,xet.reference_num_4
103746 ,xet.reference_char_1
103747 ,xet.reference_char_2
103748 ,xet.reference_char_3
103749 ,xet.reference_char_4
103750 ,xet.reference_date_1
103751 ,xet.reference_date_2
103752 ,xet.reference_date_3
103753 ,xet.reference_date_4
103754 ,xet.event_created_by
103755 ,xet.budgetary_control_flag
103756 , h2.EXPENDITURE_ITEM_ID source_33
103757 , h2.GL_DATE source_75
103758 FROM xla_events_gt xet
103759 , PA_XLA_EXP_HEADER_V h2
103760 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
103761 and xet.event_class_code = C_EVENT_CLASS_CODE
103762 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
103763
103764 ORDER BY event_id
103765 ;
103766
103767
103768 --
103769 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
103770 IS
103771 SELECT /*+ leading(xet) cardinality(xet,1) */
103772 -- Event Class Code: USG_COST
103773 xet.entity_id
103774 ,xet.legal_entity_id
103775 ,xet.entity_code
103776 ,xet.transaction_number
103777 ,xet.event_id
103778 ,xet.event_class_code
103779 ,xet.event_type_code
103780 ,xet.event_number
103781 ,xet.event_date
103782 ,xet.transaction_date
103783 ,xet.reference_num_1
103784 ,xet.reference_num_2
103785 ,xet.reference_num_3
103786 ,xet.reference_num_4
103787 ,xet.reference_char_1
103788 ,xet.reference_char_2
103789 ,xet.reference_char_3
103790 ,xet.reference_char_4
103791 ,xet.reference_date_1
103792 ,xet.reference_date_2
103793 ,xet.reference_date_3
103794 ,xet.reference_date_4
103795 ,xet.event_created_by
103796 ,xet.budgetary_control_flag
103797 , l1.LINE_NUMBER
103798 , l1.COST_CCID source_4
103799 , l1.ALLOW_OVERRIDE_CCID_FLAG source_5
103800 , l1.ADJ_COST_CCID source_6
103801 , l1.COST_CLEARING_CCID source_7
103802 , l1.ADJ_COST_CLEARING_CCID source_8
103803 , l1.REVERSING_LINE_FLAG source_23
103804 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_24
103805 , l1.ENTERED_RAW_COST source_25
103806 , l1.ENTERED_CURRENCY_CODE source_26
103807 , l1.ACCT_RAW_COST source_27
103808 , l1.EXCHANGE_RATE_DATE source_28
103809 , l1.EXCHANGE_RATE source_29
103810 , l1.EXCHANGE_RATE_TYPE source_30
103811 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_31
103812 , l1.USE_ACT_UPG_ATTRIB_FLAG source_32
103813 , l1.LINE_NUMBER source_34
103814 , l1.LINE_TYPE source_35
103815 , fvl35.meaning source_35_meaning
103816 , l1.LINE_NUM_REVERSED source_36
103817 FROM xla_events_gt xet
103818 , PA_XLA_CDL_LINES_V l1
103819 , fnd_lookup_values fvl35
103820 WHERE xet.event_id between x_first_event_id and x_last_event_id
103821 and xet.event_date between p_pad_start_date and p_pad_end_date
103822 and xet.event_class_code = C_EVENT_CLASS_CODE
103823 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
103824 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
103825 AND fvl35.lookup_code(+) = l1.LINE_TYPE
103826 AND fvl35.view_application_id(+) = 275
103827 AND fvl35.language(+) = USERENV('LANG')
103828 ;
103829
103830 --
103831 BEGIN
103832 IF g_log_enabled THEN
103833 l_log_module := C_DEFAULT_MODULE||'.EventClass_168';
103834 END IF;
103835 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
103836 trace
103837 (p_msg => 'BEGIN of EventClass_168'
103838 ,p_level => C_LEVEL_PROCEDURE
103839 ,p_module => l_log_module);
103840 END IF;
103841
103842 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
103843 trace
103844 (p_msg => 'p_application_id = '||p_application_id||
103845 ' - p_base_ledger_id = '||p_base_ledger_id||
103846 ' - p_target_ledger_id = '||p_target_ledger_id||
103847 ' - p_language = '||p_language||
103848 ' - p_currency_code = '||p_currency_code||
103849 ' - p_sla_ledger_id = '||p_sla_ledger_id
103850 ,p_level => C_LEVEL_STATEMENT
103851 ,p_module => l_log_module);
103852 END IF;
103853 --
103854 -- initialze arrays
103855 --
103856 g_array_event.DELETE;
103857 l_rec_array_event := l_null_rec_array_event;
103858 --
103859 --------------------------------------
103860 -- 4262811 Initialze MPA Line Number
103861 --------------------------------------
103862 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
103863
103864 --
103865
103866 --
103867 OPEN header_cur;
103868 --
103869 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
103870 trace
103871 (p_msg => 'SQL - FETCH header_cur'
103872 ,p_level => C_LEVEL_STATEMENT
103876 LOOP
103873 ,p_module => l_log_module);
103874 END IF;
103875 --
103877 FETCH header_cur BULK COLLECT INTO
103878 l_array_entity_id
103879 , l_array_legal_entity_id
103880 , l_array_entity_code
103881 , l_array_transaction_num
103882 , l_array_event_id
103883 , l_array_class_code
103884 , l_array_event_type
103885 , l_array_event_number
103886 , l_array_event_date
103887 , l_array_transaction_date
103888 , l_array_reference_num_1
103889 , l_array_reference_num_2
103890 , l_array_reference_num_3
103891 , l_array_reference_num_4
103892 , l_array_reference_char_1
103893 , l_array_reference_char_2
103894 , l_array_reference_char_3
103895 , l_array_reference_char_4
103896 , l_array_reference_date_1
103897 , l_array_reference_date_2
103898 , l_array_reference_date_3
103899 , l_array_reference_date_4
103900 , l_array_event_created_by
103901 , l_array_budgetary_control_flag
103902 , l_array_source_33
103903 , l_array_source_75
103904 LIMIT l_rows;
103905 --
103906 IF (C_LEVEL_EVENT >= g_log_level) THEN
103907 trace
103908 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
103909 ,p_level => C_LEVEL_EVENT
103910 ,p_module => l_log_module);
103911 END IF;
103912 --
103913 EXIT WHEN l_array_entity_id.COUNT = 0;
103914
103915 -- initialize arrays
103916 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
103917 XLA_AE_LINES_PKG.g_rec_lines := NULL;
103918
103919 --
103920 -- Bug 4458708
103921 --
103922 XLA_AE_LINES_PKG.g_LineNumber := 0;
103923
103924
103925 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
103926 g_last_hdr_idx := l_array_event_id.LAST;
103927 --
103928 -- loop for the headers. Each iteration is for each header extract row
103929 -- fetched in header cursor
103930 --
103931 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
103932
103933 --
103934 -- set event info as cache for other routines to refer event attributes
103935 --
103936 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
103937 (p_application_id => p_application_id
103938 ,p_primary_ledger_id => p_primary_ledger_id
103939 ,p_base_ledger_id => p_base_ledger_id
103940 ,p_target_ledger_id => p_target_ledger_id
103941 ,p_entity_id => l_array_entity_id(hdr_idx)
103942 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
103943 ,p_entity_code => l_array_entity_code(hdr_idx)
103944 ,p_transaction_num => l_array_transaction_num(hdr_idx)
103945 ,p_event_id => l_array_event_id(hdr_idx)
103946 ,p_event_class_code => l_array_class_code(hdr_idx)
103947 ,p_event_type_code => l_array_event_type(hdr_idx)
103948 ,p_event_number => l_array_event_number(hdr_idx)
103949 ,p_event_date => l_array_event_date(hdr_idx)
103950 ,p_transaction_date => l_array_transaction_date(hdr_idx)
103951 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
103952 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
103953 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
103954 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
103955 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
103956 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
103957 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
103958 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
103959 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
103960 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
103961 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
103962 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
103963 ,p_event_created_by => l_array_event_created_by(hdr_idx)
103964 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
103965
103966 --
103967 -- set the status of entry to C_VALID (0)
103968 --
103969 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
103970
103971 --
103972 -- initialize a row for ae header
103973 --
103974 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
103975
103976 l_event_id := l_array_event_id(hdr_idx);
103977
103978 --
103979 -- storing the hdr_idx for event. May be used by line cursor.
103980 --
103981 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
103982
103983 --
103984 -- store sources from header extract. This can be improved to
103985 -- store only those sources from header extract that may be used in lines
103986 --
103987
103988 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
103989 g_array_event(l_event_id).array_value_date('source_75') := l_array_source_75(hdr_idx);
103990
103991 --
103992 -- initilaize the status of ae headers for diffrent balance types
103993 -- the status is initialised to C_NOT_CREATED (2)
103994 --
103995 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
103996 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
103997 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
103998
103999 --
104000 -- call api to validate and store accounting attributes for header
104001 --
104002
104003 ------------------------------------------------------------
104004 -- Accrual Reversal : to get date for Standard Source (NONE)
104005 ------------------------------------------------------------
104006 l_acc_rev_gl_date_source := NULL;
104007
104008 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
104012 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
104009 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_75');
104010
104011
104013
104014 XLA_AE_HEADER_PKG.SetJeCategoryName;
104015
104016 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
104017 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
104018 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
104019 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
104020 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
104021
104022
104023 -- No header level analytical criteria
104024
104025 --
104026 --accounting attribute enhancement, bug 3612931
104027 --
104028 l_trx_reversal_source := SUBSTR(NULL, 1,30);
104029
104030 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
104031 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
104032
104033 xla_accounting_err_pkg.build_message
104034 (p_appli_s_name => 'XLA'
104035 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
104036 ,p_token_1 => 'ACCT_ATTR_NAME'
104037 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
104038 ,p_token_2 => 'PRODUCT_NAME'
104039 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
104040 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
104041 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
104042 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
104043
104044 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
104045 --
104046 -- following sets the accounting attributes needed to reverse
104047 -- accounting for a distributeion
104048 --
104049 xla_ae_lines_pkg.SetTrxReversalAttrs
104050 (p_event_id => l_event_id
104051 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
104052 ,p_trx_reversal_source => l_trx_reversal_source);
104053
104054 END IF;
104055
104056
104057 ----------------------------------------------------------------
104058 -- 4262811 - update the header statuses to invalid in need be
104059 ----------------------------------------------------------------
104060 --
104061 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
104062
104063
104064 -----------------------------------------------
104065 -- No accrual reversal for the event class/type
104066 -----------------------------------------------
104067 ----------------------------------------------------------------
104068
104069 --
104070 -- this ends the header loop iteration for one bulk fetch
104071 --
104072 END LOOP;
104073
104074 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
104075 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
104076
104077 --
104078 -- insert dummy rows into lines gt table that were created due to
104079 -- transaction reversals
104080 --
104081 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
104082 l_result := XLA_AE_LINES_PKG.InsertLines;
104083 END IF;
104084
104085 --
104086 -- reset the temp_line_num for each set of events fetched from header
104087 -- cursor rather than doing it for each new event in line cursor
104088 -- Bug 3939231
104089 --
104090 xla_ae_lines_pkg.g_temp_line_num := 0;
104091
104092
104093
104094 --
104095 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
104096 --
104097 --
104098 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
104099
104100 trace
104101 (p_msg => 'SQL - FETCH line_cur'
104102 ,p_level => C_LEVEL_STATEMENT
104103 ,p_module => l_log_module);
104104
104105 END IF;
104106 --
104107 --
104108 LOOP
104109 --
104110 FETCH line_cur BULK COLLECT INTO
104111 l_array_entity_id
104112 , l_array_legal_entity_id
104113 , l_array_entity_code
104114 , l_array_transaction_num
104115 , l_array_event_id
104116 , l_array_class_code
104117 , l_array_event_type
104118 , l_array_event_number
104119 , l_array_event_date
104120 , l_array_transaction_date
104121 , l_array_reference_num_1
104122 , l_array_reference_num_2
104123 , l_array_reference_num_3
104124 , l_array_reference_num_4
104125 , l_array_reference_char_1
104126 , l_array_reference_char_2
104127 , l_array_reference_char_3
104128 , l_array_reference_char_4
104129 , l_array_reference_date_1
104130 , l_array_reference_date_2
104131 , l_array_reference_date_3
104132 , l_array_reference_date_4
104133 , l_array_event_created_by
104134 , l_array_budgetary_control_flag
104135 , l_array_extract_line_num
104136 , l_array_source_4
104137 , l_array_source_5
104138 , l_array_source_6
104139 , l_array_source_7
104140 , l_array_source_8
104141 , l_array_source_23
104142 , l_array_source_24
104143 , l_array_source_25
104144 , l_array_source_26
104145 , l_array_source_27
104146 , l_array_source_28
104147 , l_array_source_29
104148 , l_array_source_30
104149 , l_array_source_31
104150 , l_array_source_32
104151 , l_array_source_34
104152 , l_array_source_35
104153 , l_array_source_35_meaning
104154 , l_array_source_36
104155 LIMIT l_rows;
104156
104157 --
104158 IF (C_LEVEL_EVENT >= g_log_level) THEN
104162 ,p_module => l_log_module);
104159 trace
104160 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
104161 ,p_level => C_LEVEL_EVENT
104163 END IF;
104164 --
104165 EXIT WHEN l_array_entity_id.count = 0;
104166
104167 XLA_AE_LINES_PKG.g_rec_lines := null;
104168
104169 --
104170 -- Bug 4458708
104171 --
104172 XLA_AE_LINES_PKG.g_LineNumber := 0;
104173 --
104174 --
104175
104176 FOR Idx IN 1..l_array_event_id.count LOOP
104177 --
104178 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
104179 --
104180 l_event_id := l_array_event_id(idx); -- 5648433
104181
104182 --
104183 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
104184 --
104185
104186 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
104187 (g_array_event(l_event_id).array_value_num('header_index'))
104188 ,'N'
104189 ) <> 'Y'
104190 THEN
104191 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
104192 trace
104193 (p_msg => 'Trancaction revesal option is not Y '
104194 ,p_level => C_LEVEL_STATEMENT
104195 ,p_module => l_log_module);
104196 END IF;
104197
104198 --
104199 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
104200 --
104201 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
104202 --
104203 -- set event info as cache for other routines to refer event attributes
104204 --
104205
104206 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
104207 l_previous_event_id := l_event_id;
104208
104209 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
104210 (p_application_id => p_application_id
104211 ,p_primary_ledger_id => p_primary_ledger_id
104212 ,p_base_ledger_id => p_base_ledger_id
104213 ,p_target_ledger_id => p_target_ledger_id
104214 ,p_entity_id => l_array_entity_id(Idx)
104215 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
104216 ,p_entity_code => l_array_entity_code(Idx)
104217 ,p_transaction_num => l_array_transaction_num(Idx)
104218 ,p_event_id => l_array_event_id(Idx)
104219 ,p_event_class_code => l_array_class_code(Idx)
104220 ,p_event_type_code => l_array_event_type(Idx)
104221 ,p_event_number => l_array_event_number(Idx)
104222 ,p_event_date => l_array_event_date(Idx)
104223 ,p_transaction_date => l_array_transaction_date(Idx)
104224 ,p_reference_num_1 => l_array_reference_num_1(Idx)
104225 ,p_reference_num_2 => l_array_reference_num_2(Idx)
104226 ,p_reference_num_3 => l_array_reference_num_3(Idx)
104227 ,p_reference_num_4 => l_array_reference_num_4(Idx)
104228 ,p_reference_char_1 => l_array_reference_char_1(Idx)
104229 ,p_reference_char_2 => l_array_reference_char_2(Idx)
104230 ,p_reference_char_3 => l_array_reference_char_3(Idx)
104231 ,p_reference_char_4 => l_array_reference_char_4(Idx)
104232 ,p_reference_date_1 => l_array_reference_date_1(Idx)
104233 ,p_reference_date_2 => l_array_reference_date_2(Idx)
104234 ,p_reference_date_3 => l_array_reference_date_3(Idx)
104235 ,p_reference_date_4 => l_array_reference_date_4(Idx)
104236 ,p_event_created_by => l_array_event_created_by(Idx)
104237 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
104238 --
104239 END IF;
104240
104241
104242
104243 --
104244 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
104245
104246 l_acct_reversal_source := SUBSTR(l_array_source_23(Idx), 1,30);
104247
104248 IF l_continue_with_lines THEN
104249 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
104250 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
104251
104252 xla_accounting_err_pkg.build_message
104253 (p_appli_s_name => 'XLA'
104254 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
104255 ,p_token_1 => 'LINE_NUMBER'
104256 ,p_value_1 => l_array_extract_line_num(Idx)
104257 ,p_token_2 => 'PRODUCT_NAME'
104258 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
104259 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
104260 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
104261 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
104262
104263 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
104264 --
104265 -- following sets the accounting attributes needed to reverse
104266 -- accounting for a distributeion
104267 --
104268
104269 --
104270 -- 5217187
104271 --
104272 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
104273 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
104274 g_array_event(l_event_id).array_value_num('header_index'));
104275 --
104276 --
104277
104278 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
104279 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_23(Idx);
104280 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
104281 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_24(Idx);
104282 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
104283 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_7(Idx));
104287 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_26(Idx);
104284 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
104285 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_25(Idx);
104286 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
104288 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
104289 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_27(Idx);
104290 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
104291 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_28(Idx);
104292 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
104293 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_29(Idx);
104294 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
104295 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_30(Idx);
104296 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
104297 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_31(Idx);
104298 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
104299 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_4(Idx));
104300 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
104301 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_25(Idx);
104302 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
104303 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_26(Idx);
104304 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
104305 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_27(Idx);
104306 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
104307 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_28(Idx);
104308 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
104309 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_29(Idx);
104310 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
104311 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_30(Idx);
104312 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
104313 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_32(Idx);
104314 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
104315 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_33');
104316 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
104317 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_34(Idx);
104318 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
104319 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_35(Idx);
104320 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
104321 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_33');
104322 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
104323 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_36(Idx);
104324 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
104325 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_35(Idx);
104326
104327
104328 xla_ae_lines_pkg.SetAcctReversalAttrs
104329 (p_event_id => l_event_id
104330 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
104331 ,p_calculate_acctd_flag => l_calculate_acctd_flag
104332 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
104333 END IF;
104334
104335 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
104336 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
104337
104338 --
104339 AcctLineType_69 (
104340 p_application_id => p_application_id
104341 ,p_event_id => l_event_id
104342 ,p_calculate_acctd_flag => l_calculate_acctd_flag
104343 ,p_calculate_g_l_flag => l_calculate_g_l_flag
104344 ,p_actual_flag => l_actual_flag
104345 ,p_balance_type_code => l_balance_type_code
104346 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104347
104348 , p_source_4 => l_array_source_4(Idx)
104349 , p_source_5 => l_array_source_5(Idx)
104350 , p_source_6 => l_array_source_6(Idx)
104351 , p_source_7 => l_array_source_7(Idx)
104352 , p_source_23 => l_array_source_23(Idx)
104353 , p_source_24 => l_array_source_24(Idx)
104354 , p_source_25 => l_array_source_25(Idx)
104355 , p_source_26 => l_array_source_26(Idx)
104356 , p_source_27 => l_array_source_27(Idx)
104357 , p_source_28 => l_array_source_28(Idx)
104358 , p_source_29 => l_array_source_29(Idx)
104359 , p_source_30 => l_array_source_30(Idx)
104360 , p_source_31 => l_array_source_31(Idx)
104361 , p_source_32 => l_array_source_32(Idx)
104362 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
104363 , p_source_34 => l_array_source_34(Idx)
104364 , p_source_35 => l_array_source_35(Idx)
104365 , p_source_35_meaning => l_array_source_35_meaning(Idx)
104366 , p_source_36 => l_array_source_36(Idx)
104367 );
104368 If(l_balance_type_code = 'A') THEN
104369 l_actual_gain_loss_ref := l_gain_or_loss_ref;
104370 END IF;
104371
104372 --
104373
104374
104375 --
104376 AcctLineType_87 (
104377 p_application_id => p_application_id
104378 ,p_event_id => l_event_id
104379 ,p_calculate_acctd_flag => l_calculate_acctd_flag
104380 ,p_calculate_g_l_flag => l_calculate_g_l_flag
104381 ,p_actual_flag => l_actual_flag
104382 ,p_balance_type_code => l_balance_type_code
104383 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104384
104385 , p_source_4 => l_array_source_4(Idx)
104386 , p_source_5 => l_array_source_5(Idx)
104387 , p_source_7 => l_array_source_7(Idx)
104388 , p_source_8 => l_array_source_8(Idx)
104389 , p_source_23 => l_array_source_23(Idx)
104390 , p_source_24 => l_array_source_24(Idx)
104394 , p_source_28 => l_array_source_28(Idx)
104391 , p_source_25 => l_array_source_25(Idx)
104392 , p_source_26 => l_array_source_26(Idx)
104393 , p_source_27 => l_array_source_27(Idx)
104395 , p_source_29 => l_array_source_29(Idx)
104396 , p_source_30 => l_array_source_30(Idx)
104397 , p_source_31 => l_array_source_31(Idx)
104398 , p_source_32 => l_array_source_32(Idx)
104399 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
104400 , p_source_34 => l_array_source_34(Idx)
104401 , p_source_35 => l_array_source_35(Idx)
104402 , p_source_35_meaning => l_array_source_35_meaning(Idx)
104403 , p_source_36 => l_array_source_36(Idx)
104404 );
104405 If(l_balance_type_code = 'A') THEN
104406 l_actual_gain_loss_ref := l_gain_or_loss_ref;
104407 END IF;
104408
104409 --
104410
104411
104412 --
104413 AcctLineType_107 (
104414 p_application_id => p_application_id
104415 ,p_event_id => l_event_id
104416 ,p_calculate_acctd_flag => l_calculate_acctd_flag
104417 ,p_calculate_g_l_flag => l_calculate_g_l_flag
104418 ,p_actual_flag => l_actual_flag
104419 ,p_balance_type_code => l_balance_type_code
104420 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104421
104422 , p_source_4 => l_array_source_4(Idx)
104423 , p_source_5 => l_array_source_5(Idx)
104424 , p_source_7 => l_array_source_7(Idx)
104425 , p_source_8 => l_array_source_8(Idx)
104426 , p_source_23 => l_array_source_23(Idx)
104427 , p_source_24 => l_array_source_24(Idx)
104428 , p_source_25 => l_array_source_25(Idx)
104429 , p_source_26 => l_array_source_26(Idx)
104430 , p_source_27 => l_array_source_27(Idx)
104431 , p_source_28 => l_array_source_28(Idx)
104432 , p_source_29 => l_array_source_29(Idx)
104433 , p_source_30 => l_array_source_30(Idx)
104434 , p_source_31 => l_array_source_31(Idx)
104435 , p_source_32 => l_array_source_32(Idx)
104436 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
104437 , p_source_34 => l_array_source_34(Idx)
104438 , p_source_35 => l_array_source_35(Idx)
104439 , p_source_35_meaning => l_array_source_35_meaning(Idx)
104440 , p_source_36 => l_array_source_36(Idx)
104441 );
104442 If(l_balance_type_code = 'A') THEN
104443 l_actual_gain_loss_ref := l_gain_or_loss_ref;
104444 END IF;
104445
104446 --
104447
104448
104449 --
104450 AcctLineType_108 (
104451 p_application_id => p_application_id
104452 ,p_event_id => l_event_id
104453 ,p_calculate_acctd_flag => l_calculate_acctd_flag
104454 ,p_calculate_g_l_flag => l_calculate_g_l_flag
104455 ,p_actual_flag => l_actual_flag
104456 ,p_balance_type_code => l_balance_type_code
104457 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
104458
104459 , p_source_4 => l_array_source_4(Idx)
104460 , p_source_5 => l_array_source_5(Idx)
104461 , p_source_6 => l_array_source_6(Idx)
104462 , p_source_7 => l_array_source_7(Idx)
104463 , p_source_23 => l_array_source_23(Idx)
104464 , p_source_24 => l_array_source_24(Idx)
104465 , p_source_25 => l_array_source_25(Idx)
104466 , p_source_26 => l_array_source_26(Idx)
104467 , p_source_27 => l_array_source_27(Idx)
104468 , p_source_28 => l_array_source_28(Idx)
104469 , p_source_29 => l_array_source_29(Idx)
104470 , p_source_30 => l_array_source_30(Idx)
104471 , p_source_31 => l_array_source_31(Idx)
104472 , p_source_32 => l_array_source_32(Idx)
104473 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
104474 , p_source_34 => l_array_source_34(Idx)
104475 , p_source_35 => l_array_source_35(Idx)
104476 , p_source_35_meaning => l_array_source_35_meaning(Idx)
104477 , p_source_36 => l_array_source_36(Idx)
104478 );
104479 If(l_balance_type_code = 'A') THEN
104480 l_actual_gain_loss_ref := l_gain_or_loss_ref;
104481 END IF;
104482
104483 --
104484
104485 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
104486 -- or secondary ledger that has different currency with primary
104487 -- or alc that is calculated by sla
104488 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
104489 (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'))
104490
104491 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
104492 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
104493 AND (l_actual_flag = 'A')) THEN
104494 XLA_AE_LINES_PKG.CreateGainOrLossLines(
104495 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
104496 ,p_application_id => p_application_id
104497 ,p_amb_context_code => 'DEFAULT'
104498 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
104499 ,p_event_class_code => C_EVENT_CLASS_CODE
104500 ,p_event_type_code => C_EVENT_TYPE_CODE
104501
104502 ,p_gain_ccid => -1
104503 ,p_loss_ccid => -1
104504
104505 ,p_actual_flag => l_actual_flag
104506 ,p_enc_flag => null
104507 ,p_actual_g_l_ref => l_actual_gain_loss_ref
104508 ,p_enc_g_l_ref => null
104509 );
104510 END IF;
104511 END IF;
104512 END IF;
104513
104514 ELSE
104515 --
104516 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
104517 --
104518 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
104519 trace
104520 (p_msg => 'Trancaction revesal option is Y'
104521 ,p_level => C_LEVEL_STATEMENT
104522 ,p_module => l_log_module);
104523 END IF;
104524 END IF;
104525
104526 END LOOP;
104527 l_result := XLA_AE_LINES_PKG.InsertLines ;
104528 end loop;
104529 close line_cur;
104530
104531
104532 --
104536
104533 -- insert headers into xla_ae_headers_gt table
104534 --
104535 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
104537 -- insert into errors table here.
104538
104539 END LOOP;
104540
104541 --
104542 -- 4865292
104543 --
104544 -- Compare g_hdr_extract_count with event count in
104545 -- CreateHeadersAndLines.
104546 --
104547 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
104548
104549 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
104550 trace (p_msg => '# rows extracted from header extract objects '
104551 || ' (running total): '
104552 || g_hdr_extract_count
104553 ,p_level => C_LEVEL_STATEMENT
104554 ,p_module => l_log_module);
104555 END IF;
104556
104557 CLOSE header_cur;
104558 --
104559
104560 --
104561 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
104562 trace
104563 (p_msg => 'END of EventClass_168'
104564 ,p_level => C_LEVEL_PROCEDURE
104565 ,p_module => l_log_module);
104566 END IF;
104567 --
104568 RETURN l_result;
104569 EXCEPTION
104570 WHEN xla_exceptions_pkg.application_exception THEN
104571
104572 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
104573
104574
104575 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
104576
104577 RAISE;
104578 WHEN OTHERS THEN
104579 xla_exceptions_pkg.raise_message
104580 (p_location => 'XLA_00275_AAD_S_000015_PKG.EventClass_168');
104581 END EventClass_168;
104582 --
104583
104584 ---------------------------------------
104585 --
104586 -- PRIVATE PROCEDURE
104587 -- insert_sources_169
104588 --
104589 ----------------------------------------
104590 --
104591 PROCEDURE insert_sources_169(
104592 p_target_ledger_id IN NUMBER
104593 , p_language IN VARCHAR2
104594 , p_sla_ledger_id IN NUMBER
104595 , p_pad_start_date IN DATE
104596 , p_pad_end_date IN DATE
104597 )
104598 IS
104599
104600 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'WIP_COST_ADJ_ALL';
104601 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'WIP_COST_ADJ';
104602 p_apps_owner VARCHAR2(30);
104603 l_log_module VARCHAR2(240);
104604 BEGIN
104605 IF g_log_enabled THEN
104606 l_log_module := C_DEFAULT_MODULE||'.insert_sources_169';
104607 END IF;
104608 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
104609
104610 trace
104611 (p_msg => 'BEGIN of insert_sources_169'
104612 ,p_level => C_LEVEL_PROCEDURE
104613 ,p_module => l_log_module);
104614
104615 END IF;
104616
104617 -- select APPS owner
104618 SELECT oracle_username
104619 INTO p_apps_owner
104620 FROM fnd_oracle_userid
104621 WHERE read_only_flag = 'U'
104622 ;
104623
104624 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
104625 trace
104626 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
104627 ' - p_language = '||p_language||
104628 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
104629 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
104630 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
104631 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
104632 ,p_level => C_LEVEL_STATEMENT
104633 ,p_module => l_log_module);
104634 END IF;
104635
104636
104637 --
104638 INSERT INTO xla_diag_sources --hdr2
104639 (
104640 event_id
104641 , ledger_id
104642 , sla_ledger_id
104643 , description_language
104644 , object_name
104645 , object_type_code
104646 , line_number
104647 , source_application_id
104648 , source_type_code
104649 , source_code
104650 , source_value
104651 , source_meaning
104652 , created_by
104653 , creation_date
104654 , last_update_date
104655 , last_updated_by
104656 , last_update_login
104657 , program_update_date
104658 , program_application_id
104659 , program_id
104660 , request_id
104661 )
104662 SELECT
104663 event_id
104664 , p_target_ledger_id
104665 , p_sla_ledger_id
104666 , p_language
104667 , object_name
104668 , object_type_code
104669 , line_number
104670 , source_application_id
104671 , source_type_code
104672 , source_code
104673 , SUBSTR(source_value ,1,1996)
104674 , SUBSTR(source_meaning ,1,200)
104675 , xla_environment_pkg.g_Usr_Id
104676 , TRUNC(SYSDATE)
104677 , TRUNC(SYSDATE)
104678 , xla_environment_pkg.g_Usr_Id
104679 , xla_environment_pkg.g_Login_Id
104680 , TRUNC(SYSDATE)
104681 , xla_environment_pkg.g_Prog_Appl_Id
104682 , xla_environment_pkg.g_Prog_Id
104683 , xla_environment_pkg.g_Req_Id
104684 FROM (
104685 SELECT xet.event_id event_id
104686 , 0 line_number
104687 , CASE r
104688 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
104689 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
104690
104691 ELSE null
104692 END object_name
104693 , CASE r
104694 WHEN 1 THEN 'HEADER'
104695 WHEN 2 THEN 'HEADER'
104696
104697 ELSE null
104698 END object_type_code
104699 , CASE r
104703 ELSE null
104700 WHEN 1 THEN '275'
104701 WHEN 2 THEN '275'
104702
104704 END source_application_id
104705 , 'S' source_type_code
104706 , CASE r
104707 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
104708 WHEN 2 THEN 'GL_DATE'
104709
104710 ELSE null
104711 END source_code
104712 , CASE r
104713 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
104714 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
104715
104716 ELSE null
104717 END source_value
104718 , null source_meaning
104719 FROM xla_events_gt xet
104720 , PA_XLA_EXP_HEADER_V h2
104721 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
104722 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
104723 AND xet.event_class_code = C_EVENT_CLASS_CODE
104724 AND h2.event_id = xet.event_id
104725
104726 )
104727 ;
104728 --
104729 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
104730
104731 trace
104732 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
104733 ,p_level => C_LEVEL_STATEMENT
104734 ,p_module => l_log_module);
104735
104736 END IF;
104737 --
104738
104739
104740
104741 --
104742 INSERT INTO xla_diag_sources --line2
104743 (
104744 event_id
104745 , ledger_id
104746 , sla_ledger_id
104747 , description_language
104748 , object_name
104749 , object_type_code
104750 , line_number
104751 , source_application_id
104752 , source_type_code
104753 , source_code
104754 , source_value
104755 , source_meaning
104756 , created_by
104757 , creation_date
104758 , last_update_date
104759 , last_updated_by
104760 , last_update_login
104761 , program_update_date
104762 , program_application_id
104763 , program_id
104764 , request_id
104765 )
104766 SELECT event_id
104767 , p_target_ledger_id
104768 , p_sla_ledger_id
104769 , p_language
104770 , object_name
104771 , object_type_code
104772 , line_number
104773 , source_application_id
104774 , source_type_code
104775 , source_code
104776 , SUBSTR(source_value,1,1996)
104777 , SUBSTR(source_meaning ,1,200)
104778 , xla_environment_pkg.g_Usr_Id
104779 , TRUNC(SYSDATE)
104780 , TRUNC(SYSDATE)
104781 , xla_environment_pkg.g_Usr_Id
104782 , xla_environment_pkg.g_Login_Id
104783 , TRUNC(SYSDATE)
104784 , xla_environment_pkg.g_Prog_Appl_Id
104785 , xla_environment_pkg.g_Prog_Id
104786 , xla_environment_pkg.g_Req_Id
104787 FROM (
104788 SELECT xet.event_id event_id
104789 , l1.line_number line_number
104790 , CASE r
104791 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
104792 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
104793 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
104794 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
104795 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
104796 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
104797 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
104798 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
104799 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
104800 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
104801 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
104802 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
104803 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
104804 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
104805 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
104806 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
104807 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
104808 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
104809
104810 ELSE null
104811 END object_name
104812 , CASE r
104813 WHEN 1 THEN 'LINE'
104814 WHEN 2 THEN 'LINE'
104815 WHEN 3 THEN 'LINE'
104816 WHEN 4 THEN 'LINE'
104817 WHEN 5 THEN 'LINE'
104818 WHEN 6 THEN 'LINE'
104819 WHEN 7 THEN 'LINE'
104820 WHEN 8 THEN 'LINE'
104821 WHEN 9 THEN 'LINE'
104822 WHEN 10 THEN 'LINE'
104823 WHEN 11 THEN 'LINE'
104824 WHEN 12 THEN 'LINE'
104825 WHEN 13 THEN 'LINE'
104826 WHEN 14 THEN 'LINE'
104827 WHEN 15 THEN 'LINE'
104828 WHEN 16 THEN 'LINE'
104829 WHEN 17 THEN 'LINE'
104830 WHEN 18 THEN 'LINE'
104831
104832 ELSE null
104833 END object_type_code
104834 , CASE r
104835 WHEN 1 THEN '275'
104836 WHEN 2 THEN '275'
104837 WHEN 3 THEN '275'
104838 WHEN 4 THEN '275'
104839 WHEN 5 THEN '275'
104840 WHEN 6 THEN '275'
104841 WHEN 7 THEN '275'
104842 WHEN 8 THEN '275'
104843 WHEN 9 THEN '275'
104844 WHEN 10 THEN '275'
104845 WHEN 11 THEN '275'
104846 WHEN 12 THEN '275'
104847 WHEN 13 THEN '275'
104848 WHEN 14 THEN '275'
104852 WHEN 18 THEN '275'
104849 WHEN 15 THEN '275'
104850 WHEN 16 THEN '275'
104851 WHEN 17 THEN '275'
104853
104854 ELSE null
104855 END source_application_id
104856 , 'S' source_type_code
104857 , CASE r
104858 WHEN 1 THEN 'COST_CCID'
104859 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
104860 WHEN 3 THEN 'ADJ_COST_CCID'
104861 WHEN 4 THEN 'COST_CLEARING_CCID'
104862 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
104863 WHEN 6 THEN 'REVERSING_LINE_FLAG'
104864 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
104865 WHEN 8 THEN 'ENTERED_RAW_COST'
104866 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
104867 WHEN 10 THEN 'ACCT_RAW_COST'
104868 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
104869 WHEN 12 THEN 'EXCHANGE_RATE'
104870 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
104871 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
104872 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
104873 WHEN 16 THEN 'LINE_NUMBER'
104874 WHEN 17 THEN 'LINE_TYPE'
104875 WHEN 18 THEN 'LINE_NUM_REVERSED'
104876
104877 ELSE null
104878 END source_code
104879 , CASE r
104880 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
104881 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
104882 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
104883 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
104884 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
104885 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
104886 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
104887 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
104888 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
104889 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
104890 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
104891 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
104892 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
104893 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
104894 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
104895 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
104896 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
104897 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
104898
104899 ELSE null
104900 END source_value
104901 , CASE r
104902 WHEN 2 THEN XLA_00275_AAD_S_000015_PKG.GetMeaning(
104903 103371
104904 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
104905 ,'ALLOW_OVERRIDE_CCID_FLAG'
104906 ,'S'
104907 ,275)
104908 WHEN 17 THEN fvl35.meaning
104909
104910 ELSE null
104911 END source_meaning
104912 FROM xla_events_gt xet
104913 , PA_XLA_CDL_LINES_V l1
104914 , fnd_lookup_values fvl35
104915 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
104916 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
104917 AND xet.event_class_code = C_EVENT_CLASS_CODE
104918 AND l1.event_id = xet.event_id
104919 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
104920 AND fvl35.lookup_code(+) = l1.LINE_TYPE
104921 AND fvl35.view_application_id(+) = 275
104922 AND fvl35.language(+) = USERENV('LANG')
104923
104924 )
104925 ;
104926 --
104927 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
104928
104929 trace
104930 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
104931 ,p_level => C_LEVEL_STATEMENT
104932 ,p_module => l_log_module);
104933
104934 END IF;
104935
104936
104937 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
104938 trace
104939 (p_msg => 'END of insert_sources_169'
104940 ,p_level => C_LEVEL_PROCEDURE
104941 ,p_module => l_log_module);
104942 END IF;
104943 EXCEPTION
104944 WHEN xla_exceptions_pkg.application_exception THEN
104945 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
104946 trace
104947 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
104948 ,p_level => C_LEVEL_EXCEPTION
104949 ,p_module => l_log_module);
104950 END IF;
104951 RAISE;
104952 WHEN OTHERS THEN
104953 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
104954 trace
104955 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
104956 ,p_level => C_LEVEL_EXCEPTION
104957 ,p_module => l_log_module);
104958 END IF;
104959 xla_exceptions_pkg.raise_message
104960 (p_location => 'XLA_00275_AAD_S_000015_PKG.insert_sources_169');
104961 END insert_sources_169;
104962 --
104963
104964 ---------------------------------------
104965 --
104966 -- PRIVATE FUNCTION
104967 -- EventClass_169
104968 --
104969 ----------------------------------------
104970 --
104971 FUNCTION EventClass_169
104972 (p_application_id IN NUMBER
104973 ,p_base_ledger_id IN NUMBER
104974 ,p_target_ledger_id IN NUMBER
104975 ,p_language IN VARCHAR2
104976 ,p_currency_code IN VARCHAR2
104977 ,p_sla_ledger_id IN NUMBER
104978 ,p_pad_start_date IN DATE
104979 ,p_pad_end_date IN DATE
104983 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'WIP_COST_ADJ_ALL';
104980 ,p_primary_ledger_id IN NUMBER)
104981 RETURN BOOLEAN IS
104982 --
104984 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'WIP_COST_ADJ';
104985
104986 l_calculate_acctd_flag VARCHAR2(1) :='N';
104987 l_calculate_g_l_flag VARCHAR2(1) :='N';
104988 --
104989 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
104990 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
104991 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
104992 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
104993 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
104994 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
104995 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
104996 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
104997 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
104998 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
104999 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
105000 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
105001 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
105002 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
105003 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
105004 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
105005 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
105006 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
105007 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
105008 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
105009 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
105010 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
105011 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
105012 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
105013
105014 l_event_id NUMBER;
105015 l_previous_event_id NUMBER;
105016 l_first_event_id NUMBER;
105017 l_last_event_id NUMBER;
105018
105019 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
105020 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
105021 --
105022 --
105023 l_result BOOLEAN := TRUE;
105024 l_rows NUMBER := 1000;
105025 l_event_type_name VARCHAR2(80) := 'All';
105026 l_event_class_name VARCHAR2(80) := 'Work in Process Cost Adjustment';
105027 l_description VARCHAR2(4000);
105028 l_transaction_reversal NUMBER;
105029 l_ae_header_id NUMBER;
105030 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
105031 l_log_module VARCHAR2(240);
105032 --
105033 l_acct_reversal_source VARCHAR2(30);
105034 l_trx_reversal_source VARCHAR2(30);
105035
105036 l_continue_with_lines BOOLEAN := TRUE;
105037 --
105038 l_acc_rev_gl_date_source DATE; -- 4262811
105039 --
105040 type t_array_event_id is table of number index by binary_integer;
105041
105042 l_rec_array_event t_rec_array_event;
105043 l_null_rec_array_event t_rec_array_event;
105044 l_array_ae_header_id xla_number_array_type;
105045 l_actual_flag VARCHAR2(1) := NULL;
105046 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
105047 l_balance_type_code VARCHAR2(1) :=NULL;
105048 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
105049
105050 --
105051 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
105052 --
105053
105054 TYPE t_array_source_33 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
105055 TYPE t_array_source_75 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
105056
105057 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
105058 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
105059 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
105060 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
105061 TYPE t_array_source_8 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
105062 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
105063 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
105064 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
105065 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
105066 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
105067 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
105068 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
105069 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
105070 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
105071 TYPE t_array_source_32 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
105072 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
105073 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
105074 TYPE t_array_source_36 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
105078
105075
105076 l_array_source_33 t_array_source_33;
105077 l_array_source_75 t_array_source_75;
105079 l_array_source_4 t_array_source_4;
105080 l_array_source_5 t_array_source_5;
105081 l_array_source_6 t_array_source_6;
105082 l_array_source_7 t_array_source_7;
105083 l_array_source_8 t_array_source_8;
105084 l_array_source_23 t_array_source_23;
105085 l_array_source_24 t_array_source_24;
105086 l_array_source_25 t_array_source_25;
105087 l_array_source_26 t_array_source_26;
105088 l_array_source_27 t_array_source_27;
105089 l_array_source_28 t_array_source_28;
105090 l_array_source_29 t_array_source_29;
105091 l_array_source_30 t_array_source_30;
105092 l_array_source_31 t_array_source_31;
105093 l_array_source_32 t_array_source_32;
105094 l_array_source_34 t_array_source_34;
105095 l_array_source_35 t_array_source_35;
105096 l_array_source_35_meaning t_array_lookup_meaning;
105097 l_array_source_36 t_array_source_36;
105098
105099 --
105100 CURSOR header_cur
105101 IS
105102 SELECT /*+ leading(xet) cardinality(xet,1) */
105103 -- Event Class Code: WIP_COST_ADJ
105104 xet.entity_id
105105 ,xet.legal_entity_id
105106 ,xet.entity_code
105107 ,xet.transaction_number
105108 ,xet.event_id
105109 ,xet.event_class_code
105110 ,xet.event_type_code
105111 ,xet.event_number
105112 ,xet.event_date
105113 ,xet.transaction_date
105114 ,xet.reference_num_1
105115 ,xet.reference_num_2
105116 ,xet.reference_num_3
105117 ,xet.reference_num_4
105118 ,xet.reference_char_1
105119 ,xet.reference_char_2
105120 ,xet.reference_char_3
105121 ,xet.reference_char_4
105122 ,xet.reference_date_1
105123 ,xet.reference_date_2
105124 ,xet.reference_date_3
105125 ,xet.reference_date_4
105126 ,xet.event_created_by
105127 ,xet.budgetary_control_flag
105128 , h2.EXPENDITURE_ITEM_ID source_33
105129 , h2.GL_DATE source_75
105130 FROM xla_events_gt xet
105131 , PA_XLA_EXP_HEADER_V h2
105132 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
105133 and xet.event_class_code = C_EVENT_CLASS_CODE
105134 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
105135
105136 ORDER BY event_id
105137 ;
105138
105139
105140 --
105141 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
105142 IS
105143 SELECT /*+ leading(xet) cardinality(xet,1) */
105144 -- Event Class Code: WIP_COST_ADJ
105145 xet.entity_id
105146 ,xet.legal_entity_id
105147 ,xet.entity_code
105148 ,xet.transaction_number
105149 ,xet.event_id
105150 ,xet.event_class_code
105151 ,xet.event_type_code
105152 ,xet.event_number
105153 ,xet.event_date
105154 ,xet.transaction_date
105155 ,xet.reference_num_1
105156 ,xet.reference_num_2
105157 ,xet.reference_num_3
105158 ,xet.reference_num_4
105159 ,xet.reference_char_1
105160 ,xet.reference_char_2
105161 ,xet.reference_char_3
105162 ,xet.reference_char_4
105163 ,xet.reference_date_1
105164 ,xet.reference_date_2
105165 ,xet.reference_date_3
105166 ,xet.reference_date_4
105167 ,xet.event_created_by
105168 ,xet.budgetary_control_flag
105169 , l1.LINE_NUMBER
105170 , l1.COST_CCID source_4
105171 , l1.ALLOW_OVERRIDE_CCID_FLAG source_5
105172 , l1.ADJ_COST_CCID source_6
105173 , l1.COST_CLEARING_CCID source_7
105174 , l1.ADJ_COST_CLEARING_CCID source_8
105175 , l1.REVERSING_LINE_FLAG source_23
105176 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_24
105177 , l1.ENTERED_RAW_COST source_25
105178 , l1.ENTERED_CURRENCY_CODE source_26
105179 , l1.ACCT_RAW_COST source_27
105180 , l1.EXCHANGE_RATE_DATE source_28
105181 , l1.EXCHANGE_RATE source_29
105182 , l1.EXCHANGE_RATE_TYPE source_30
105183 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_31
105184 , l1.USE_ACT_UPG_ATTRIB_FLAG source_32
105185 , l1.LINE_NUMBER source_34
105186 , l1.LINE_TYPE source_35
105187 , fvl35.meaning source_35_meaning
105188 , l1.LINE_NUM_REVERSED source_36
105189 FROM xla_events_gt xet
105190 , PA_XLA_CDL_LINES_V l1
105191 , fnd_lookup_values fvl35
105192 WHERE xet.event_id between x_first_event_id and x_last_event_id
105193 and xet.event_date between p_pad_start_date and p_pad_end_date
105194 and xet.event_class_code = C_EVENT_CLASS_CODE
105195 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
105196 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
105197 AND fvl35.lookup_code(+) = l1.LINE_TYPE
105198 AND fvl35.view_application_id(+) = 275
105199 AND fvl35.language(+) = USERENV('LANG')
105200 ;
105201
105202 --
105203 BEGIN
105204 IF g_log_enabled THEN
105205 l_log_module := C_DEFAULT_MODULE||'.EventClass_169';
105206 END IF;
105207 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
105208 trace
105209 (p_msg => 'BEGIN of EventClass_169'
105210 ,p_level => C_LEVEL_PROCEDURE
105211 ,p_module => l_log_module);
105212 END IF;
105213
105214 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
105215 trace
105216 (p_msg => 'p_application_id = '||p_application_id||
105217 ' - p_base_ledger_id = '||p_base_ledger_id||
105218 ' - p_target_ledger_id = '||p_target_ledger_id||
105219 ' - p_language = '||p_language||
105220 ' - p_currency_code = '||p_currency_code||
105221 ' - p_sla_ledger_id = '||p_sla_ledger_id
105222 ,p_level => C_LEVEL_STATEMENT
105223 ,p_module => l_log_module);
105224 END IF;
105225 --
105226 -- initialze arrays
105227 --
105228 g_array_event.DELETE;
105232 -- 4262811 Initialze MPA Line Number
105229 l_rec_array_event := l_null_rec_array_event;
105230 --
105231 --------------------------------------
105233 --------------------------------------
105234 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
105235
105236 --
105237
105238 --
105239 OPEN header_cur;
105240 --
105241 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
105242 trace
105243 (p_msg => 'SQL - FETCH header_cur'
105244 ,p_level => C_LEVEL_STATEMENT
105245 ,p_module => l_log_module);
105246 END IF;
105247 --
105248 LOOP
105249 FETCH header_cur BULK COLLECT INTO
105250 l_array_entity_id
105251 , l_array_legal_entity_id
105252 , l_array_entity_code
105253 , l_array_transaction_num
105254 , l_array_event_id
105255 , l_array_class_code
105256 , l_array_event_type
105257 , l_array_event_number
105258 , l_array_event_date
105259 , l_array_transaction_date
105260 , l_array_reference_num_1
105261 , l_array_reference_num_2
105262 , l_array_reference_num_3
105263 , l_array_reference_num_4
105264 , l_array_reference_char_1
105265 , l_array_reference_char_2
105266 , l_array_reference_char_3
105267 , l_array_reference_char_4
105268 , l_array_reference_date_1
105269 , l_array_reference_date_2
105270 , l_array_reference_date_3
105271 , l_array_reference_date_4
105272 , l_array_event_created_by
105273 , l_array_budgetary_control_flag
105274 , l_array_source_33
105275 , l_array_source_75
105276 LIMIT l_rows;
105277 --
105278 IF (C_LEVEL_EVENT >= g_log_level) THEN
105279 trace
105280 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
105281 ,p_level => C_LEVEL_EVENT
105282 ,p_module => l_log_module);
105283 END IF;
105284 --
105285 EXIT WHEN l_array_entity_id.COUNT = 0;
105286
105287 -- initialize arrays
105288 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
105289 XLA_AE_LINES_PKG.g_rec_lines := NULL;
105290
105291 --
105292 -- Bug 4458708
105293 --
105294 XLA_AE_LINES_PKG.g_LineNumber := 0;
105295
105296
105297 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
105298 g_last_hdr_idx := l_array_event_id.LAST;
105299 --
105300 -- loop for the headers. Each iteration is for each header extract row
105301 -- fetched in header cursor
105302 --
105303 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
105304
105305 --
105306 -- set event info as cache for other routines to refer event attributes
105307 --
105308 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
105309 (p_application_id => p_application_id
105310 ,p_primary_ledger_id => p_primary_ledger_id
105311 ,p_base_ledger_id => p_base_ledger_id
105312 ,p_target_ledger_id => p_target_ledger_id
105313 ,p_entity_id => l_array_entity_id(hdr_idx)
105314 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
105315 ,p_entity_code => l_array_entity_code(hdr_idx)
105316 ,p_transaction_num => l_array_transaction_num(hdr_idx)
105317 ,p_event_id => l_array_event_id(hdr_idx)
105318 ,p_event_class_code => l_array_class_code(hdr_idx)
105319 ,p_event_type_code => l_array_event_type(hdr_idx)
105320 ,p_event_number => l_array_event_number(hdr_idx)
105321 ,p_event_date => l_array_event_date(hdr_idx)
105322 ,p_transaction_date => l_array_transaction_date(hdr_idx)
105323 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
105324 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
105325 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
105326 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
105327 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
105328 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
105329 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
105330 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
105331 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
105332 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
105333 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
105334 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
105335 ,p_event_created_by => l_array_event_created_by(hdr_idx)
105336 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
105337
105338 --
105339 -- set the status of entry to C_VALID (0)
105340 --
105341 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
105342
105343 --
105344 -- initialize a row for ae header
105345 --
105346 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
105347
105348 l_event_id := l_array_event_id(hdr_idx);
105349
105350 --
105351 -- storing the hdr_idx for event. May be used by line cursor.
105352 --
105353 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
105354
105355 --
105356 -- store sources from header extract. This can be improved to
105357 -- store only those sources from header extract that may be used in lines
105358 --
105359
105360 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
105361 g_array_event(l_event_id).array_value_date('source_75') := l_array_source_75(hdr_idx);
105362
105363 --
105364 -- initilaize the status of ae headers for diffrent balance types
105365 -- the status is initialised to C_NOT_CREATED (2)
105366 --
105367 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
105368 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
105372 -- call api to validate and store accounting attributes for header
105369 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
105370
105371 --
105373 --
105374
105375 ------------------------------------------------------------
105376 -- Accrual Reversal : to get date for Standard Source (NONE)
105377 ------------------------------------------------------------
105378 l_acc_rev_gl_date_source := NULL;
105379
105380 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
105381 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_75');
105382
105383
105384 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
105385
105386 XLA_AE_HEADER_PKG.SetJeCategoryName;
105387
105388 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
105389 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
105390 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
105391 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
105392 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
105393
105394
105395 -- No header level analytical criteria
105396
105397 --
105398 --accounting attribute enhancement, bug 3612931
105399 --
105400 l_trx_reversal_source := SUBSTR(NULL, 1,30);
105401
105402 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
105403 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
105404
105405 xla_accounting_err_pkg.build_message
105406 (p_appli_s_name => 'XLA'
105407 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
105408 ,p_token_1 => 'ACCT_ATTR_NAME'
105409 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
105410 ,p_token_2 => 'PRODUCT_NAME'
105411 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
105412 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
105413 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
105414 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
105415
105416 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
105417 --
105418 -- following sets the accounting attributes needed to reverse
105419 -- accounting for a distributeion
105420 --
105421 xla_ae_lines_pkg.SetTrxReversalAttrs
105422 (p_event_id => l_event_id
105423 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
105424 ,p_trx_reversal_source => l_trx_reversal_source);
105425
105426 END IF;
105427
105428
105429 ----------------------------------------------------------------
105430 -- 4262811 - update the header statuses to invalid in need be
105431 ----------------------------------------------------------------
105432 --
105433 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
105434
105435
105436 -----------------------------------------------
105437 -- No accrual reversal for the event class/type
105438 -----------------------------------------------
105439 ----------------------------------------------------------------
105440
105441 --
105442 -- this ends the header loop iteration for one bulk fetch
105443 --
105444 END LOOP;
105445
105446 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
105447 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
105448
105449 --
105450 -- insert dummy rows into lines gt table that were created due to
105451 -- transaction reversals
105452 --
105453 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
105454 l_result := XLA_AE_LINES_PKG.InsertLines;
105455 END IF;
105456
105457 --
105458 -- reset the temp_line_num for each set of events fetched from header
105459 -- cursor rather than doing it for each new event in line cursor
105460 -- Bug 3939231
105461 --
105462 xla_ae_lines_pkg.g_temp_line_num := 0;
105463
105464
105465
105466 --
105467 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
105468 --
105469 --
105470 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
105471
105472 trace
105473 (p_msg => 'SQL - FETCH line_cur'
105474 ,p_level => C_LEVEL_STATEMENT
105475 ,p_module => l_log_module);
105476
105477 END IF;
105478 --
105479 --
105480 LOOP
105481 --
105482 FETCH line_cur BULK COLLECT INTO
105483 l_array_entity_id
105484 , l_array_legal_entity_id
105485 , l_array_entity_code
105486 , l_array_transaction_num
105487 , l_array_event_id
105488 , l_array_class_code
105489 , l_array_event_type
105490 , l_array_event_number
105491 , l_array_event_date
105492 , l_array_transaction_date
105493 , l_array_reference_num_1
105494 , l_array_reference_num_2
105495 , l_array_reference_num_3
105496 , l_array_reference_num_4
105497 , l_array_reference_char_1
105498 , l_array_reference_char_2
105499 , l_array_reference_char_3
105500 , l_array_reference_char_4
105501 , l_array_reference_date_1
105502 , l_array_reference_date_2
105503 , l_array_reference_date_3
105504 , l_array_reference_date_4
105505 , l_array_event_created_by
105506 , l_array_budgetary_control_flag
105507 , l_array_extract_line_num
105508 , l_array_source_4
105509 , l_array_source_5
105510 , l_array_source_6
105511 , l_array_source_7
105512 , l_array_source_8
105513 , l_array_source_23
105517 , l_array_source_27
105514 , l_array_source_24
105515 , l_array_source_25
105516 , l_array_source_26
105518 , l_array_source_28
105519 , l_array_source_29
105520 , l_array_source_30
105521 , l_array_source_31
105522 , l_array_source_32
105523 , l_array_source_34
105524 , l_array_source_35
105525 , l_array_source_35_meaning
105526 , l_array_source_36
105527 LIMIT l_rows;
105528
105529 --
105530 IF (C_LEVEL_EVENT >= g_log_level) THEN
105531 trace
105532 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
105533 ,p_level => C_LEVEL_EVENT
105534 ,p_module => l_log_module);
105535 END IF;
105536 --
105537 EXIT WHEN l_array_entity_id.count = 0;
105538
105539 XLA_AE_LINES_PKG.g_rec_lines := null;
105540
105541 --
105542 -- Bug 4458708
105543 --
105544 XLA_AE_LINES_PKG.g_LineNumber := 0;
105545 --
105546 --
105547
105548 FOR Idx IN 1..l_array_event_id.count LOOP
105549 --
105550 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
105551 --
105552 l_event_id := l_array_event_id(idx); -- 5648433
105553
105554 --
105555 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
105556 --
105557
105558 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
105559 (g_array_event(l_event_id).array_value_num('header_index'))
105560 ,'N'
105561 ) <> 'Y'
105562 THEN
105563 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
105564 trace
105565 (p_msg => 'Trancaction revesal option is not Y '
105566 ,p_level => C_LEVEL_STATEMENT
105567 ,p_module => l_log_module);
105568 END IF;
105569
105570 --
105571 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
105572 --
105573 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
105574 --
105575 -- set event info as cache for other routines to refer event attributes
105576 --
105577
105578 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
105579 l_previous_event_id := l_event_id;
105580
105581 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
105582 (p_application_id => p_application_id
105583 ,p_primary_ledger_id => p_primary_ledger_id
105584 ,p_base_ledger_id => p_base_ledger_id
105585 ,p_target_ledger_id => p_target_ledger_id
105586 ,p_entity_id => l_array_entity_id(Idx)
105587 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
105588 ,p_entity_code => l_array_entity_code(Idx)
105589 ,p_transaction_num => l_array_transaction_num(Idx)
105590 ,p_event_id => l_array_event_id(Idx)
105591 ,p_event_class_code => l_array_class_code(Idx)
105592 ,p_event_type_code => l_array_event_type(Idx)
105593 ,p_event_number => l_array_event_number(Idx)
105594 ,p_event_date => l_array_event_date(Idx)
105595 ,p_transaction_date => l_array_transaction_date(Idx)
105596 ,p_reference_num_1 => l_array_reference_num_1(Idx)
105597 ,p_reference_num_2 => l_array_reference_num_2(Idx)
105598 ,p_reference_num_3 => l_array_reference_num_3(Idx)
105599 ,p_reference_num_4 => l_array_reference_num_4(Idx)
105600 ,p_reference_char_1 => l_array_reference_char_1(Idx)
105601 ,p_reference_char_2 => l_array_reference_char_2(Idx)
105602 ,p_reference_char_3 => l_array_reference_char_3(Idx)
105603 ,p_reference_char_4 => l_array_reference_char_4(Idx)
105604 ,p_reference_date_1 => l_array_reference_date_1(Idx)
105605 ,p_reference_date_2 => l_array_reference_date_2(Idx)
105606 ,p_reference_date_3 => l_array_reference_date_3(Idx)
105607 ,p_reference_date_4 => l_array_reference_date_4(Idx)
105608 ,p_event_created_by => l_array_event_created_by(Idx)
105609 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
105610 --
105611 END IF;
105612
105613
105614
105615 --
105616 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
105617
105618 l_acct_reversal_source := SUBSTR(l_array_source_23(Idx), 1,30);
105619
105620 IF l_continue_with_lines THEN
105621 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
105622 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
105623
105624 xla_accounting_err_pkg.build_message
105625 (p_appli_s_name => 'XLA'
105626 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
105627 ,p_token_1 => 'LINE_NUMBER'
105628 ,p_value_1 => l_array_extract_line_num(Idx)
105629 ,p_token_2 => 'PRODUCT_NAME'
105630 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
105631 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
105632 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
105633 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
105634
105635 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
105636 --
105637 -- following sets the accounting attributes needed to reverse
105638 -- accounting for a distributeion
105639 --
105640
105641 --
105642 -- 5217187
105643 --
105644 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
105645 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
105649
105646 g_array_event(l_event_id).array_value_num('header_index'));
105647 --
105648 --
105650 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
105651 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_23(Idx);
105652 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
105653 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_24(Idx);
105654 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
105655 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_7(Idx));
105656 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
105657 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_25(Idx);
105658 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
105659 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_26(Idx);
105660 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
105661 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_27(Idx);
105662 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
105663 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_28(Idx);
105664 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
105665 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_29(Idx);
105666 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
105667 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_30(Idx);
105668 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
105669 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_31(Idx);
105670 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
105671 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_4(Idx));
105672 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
105673 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_25(Idx);
105674 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
105675 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_26(Idx);
105676 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
105677 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_27(Idx);
105678 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
105679 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_28(Idx);
105680 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
105681 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_29(Idx);
105682 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
105683 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_30(Idx);
105684 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
105685 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_32(Idx);
105686 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
105687 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_33');
105688 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
105689 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_34(Idx);
105690 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
105691 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_35(Idx);
105692 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
105693 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_33');
105694 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
105695 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_36(Idx);
105696 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
105697 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_35(Idx);
105698
105699
105700 xla_ae_lines_pkg.SetAcctReversalAttrs
105701 (p_event_id => l_event_id
105702 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
105703 ,p_calculate_acctd_flag => l_calculate_acctd_flag
105704 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
105705 END IF;
105706
105707 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
105708 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
105709
105710 --
105711 AcctLineType_74 (
105712 p_application_id => p_application_id
105713 ,p_event_id => l_event_id
105714 ,p_calculate_acctd_flag => l_calculate_acctd_flag
105715 ,p_calculate_g_l_flag => l_calculate_g_l_flag
105716 ,p_actual_flag => l_actual_flag
105717 ,p_balance_type_code => l_balance_type_code
105718 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105719
105720 , p_source_4 => l_array_source_4(Idx)
105721 , p_source_5 => l_array_source_5(Idx)
105722 , p_source_6 => l_array_source_6(Idx)
105723 , p_source_7 => l_array_source_7(Idx)
105724 , p_source_23 => l_array_source_23(Idx)
105725 , p_source_24 => l_array_source_24(Idx)
105726 , p_source_25 => l_array_source_25(Idx)
105727 , p_source_26 => l_array_source_26(Idx)
105728 , p_source_27 => l_array_source_27(Idx)
105729 , p_source_28 => l_array_source_28(Idx)
105730 , p_source_29 => l_array_source_29(Idx)
105731 , p_source_30 => l_array_source_30(Idx)
105732 , p_source_31 => l_array_source_31(Idx)
105733 , p_source_32 => l_array_source_32(Idx)
105734 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
105735 , p_source_34 => l_array_source_34(Idx)
105736 , p_source_35 => l_array_source_35(Idx)
105737 , p_source_35_meaning => l_array_source_35_meaning(Idx)
105738 , p_source_36 => l_array_source_36(Idx)
105739 );
105740 If(l_balance_type_code = 'A') THEN
105741 l_actual_gain_loss_ref := l_gain_or_loss_ref;
105742 END IF;
105743
105744 --
105745
105746
105747 --
105748 AcctLineType_80 (
105752 ,p_calculate_g_l_flag => l_calculate_g_l_flag
105749 p_application_id => p_application_id
105750 ,p_event_id => l_event_id
105751 ,p_calculate_acctd_flag => l_calculate_acctd_flag
105753 ,p_actual_flag => l_actual_flag
105754 ,p_balance_type_code => l_balance_type_code
105755 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105756
105757 , p_source_4 => l_array_source_4(Idx)
105758 , p_source_5 => l_array_source_5(Idx)
105759 , p_source_6 => l_array_source_6(Idx)
105760 , p_source_7 => l_array_source_7(Idx)
105761 , p_source_23 => l_array_source_23(Idx)
105762 , p_source_24 => l_array_source_24(Idx)
105763 , p_source_25 => l_array_source_25(Idx)
105764 , p_source_26 => l_array_source_26(Idx)
105765 , p_source_27 => l_array_source_27(Idx)
105766 , p_source_28 => l_array_source_28(Idx)
105767 , p_source_29 => l_array_source_29(Idx)
105768 , p_source_30 => l_array_source_30(Idx)
105769 , p_source_31 => l_array_source_31(Idx)
105770 , p_source_32 => l_array_source_32(Idx)
105771 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
105772 , p_source_34 => l_array_source_34(Idx)
105773 , p_source_35 => l_array_source_35(Idx)
105774 , p_source_35_meaning => l_array_source_35_meaning(Idx)
105775 , p_source_36 => l_array_source_36(Idx)
105776 );
105777 If(l_balance_type_code = 'A') THEN
105778 l_actual_gain_loss_ref := l_gain_or_loss_ref;
105779 END IF;
105780
105781 --
105782
105783
105784 --
105785 AcctLineType_95 (
105786 p_application_id => p_application_id
105787 ,p_event_id => l_event_id
105788 ,p_calculate_acctd_flag => l_calculate_acctd_flag
105789 ,p_calculate_g_l_flag => l_calculate_g_l_flag
105790 ,p_actual_flag => l_actual_flag
105791 ,p_balance_type_code => l_balance_type_code
105792 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105793
105794 , p_source_4 => l_array_source_4(Idx)
105795 , p_source_5 => l_array_source_5(Idx)
105796 , p_source_7 => l_array_source_7(Idx)
105797 , p_source_8 => l_array_source_8(Idx)
105798 , p_source_23 => l_array_source_23(Idx)
105799 , p_source_24 => l_array_source_24(Idx)
105800 , p_source_25 => l_array_source_25(Idx)
105801 , p_source_26 => l_array_source_26(Idx)
105802 , p_source_27 => l_array_source_27(Idx)
105803 , p_source_28 => l_array_source_28(Idx)
105804 , p_source_29 => l_array_source_29(Idx)
105805 , p_source_30 => l_array_source_30(Idx)
105806 , p_source_31 => l_array_source_31(Idx)
105807 , p_source_32 => l_array_source_32(Idx)
105808 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
105809 , p_source_34 => l_array_source_34(Idx)
105810 , p_source_35 => l_array_source_35(Idx)
105811 , p_source_35_meaning => l_array_source_35_meaning(Idx)
105812 , p_source_36 => l_array_source_36(Idx)
105813 );
105814 If(l_balance_type_code = 'A') THEN
105815 l_actual_gain_loss_ref := l_gain_or_loss_ref;
105816 END IF;
105817
105818 --
105819
105820
105821 --
105822 AcctLineType_100 (
105823 p_application_id => p_application_id
105824 ,p_event_id => l_event_id
105825 ,p_calculate_acctd_flag => l_calculate_acctd_flag
105826 ,p_calculate_g_l_flag => l_calculate_g_l_flag
105827 ,p_actual_flag => l_actual_flag
105828 ,p_balance_type_code => l_balance_type_code
105829 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
105830
105831 , p_source_4 => l_array_source_4(Idx)
105832 , p_source_5 => l_array_source_5(Idx)
105833 , p_source_7 => l_array_source_7(Idx)
105834 , p_source_8 => l_array_source_8(Idx)
105835 , p_source_23 => l_array_source_23(Idx)
105836 , p_source_24 => l_array_source_24(Idx)
105837 , p_source_25 => l_array_source_25(Idx)
105838 , p_source_26 => l_array_source_26(Idx)
105839 , p_source_27 => l_array_source_27(Idx)
105840 , p_source_28 => l_array_source_28(Idx)
105841 , p_source_29 => l_array_source_29(Idx)
105842 , p_source_30 => l_array_source_30(Idx)
105843 , p_source_31 => l_array_source_31(Idx)
105844 , p_source_32 => l_array_source_32(Idx)
105845 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
105846 , p_source_34 => l_array_source_34(Idx)
105847 , p_source_35 => l_array_source_35(Idx)
105848 , p_source_35_meaning => l_array_source_35_meaning(Idx)
105849 , p_source_36 => l_array_source_36(Idx)
105850 );
105851 If(l_balance_type_code = 'A') THEN
105852 l_actual_gain_loss_ref := l_gain_or_loss_ref;
105853 END IF;
105854
105855 --
105856
105857 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
105858 -- or secondary ledger that has different currency with primary
105859 -- or alc that is calculated by sla
105860 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
105861 (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'))
105862
105863 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
105864 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
105865 AND (l_actual_flag = 'A')) THEN
105866 XLA_AE_LINES_PKG.CreateGainOrLossLines(
105867 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
105868 ,p_application_id => p_application_id
105869 ,p_amb_context_code => 'DEFAULT'
105870 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
105871 ,p_event_class_code => C_EVENT_CLASS_CODE
105872 ,p_event_type_code => C_EVENT_TYPE_CODE
105873
105874 ,p_gain_ccid => -1
105875 ,p_loss_ccid => -1
105876
105877 ,p_actual_flag => l_actual_flag
105878 ,p_enc_flag => null
105879 ,p_actual_g_l_ref => l_actual_gain_loss_ref
105880 ,p_enc_g_l_ref => null
105881 );
105882 END IF;
105883 END IF;
105884 END IF;
105885
105889 --
105886 ELSE
105887 --
105888 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
105890 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
105891 trace
105892 (p_msg => 'Trancaction revesal option is Y'
105893 ,p_level => C_LEVEL_STATEMENT
105894 ,p_module => l_log_module);
105895 END IF;
105896 END IF;
105897
105898 END LOOP;
105899 l_result := XLA_AE_LINES_PKG.InsertLines ;
105900 end loop;
105901 close line_cur;
105902
105903
105904 --
105905 -- insert headers into xla_ae_headers_gt table
105906 --
105907 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
105908
105909 -- insert into errors table here.
105910
105911 END LOOP;
105912
105913 --
105914 -- 4865292
105915 --
105916 -- Compare g_hdr_extract_count with event count in
105917 -- CreateHeadersAndLines.
105918 --
105919 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
105920
105921 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
105922 trace (p_msg => '# rows extracted from header extract objects '
105923 || ' (running total): '
105924 || g_hdr_extract_count
105925 ,p_level => C_LEVEL_STATEMENT
105926 ,p_module => l_log_module);
105927 END IF;
105928
105929 CLOSE header_cur;
105930 --
105931
105932 --
105933 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
105934 trace
105935 (p_msg => 'END of EventClass_169'
105936 ,p_level => C_LEVEL_PROCEDURE
105937 ,p_module => l_log_module);
105938 END IF;
105939 --
105940 RETURN l_result;
105941 EXCEPTION
105942 WHEN xla_exceptions_pkg.application_exception THEN
105943
105944 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
105945
105946
105947 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
105948
105949 RAISE;
105950 WHEN OTHERS THEN
105951 xla_exceptions_pkg.raise_message
105952 (p_location => 'XLA_00275_AAD_S_000015_PKG.EventClass_169');
105953 END EventClass_169;
105954 --
105955
105956 ---------------------------------------
105957 --
105958 -- PRIVATE PROCEDURE
105959 -- insert_sources_170
105960 --
105961 ----------------------------------------
105962 --
105963 PROCEDURE insert_sources_170(
105964 p_target_ledger_id IN NUMBER
105965 , p_language IN VARCHAR2
105966 , p_sla_ledger_id IN NUMBER
105967 , p_pad_start_date IN DATE
105968 , p_pad_end_date IN DATE
105969 )
105970 IS
105971
105972 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'WIP_COST_ALL';
105973 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'WIP_COST';
105974 p_apps_owner VARCHAR2(30);
105975 l_log_module VARCHAR2(240);
105976 BEGIN
105977 IF g_log_enabled THEN
105978 l_log_module := C_DEFAULT_MODULE||'.insert_sources_170';
105979 END IF;
105980 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
105981
105982 trace
105983 (p_msg => 'BEGIN of insert_sources_170'
105984 ,p_level => C_LEVEL_PROCEDURE
105985 ,p_module => l_log_module);
105986
105987 END IF;
105988
105989 -- select APPS owner
105990 SELECT oracle_username
105991 INTO p_apps_owner
105992 FROM fnd_oracle_userid
105993 WHERE read_only_flag = 'U'
105994 ;
105995
105996 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
105997 trace
105998 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
105999 ' - p_language = '||p_language||
106000 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
106001 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
106002 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
106003 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
106004 ,p_level => C_LEVEL_STATEMENT
106005 ,p_module => l_log_module);
106006 END IF;
106007
106008
106009 --
106010 INSERT INTO xla_diag_sources --hdr2
106011 (
106012 event_id
106013 , ledger_id
106014 , sla_ledger_id
106015 , description_language
106016 , object_name
106017 , object_type_code
106018 , line_number
106019 , source_application_id
106020 , source_type_code
106021 , source_code
106022 , source_value
106023 , source_meaning
106024 , created_by
106025 , creation_date
106026 , last_update_date
106027 , last_updated_by
106028 , last_update_login
106029 , program_update_date
106030 , program_application_id
106031 , program_id
106032 , request_id
106033 )
106034 SELECT
106035 event_id
106036 , p_target_ledger_id
106037 , p_sla_ledger_id
106038 , p_language
106039 , object_name
106040 , object_type_code
106041 , line_number
106042 , source_application_id
106043 , source_type_code
106044 , source_code
106045 , SUBSTR(source_value ,1,1996)
106046 , SUBSTR(source_meaning ,1,200)
106047 , xla_environment_pkg.g_Usr_Id
106048 , TRUNC(SYSDATE)
106049 , TRUNC(SYSDATE)
106050 , xla_environment_pkg.g_Usr_Id
106051 , xla_environment_pkg.g_Login_Id
106052 , TRUNC(SYSDATE)
106053 , xla_environment_pkg.g_Prog_Appl_Id
106054 , xla_environment_pkg.g_Prog_Id
106055 , xla_environment_pkg.g_Req_Id
106056 FROM (
106057 SELECT xet.event_id event_id
106061 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
106058 , 0 line_number
106059 , CASE r
106060 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
106062
106063 ELSE null
106064 END object_name
106065 , CASE r
106066 WHEN 1 THEN 'HEADER'
106067 WHEN 2 THEN 'HEADER'
106068
106069 ELSE null
106070 END object_type_code
106071 , CASE r
106072 WHEN 1 THEN '275'
106073 WHEN 2 THEN '275'
106074
106075 ELSE null
106076 END source_application_id
106077 , 'S' source_type_code
106078 , CASE r
106079 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
106080 WHEN 2 THEN 'GL_DATE'
106081
106082 ELSE null
106083 END source_code
106084 , CASE r
106085 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
106086 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
106087
106088 ELSE null
106089 END source_value
106090 , null source_meaning
106091 FROM xla_events_gt xet
106092 , PA_XLA_EXP_HEADER_V h2
106093 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
106094 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
106095 AND xet.event_class_code = C_EVENT_CLASS_CODE
106096 AND h2.event_id = xet.event_id
106097
106098 )
106099 ;
106100 --
106101 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
106102
106103 trace
106104 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
106105 ,p_level => C_LEVEL_STATEMENT
106106 ,p_module => l_log_module);
106107
106108 END IF;
106109 --
106110
106111
106112
106113 --
106114 INSERT INTO xla_diag_sources --line2
106115 (
106116 event_id
106117 , ledger_id
106118 , sla_ledger_id
106119 , description_language
106120 , object_name
106121 , object_type_code
106122 , line_number
106123 , source_application_id
106124 , source_type_code
106125 , source_code
106126 , source_value
106127 , source_meaning
106128 , created_by
106129 , creation_date
106130 , last_update_date
106131 , last_updated_by
106132 , last_update_login
106133 , program_update_date
106134 , program_application_id
106135 , program_id
106136 , request_id
106137 )
106138 SELECT event_id
106139 , p_target_ledger_id
106140 , p_sla_ledger_id
106141 , p_language
106142 , object_name
106143 , object_type_code
106144 , line_number
106145 , source_application_id
106146 , source_type_code
106147 , source_code
106148 , SUBSTR(source_value,1,1996)
106149 , SUBSTR(source_meaning ,1,200)
106150 , xla_environment_pkg.g_Usr_Id
106151 , TRUNC(SYSDATE)
106152 , TRUNC(SYSDATE)
106153 , xla_environment_pkg.g_Usr_Id
106154 , xla_environment_pkg.g_Login_Id
106155 , TRUNC(SYSDATE)
106156 , xla_environment_pkg.g_Prog_Appl_Id
106157 , xla_environment_pkg.g_Prog_Id
106158 , xla_environment_pkg.g_Req_Id
106159 FROM (
106160 SELECT xet.event_id event_id
106161 , l1.line_number line_number
106162 , CASE r
106163 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
106164 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
106165 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
106166 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
106167 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
106168 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
106169 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
106170 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
106171 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
106172 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
106173 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
106174 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
106175 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
106176 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
106177 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
106178 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
106179 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
106180 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
106181
106182 ELSE null
106183 END object_name
106184 , CASE r
106185 WHEN 1 THEN 'LINE'
106186 WHEN 2 THEN 'LINE'
106187 WHEN 3 THEN 'LINE'
106188 WHEN 4 THEN 'LINE'
106189 WHEN 5 THEN 'LINE'
106190 WHEN 6 THEN 'LINE'
106191 WHEN 7 THEN 'LINE'
106192 WHEN 8 THEN 'LINE'
106193 WHEN 9 THEN 'LINE'
106194 WHEN 10 THEN 'LINE'
106195 WHEN 11 THEN 'LINE'
106196 WHEN 12 THEN 'LINE'
106197 WHEN 13 THEN 'LINE'
106198 WHEN 14 THEN 'LINE'
106199 WHEN 15 THEN 'LINE'
106200 WHEN 16 THEN 'LINE'
106201 WHEN 17 THEN 'LINE'
106202 WHEN 18 THEN 'LINE'
106203
106204 ELSE null
106205 END object_type_code
106206 , CASE r
106210 WHEN 4 THEN '275'
106207 WHEN 1 THEN '275'
106208 WHEN 2 THEN '275'
106209 WHEN 3 THEN '275'
106211 WHEN 5 THEN '275'
106212 WHEN 6 THEN '275'
106213 WHEN 7 THEN '275'
106214 WHEN 8 THEN '275'
106215 WHEN 9 THEN '275'
106216 WHEN 10 THEN '275'
106217 WHEN 11 THEN '275'
106218 WHEN 12 THEN '275'
106219 WHEN 13 THEN '275'
106220 WHEN 14 THEN '275'
106221 WHEN 15 THEN '275'
106222 WHEN 16 THEN '275'
106223 WHEN 17 THEN '275'
106224 WHEN 18 THEN '275'
106225
106226 ELSE null
106227 END source_application_id
106228 , 'S' source_type_code
106229 , CASE r
106230 WHEN 1 THEN 'COST_CCID'
106231 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
106232 WHEN 3 THEN 'ADJ_COST_CCID'
106233 WHEN 4 THEN 'COST_CLEARING_CCID'
106234 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
106235 WHEN 6 THEN 'REVERSING_LINE_FLAG'
106236 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
106237 WHEN 8 THEN 'ENTERED_RAW_COST'
106238 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
106239 WHEN 10 THEN 'ACCT_RAW_COST'
106240 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
106241 WHEN 12 THEN 'EXCHANGE_RATE'
106242 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
106243 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
106244 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
106245 WHEN 16 THEN 'LINE_NUMBER'
106246 WHEN 17 THEN 'LINE_TYPE'
106247 WHEN 18 THEN 'LINE_NUM_REVERSED'
106248
106249 ELSE null
106250 END source_code
106251 , CASE r
106252 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
106253 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
106254 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
106255 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
106256 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
106257 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
106258 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
106259 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
106260 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
106261 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
106262 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
106263 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
106264 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
106265 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
106266 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
106267 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
106268 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
106269 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
106270
106271 ELSE null
106272 END source_value
106273 , CASE r
106274 WHEN 2 THEN XLA_00275_AAD_S_000015_PKG.GetMeaning(
106275 103371
106276 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
106277 ,'ALLOW_OVERRIDE_CCID_FLAG'
106278 ,'S'
106279 ,275)
106280 WHEN 17 THEN fvl35.meaning
106281
106282 ELSE null
106283 END source_meaning
106284 FROM xla_events_gt xet
106285 , PA_XLA_CDL_LINES_V l1
106286 , fnd_lookup_values fvl35
106287 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
106288 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
106289 AND xet.event_class_code = C_EVENT_CLASS_CODE
106290 AND l1.event_id = xet.event_id
106291 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
106292 AND fvl35.lookup_code(+) = l1.LINE_TYPE
106293 AND fvl35.view_application_id(+) = 275
106294 AND fvl35.language(+) = USERENV('LANG')
106295
106296 )
106297 ;
106298 --
106299 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
106300
106301 trace
106302 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
106303 ,p_level => C_LEVEL_STATEMENT
106304 ,p_module => l_log_module);
106305
106306 END IF;
106307
106308
106309 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
106310 trace
106311 (p_msg => 'END of insert_sources_170'
106312 ,p_level => C_LEVEL_PROCEDURE
106313 ,p_module => l_log_module);
106314 END IF;
106315 EXCEPTION
106316 WHEN xla_exceptions_pkg.application_exception THEN
106317 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
106318 trace
106319 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
106320 ,p_level => C_LEVEL_EXCEPTION
106321 ,p_module => l_log_module);
106322 END IF;
106323 RAISE;
106324 WHEN OTHERS THEN
106325 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
106326 trace
106327 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
106328 ,p_level => C_LEVEL_EXCEPTION
106329 ,p_module => l_log_module);
106330 END IF;
106331 xla_exceptions_pkg.raise_message
106332 (p_location => 'XLA_00275_AAD_S_000015_PKG.insert_sources_170');
106333 END insert_sources_170;
106334 --
106335
106339 -- EventClass_170
106336 ---------------------------------------
106337 --
106338 -- PRIVATE FUNCTION
106340 --
106341 ----------------------------------------
106342 --
106343 FUNCTION EventClass_170
106344 (p_application_id IN NUMBER
106345 ,p_base_ledger_id IN NUMBER
106346 ,p_target_ledger_id IN NUMBER
106347 ,p_language IN VARCHAR2
106348 ,p_currency_code IN VARCHAR2
106349 ,p_sla_ledger_id IN NUMBER
106350 ,p_pad_start_date IN DATE
106351 ,p_pad_end_date IN DATE
106352 ,p_primary_ledger_id IN NUMBER)
106353 RETURN BOOLEAN IS
106354 --
106355 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'WIP_COST_ALL';
106356 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'WIP_COST';
106357
106358 l_calculate_acctd_flag VARCHAR2(1) :='N';
106359 l_calculate_g_l_flag VARCHAR2(1) :='N';
106360 --
106361 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
106362 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
106363 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
106364 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
106365 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
106366 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
106367 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
106368 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
106369 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
106370 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
106371 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
106372 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
106373 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
106374 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
106375 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
106376 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
106377 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
106378 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
106379 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
106380 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
106381 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
106382 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
106383 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
106384 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
106385
106386 l_event_id NUMBER;
106387 l_previous_event_id NUMBER;
106388 l_first_event_id NUMBER;
106389 l_last_event_id NUMBER;
106390
106391 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
106392 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
106393 --
106394 --
106395 l_result BOOLEAN := TRUE;
106396 l_rows NUMBER := 1000;
106397 l_event_type_name VARCHAR2(80) := 'All';
106398 l_event_class_name VARCHAR2(80) := 'Work in Process Cost';
106399 l_description VARCHAR2(4000);
106400 l_transaction_reversal NUMBER;
106401 l_ae_header_id NUMBER;
106402 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
106403 l_log_module VARCHAR2(240);
106404 --
106405 l_acct_reversal_source VARCHAR2(30);
106406 l_trx_reversal_source VARCHAR2(30);
106407
106408 l_continue_with_lines BOOLEAN := TRUE;
106409 --
106410 l_acc_rev_gl_date_source DATE; -- 4262811
106411 --
106412 type t_array_event_id is table of number index by binary_integer;
106413
106414 l_rec_array_event t_rec_array_event;
106415 l_null_rec_array_event t_rec_array_event;
106416 l_array_ae_header_id xla_number_array_type;
106417 l_actual_flag VARCHAR2(1) := NULL;
106418 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
106419 l_balance_type_code VARCHAR2(1) :=NULL;
106420 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
106421
106422 --
106423 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
106424 --
106425
106426 TYPE t_array_source_33 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
106427 TYPE t_array_source_75 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
106428
106429 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
106430 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
106431 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
106432 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
106433 TYPE t_array_source_8 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
106434 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
106435 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
106436 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
106437 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
106438 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
106439 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
106443 TYPE t_array_source_32 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
106440 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
106441 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
106442 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
106444 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
106445 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
106446 TYPE t_array_source_36 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
106447
106448 l_array_source_33 t_array_source_33;
106449 l_array_source_75 t_array_source_75;
106450
106451 l_array_source_4 t_array_source_4;
106452 l_array_source_5 t_array_source_5;
106453 l_array_source_6 t_array_source_6;
106454 l_array_source_7 t_array_source_7;
106455 l_array_source_8 t_array_source_8;
106456 l_array_source_23 t_array_source_23;
106457 l_array_source_24 t_array_source_24;
106458 l_array_source_25 t_array_source_25;
106459 l_array_source_26 t_array_source_26;
106460 l_array_source_27 t_array_source_27;
106461 l_array_source_28 t_array_source_28;
106462 l_array_source_29 t_array_source_29;
106463 l_array_source_30 t_array_source_30;
106464 l_array_source_31 t_array_source_31;
106465 l_array_source_32 t_array_source_32;
106466 l_array_source_34 t_array_source_34;
106467 l_array_source_35 t_array_source_35;
106468 l_array_source_35_meaning t_array_lookup_meaning;
106469 l_array_source_36 t_array_source_36;
106470
106471 --
106472 CURSOR header_cur
106473 IS
106474 SELECT /*+ leading(xet) cardinality(xet,1) */
106475 -- Event Class Code: WIP_COST
106476 xet.entity_id
106477 ,xet.legal_entity_id
106478 ,xet.entity_code
106479 ,xet.transaction_number
106480 ,xet.event_id
106481 ,xet.event_class_code
106482 ,xet.event_type_code
106483 ,xet.event_number
106484 ,xet.event_date
106485 ,xet.transaction_date
106486 ,xet.reference_num_1
106487 ,xet.reference_num_2
106488 ,xet.reference_num_3
106489 ,xet.reference_num_4
106490 ,xet.reference_char_1
106491 ,xet.reference_char_2
106492 ,xet.reference_char_3
106493 ,xet.reference_char_4
106494 ,xet.reference_date_1
106495 ,xet.reference_date_2
106496 ,xet.reference_date_3
106497 ,xet.reference_date_4
106498 ,xet.event_created_by
106499 ,xet.budgetary_control_flag
106500 , h2.EXPENDITURE_ITEM_ID source_33
106501 , h2.GL_DATE source_75
106502 FROM xla_events_gt xet
106503 , PA_XLA_EXP_HEADER_V h2
106504 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
106505 and xet.event_class_code = C_EVENT_CLASS_CODE
106506 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
106507
106508 ORDER BY event_id
106509 ;
106510
106511
106512 --
106513 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
106514 IS
106515 SELECT /*+ leading(xet) cardinality(xet,1) */
106516 -- Event Class Code: WIP_COST
106517 xet.entity_id
106518 ,xet.legal_entity_id
106519 ,xet.entity_code
106520 ,xet.transaction_number
106521 ,xet.event_id
106522 ,xet.event_class_code
106523 ,xet.event_type_code
106524 ,xet.event_number
106525 ,xet.event_date
106526 ,xet.transaction_date
106527 ,xet.reference_num_1
106528 ,xet.reference_num_2
106529 ,xet.reference_num_3
106530 ,xet.reference_num_4
106531 ,xet.reference_char_1
106532 ,xet.reference_char_2
106533 ,xet.reference_char_3
106534 ,xet.reference_char_4
106535 ,xet.reference_date_1
106536 ,xet.reference_date_2
106537 ,xet.reference_date_3
106538 ,xet.reference_date_4
106539 ,xet.event_created_by
106540 ,xet.budgetary_control_flag
106541 , l1.LINE_NUMBER
106542 , l1.COST_CCID source_4
106543 , l1.ALLOW_OVERRIDE_CCID_FLAG source_5
106544 , l1.ADJ_COST_CCID source_6
106545 , l1.COST_CLEARING_CCID source_7
106546 , l1.ADJ_COST_CLEARING_CCID source_8
106547 , l1.REVERSING_LINE_FLAG source_23
106548 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_24
106549 , l1.ENTERED_RAW_COST source_25
106550 , l1.ENTERED_CURRENCY_CODE source_26
106551 , l1.ACCT_RAW_COST source_27
106552 , l1.EXCHANGE_RATE_DATE source_28
106553 , l1.EXCHANGE_RATE source_29
106554 , l1.EXCHANGE_RATE_TYPE source_30
106555 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_31
106556 , l1.USE_ACT_UPG_ATTRIB_FLAG source_32
106557 , l1.LINE_NUMBER source_34
106558 , l1.LINE_TYPE source_35
106559 , fvl35.meaning source_35_meaning
106560 , l1.LINE_NUM_REVERSED source_36
106561 FROM xla_events_gt xet
106562 , PA_XLA_CDL_LINES_V l1
106563 , fnd_lookup_values fvl35
106564 WHERE xet.event_id between x_first_event_id and x_last_event_id
106565 and xet.event_date between p_pad_start_date and p_pad_end_date
106566 and xet.event_class_code = C_EVENT_CLASS_CODE
106567 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
106568 AND fvl35.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
106569 AND fvl35.lookup_code(+) = l1.LINE_TYPE
106570 AND fvl35.view_application_id(+) = 275
106571 AND fvl35.language(+) = USERENV('LANG')
106572 ;
106573
106574 --
106575 BEGIN
106576 IF g_log_enabled THEN
106577 l_log_module := C_DEFAULT_MODULE||'.EventClass_170';
106578 END IF;
106579 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
106580 trace
106581 (p_msg => 'BEGIN of EventClass_170'
106582 ,p_level => C_LEVEL_PROCEDURE
106583 ,p_module => l_log_module);
106584 END IF;
106585
106589 ' - p_base_ledger_id = '||p_base_ledger_id||
106586 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
106587 trace
106588 (p_msg => 'p_application_id = '||p_application_id||
106590 ' - p_target_ledger_id = '||p_target_ledger_id||
106591 ' - p_language = '||p_language||
106592 ' - p_currency_code = '||p_currency_code||
106593 ' - p_sla_ledger_id = '||p_sla_ledger_id
106594 ,p_level => C_LEVEL_STATEMENT
106595 ,p_module => l_log_module);
106596 END IF;
106597 --
106598 -- initialze arrays
106599 --
106600 g_array_event.DELETE;
106601 l_rec_array_event := l_null_rec_array_event;
106602 --
106603 --------------------------------------
106604 -- 4262811 Initialze MPA Line Number
106605 --------------------------------------
106606 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
106607
106608 --
106609
106610 --
106611 OPEN header_cur;
106612 --
106613 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
106614 trace
106615 (p_msg => 'SQL - FETCH header_cur'
106616 ,p_level => C_LEVEL_STATEMENT
106617 ,p_module => l_log_module);
106618 END IF;
106619 --
106620 LOOP
106621 FETCH header_cur BULK COLLECT INTO
106622 l_array_entity_id
106623 , l_array_legal_entity_id
106624 , l_array_entity_code
106625 , l_array_transaction_num
106626 , l_array_event_id
106627 , l_array_class_code
106628 , l_array_event_type
106629 , l_array_event_number
106630 , l_array_event_date
106631 , l_array_transaction_date
106632 , l_array_reference_num_1
106633 , l_array_reference_num_2
106634 , l_array_reference_num_3
106635 , l_array_reference_num_4
106636 , l_array_reference_char_1
106637 , l_array_reference_char_2
106638 , l_array_reference_char_3
106639 , l_array_reference_char_4
106640 , l_array_reference_date_1
106641 , l_array_reference_date_2
106642 , l_array_reference_date_3
106643 , l_array_reference_date_4
106644 , l_array_event_created_by
106645 , l_array_budgetary_control_flag
106646 , l_array_source_33
106647 , l_array_source_75
106648 LIMIT l_rows;
106649 --
106650 IF (C_LEVEL_EVENT >= g_log_level) THEN
106651 trace
106652 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
106653 ,p_level => C_LEVEL_EVENT
106654 ,p_module => l_log_module);
106655 END IF;
106656 --
106657 EXIT WHEN l_array_entity_id.COUNT = 0;
106658
106659 -- initialize arrays
106660 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
106661 XLA_AE_LINES_PKG.g_rec_lines := NULL;
106662
106663 --
106664 -- Bug 4458708
106665 --
106666 XLA_AE_LINES_PKG.g_LineNumber := 0;
106667
106668
106669 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
106670 g_last_hdr_idx := l_array_event_id.LAST;
106671 --
106672 -- loop for the headers. Each iteration is for each header extract row
106673 -- fetched in header cursor
106674 --
106675 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
106676
106677 --
106678 -- set event info as cache for other routines to refer event attributes
106679 --
106680 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
106681 (p_application_id => p_application_id
106682 ,p_primary_ledger_id => p_primary_ledger_id
106683 ,p_base_ledger_id => p_base_ledger_id
106684 ,p_target_ledger_id => p_target_ledger_id
106685 ,p_entity_id => l_array_entity_id(hdr_idx)
106686 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
106687 ,p_entity_code => l_array_entity_code(hdr_idx)
106688 ,p_transaction_num => l_array_transaction_num(hdr_idx)
106689 ,p_event_id => l_array_event_id(hdr_idx)
106690 ,p_event_class_code => l_array_class_code(hdr_idx)
106691 ,p_event_type_code => l_array_event_type(hdr_idx)
106692 ,p_event_number => l_array_event_number(hdr_idx)
106693 ,p_event_date => l_array_event_date(hdr_idx)
106694 ,p_transaction_date => l_array_transaction_date(hdr_idx)
106695 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
106696 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
106697 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
106698 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
106699 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
106700 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
106701 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
106702 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
106703 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
106704 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
106705 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
106706 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
106707 ,p_event_created_by => l_array_event_created_by(hdr_idx)
106708 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
106709
106710 --
106711 -- set the status of entry to C_VALID (0)
106712 --
106713 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
106714
106715 --
106716 -- initialize a row for ae header
106717 --
106718 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
106719
106720 l_event_id := l_array_event_id(hdr_idx);
106721
106722 --
106723 -- storing the hdr_idx for event. May be used by line cursor.
106724 --
106725 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
106726
106727 --
106728 -- store sources from header extract. This can be improved to
106732 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
106729 -- store only those sources from header extract that may be used in lines
106730 --
106731
106733 g_array_event(l_event_id).array_value_date('source_75') := l_array_source_75(hdr_idx);
106734
106735 --
106736 -- initilaize the status of ae headers for diffrent balance types
106737 -- the status is initialised to C_NOT_CREATED (2)
106738 --
106739 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
106740 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
106741 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
106742
106743 --
106744 -- call api to validate and store accounting attributes for header
106745 --
106746
106747 ------------------------------------------------------------
106748 -- Accrual Reversal : to get date for Standard Source (NONE)
106749 ------------------------------------------------------------
106750 l_acc_rev_gl_date_source := NULL;
106751
106752 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
106753 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_75');
106754
106755
106756 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
106757
106758 XLA_AE_HEADER_PKG.SetJeCategoryName;
106759
106760 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
106761 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
106762 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
106763 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
106764 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
106765
106766
106767 -- No header level analytical criteria
106768
106769 --
106770 --accounting attribute enhancement, bug 3612931
106771 --
106772 l_trx_reversal_source := SUBSTR(NULL, 1,30);
106773
106774 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
106775 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
106776
106777 xla_accounting_err_pkg.build_message
106778 (p_appli_s_name => 'XLA'
106779 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
106780 ,p_token_1 => 'ACCT_ATTR_NAME'
106781 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
106782 ,p_token_2 => 'PRODUCT_NAME'
106783 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
106784 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
106785 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
106786 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
106787
106788 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
106789 --
106790 -- following sets the accounting attributes needed to reverse
106791 -- accounting for a distributeion
106792 --
106793 xla_ae_lines_pkg.SetTrxReversalAttrs
106794 (p_event_id => l_event_id
106795 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
106796 ,p_trx_reversal_source => l_trx_reversal_source);
106797
106798 END IF;
106799
106800
106801 ----------------------------------------------------------------
106802 -- 4262811 - update the header statuses to invalid in need be
106803 ----------------------------------------------------------------
106804 --
106805 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
106806
106807
106808 -----------------------------------------------
106809 -- No accrual reversal for the event class/type
106810 -----------------------------------------------
106811 ----------------------------------------------------------------
106812
106813 --
106814 -- this ends the header loop iteration for one bulk fetch
106815 --
106816 END LOOP;
106817
106818 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
106819 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
106820
106821 --
106822 -- insert dummy rows into lines gt table that were created due to
106823 -- transaction reversals
106824 --
106825 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
106826 l_result := XLA_AE_LINES_PKG.InsertLines;
106827 END IF;
106828
106829 --
106830 -- reset the temp_line_num for each set of events fetched from header
106831 -- cursor rather than doing it for each new event in line cursor
106832 -- Bug 3939231
106833 --
106834 xla_ae_lines_pkg.g_temp_line_num := 0;
106835
106836
106837
106838 --
106839 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
106840 --
106841 --
106842 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
106843
106844 trace
106845 (p_msg => 'SQL - FETCH line_cur'
106846 ,p_level => C_LEVEL_STATEMENT
106847 ,p_module => l_log_module);
106848
106849 END IF;
106850 --
106851 --
106852 LOOP
106853 --
106854 FETCH line_cur BULK COLLECT INTO
106855 l_array_entity_id
106856 , l_array_legal_entity_id
106857 , l_array_entity_code
106858 , l_array_transaction_num
106859 , l_array_event_id
106860 , l_array_class_code
106861 , l_array_event_type
106862 , l_array_event_number
106863 , l_array_event_date
106864 , l_array_transaction_date
106865 , l_array_reference_num_1
106866 , l_array_reference_num_2
106867 , l_array_reference_num_3
106868 , l_array_reference_num_4
106872 , l_array_reference_char_4
106869 , l_array_reference_char_1
106870 , l_array_reference_char_2
106871 , l_array_reference_char_3
106873 , l_array_reference_date_1
106874 , l_array_reference_date_2
106875 , l_array_reference_date_3
106876 , l_array_reference_date_4
106877 , l_array_event_created_by
106878 , l_array_budgetary_control_flag
106879 , l_array_extract_line_num
106880 , l_array_source_4
106881 , l_array_source_5
106882 , l_array_source_6
106883 , l_array_source_7
106884 , l_array_source_8
106885 , l_array_source_23
106886 , l_array_source_24
106887 , l_array_source_25
106888 , l_array_source_26
106889 , l_array_source_27
106890 , l_array_source_28
106891 , l_array_source_29
106892 , l_array_source_30
106893 , l_array_source_31
106894 , l_array_source_32
106895 , l_array_source_34
106896 , l_array_source_35
106897 , l_array_source_35_meaning
106898 , l_array_source_36
106899 LIMIT l_rows;
106900
106901 --
106902 IF (C_LEVEL_EVENT >= g_log_level) THEN
106903 trace
106904 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
106905 ,p_level => C_LEVEL_EVENT
106906 ,p_module => l_log_module);
106907 END IF;
106908 --
106909 EXIT WHEN l_array_entity_id.count = 0;
106910
106911 XLA_AE_LINES_PKG.g_rec_lines := null;
106912
106913 --
106914 -- Bug 4458708
106915 --
106916 XLA_AE_LINES_PKG.g_LineNumber := 0;
106917 --
106918 --
106919
106920 FOR Idx IN 1..l_array_event_id.count LOOP
106921 --
106922 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
106923 --
106924 l_event_id := l_array_event_id(idx); -- 5648433
106925
106926 --
106927 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
106928 --
106929
106930 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
106931 (g_array_event(l_event_id).array_value_num('header_index'))
106932 ,'N'
106933 ) <> 'Y'
106934 THEN
106935 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
106936 trace
106937 (p_msg => 'Trancaction revesal option is not Y '
106938 ,p_level => C_LEVEL_STATEMENT
106939 ,p_module => l_log_module);
106940 END IF;
106941
106942 --
106943 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
106944 --
106945 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
106946 --
106947 -- set event info as cache for other routines to refer event attributes
106948 --
106949
106950 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
106951 l_previous_event_id := l_event_id;
106952
106953 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
106954 (p_application_id => p_application_id
106955 ,p_primary_ledger_id => p_primary_ledger_id
106956 ,p_base_ledger_id => p_base_ledger_id
106957 ,p_target_ledger_id => p_target_ledger_id
106958 ,p_entity_id => l_array_entity_id(Idx)
106959 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
106960 ,p_entity_code => l_array_entity_code(Idx)
106961 ,p_transaction_num => l_array_transaction_num(Idx)
106962 ,p_event_id => l_array_event_id(Idx)
106963 ,p_event_class_code => l_array_class_code(Idx)
106964 ,p_event_type_code => l_array_event_type(Idx)
106965 ,p_event_number => l_array_event_number(Idx)
106966 ,p_event_date => l_array_event_date(Idx)
106967 ,p_transaction_date => l_array_transaction_date(Idx)
106968 ,p_reference_num_1 => l_array_reference_num_1(Idx)
106969 ,p_reference_num_2 => l_array_reference_num_2(Idx)
106970 ,p_reference_num_3 => l_array_reference_num_3(Idx)
106971 ,p_reference_num_4 => l_array_reference_num_4(Idx)
106972 ,p_reference_char_1 => l_array_reference_char_1(Idx)
106973 ,p_reference_char_2 => l_array_reference_char_2(Idx)
106974 ,p_reference_char_3 => l_array_reference_char_3(Idx)
106975 ,p_reference_char_4 => l_array_reference_char_4(Idx)
106976 ,p_reference_date_1 => l_array_reference_date_1(Idx)
106977 ,p_reference_date_2 => l_array_reference_date_2(Idx)
106978 ,p_reference_date_3 => l_array_reference_date_3(Idx)
106979 ,p_reference_date_4 => l_array_reference_date_4(Idx)
106980 ,p_event_created_by => l_array_event_created_by(Idx)
106981 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
106982 --
106983 END IF;
106984
106985
106986
106987 --
106988 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
106989
106990 l_acct_reversal_source := SUBSTR(l_array_source_23(Idx), 1,30);
106991
106992 IF l_continue_with_lines THEN
106993 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
106994 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
106995
106996 xla_accounting_err_pkg.build_message
106997 (p_appli_s_name => 'XLA'
106998 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
106999 ,p_token_1 => 'LINE_NUMBER'
107000 ,p_value_1 => l_array_extract_line_num(Idx)
107001 ,p_token_2 => 'PRODUCT_NAME'
107002 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
107003 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
107007 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
107004 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
107005 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
107006
107008 --
107009 -- following sets the accounting attributes needed to reverse
107010 -- accounting for a distributeion
107011 --
107012
107013 --
107014 -- 5217187
107015 --
107016 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
107017 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
107018 g_array_event(l_event_id).array_value_num('header_index'));
107019 --
107020 --
107021
107022 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
107023 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_23(Idx);
107024 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
107025 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_24(Idx);
107026 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
107027 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_7(Idx));
107028 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
107029 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_25(Idx);
107030 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
107031 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_26(Idx);
107032 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
107033 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_27(Idx);
107034 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
107035 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_28(Idx);
107036 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
107037 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_29(Idx);
107038 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
107039 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_30(Idx);
107040 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
107041 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_31(Idx);
107042 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
107043 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_4(Idx));
107044 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
107045 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_25(Idx);
107046 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
107047 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_26(Idx);
107048 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
107049 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_27(Idx);
107050 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
107051 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_28(Idx);
107052 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
107053 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_29(Idx);
107054 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
107055 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_30(Idx);
107056 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
107057 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_32(Idx);
107058 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
107059 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_33');
107060 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
107061 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_34(Idx);
107062 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
107063 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_35(Idx);
107064 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
107065 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_33');
107066 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
107067 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_36(Idx);
107068 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
107069 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_35(Idx);
107070
107071
107072 xla_ae_lines_pkg.SetAcctReversalAttrs
107073 (p_event_id => l_event_id
107074 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
107075 ,p_calculate_acctd_flag => l_calculate_acctd_flag
107076 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
107077 END IF;
107078
107079 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
107080 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
107081
107082 --
107083 AcctLineType_70 (
107084 p_application_id => p_application_id
107085 ,p_event_id => l_event_id
107086 ,p_calculate_acctd_flag => l_calculate_acctd_flag
107087 ,p_calculate_g_l_flag => l_calculate_g_l_flag
107088 ,p_actual_flag => l_actual_flag
107089 ,p_balance_type_code => l_balance_type_code
107090 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
107091
107092 , p_source_4 => l_array_source_4(Idx)
107093 , p_source_5 => l_array_source_5(Idx)
107094 , p_source_6 => l_array_source_6(Idx)
107095 , p_source_7 => l_array_source_7(Idx)
107096 , p_source_23 => l_array_source_23(Idx)
107097 , p_source_24 => l_array_source_24(Idx)
107098 , p_source_25 => l_array_source_25(Idx)
107099 , p_source_26 => l_array_source_26(Idx)
107100 , p_source_27 => l_array_source_27(Idx)
107101 , p_source_28 => l_array_source_28(Idx)
107102 , p_source_29 => l_array_source_29(Idx)
107106 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
107103 , p_source_30 => l_array_source_30(Idx)
107104 , p_source_31 => l_array_source_31(Idx)
107105 , p_source_32 => l_array_source_32(Idx)
107107 , p_source_34 => l_array_source_34(Idx)
107108 , p_source_35 => l_array_source_35(Idx)
107109 , p_source_35_meaning => l_array_source_35_meaning(Idx)
107110 , p_source_36 => l_array_source_36(Idx)
107111 );
107112 If(l_balance_type_code = 'A') THEN
107113 l_actual_gain_loss_ref := l_gain_or_loss_ref;
107114 END IF;
107115
107116 --
107117
107118
107119 --
107120 AcctLineType_85 (
107121 p_application_id => p_application_id
107122 ,p_event_id => l_event_id
107123 ,p_calculate_acctd_flag => l_calculate_acctd_flag
107124 ,p_calculate_g_l_flag => l_calculate_g_l_flag
107125 ,p_actual_flag => l_actual_flag
107126 ,p_balance_type_code => l_balance_type_code
107127 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
107128
107129 , p_source_4 => l_array_source_4(Idx)
107130 , p_source_5 => l_array_source_5(Idx)
107131 , p_source_7 => l_array_source_7(Idx)
107132 , p_source_8 => l_array_source_8(Idx)
107133 , p_source_23 => l_array_source_23(Idx)
107134 , p_source_24 => l_array_source_24(Idx)
107135 , p_source_25 => l_array_source_25(Idx)
107136 , p_source_26 => l_array_source_26(Idx)
107137 , p_source_27 => l_array_source_27(Idx)
107138 , p_source_28 => l_array_source_28(Idx)
107139 , p_source_29 => l_array_source_29(Idx)
107140 , p_source_30 => l_array_source_30(Idx)
107141 , p_source_31 => l_array_source_31(Idx)
107142 , p_source_32 => l_array_source_32(Idx)
107143 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
107144 , p_source_34 => l_array_source_34(Idx)
107145 , p_source_35 => l_array_source_35(Idx)
107146 , p_source_35_meaning => l_array_source_35_meaning(Idx)
107147 , p_source_36 => l_array_source_36(Idx)
107148 );
107149 If(l_balance_type_code = 'A') THEN
107150 l_actual_gain_loss_ref := l_gain_or_loss_ref;
107151 END IF;
107152
107153 --
107154
107155
107156 --
107157 AcctLineType_105 (
107158 p_application_id => p_application_id
107159 ,p_event_id => l_event_id
107160 ,p_calculate_acctd_flag => l_calculate_acctd_flag
107161 ,p_calculate_g_l_flag => l_calculate_g_l_flag
107162 ,p_actual_flag => l_actual_flag
107163 ,p_balance_type_code => l_balance_type_code
107164 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
107165
107166 , p_source_4 => l_array_source_4(Idx)
107167 , p_source_5 => l_array_source_5(Idx)
107168 , p_source_7 => l_array_source_7(Idx)
107169 , p_source_8 => l_array_source_8(Idx)
107170 , p_source_23 => l_array_source_23(Idx)
107171 , p_source_24 => l_array_source_24(Idx)
107172 , p_source_25 => l_array_source_25(Idx)
107173 , p_source_26 => l_array_source_26(Idx)
107174 , p_source_27 => l_array_source_27(Idx)
107175 , p_source_28 => l_array_source_28(Idx)
107176 , p_source_29 => l_array_source_29(Idx)
107177 , p_source_30 => l_array_source_30(Idx)
107178 , p_source_31 => l_array_source_31(Idx)
107179 , p_source_32 => l_array_source_32(Idx)
107180 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
107181 , p_source_34 => l_array_source_34(Idx)
107182 , p_source_35 => l_array_source_35(Idx)
107183 , p_source_35_meaning => l_array_source_35_meaning(Idx)
107184 , p_source_36 => l_array_source_36(Idx)
107185 );
107186 If(l_balance_type_code = 'A') THEN
107187 l_actual_gain_loss_ref := l_gain_or_loss_ref;
107188 END IF;
107189
107190 --
107191
107192
107193 --
107194 AcctLineType_111 (
107195 p_application_id => p_application_id
107196 ,p_event_id => l_event_id
107197 ,p_calculate_acctd_flag => l_calculate_acctd_flag
107198 ,p_calculate_g_l_flag => l_calculate_g_l_flag
107199 ,p_actual_flag => l_actual_flag
107200 ,p_balance_type_code => l_balance_type_code
107201 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
107202
107203 , p_source_4 => l_array_source_4(Idx)
107204 , p_source_5 => l_array_source_5(Idx)
107205 , p_source_6 => l_array_source_6(Idx)
107206 , p_source_7 => l_array_source_7(Idx)
107207 , p_source_23 => l_array_source_23(Idx)
107208 , p_source_24 => l_array_source_24(Idx)
107209 , p_source_25 => l_array_source_25(Idx)
107210 , p_source_26 => l_array_source_26(Idx)
107211 , p_source_27 => l_array_source_27(Idx)
107212 , p_source_28 => l_array_source_28(Idx)
107213 , p_source_29 => l_array_source_29(Idx)
107214 , p_source_30 => l_array_source_30(Idx)
107215 , p_source_31 => l_array_source_31(Idx)
107216 , p_source_32 => l_array_source_32(Idx)
107217 , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
107218 , p_source_34 => l_array_source_34(Idx)
107219 , p_source_35 => l_array_source_35(Idx)
107220 , p_source_35_meaning => l_array_source_35_meaning(Idx)
107221 , p_source_36 => l_array_source_36(Idx)
107222 );
107223 If(l_balance_type_code = 'A') THEN
107224 l_actual_gain_loss_ref := l_gain_or_loss_ref;
107225 END IF;
107226
107227 --
107228
107229 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
107230 -- or secondary ledger that has different currency with primary
107231 -- or alc that is calculated by sla
107232 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
107233 (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'))
107234
107235 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
107236 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
107237 AND (l_actual_flag = 'A')) THEN
107238 XLA_AE_LINES_PKG.CreateGainOrLossLines(
107239 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
107240 ,p_application_id => p_application_id
107244 ,p_event_type_code => C_EVENT_TYPE_CODE
107241 ,p_amb_context_code => 'DEFAULT'
107242 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
107243 ,p_event_class_code => C_EVENT_CLASS_CODE
107245
107246 ,p_gain_ccid => -1
107247 ,p_loss_ccid => -1
107248
107249 ,p_actual_flag => l_actual_flag
107250 ,p_enc_flag => null
107251 ,p_actual_g_l_ref => l_actual_gain_loss_ref
107252 ,p_enc_g_l_ref => null
107253 );
107254 END IF;
107255 END IF;
107256 END IF;
107257
107258 ELSE
107259 --
107260 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
107261 --
107262 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
107263 trace
107264 (p_msg => 'Trancaction revesal option is Y'
107265 ,p_level => C_LEVEL_STATEMENT
107266 ,p_module => l_log_module);
107267 END IF;
107268 END IF;
107269
107270 END LOOP;
107271 l_result := XLA_AE_LINES_PKG.InsertLines ;
107272 end loop;
107273 close line_cur;
107274
107275
107276 --
107277 -- insert headers into xla_ae_headers_gt table
107278 --
107279 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
107280
107281 -- insert into errors table here.
107282
107283 END LOOP;
107284
107285 --
107286 -- 4865292
107287 --
107288 -- Compare g_hdr_extract_count with event count in
107289 -- CreateHeadersAndLines.
107290 --
107291 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
107292
107293 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
107294 trace (p_msg => '# rows extracted from header extract objects '
107295 || ' (running total): '
107296 || g_hdr_extract_count
107297 ,p_level => C_LEVEL_STATEMENT
107298 ,p_module => l_log_module);
107299 END IF;
107300
107301 CLOSE header_cur;
107302 --
107303
107304 --
107305 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
107306 trace
107307 (p_msg => 'END of EventClass_170'
107308 ,p_level => C_LEVEL_PROCEDURE
107309 ,p_module => l_log_module);
107310 END IF;
107311 --
107312 RETURN l_result;
107313 EXCEPTION
107314 WHEN xla_exceptions_pkg.application_exception THEN
107315
107316 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
107317
107318
107319 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
107320
107321 RAISE;
107322 WHEN OTHERS THEN
107323 xla_exceptions_pkg.raise_message
107324 (p_location => 'XLA_00275_AAD_S_000015_PKG.EventClass_170');
107325 END EventClass_170;
107326 --
107327
107328 --
107329 --+============================================+
107330 --| |
107331 --| PRIVATE FUNCTION |
107332 --| |
107333 --+============================================+
107334 --
107335 FUNCTION CreateHeadersAndLines
107336 (p_application_id IN NUMBER
107337 ,p_base_ledger_id IN NUMBER
107338 ,p_target_ledger_id IN NUMBER
107339 ,p_pad_start_date IN DATE
107340 ,p_pad_end_date IN DATE
107341 ,p_primary_ledger_id IN NUMBER)
107342 RETURN BOOLEAN IS
107343 l_created BOOLEAN:=FALSE;
107344 l_event_id NUMBER;
107345 l_event_date DATE;
107346 l_language VARCHAR2(30);
107347 l_currency_code VARCHAR2(30);
107348 l_sla_ledger_id NUMBER;
107349 l_log_module VARCHAR2(240);
107350
107351 BEGIN
107352 --
107353 IF g_log_enabled THEN
107354 l_log_module := C_DEFAULT_MODULE||'.CreateHeadersAndLines';
107355 END IF;
107356 --
107357 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
107358 trace
107359 (p_msg => 'BEGIN of CreateHeadersAndLines'
107360 ,p_level => C_LEVEL_PROCEDURE
107361 ,p_module => l_log_module);
107362 END IF;
107363
107364 l_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
107365 l_currency_code := xla_ae_journal_entry_pkg.g_cache_ledgers_info.currency_code;
107366 l_sla_ledger_id := xla_ae_journal_entry_pkg.g_cache_ledgers_info.sla_ledger_id;
107367
107368 --
107369 -- initialize array of lines with NULL
107370 --
107371 xla_ae_lines_pkg.SetNullLine;
107372
107373 --
107374 -- initialize header extract count -- Bug 4865292
107375 --
107376 g_hdr_extract_count:= 0;
107377
107378
107379 l_created := EventClass_148(
107380 p_application_id => p_application_id
107381 , p_base_ledger_id => p_base_ledger_id
107382 , p_target_ledger_id => p_target_ledger_id
107383 , p_language => l_language
107384 , p_currency_code => l_currency_code
107385 , p_sla_ledger_id => l_sla_ledger_id
107386 , p_pad_start_date => p_pad_start_date
107387 , p_pad_end_date => p_pad_end_date
107388 , p_primary_ledger_id => p_primary_ledger_id
107389 );
107390
107391
107392
107393 IF ( g_diagnostics_mode ='Y' ) THEN
107394
107395 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
107396 trace
107397 (p_msg => 'CALL Transaction Objects Diagnostics'
107398 ,p_level => C_LEVEL_STATEMENT
107399 ,p_module => l_log_module);
107400
107401 END IF;
107402
107403 insert_sources_148(
107404 p_target_ledger_id => p_target_ledger_id
107405 , p_language => l_language
107406 , p_sla_ledger_id => l_sla_ledger_id
107410
107407 , p_pad_start_date => p_pad_start_date
107408 , p_pad_end_date => p_pad_end_date
107409 );
107411 END IF;
107412
107413 l_created := EventClass_149(
107414 p_application_id => p_application_id
107415 , p_base_ledger_id => p_base_ledger_id
107416 , p_target_ledger_id => p_target_ledger_id
107417 , p_language => l_language
107418 , p_currency_code => l_currency_code
107419 , p_sla_ledger_id => l_sla_ledger_id
107420 , p_pad_start_date => p_pad_start_date
107421 , p_pad_end_date => p_pad_end_date
107422 , p_primary_ledger_id => p_primary_ledger_id
107423 );
107424
107425
107426
107427 IF ( g_diagnostics_mode ='Y' ) THEN
107428
107429 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
107430 trace
107431 (p_msg => 'CALL Transaction Objects Diagnostics'
107432 ,p_level => C_LEVEL_STATEMENT
107433 ,p_module => l_log_module);
107434
107435 END IF;
107436
107437 insert_sources_149(
107438 p_target_ledger_id => p_target_ledger_id
107439 , p_language => l_language
107440 , p_sla_ledger_id => l_sla_ledger_id
107441 , p_pad_start_date => p_pad_start_date
107442 , p_pad_end_date => p_pad_end_date
107443 );
107444
107445 END IF;
107446
107447 l_created := EventClass_150(
107448 p_application_id => p_application_id
107449 , p_base_ledger_id => p_base_ledger_id
107450 , p_target_ledger_id => p_target_ledger_id
107451 , p_language => l_language
107452 , p_currency_code => l_currency_code
107453 , p_sla_ledger_id => l_sla_ledger_id
107454 , p_pad_start_date => p_pad_start_date
107455 , p_pad_end_date => p_pad_end_date
107456 , p_primary_ledger_id => p_primary_ledger_id
107457 );
107458
107459
107460
107461 IF ( g_diagnostics_mode ='Y' ) THEN
107462
107463 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
107464 trace
107465 (p_msg => 'CALL Transaction Objects Diagnostics'
107466 ,p_level => C_LEVEL_STATEMENT
107467 ,p_module => l_log_module);
107468
107469 END IF;
107470
107471 insert_sources_150(
107472 p_target_ledger_id => p_target_ledger_id
107473 , p_language => l_language
107474 , p_sla_ledger_id => l_sla_ledger_id
107475 , p_pad_start_date => p_pad_start_date
107476 , p_pad_end_date => p_pad_end_date
107477 );
107478
107479 END IF;
107480
107481 l_created := EventClass_151(
107482 p_application_id => p_application_id
107483 , p_base_ledger_id => p_base_ledger_id
107484 , p_target_ledger_id => p_target_ledger_id
107485 , p_language => l_language
107486 , p_currency_code => l_currency_code
107487 , p_sla_ledger_id => l_sla_ledger_id
107488 , p_pad_start_date => p_pad_start_date
107489 , p_pad_end_date => p_pad_end_date
107490 , p_primary_ledger_id => p_primary_ledger_id
107491 );
107492
107493
107494
107495 IF ( g_diagnostics_mode ='Y' ) THEN
107496
107497 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
107498 trace
107499 (p_msg => 'CALL Transaction Objects Diagnostics'
107500 ,p_level => C_LEVEL_STATEMENT
107501 ,p_module => l_log_module);
107502
107503 END IF;
107504
107505 insert_sources_151(
107506 p_target_ledger_id => p_target_ledger_id
107507 , p_language => l_language
107508 , p_sla_ledger_id => l_sla_ledger_id
107509 , p_pad_start_date => p_pad_start_date
107510 , p_pad_end_date => p_pad_end_date
107511 );
107512
107513 END IF;
107514
107515 l_created := EventClass_152(
107516 p_application_id => p_application_id
107517 , p_base_ledger_id => p_base_ledger_id
107518 , p_target_ledger_id => p_target_ledger_id
107519 , p_language => l_language
107520 , p_currency_code => l_currency_code
107521 , p_sla_ledger_id => l_sla_ledger_id
107522 , p_pad_start_date => p_pad_start_date
107523 , p_pad_end_date => p_pad_end_date
107524 , p_primary_ledger_id => p_primary_ledger_id
107525 );
107526
107527
107528
107529 IF ( g_diagnostics_mode ='Y' ) THEN
107530
107531 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
107532 trace
107533 (p_msg => 'CALL Transaction Objects Diagnostics'
107534 ,p_level => C_LEVEL_STATEMENT
107535 ,p_module => l_log_module);
107536
107537 END IF;
107538
107539 insert_sources_152(
107540 p_target_ledger_id => p_target_ledger_id
107541 , p_language => l_language
107542 , p_sla_ledger_id => l_sla_ledger_id
107543 , p_pad_start_date => p_pad_start_date
107544 , p_pad_end_date => p_pad_end_date
107545 );
107546
107547 END IF;
107548
107549 l_created := EventClass_153(
107550 p_application_id => p_application_id
107551 , p_base_ledger_id => p_base_ledger_id
107552 , p_target_ledger_id => p_target_ledger_id
107556 , p_pad_start_date => p_pad_start_date
107553 , p_language => l_language
107554 , p_currency_code => l_currency_code
107555 , p_sla_ledger_id => l_sla_ledger_id
107557 , p_pad_end_date => p_pad_end_date
107558 , p_primary_ledger_id => p_primary_ledger_id
107559 );
107560
107561
107562
107563 IF ( g_diagnostics_mode ='Y' ) THEN
107564
107565 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
107566 trace
107567 (p_msg => 'CALL Transaction Objects Diagnostics'
107568 ,p_level => C_LEVEL_STATEMENT
107569 ,p_module => l_log_module);
107570
107571 END IF;
107572
107573 insert_sources_153(
107574 p_target_ledger_id => p_target_ledger_id
107575 , p_language => l_language
107576 , p_sla_ledger_id => l_sla_ledger_id
107577 , p_pad_start_date => p_pad_start_date
107578 , p_pad_end_date => p_pad_end_date
107579 );
107580
107581 END IF;
107582
107583 l_created := EventClass_154(
107584 p_application_id => p_application_id
107585 , p_base_ledger_id => p_base_ledger_id
107586 , p_target_ledger_id => p_target_ledger_id
107587 , p_language => l_language
107588 , p_currency_code => l_currency_code
107589 , p_sla_ledger_id => l_sla_ledger_id
107590 , p_pad_start_date => p_pad_start_date
107591 , p_pad_end_date => p_pad_end_date
107592 , p_primary_ledger_id => p_primary_ledger_id
107593 );
107594
107595
107596
107597 IF ( g_diagnostics_mode ='Y' ) THEN
107598
107599 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
107600 trace
107601 (p_msg => 'CALL Transaction Objects Diagnostics'
107602 ,p_level => C_LEVEL_STATEMENT
107603 ,p_module => l_log_module);
107604
107605 END IF;
107606
107607 insert_sources_154(
107608 p_target_ledger_id => p_target_ledger_id
107609 , p_language => l_language
107610 , p_sla_ledger_id => l_sla_ledger_id
107611 , p_pad_start_date => p_pad_start_date
107612 , p_pad_end_date => p_pad_end_date
107613 );
107614
107615 END IF;
107616
107617 l_created := EventClass_155(
107618 p_application_id => p_application_id
107619 , p_base_ledger_id => p_base_ledger_id
107620 , p_target_ledger_id => p_target_ledger_id
107621 , p_language => l_language
107622 , p_currency_code => l_currency_code
107623 , p_sla_ledger_id => l_sla_ledger_id
107624 , p_pad_start_date => p_pad_start_date
107625 , p_pad_end_date => p_pad_end_date
107626 , p_primary_ledger_id => p_primary_ledger_id
107627 );
107628
107629
107630
107631 IF ( g_diagnostics_mode ='Y' ) THEN
107632
107633 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
107634 trace
107635 (p_msg => 'CALL Transaction Objects Diagnostics'
107636 ,p_level => C_LEVEL_STATEMENT
107637 ,p_module => l_log_module);
107638
107639 END IF;
107640
107641 insert_sources_155(
107642 p_target_ledger_id => p_target_ledger_id
107643 , p_language => l_language
107644 , p_sla_ledger_id => l_sla_ledger_id
107645 , p_pad_start_date => p_pad_start_date
107646 , p_pad_end_date => p_pad_end_date
107647 );
107648
107649 END IF;
107650
107651 l_created := EventClass_156(
107652 p_application_id => p_application_id
107653 , p_base_ledger_id => p_base_ledger_id
107654 , p_target_ledger_id => p_target_ledger_id
107655 , p_language => l_language
107656 , p_currency_code => l_currency_code
107657 , p_sla_ledger_id => l_sla_ledger_id
107658 , p_pad_start_date => p_pad_start_date
107659 , p_pad_end_date => p_pad_end_date
107660 , p_primary_ledger_id => p_primary_ledger_id
107661 );
107662
107663
107664
107665 IF ( g_diagnostics_mode ='Y' ) THEN
107666
107667 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
107668 trace
107669 (p_msg => 'CALL Transaction Objects Diagnostics'
107670 ,p_level => C_LEVEL_STATEMENT
107671 ,p_module => l_log_module);
107672
107673 END IF;
107674
107675 insert_sources_156(
107676 p_target_ledger_id => p_target_ledger_id
107677 , p_language => l_language
107678 , p_sla_ledger_id => l_sla_ledger_id
107679 , p_pad_start_date => p_pad_start_date
107680 , p_pad_end_date => p_pad_end_date
107681 );
107682
107683 END IF;
107684
107685 l_created := EventClass_157(
107686 p_application_id => p_application_id
107687 , p_base_ledger_id => p_base_ledger_id
107688 , p_target_ledger_id => p_target_ledger_id
107689 , p_language => l_language
107690 , p_currency_code => l_currency_code
107691 , p_sla_ledger_id => l_sla_ledger_id
107692 , p_pad_start_date => p_pad_start_date
107693 , p_pad_end_date => p_pad_end_date
107694 , p_primary_ledger_id => p_primary_ledger_id
107695 );
107696
107697
107698
107699 IF ( g_diagnostics_mode ='Y' ) THEN
107700
107704 ,p_level => C_LEVEL_STATEMENT
107701 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
107702 trace
107703 (p_msg => 'CALL Transaction Objects Diagnostics'
107705 ,p_module => l_log_module);
107706
107707 END IF;
107708
107709 insert_sources_157(
107710 p_target_ledger_id => p_target_ledger_id
107711 , p_language => l_language
107712 , p_sla_ledger_id => l_sla_ledger_id
107713 , p_pad_start_date => p_pad_start_date
107714 , p_pad_end_date => p_pad_end_date
107715 );
107716
107717 END IF;
107718
107719 l_created := EventClass_158(
107720 p_application_id => p_application_id
107721 , p_base_ledger_id => p_base_ledger_id
107722 , p_target_ledger_id => p_target_ledger_id
107723 , p_language => l_language
107724 , p_currency_code => l_currency_code
107725 , p_sla_ledger_id => l_sla_ledger_id
107726 , p_pad_start_date => p_pad_start_date
107727 , p_pad_end_date => p_pad_end_date
107728 , p_primary_ledger_id => p_primary_ledger_id
107729 );
107730
107731
107732
107733 IF ( g_diagnostics_mode ='Y' ) THEN
107734
107735 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
107736 trace
107737 (p_msg => 'CALL Transaction Objects Diagnostics'
107738 ,p_level => C_LEVEL_STATEMENT
107739 ,p_module => l_log_module);
107740
107741 END IF;
107742
107743 insert_sources_158(
107744 p_target_ledger_id => p_target_ledger_id
107745 , p_language => l_language
107746 , p_sla_ledger_id => l_sla_ledger_id
107747 , p_pad_start_date => p_pad_start_date
107748 , p_pad_end_date => p_pad_end_date
107749 );
107750
107751 END IF;
107752
107753 l_created := EventClass_159(
107754 p_application_id => p_application_id
107755 , p_base_ledger_id => p_base_ledger_id
107756 , p_target_ledger_id => p_target_ledger_id
107757 , p_language => l_language
107758 , p_currency_code => l_currency_code
107759 , p_sla_ledger_id => l_sla_ledger_id
107760 , p_pad_start_date => p_pad_start_date
107761 , p_pad_end_date => p_pad_end_date
107762 , p_primary_ledger_id => p_primary_ledger_id
107763 );
107764
107765
107766
107767 IF ( g_diagnostics_mode ='Y' ) THEN
107768
107769 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
107770 trace
107771 (p_msg => 'CALL Transaction Objects Diagnostics'
107772 ,p_level => C_LEVEL_STATEMENT
107773 ,p_module => l_log_module);
107774
107775 END IF;
107776
107777 insert_sources_159(
107778 p_target_ledger_id => p_target_ledger_id
107779 , p_language => l_language
107780 , p_sla_ledger_id => l_sla_ledger_id
107781 , p_pad_start_date => p_pad_start_date
107782 , p_pad_end_date => p_pad_end_date
107783 );
107784
107785 END IF;
107786
107787 l_created := EventClass_160(
107788 p_application_id => p_application_id
107789 , p_base_ledger_id => p_base_ledger_id
107790 , p_target_ledger_id => p_target_ledger_id
107791 , p_language => l_language
107792 , p_currency_code => l_currency_code
107793 , p_sla_ledger_id => l_sla_ledger_id
107794 , p_pad_start_date => p_pad_start_date
107795 , p_pad_end_date => p_pad_end_date
107796 , p_primary_ledger_id => p_primary_ledger_id
107797 );
107798
107799
107800
107801 IF ( g_diagnostics_mode ='Y' ) THEN
107802
107803 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
107804 trace
107805 (p_msg => 'CALL Transaction Objects Diagnostics'
107806 ,p_level => C_LEVEL_STATEMENT
107807 ,p_module => l_log_module);
107808
107809 END IF;
107810
107811 insert_sources_160(
107812 p_target_ledger_id => p_target_ledger_id
107813 , p_language => l_language
107814 , p_sla_ledger_id => l_sla_ledger_id
107815 , p_pad_start_date => p_pad_start_date
107816 , p_pad_end_date => p_pad_end_date
107817 );
107818
107819 END IF;
107820
107821 l_created := EventClass_161(
107822 p_application_id => p_application_id
107823 , p_base_ledger_id => p_base_ledger_id
107824 , p_target_ledger_id => p_target_ledger_id
107825 , p_language => l_language
107826 , p_currency_code => l_currency_code
107827 , p_sla_ledger_id => l_sla_ledger_id
107828 , p_pad_start_date => p_pad_start_date
107829 , p_pad_end_date => p_pad_end_date
107830 , p_primary_ledger_id => p_primary_ledger_id
107831 );
107832
107833
107834
107835 IF ( g_diagnostics_mode ='Y' ) THEN
107836
107837 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
107838 trace
107839 (p_msg => 'CALL Transaction Objects Diagnostics'
107840 ,p_level => C_LEVEL_STATEMENT
107841 ,p_module => l_log_module);
107842
107843 END IF;
107844
107845 insert_sources_161(
107846 p_target_ledger_id => p_target_ledger_id
107850 , p_pad_end_date => p_pad_end_date
107847 , p_language => l_language
107848 , p_sla_ledger_id => l_sla_ledger_id
107849 , p_pad_start_date => p_pad_start_date
107851 );
107852
107853 END IF;
107854
107855 l_created := EventClass_162(
107856 p_application_id => p_application_id
107857 , p_base_ledger_id => p_base_ledger_id
107858 , p_target_ledger_id => p_target_ledger_id
107859 , p_language => l_language
107860 , p_currency_code => l_currency_code
107861 , p_sla_ledger_id => l_sla_ledger_id
107862 , p_pad_start_date => p_pad_start_date
107863 , p_pad_end_date => p_pad_end_date
107864 , p_primary_ledger_id => p_primary_ledger_id
107865 );
107866
107867
107868
107869 IF ( g_diagnostics_mode ='Y' ) THEN
107870
107871 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
107872 trace
107873 (p_msg => 'CALL Transaction Objects Diagnostics'
107874 ,p_level => C_LEVEL_STATEMENT
107875 ,p_module => l_log_module);
107876
107877 END IF;
107878
107879 insert_sources_162(
107880 p_target_ledger_id => p_target_ledger_id
107881 , p_language => l_language
107882 , p_sla_ledger_id => l_sla_ledger_id
107883 , p_pad_start_date => p_pad_start_date
107884 , p_pad_end_date => p_pad_end_date
107885 );
107886
107887 END IF;
107888
107889 l_created := EventClass_163(
107890 p_application_id => p_application_id
107891 , p_base_ledger_id => p_base_ledger_id
107892 , p_target_ledger_id => p_target_ledger_id
107893 , p_language => l_language
107894 , p_currency_code => l_currency_code
107895 , p_sla_ledger_id => l_sla_ledger_id
107896 , p_pad_start_date => p_pad_start_date
107897 , p_pad_end_date => p_pad_end_date
107898 , p_primary_ledger_id => p_primary_ledger_id
107899 );
107900
107901
107902
107903 IF ( g_diagnostics_mode ='Y' ) THEN
107904
107905 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
107906 trace
107907 (p_msg => 'CALL Transaction Objects Diagnostics'
107908 ,p_level => C_LEVEL_STATEMENT
107909 ,p_module => l_log_module);
107910
107911 END IF;
107912
107913 insert_sources_163(
107914 p_target_ledger_id => p_target_ledger_id
107915 , p_language => l_language
107916 , p_sla_ledger_id => l_sla_ledger_id
107917 , p_pad_start_date => p_pad_start_date
107918 , p_pad_end_date => p_pad_end_date
107919 );
107920
107921 END IF;
107922
107923 l_created := EventClass_164(
107924 p_application_id => p_application_id
107925 , p_base_ledger_id => p_base_ledger_id
107926 , p_target_ledger_id => p_target_ledger_id
107927 , p_language => l_language
107928 , p_currency_code => l_currency_code
107929 , p_sla_ledger_id => l_sla_ledger_id
107930 , p_pad_start_date => p_pad_start_date
107931 , p_pad_end_date => p_pad_end_date
107932 , p_primary_ledger_id => p_primary_ledger_id
107933 );
107934
107935
107936
107937 IF ( g_diagnostics_mode ='Y' ) THEN
107938
107939 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
107940 trace
107941 (p_msg => 'CALL Transaction Objects Diagnostics'
107942 ,p_level => C_LEVEL_STATEMENT
107943 ,p_module => l_log_module);
107944
107945 END IF;
107946
107947 insert_sources_164(
107948 p_target_ledger_id => p_target_ledger_id
107949 , p_language => l_language
107950 , p_sla_ledger_id => l_sla_ledger_id
107951 , p_pad_start_date => p_pad_start_date
107952 , p_pad_end_date => p_pad_end_date
107953 );
107954
107955 END IF;
107956
107957 l_created := EventClass_165(
107958 p_application_id => p_application_id
107959 , p_base_ledger_id => p_base_ledger_id
107960 , p_target_ledger_id => p_target_ledger_id
107961 , p_language => l_language
107962 , p_currency_code => l_currency_code
107963 , p_sla_ledger_id => l_sla_ledger_id
107964 , p_pad_start_date => p_pad_start_date
107965 , p_pad_end_date => p_pad_end_date
107966 , p_primary_ledger_id => p_primary_ledger_id
107967 );
107968
107969
107970
107971 IF ( g_diagnostics_mode ='Y' ) THEN
107972
107973 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
107974 trace
107975 (p_msg => 'CALL Transaction Objects Diagnostics'
107976 ,p_level => C_LEVEL_STATEMENT
107977 ,p_module => l_log_module);
107978
107979 END IF;
107980
107981 insert_sources_165(
107982 p_target_ledger_id => p_target_ledger_id
107983 , p_language => l_language
107984 , p_sla_ledger_id => l_sla_ledger_id
107985 , p_pad_start_date => p_pad_start_date
107986 , p_pad_end_date => p_pad_end_date
107987 );
107988
107989 END IF;
107990
107991 l_created := EventClass_166(
107992 p_application_id => p_application_id
107996 , p_currency_code => l_currency_code
107993 , p_base_ledger_id => p_base_ledger_id
107994 , p_target_ledger_id => p_target_ledger_id
107995 , p_language => l_language
107997 , p_sla_ledger_id => l_sla_ledger_id
107998 , p_pad_start_date => p_pad_start_date
107999 , p_pad_end_date => p_pad_end_date
108000 , p_primary_ledger_id => p_primary_ledger_id
108001 );
108002
108003
108004
108005 IF ( g_diagnostics_mode ='Y' ) THEN
108006
108007 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
108008 trace
108009 (p_msg => 'CALL Transaction Objects Diagnostics'
108010 ,p_level => C_LEVEL_STATEMENT
108011 ,p_module => l_log_module);
108012
108013 END IF;
108014
108015 insert_sources_166(
108016 p_target_ledger_id => p_target_ledger_id
108017 , p_language => l_language
108018 , p_sla_ledger_id => l_sla_ledger_id
108019 , p_pad_start_date => p_pad_start_date
108020 , p_pad_end_date => p_pad_end_date
108021 );
108022
108023 END IF;
108024
108025 l_created := EventClass_167(
108026 p_application_id => p_application_id
108027 , p_base_ledger_id => p_base_ledger_id
108028 , p_target_ledger_id => p_target_ledger_id
108029 , p_language => l_language
108030 , p_currency_code => l_currency_code
108031 , p_sla_ledger_id => l_sla_ledger_id
108032 , p_pad_start_date => p_pad_start_date
108033 , p_pad_end_date => p_pad_end_date
108034 , p_primary_ledger_id => p_primary_ledger_id
108035 );
108036
108037
108038
108039 IF ( g_diagnostics_mode ='Y' ) THEN
108040
108041 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
108042 trace
108043 (p_msg => 'CALL Transaction Objects Diagnostics'
108044 ,p_level => C_LEVEL_STATEMENT
108045 ,p_module => l_log_module);
108046
108047 END IF;
108048
108049 insert_sources_167(
108050 p_target_ledger_id => p_target_ledger_id
108051 , p_language => l_language
108052 , p_sla_ledger_id => l_sla_ledger_id
108053 , p_pad_start_date => p_pad_start_date
108054 , p_pad_end_date => p_pad_end_date
108055 );
108056
108057 END IF;
108058
108059 l_created := EventClass_168(
108060 p_application_id => p_application_id
108061 , p_base_ledger_id => p_base_ledger_id
108062 , p_target_ledger_id => p_target_ledger_id
108063 , p_language => l_language
108064 , p_currency_code => l_currency_code
108065 , p_sla_ledger_id => l_sla_ledger_id
108066 , p_pad_start_date => p_pad_start_date
108067 , p_pad_end_date => p_pad_end_date
108068 , p_primary_ledger_id => p_primary_ledger_id
108069 );
108070
108071
108072
108073 IF ( g_diagnostics_mode ='Y' ) THEN
108074
108075 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
108076 trace
108077 (p_msg => 'CALL Transaction Objects Diagnostics'
108078 ,p_level => C_LEVEL_STATEMENT
108079 ,p_module => l_log_module);
108080
108081 END IF;
108082
108083 insert_sources_168(
108084 p_target_ledger_id => p_target_ledger_id
108085 , p_language => l_language
108086 , p_sla_ledger_id => l_sla_ledger_id
108087 , p_pad_start_date => p_pad_start_date
108088 , p_pad_end_date => p_pad_end_date
108089 );
108090
108091 END IF;
108092
108093 l_created := EventClass_169(
108094 p_application_id => p_application_id
108095 , p_base_ledger_id => p_base_ledger_id
108096 , p_target_ledger_id => p_target_ledger_id
108097 , p_language => l_language
108098 , p_currency_code => l_currency_code
108099 , p_sla_ledger_id => l_sla_ledger_id
108100 , p_pad_start_date => p_pad_start_date
108101 , p_pad_end_date => p_pad_end_date
108102 , p_primary_ledger_id => p_primary_ledger_id
108103 );
108104
108105
108106
108107 IF ( g_diagnostics_mode ='Y' ) THEN
108108
108109 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
108110 trace
108111 (p_msg => 'CALL Transaction Objects Diagnostics'
108112 ,p_level => C_LEVEL_STATEMENT
108113 ,p_module => l_log_module);
108114
108115 END IF;
108116
108117 insert_sources_169(
108118 p_target_ledger_id => p_target_ledger_id
108119 , p_language => l_language
108120 , p_sla_ledger_id => l_sla_ledger_id
108121 , p_pad_start_date => p_pad_start_date
108122 , p_pad_end_date => p_pad_end_date
108123 );
108124
108125 END IF;
108126
108127 l_created := EventClass_170(
108128 p_application_id => p_application_id
108129 , p_base_ledger_id => p_base_ledger_id
108130 , p_target_ledger_id => p_target_ledger_id
108131 , p_language => l_language
108132 , p_currency_code => l_currency_code
108133 , p_sla_ledger_id => l_sla_ledger_id
108134 , p_pad_start_date => p_pad_start_date
108135 , p_pad_end_date => p_pad_end_date
108136 , p_primary_ledger_id => p_primary_ledger_id
108137 );
108138
108142
108139
108140
108141 IF ( g_diagnostics_mode ='Y' ) THEN
108143 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
108144 trace
108145 (p_msg => 'CALL Transaction Objects Diagnostics'
108146 ,p_level => C_LEVEL_STATEMENT
108147 ,p_module => l_log_module);
108148
108149 END IF;
108150
108151 insert_sources_170(
108152 p_target_ledger_id => p_target_ledger_id
108153 , p_language => l_language
108154 , p_sla_ledger_id => l_sla_ledger_id
108155 , p_pad_start_date => p_pad_start_date
108156 , p_pad_end_date => p_pad_end_date
108157 );
108158
108159 END IF;
108160
108161
108162 --
108163 -- Bug 4865292
108164 -- When the number of events and that of header extract do not match,
108165 -- set the no header extract flag to indicate there are some issues
108166 -- in header extract.
108167 --
108168 -- Event count context is set in xla_accounting_pkg.unit_processor.
108169 -- Build_Message for this error is called in xla_accounting_pkg.post_accounting
108170 -- to report it as a general error.
108171 --
108172 IF xla_context_pkg.get_event_count_context <> g_hdr_extract_count
108173 AND xla_context_pkg.get_event_nohdr_context <> 'Y' THEN
108174
108175 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
108176 trace
108177 (p_msg => '# of extracted headers and events does not match'
108178 ,p_level => C_LEVEL_STATEMENT
108179 ,p_module => l_log_module);
108180
108181 trace
108182 (p_msg => '# of extracted headers: '
108183 ||g_hdr_extract_count
108184 ,p_level => C_LEVEL_STATEMENT
108185 ,p_module => l_log_module);
108186
108187 trace
108188 (p_msg => '# of events in xla_events_gt: '
108189 ||xla_context_pkg.get_event_count_context
108190 ,p_level => C_LEVEL_STATEMENT
108191 ,p_module => l_log_module);
108192
108193 trace
108194 (p_msg => 'Event No Header Extract Context: '
108195 ||xla_context_pkg.get_event_nohdr_context
108196 ,p_level => C_LEVEL_STATEMENT
108197 ,p_module => l_log_module);
108198
108199 END IF;
108200
108201
108202 xla_context_pkg.set_event_nohdr_context
108203 (p_nohdr_extract_flag => 'Y'
108204 ,p_client_id => sys_context('USERENV','CLIENT_IDENTIFIER'));
108205
108206 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
108207 trace
108208 (p_msg => 'No Header Extract Flag is set to Y'
108209 ,p_level => C_LEVEL_STATEMENT
108210 ,p_module => l_log_module);
108211 END IF;
108212
108213 END IF;
108214
108215 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
108216 trace
108217 (p_msg => 'END of CreateHeadersAndLines'
108218 ,p_level => C_LEVEL_PROCEDURE
108219 ,p_module => l_log_module);
108220 END IF;
108221
108222 RETURN l_created;
108223 EXCEPTION
108224 WHEN xla_exceptions_pkg.application_exception THEN
108225 RAISE;
108226 WHEN OTHERS THEN
108227 xla_exceptions_pkg.raise_message
108228 (p_location => 'XLA_00275_AAD_S_000015_PKG.CreateHeadersAndLines');
108229 END CreateHeadersAndLines;
108230 --
108231 --
108232
108233 --
108234 --+============================================+
108235 --| |
108236 --| PUBLIC FUNCTION |
108237 --| |
108238 --+============================================+
108239 --
108240 FUNCTION CreateJournalEntries
108241 (p_application_id IN NUMBER
108242 ,p_base_ledger_id IN NUMBER
108243 ,p_pad_start_date IN DATE
108244 ,p_pad_end_date IN DATE
108245 ,p_primary_ledger_id IN NUMBER)
108246 RETURN NUMBER IS
108247 l_log_module VARCHAR2(240);
108248 l_array_ledgers xla_accounting_cache_pkg.t_array_ledger_id;
108249 l_temp_result BOOLEAN;
108250 l_result NUMBER;
108251 BEGIN
108252 --
108253 IF g_log_enabled THEN
108254 l_log_module := C_DEFAULT_MODULE||'.CreateJournalEntries';
108255 END IF;
108256 --
108257 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
108258 trace
108259 (p_msg => 'BEGIN of CreateJournalEntries'||
108260 ' - p_base_ledger_id = '||TO_CHAR(p_base_ledger_id)
108261 ,p_level => C_LEVEL_PROCEDURE
108262 ,p_module => l_log_module);
108263
108264 END IF;
108265
108266 --
108267 g_diagnostics_mode:= xla_accounting_engine_pkg.g_diagnostics_mode;
108268
108269 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
108270 trace
108271 (p_msg => 'g_diagnostics_mode = '||g_diagnostics_mode
108272 ,p_level => C_LEVEL_STATEMENT
108273 ,p_module => l_log_module);
108274 END IF;
108275 --
108276 xla_ae_journal_entry_pkg.SetProductAcctDefinition
108277 (p_product_rule_code => 'FV_PROJECTS_AAD'
108278 ,p_product_rule_type_code => 'S'
108279 ,p_product_rule_version => ''
108280 ,p_product_rule_name => 'Federal Projects AAD'
108281 ,p_amb_context_code => 'DEFAULT'
108282 );
108283
108284 l_array_ledgers :=
108285 xla_ae_journal_entry_pkg.GetAlternateCurrencyLedger
108286 (p_base_ledger_id => p_base_ledger_id);
108287
108288 FOR Idx IN 1 .. l_array_ledgers.COUNT LOOP
108289 l_temp_result :=
108290 XLA_AE_JOURNAL_ENTRY_PKG.GetLedgersInfo
108291 (p_application_id => p_application_id
108295 ,p_pad_start_date => p_pad_start_date
108292 ,p_base_ledger_id => p_base_ledger_id
108293 ,p_target_ledger_id => l_array_ledgers(Idx)
108294 ,p_primary_ledger_id => p_primary_ledger_id
108296 ,p_pad_end_date => p_pad_end_date);
108297
108298 l_temp_result :=
108299 l_temp_result AND
108300 CreateHeadersAndLines
108301 (p_application_id => p_application_id
108302 ,p_base_ledger_id => p_base_ledger_id
108303 ,p_target_ledger_id => l_array_ledgers(Idx)
108304 ,p_pad_start_date => p_pad_start_date
108305 ,p_pad_end_date => p_pad_end_date
108306 ,p_primary_ledger_id => p_primary_ledger_id
108307 );
108308 END LOOP;
108309
108310
108311 IF (g_diagnostics_mode = 'Y' AND
108312 C_LEVEL_UNEXPECTED >= g_log_level AND
108313 xla_environment_pkg.g_Req_Id IS NOT NULL ) THEN
108314
108315 xla_accounting_dump_pkg.acctg_event_extract_log(
108316 p_application_id => p_application_id
108317 ,p_request_id => xla_environment_pkg.g_Req_Id
108318 );
108319
108320 END IF;
108321
108322 CASE l_temp_result
108323 WHEN TRUE THEN l_result := 0;
108324 ELSE l_result := 2;
108325 END CASE;
108326
108327 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
108328 trace
108329 (p_msg => 'return value. = '||TO_CHAR(l_result)
108330 ,p_level => C_LEVEL_PROCEDURE
108331 ,p_module => l_log_module);
108332 trace
108333 (p_msg => 'END of CreateJournalEntries '
108334 ,p_level => C_LEVEL_PROCEDURE
108335 ,p_module => l_log_module);
108336 END IF;
108337
108338 RETURN l_result;
108339 EXCEPTION
108340 WHEN xla_exceptions_pkg.application_exception THEN
108341 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
108342 trace
108343 (p_msg => 'ERROR. = '||sqlerrm
108344 ,p_level => C_LEVEL_PROCEDURE
108345 ,p_module => l_log_module);
108346 END IF;
108347 RAISE;
108348 WHEN OTHERS THEN
108349 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
108350 trace
108351 (p_msg => 'ERROR. = '||sqlerrm
108352 ,p_level => C_LEVEL_PROCEDURE
108353 ,p_module => l_log_module);
108354 END IF;
108355 xla_exceptions_pkg.raise_message
108356 (p_location => 'XLA_00275_AAD_S_000015_PKG.CreateJournalEntries');
108357 END CreateJournalEntries;
108358 --
108359 --=============================================================================
108360 --
108361 --
108362 --
108363 --
108364 --
108365 --
108366 --
108367 --
108368 --
108369 --
108370 --
108371 --
108372 --
108373 --
108374 --
108375 --
108376 --
108377 --
108378 --
108379 --
108380 --
108381 --
108382 --=============================================================================
108383 --=============================================================================
108384 -- *********** Initialization routine **********
108385 --=============================================================================
108386
108387 BEGIN
108388 g_log_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
108389 g_log_enabled := fnd_log.test
108390 (log_level => g_log_level
108391 ,module => C_DEFAULT_MODULE);
108392
108393 IF NOT g_log_enabled THEN
108394 g_log_level := C_LEVEL_LOG_DISABLED;
108395 END IF;
108396 --
108397 END XLA_00275_AAD_S_000015_PKG;
108398 --