[Home] [Help]
PACKAGE BODY: APPS.XLA_00201_AAD_S_000005_BC_PKG
Source
1 PACKAGE BODY XLA_00201_AAD_S_000005_BC_PKG AS
2 --
3 /*======================================================================+
4 | Copyright (c) 1997 Oracle Corporation |
5 | Redwood Shores, CA, USA |
6 | All rights reserved. |
7 +=======================================================================+
8 | Package Name |
9 | XLA_00201_AAD_S_000005_BC_PKG |
10 | |
11 | DESCRIPTION |
12 | Package generated From Product Accounting Definition |
13 | Name : Purchasing Encumbrance Application Accounting Definitio|
14 | Code : PURCHASING_ENC_AAD |
15 | Owner : PRODUCT |
16 | Version : |
17 | AMB Context Code: DEFAULT |
18 | HISTORY |
19 | Generated at 06-11-2008 at 02:11:58 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_00201_AAD_S_000005_BC_PKG';
82
83 C_CHAR CONSTANT VARCHAR2(30) := fnd_global.local_chr(12); -- 4219869 Business flow
84 C_NUM CONSTANT NUMBER := 9.99E125; -- 4219869 Business flow
85
86 g_log_level NUMBER;
87 g_log_enabled BOOLEAN;
88
89 PROCEDURE trace
90 (p_msg IN VARCHAR2
91 ,p_level IN NUMBER
92 ,p_module IN VARCHAR2 ) IS
93 BEGIN
94 ----------------------------------------------------------------------------
95 -- Following is for FND log.
96 ----------------------------------------------------------------------------
97 IF (p_msg IS NULL AND p_level >= g_log_level) THEN
98 fnd_log.message(p_level, p_module);
99 ELSIF p_level >= g_log_level THEN
100 fnd_log.string(p_level, p_module, p_msg);
101 END IF;
102
103 EXCEPTION
104 WHEN xla_exceptions_pkg.application_exception THEN
105 RAISE;
106 WHEN OTHERS THEN
107 xla_exceptions_pkg.raise_message
108 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.trace');
109 END trace;
110
111 --
112 --+============================================+
113 --| |
114 --| PRIVATE PROCEDURES/FUNCTIONS |
115 --| |
116 --+============================================+
117 --
118
119 --
120 /*======================================================================+
121 | |
122 | Private Function |
123 | ValidateLookupMeaning |
124 | |
125 +======================================================================*/
126 FUNCTION ValidateLookupMeaning(
127 p_meaning IN VARCHAR2
128 , p_lookup_code IN VARCHAR2
129 , p_lookup_type IN VARCHAR2
130 , p_source_code IN VARCHAR2
131 , p_source_type_code IN VARCHAR2
132 , p_source_application_id IN INTEGER
133 )
134 RETURN VARCHAR2
135 IS
136 l_log_module VARCHAR2(240);
137 BEGIN
138 IF g_log_enabled THEN
139 l_log_module := C_DEFAULT_MODULE||'.ValidateLookupMeaning';
140 END IF;
141 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
142 trace
143 (p_msg => 'BEGIN of ValidateLookupMeaning'
144 ,p_level => C_LEVEL_PROCEDURE
145 ,p_module => l_log_module);
146 END IF;
147 --
148 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
149 trace
150 (p_msg => 'p_source_code = '|| p_source_code||
151 ' - p_source_type_code = '|| p_source_type_code||
152 ' - p_source_application_id = '|| p_source_application_id||
153 ' - p_lookup_code = '|| p_lookup_code||
154 ' - p_lookup_type = '|| p_lookup_type||
155 ' - p_meaning = '|| p_meaning
156 ,p_level => C_LEVEL_PROCEDURE
157 ,p_module => l_log_module);
158
159 END IF;
160
161 IF p_lookup_code IS NOT NULL AND p_meaning IS NULL THEN
162 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
163 xla_accounting_err_pkg. build_message
164 (p_appli_s_name => 'XLA'
165 ,p_msg_name => 'XLA_AP_NO_LOOKUP_MEANING'
166 ,p_token_1 => 'SOURCE_NAME'
167 ,p_value_1 => xla_ae_sources_pkg.GetSourceName(
168 p_source_code
169 , p_source_type_code
170 , p_source_application_id
171 )
172 ,p_token_2 => 'LOOKUP_CODE'
173 ,p_value_2 => p_lookup_code
174 ,p_token_3 => 'LOOKUP_TYPE'
175 ,p_value_3 => p_lookup_type
176 ,p_token_4 => 'PRODUCT_NAME'
177 ,p_value_4 => xla_ae_journal_entry_pkg.g_cache_event.application_name
178 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
179 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
180 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
181 );
182
183 IF (C_LEVEL_ERROR >= g_log_level) THEN
184 trace
185 (p_msg => 'ERROR: XLA_AP_NO_LOOKUP_MEANING'
186 ,p_level => C_LEVEL_ERROR
187 ,p_module => l_log_module);
188 END IF;
189 END IF;
190
191 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
192 trace
193 (p_msg => 'END of ValidateLookupMeaning'
194 ,p_level => C_LEVEL_PROCEDURE
195 ,p_module => l_log_module);
196 END IF;
197 RETURN p_meaning;
198 EXCEPTION
199 WHEN xla_exceptions_pkg.application_exception THEN
200 RETURN p_meaning;
201 WHEN OTHERS THEN
202 xla_exceptions_pkg.raise_message
203 (p_location => 'XLA_00201_AAD_S_000005_BC_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 1011404 THEN
254
255 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
256
257 trace
258 (p_msg => '-> CALL DBMS_UTILITY.get_hash_value'
259 ,p_level => C_LEVEL_PROCEDURE
260 ,p_module => l_log_module);
261
262 END IF;
263
264 l_Idx := DBMS_UTILITY.get_hash_value(TO_CHAR(p_flex_value),1,1073741824);
265
266 IF l_array_meaning.EXISTS(1011404) AND
267 l_array_meaning(1011404).array_flex_value.EXISTS(l_Idx) AND
268 l_array_meaning(1011404).array_flex_value(l_Idx) = p_flex_value THEN
269
270 l_meaning_meaning := l_array_meaning(1011404).array_meaning(l_Idx);
271
272 ELSE
273
274 SELECT NAME
275 INTO l_meaning_meaning
276 FROM HR_ALL_ORGANIZATION_UNITS_VL
277 WHERE ORGANIZATION_ID = p_flex_value
278 ;
279
280 l_array_meaning(1011404).array_flex_value(l_Idx) := p_flex_value;
281 l_array_meaning(1011404).array_meaning(l_Idx) := l_meaning_meaning;
282
283 END IF;
284
285 ELSE
286 l_meaning_meaning := NULL;
287 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
288 xla_accounting_err_pkg.build_message
289 (p_appli_s_name => 'XLA'
290 ,p_msg_name => 'XLA_AP_FLEX_VALUE_MEANING'
291 ,p_token_1 => 'VALUE_SET_NAME'
292 ,p_value_1 => xla_flex_pkg.get_value_set_name(p_flex_value_set_id)
293 ,p_token_2 => 'FLEX_VALUE'
294 ,p_value_2 => p_flex_value
295 ,p_token_3 => 'SOURCE_NAME'
296 ,p_value_3 => xla_ae_sources_pkg.GetSourceName(
297 p_source_code
298 , p_source_type_code
299 , p_source_application_id
300 )
301 ,p_token_4 => 'PRODUCT_NAME'
302 ,p_value_4 => xla_ae_journal_entry_pkg.g_cache_event.application_name
303 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
304 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
305 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
306 );
307 IF (C_LEVEL_ERROR >= g_log_level) THEN
308 trace
309 (p_msg => 'ERROR: XLA_AP_FLEX_VALUE_MEANING'
310 ,p_level => C_LEVEL_ERROR
311 ,p_module => l_log_module);
312 END IF;
313 END CASE;
314 --
315 END IF;
316 --
317 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
318
319 trace
320 (p_msg => 'return value. meaning = '||l_meaning_meaning
321 ,p_level => C_LEVEL_PROCEDURE
322 ,p_module => l_log_module);
323
324 trace
325 (p_msg => 'END of GetMeaning'
326 ,p_level => C_LEVEL_PROCEDURE
327 ,p_module => l_log_module);
328 END IF;
329 --
330 xla_ae_sources_pkg.g_array_meaning := l_array_meaning ;
331 --
332 RETURN l_meaning_meaning ;
333 --
334 EXCEPTION
335 WHEN NO_DATA_FOUND OR TOO_MANY_ROWS THEN
336 --
337 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
338 xla_accounting_err_pkg.build_message
339 (p_appli_s_name => 'XLA'
340 ,p_msg_name => 'XLA_AP_FLEX_VALUE_MEANING'
341 ,p_token_1 => 'VALUE_SET_NAME'
342 ,p_value_1 => xla_flex_pkg.get_value_set_name(p_flex_value_set_id)
343 ,p_token_2 => 'FLEX_VALUE'
344 ,p_value_2 => p_flex_value
345 ,p_token_3 => 'SOURCE_NAME'
346 ,p_value_3 => xla_ae_sources_pkg.GetSourceName(
347 p_source_code
348 , p_source_type_code
349 , p_source_application_id
350 )
351 ,p_token_4 => 'PRODUCT_NAME'
352 ,p_value_4 => xla_ae_journal_entry_pkg.g_cache_event.application_name
353 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
354 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
355 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
356 );
357
358 IF (C_LEVEL_ERROR >= g_log_level) THEN
359 trace
360 (p_msg => 'ERROR: XLA_AP_FLEX_VALUE_MEANING'
361 ,p_level => C_LEVEL_ERROR
362 ,p_module => l_log_module);
363 END IF;
364
365 RETURN NULL;
366 WHEN xla_exceptions_pkg.application_exception THEN
367 RAISE;
368 WHEN OTHERS THEN
369 xla_exceptions_pkg.raise_message
370 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.GetMeaning');
371 END GetMeaning;
372 --
373
374 ---------------------------------------
375 --
376 -- PRIVATE FUNCTION
377 -- Description_1
378 --
379 ---------------------------------------
380 FUNCTION Description_1 (
381 p_application_id IN NUMBER
382 , p_ae_header_id IN NUMBER DEFAULT NULL
383 --PO Type
384 , p_source_1 IN VARCHAR2
385 --PO Number
386 , p_source_2 IN VARCHAR2
387 )
388 RETURN VARCHAR2
389 IS
390 l_component_type VARCHAR2(80) ;
391 l_component_code VARCHAR2(30) ;
392 l_component_type_code VARCHAR2(1) ;
393 l_component_appl_id INTEGER ;
394 l_amb_context_code VARCHAR2(30) ;
395 l_ledger_language VARCHAR2(30) ;
396 l_source VARCHAR2(1996) ;
397 l_description VARCHAR2(2000) ;
398 l_log_module VARCHAR2(240) ;
399 BEGIN
400 IF g_log_enabled THEN
401 l_log_module := C_DEFAULT_MODULE||'.Description_1';
402 END IF;
403 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
404 trace
405 (p_msg => 'BEGIN of Description_1'
406 ,p_level => C_LEVEL_PROCEDURE
407 ,p_module => l_log_module);
408 END IF;
409
410 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
411 l_component_type := 'AMB_DESCRIPTION';
412 l_component_code := 'PO_PA_JE_HDR_DESC';
413 l_component_type_code := 'S';
414 l_component_appl_id := 201;
415 l_amb_context_code := 'DEFAULT';
416 l_source := NULL;
417 l_description := NULL;
418
419
420 IF NVL(p_source_1,'
421 ') = 'PO' OR
422 NVL(p_source_1,'
423 ') = 'PA'
424 THEN
425
426 l_source := SUBSTR(p_source_1,1,1996);
427 IF l_source IS NOT NULL THEN
428 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
429 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
430 END IF;
431 l_source := SUBSTR(p_source_2,1,1996);
432 IF l_source IS NOT NULL THEN
433 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
434 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
435 END IF;
436 l_description := SUBSTR(l_description,1,1996);
437 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
438 trace
439 (p_msg => 'END of Description_1'
440 ,p_level => C_LEVEL_PROCEDURE
441 ,p_module => l_log_module);
442
443 END IF;
444 RETURN l_description;
445
446 END IF;
447 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
448 trace
449 (p_msg => 'END of Description_1'
450 ,p_level => C_LEVEL_PROCEDURE
451 ,p_module => l_log_module);
452 END IF;
453 RETURN NULL;
454 EXCEPTION
455 WHEN VALUE_ERROR THEN
456 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
457 trace
458 (p_msg => 'ERROR: '||sqlerrm
459 ,p_level => C_LEVEL_EXCEPTION
460 ,p_module => l_log_module);
461 END IF;
462 RAISE;
463 WHEN xla_exceptions_pkg.application_exception THEN
464 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
465 trace
466 (p_msg => 'ERROR: '||sqlerrm
467 ,p_level => C_LEVEL_EXCEPTION
468 ,p_module => l_log_module);
469 END IF;
470 RAISE;
471 WHEN OTHERS THEN
472 xla_exceptions_pkg.raise_message
473 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.Description_1');
474 END Description_1;
475
476 ---------------------------------------
477 --
478 -- PRIVATE FUNCTION
479 -- Description_2
480 --
481 ---------------------------------------
482 FUNCTION Description_2 (
483 p_application_id IN NUMBER
484 , p_ae_header_id IN NUMBER DEFAULT NULL
485 --Project Name
486 , p_source_3 IN VARCHAR2
487 --Task Name
488 , p_source_4 IN VARCHAR2
489 --Project Expenditure Organization Identifier
490 , p_source_5 IN NUMBER
491 --Expenditure Type
492 , p_source_6 IN VARCHAR2
493 )
494 RETURN VARCHAR2
495 IS
496 l_component_type VARCHAR2(80) ;
497 l_component_code VARCHAR2(30) ;
498 l_component_type_code VARCHAR2(1) ;
499 l_component_appl_id INTEGER ;
500 l_amb_context_code VARCHAR2(30) ;
501 l_ledger_language VARCHAR2(30) ;
502 l_source VARCHAR2(1996) ;
503 l_description VARCHAR2(2000) ;
504 l_log_module VARCHAR2(240) ;
505 BEGIN
506 IF g_log_enabled THEN
507 l_log_module := C_DEFAULT_MODULE||'.Description_2';
508 END IF;
509 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
510 trace
511 (p_msg => 'BEGIN of Description_2'
512 ,p_level => C_LEVEL_PROCEDURE
513 ,p_module => l_log_module);
514 END IF;
515
516 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
517 l_component_type := 'AMB_DESCRIPTION';
518 l_component_code := 'PROJ_RELATED_LINE_DESC';
519 l_component_type_code := 'S';
520 l_component_appl_id := 201;
521 l_amb_context_code := 'DEFAULT';
522 l_source := NULL;
523 l_description := NULL;
524
525
526
527 IF
528 l_ledger_language = 'US' THEN
529 l_description := SUBSTR(CONCAT(l_description,'For Project -'),1,2000);
530 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
531 END IF;
532 l_source := SUBSTR(p_source_3,1,1996);
533 IF l_source IS NOT NULL THEN
534 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
535 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
536 END IF;
537 IF
538 l_ledger_language = 'US' THEN
539 l_description := SUBSTR(CONCAT(l_description,' and Task -'),1,2000);
540 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
541 END IF;
542 l_source := SUBSTR(p_source_4,1,1996);
543 IF l_source IS NOT NULL THEN
544 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
545 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
546 END IF;
547 IF
548 l_ledger_language = 'US' THEN
549 l_description := SUBSTR(CONCAT(l_description,' in Expenditure Organization -'),1,2000);
550 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
551 END IF;
552 l_source := SUBSTR(TO_CHAR(
553 GetMeaning (
554 p_flex_value_set_id => 1011404
555 , p_flex_value => TO_CHAR(p_source_5)
556 , p_source_code => 'EXPENDITURE_ORGANIZATION_ID'
557 , p_source_type_code => 'S'
558 , p_source_application_id => 201
559 )
560 ),1,1996);
561 IF l_source IS NOT NULL THEN
562 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
563 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
564 END IF;
565 IF
566 l_ledger_language = 'US' THEN
567 l_description := SUBSTR(CONCAT(l_description,' for Expenditure Type -'),1,2000);
568 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
569 END IF;
570 l_source := SUBSTR(p_source_6,1,1996);
571 IF l_source IS NOT NULL THEN
572 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
573 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
574 END IF;
575 l_description := SUBSTR(l_description,1,1996);
576 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
577 trace
578 (p_msg => 'END of Description_2'
579 ,p_level => C_LEVEL_PROCEDURE
580 ,p_module => l_log_module);
581
582 END IF;
583 RETURN l_description;
584
585 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
586 trace
587 (p_msg => 'END of Description_2'
588 ,p_level => C_LEVEL_PROCEDURE
589 ,p_module => l_log_module);
590 END IF;
591 RETURN NULL;
592 EXCEPTION
593 WHEN VALUE_ERROR THEN
594 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
595 trace
596 (p_msg => 'ERROR: '||sqlerrm
597 ,p_level => C_LEVEL_EXCEPTION
598 ,p_module => l_log_module);
599 END IF;
600 RAISE;
601 WHEN xla_exceptions_pkg.application_exception THEN
602 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
603 trace
604 (p_msg => 'ERROR: '||sqlerrm
605 ,p_level => C_LEVEL_EXCEPTION
606 ,p_module => l_log_module);
607 END IF;
608 RAISE;
609 WHEN OTHERS THEN
610 xla_exceptions_pkg.raise_message
611 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.Description_2');
612 END Description_2;
613
614 ---------------------------------------
615 --
616 -- PRIVATE FUNCTION
617 -- Description_3
618 --
619 ---------------------------------------
620 FUNCTION Description_3 (
621 p_application_id IN NUMBER
622 , p_ae_header_id IN NUMBER DEFAULT NULL
623 --Journal entry Line Description
624 , p_source_7 IN VARCHAR2
625 )
626 RETURN VARCHAR2
627 IS
628 l_component_type VARCHAR2(80) ;
629 l_component_code VARCHAR2(30) ;
630 l_component_type_code VARCHAR2(1) ;
631 l_component_appl_id INTEGER ;
632 l_amb_context_code VARCHAR2(30) ;
633 l_ledger_language VARCHAR2(30) ;
634 l_source VARCHAR2(1996) ;
635 l_description VARCHAR2(2000) ;
636 l_log_module VARCHAR2(240) ;
637 BEGIN
638 IF g_log_enabled THEN
639 l_log_module := C_DEFAULT_MODULE||'.Description_3';
640 END IF;
641 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
642 trace
643 (p_msg => 'BEGIN of Description_3'
644 ,p_level => C_LEVEL_PROCEDURE
645 ,p_module => l_log_module);
646 END IF;
647
648 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
649 l_component_type := 'AMB_DESCRIPTION';
650 l_component_code := 'PURCHASING_LINE_DESC';
651 l_component_type_code := 'S';
652 l_component_appl_id := 201;
653 l_amb_context_code := 'DEFAULT';
654 l_source := NULL;
655 l_description := NULL;
656
657
658
659 l_source := SUBSTR(p_source_7,1,1996);
660 IF l_source IS NOT NULL THEN
661 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
662 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
663 END IF;
664 l_description := SUBSTR(l_description,1,1996);
665 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
666 trace
667 (p_msg => 'END of Description_3'
668 ,p_level => C_LEVEL_PROCEDURE
669 ,p_module => l_log_module);
670
671 END IF;
672 RETURN l_description;
673
674 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
675 trace
676 (p_msg => 'END of Description_3'
677 ,p_level => C_LEVEL_PROCEDURE
678 ,p_module => l_log_module);
679 END IF;
680 RETURN NULL;
681 EXCEPTION
682 WHEN VALUE_ERROR THEN
683 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
684 trace
685 (p_msg => 'ERROR: '||sqlerrm
686 ,p_level => C_LEVEL_EXCEPTION
687 ,p_module => l_log_module);
688 END IF;
689 RAISE;
690 WHEN xla_exceptions_pkg.application_exception THEN
691 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
692 trace
693 (p_msg => 'ERROR: '||sqlerrm
694 ,p_level => C_LEVEL_EXCEPTION
695 ,p_module => l_log_module);
696 END IF;
697 RAISE;
698 WHEN OTHERS THEN
699 xla_exceptions_pkg.raise_message
700 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.Description_3');
701 END Description_3;
702
703 ---------------------------------------
704 --
705 -- PRIVATE FUNCTION
706 -- Description_4
707 --
708 ---------------------------------------
709 FUNCTION Description_4 (
710 p_application_id IN NUMBER
711 , p_ae_header_id IN NUMBER DEFAULT NULL
712 --PO Type
713 , p_source_1 IN VARCHAR2
714 --PO Number
715 , p_source_2 IN VARCHAR2
716 --PO Release Number
717 , p_source_8 IN NUMBER
718 )
719 RETURN VARCHAR2
720 IS
721 l_component_type VARCHAR2(80) ;
722 l_component_code VARCHAR2(30) ;
723 l_component_type_code VARCHAR2(1) ;
724 l_component_appl_id INTEGER ;
725 l_amb_context_code VARCHAR2(30) ;
726 l_ledger_language VARCHAR2(30) ;
727 l_source VARCHAR2(1996) ;
728 l_description VARCHAR2(2000) ;
729 l_log_module VARCHAR2(240) ;
730 BEGIN
731 IF g_log_enabled THEN
732 l_log_module := C_DEFAULT_MODULE||'.Description_4';
733 END IF;
734 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
735 trace
736 (p_msg => 'BEGIN of Description_4'
737 ,p_level => C_LEVEL_PROCEDURE
738 ,p_module => l_log_module);
739 END IF;
740
741 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
742 l_component_type := 'AMB_DESCRIPTION';
743 l_component_code := 'RELEASE_JE_HDR_DESC';
744 l_component_type_code := 'S';
745 l_component_appl_id := 201;
746 l_amb_context_code := 'DEFAULT';
747 l_source := NULL;
748 l_description := NULL;
749
750
751 IF NVL(p_source_1,'
752 ') = 'REL'
753 THEN
754
755 l_source := SUBSTR(p_source_1,1,1996);
756 IF l_source IS NOT NULL THEN
757 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
758 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
759 END IF;
760 l_source := SUBSTR(p_source_2,1,1996);
761 IF l_source IS NOT NULL THEN
762 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
763 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
764 END IF;
765 IF
766 l_ledger_language = 'US' THEN
767 l_description := SUBSTR(CONCAT(l_description,'-'),1,2000);
768 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
769 END IF;
770 l_source := SUBSTR(TO_CHAR(p_source_8),1,1996);
771 IF l_source IS NOT NULL THEN
772 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
773 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
774 END IF;
775 l_description := SUBSTR(l_description,1,1996);
776 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
777 trace
778 (p_msg => 'END of Description_4'
779 ,p_level => C_LEVEL_PROCEDURE
780 ,p_module => l_log_module);
781
782 END IF;
783 RETURN l_description;
784
785 END IF;
786 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
787 trace
788 (p_msg => 'END of Description_4'
789 ,p_level => C_LEVEL_PROCEDURE
790 ,p_module => l_log_module);
791 END IF;
792 RETURN NULL;
793 EXCEPTION
794 WHEN VALUE_ERROR THEN
795 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
796 trace
797 (p_msg => 'ERROR: '||sqlerrm
798 ,p_level => C_LEVEL_EXCEPTION
799 ,p_module => l_log_module);
800 END IF;
801 RAISE;
802 WHEN xla_exceptions_pkg.application_exception THEN
803 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
804 trace
805 (p_msg => 'ERROR: '||sqlerrm
806 ,p_level => C_LEVEL_EXCEPTION
807 ,p_module => l_log_module);
808 END IF;
809 RAISE;
810 WHEN OTHERS THEN
811 xla_exceptions_pkg.raise_message
812 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.Description_4');
813 END Description_4;
814
815 ---------------------------------------
816 --
817 -- PRIVATE FUNCTION
818 -- Description_5
819 --
820 ---------------------------------------
821 FUNCTION Description_5 (
822 p_application_id IN NUMBER
823 , p_ae_header_id IN NUMBER DEFAULT NULL
824 --Document Type
825 , p_source_9 IN VARCHAR2
826 --Requisition Number
827 , p_source_10 IN VARCHAR2
828 )
829 RETURN VARCHAR2
830 IS
831 l_component_type VARCHAR2(80) ;
832 l_component_code VARCHAR2(30) ;
833 l_component_type_code VARCHAR2(1) ;
834 l_component_appl_id INTEGER ;
835 l_amb_context_code VARCHAR2(30) ;
836 l_ledger_language VARCHAR2(30) ;
837 l_source VARCHAR2(1996) ;
838 l_description VARCHAR2(2000) ;
839 l_log_module VARCHAR2(240) ;
840 BEGIN
841 IF g_log_enabled THEN
842 l_log_module := C_DEFAULT_MODULE||'.Description_5';
843 END IF;
844 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
845 trace
846 (p_msg => 'BEGIN of Description_5'
847 ,p_level => C_LEVEL_PROCEDURE
848 ,p_module => l_log_module);
849 END IF;
850
851 l_ledger_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
852 l_component_type := 'AMB_DESCRIPTION';
853 l_component_code := 'REQ_JE_HDR_DESC';
854 l_component_type_code := 'S';
855 l_component_appl_id := 201;
856 l_amb_context_code := 'DEFAULT';
857 l_source := NULL;
858 l_description := NULL;
859
860
861 IF p_source_9 IS NOT NULL
862 THEN
863
864 l_source := SUBSTR(p_source_9,1,1996);
865 IF l_source IS NOT NULL THEN
866 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
867 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
868 END IF;
869 l_source := SUBSTR(p_source_10,1,1996);
870 IF l_source IS NOT NULL THEN
871 l_description := SUBSTR(CONCAT(l_description,l_source),1,2000);
872 l_description := SUBSTR(CONCAT(l_description,' '),1,2000);
873 END IF;
874 l_description := SUBSTR(l_description,1,1996);
875 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
876 trace
877 (p_msg => 'END of Description_5'
878 ,p_level => C_LEVEL_PROCEDURE
879 ,p_module => l_log_module);
880
881 END IF;
882 RETURN l_description;
883
884 END IF;
885 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
886 trace
887 (p_msg => 'END of Description_5'
888 ,p_level => C_LEVEL_PROCEDURE
889 ,p_module => l_log_module);
890 END IF;
891 RETURN NULL;
892 EXCEPTION
893 WHEN VALUE_ERROR THEN
894 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
895 trace
896 (p_msg => 'ERROR: '||sqlerrm
897 ,p_level => C_LEVEL_EXCEPTION
898 ,p_module => l_log_module);
899 END IF;
900 RAISE;
901 WHEN xla_exceptions_pkg.application_exception THEN
902 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
903 trace
904 (p_msg => 'ERROR: '||sqlerrm
905 ,p_level => C_LEVEL_EXCEPTION
906 ,p_module => l_log_module);
907 END IF;
908 RAISE;
909 WHEN OTHERS THEN
910 xla_exceptions_pkg.raise_message
911 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.Description_5');
912 END Description_5;
913
914 ---------------------------------------
915 --
916 -- PRIVATE FUNCTION
917 -- AcctDerRule_6
918 --
919 ---------------------------------------
920 FUNCTION AcctDerRule_6 (
921 p_application_id IN NUMBER
922 , p_ae_header_id IN NUMBER
923 , p_side IN VARCHAR2
924 --Budget Account
925 , p_source_11 IN NUMBER
926 , x_transaction_coa_id OUT NOCOPY NUMBER
927 , x_accounting_coa_id OUT NOCOPY NUMBER
928 , x_value_type_code OUT NOCOPY VARCHAR2
929 )
930 RETURN NUMBER
931 IS
932 l_component_type VARCHAR2(80) ;
933 l_component_code VARCHAR2(30) ;
934 l_component_type_code VARCHAR2(1) ;
935 l_component_appl_id INTEGER ;
936 l_amb_context_code VARCHAR2(30) ;
937 l_log_module VARCHAR2(240) ;
938 l_output_value NUMBER ;
939 BEGIN
940 IF g_log_enabled THEN
941 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_6';
942 END IF;
943 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
944 trace
945 (p_msg => 'BEGIN of AcctDerRule_6'
946 ,p_level => C_LEVEL_PROCEDURE
947 ,p_module => l_log_module);
948 END IF;
949 --
950 l_component_type := 'AMB_ADR';
951 l_component_code := 'PROJ_BURDENED_ENC_ACCT_RULE';
952 l_component_type_code := 'S';
953 l_component_appl_id := 201;
954 l_amb_context_code := 'DEFAULT';
955 x_transaction_coa_id := null;
956 x_accounting_coa_id := null;
957 --
958
959 --
960 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
961 trace
962 (p_msg => 'END of AcctDerRule_6'
963 ,p_level => C_LEVEL_PROCEDURE
964 ,p_module => l_log_module);
965 END IF;
966 x_value_type_code := 'S';
967 l_output_value := TO_NUMBER(TO_NUMBER(p_source_11));
968 RETURN l_output_value;
969
970 --
971 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
972 trace
973 (p_msg => 'END of AcctDerRule_6(invalid)'
974 ,p_level => C_LEVEL_PROCEDURE
975 ,p_module => l_log_module);
976 END IF;
977 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
978 x_value_type_code := null;
979 l_output_value := null;
980 xla_accounting_err_pkg.build_message
981 (p_appli_s_name => 'XLA'
982 ,p_msg_name => 'XLA_AP_INVALID_ADR'
983 ,p_token_1 => 'COMPONENT_NAME'
984 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
985 l_component_type
986 , l_component_code
987 , l_component_type_code
988 , l_component_appl_id
989 , l_amb_context_code
990 )
991 ,p_token_2 => 'OWNER'
992 ,p_value_2 => xla_lookups_pkg.get_meaning(
993 'XLA_OWNER_TYPE'
994 ,l_component_type_code
995 )
996 ,p_token_3 => 'PAD_NAME'
997 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
998 ,p_token_4 => 'PAD_OWNER'
999 ,p_value_4 => xla_lookups_pkg.get_meaning(
1000 'XLA_OWNER_TYPE'
1001 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1002 )
1003 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1004 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1005 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1006 ,p_ae_header_id => NULL
1007 );
1008 RETURN l_output_value;
1009 EXCEPTION
1010 WHEN xla_exceptions_pkg.application_exception THEN
1011 RAISE;
1012 WHEN OTHERS THEN
1013 xla_exceptions_pkg.raise_message
1014 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctDerRule_6');
1015 END AcctDerRule_6;
1016 --
1017
1018 ---------------------------------------
1019 --
1020 -- PRIVATE FUNCTION
1021 -- AcctDerRule_7
1022 --
1023 ---------------------------------------
1024 FUNCTION AcctDerRule_7 (
1025 p_application_id IN NUMBER
1026 , p_ae_header_id IN NUMBER
1027 , p_side IN VARCHAR2
1028 --Budget Account
1029 , p_source_11 IN NUMBER
1030 , x_transaction_coa_id OUT NOCOPY NUMBER
1031 , x_accounting_coa_id OUT NOCOPY NUMBER
1032 , x_value_type_code OUT NOCOPY VARCHAR2
1033 )
1034 RETURN NUMBER
1035 IS
1036 l_component_type VARCHAR2(80) ;
1037 l_component_code VARCHAR2(30) ;
1038 l_component_type_code VARCHAR2(1) ;
1039 l_component_appl_id INTEGER ;
1040 l_amb_context_code VARCHAR2(30) ;
1041 l_log_module VARCHAR2(240) ;
1042 l_output_value NUMBER ;
1043 BEGIN
1044 IF g_log_enabled THEN
1045 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_7';
1046 END IF;
1047 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1048 trace
1049 (p_msg => 'BEGIN of AcctDerRule_7'
1050 ,p_level => C_LEVEL_PROCEDURE
1051 ,p_module => l_log_module);
1052 END IF;
1053 --
1054 l_component_type := 'AMB_ADR';
1055 l_component_code := 'PROJ_BURDEN_ENC_ACCT_RULE';
1056 l_component_type_code := 'S';
1057 l_component_appl_id := 201;
1058 l_amb_context_code := 'DEFAULT';
1059 x_transaction_coa_id := null;
1060 x_accounting_coa_id := null;
1061 --
1062
1063 --
1064 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1065 trace
1066 (p_msg => 'END of AcctDerRule_7'
1067 ,p_level => C_LEVEL_PROCEDURE
1068 ,p_module => l_log_module);
1069 END IF;
1070 x_value_type_code := 'S';
1071 l_output_value := TO_NUMBER(TO_NUMBER(p_source_11));
1072 RETURN l_output_value;
1073
1074 --
1075 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1076 trace
1077 (p_msg => 'END of AcctDerRule_7(invalid)'
1078 ,p_level => C_LEVEL_PROCEDURE
1079 ,p_module => l_log_module);
1080 END IF;
1081 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1082 x_value_type_code := null;
1083 l_output_value := null;
1084 xla_accounting_err_pkg.build_message
1085 (p_appli_s_name => 'XLA'
1086 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1087 ,p_token_1 => 'COMPONENT_NAME'
1088 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1089 l_component_type
1090 , l_component_code
1091 , l_component_type_code
1092 , l_component_appl_id
1093 , l_amb_context_code
1094 )
1095 ,p_token_2 => 'OWNER'
1096 ,p_value_2 => xla_lookups_pkg.get_meaning(
1097 'XLA_OWNER_TYPE'
1098 ,l_component_type_code
1099 )
1100 ,p_token_3 => 'PAD_NAME'
1101 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1102 ,p_token_4 => 'PAD_OWNER'
1103 ,p_value_4 => xla_lookups_pkg.get_meaning(
1104 'XLA_OWNER_TYPE'
1105 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1106 )
1107 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1108 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1109 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1110 ,p_ae_header_id => NULL
1111 );
1112 RETURN l_output_value;
1113 EXCEPTION
1114 WHEN xla_exceptions_pkg.application_exception THEN
1115 RAISE;
1116 WHEN OTHERS THEN
1117 xla_exceptions_pkg.raise_message
1118 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctDerRule_7');
1119 END AcctDerRule_7;
1120 --
1121
1122 ---------------------------------------
1123 --
1124 -- PRIVATE FUNCTION
1125 -- AcctDerRule_8
1126 --
1127 ---------------------------------------
1128 FUNCTION AcctDerRule_8 (
1129 p_application_id IN NUMBER
1130 , p_ae_header_id IN NUMBER
1131 , p_side IN VARCHAR2
1132 --Budget Account
1133 , p_source_11 IN NUMBER
1134 , x_transaction_coa_id OUT NOCOPY NUMBER
1135 , x_accounting_coa_id OUT NOCOPY NUMBER
1136 , x_value_type_code OUT NOCOPY VARCHAR2
1137 )
1138 RETURN NUMBER
1139 IS
1140 l_component_type VARCHAR2(80) ;
1141 l_component_code VARCHAR2(30) ;
1142 l_component_type_code VARCHAR2(1) ;
1143 l_component_appl_id INTEGER ;
1144 l_amb_context_code VARCHAR2(30) ;
1145 l_log_module VARCHAR2(240) ;
1146 l_output_value NUMBER ;
1147 BEGIN
1148 IF g_log_enabled THEN
1149 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_8';
1150 END IF;
1151 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1152 trace
1153 (p_msg => 'BEGIN of AcctDerRule_8'
1154 ,p_level => C_LEVEL_PROCEDURE
1155 ,p_module => l_log_module);
1156 END IF;
1157 --
1158 l_component_type := 'AMB_ADR';
1159 l_component_code := 'PURCHASING_ENCUMBRANCE_ADR';
1160 l_component_type_code := 'S';
1161 l_component_appl_id := 201;
1162 l_amb_context_code := 'DEFAULT';
1163 x_transaction_coa_id := null;
1164 x_accounting_coa_id := null;
1165 --
1166
1167 --
1168 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1169 trace
1170 (p_msg => 'END of AcctDerRule_8'
1171 ,p_level => C_LEVEL_PROCEDURE
1172 ,p_module => l_log_module);
1173 END IF;
1174 x_value_type_code := 'S';
1175 l_output_value := TO_NUMBER(TO_NUMBER(p_source_11));
1176 RETURN l_output_value;
1177
1178 --
1179 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1180 trace
1181 (p_msg => 'END of AcctDerRule_8(invalid)'
1182 ,p_level => C_LEVEL_PROCEDURE
1183 ,p_module => l_log_module);
1184 END IF;
1185 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1186 x_value_type_code := null;
1187 l_output_value := null;
1188 xla_accounting_err_pkg.build_message
1189 (p_appli_s_name => 'XLA'
1190 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1191 ,p_token_1 => 'COMPONENT_NAME'
1192 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1193 l_component_type
1194 , l_component_code
1195 , l_component_type_code
1196 , l_component_appl_id
1197 , l_amb_context_code
1198 )
1199 ,p_token_2 => 'OWNER'
1200 ,p_value_2 => xla_lookups_pkg.get_meaning(
1201 'XLA_OWNER_TYPE'
1202 ,l_component_type_code
1203 )
1204 ,p_token_3 => 'PAD_NAME'
1205 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1206 ,p_token_4 => 'PAD_OWNER'
1207 ,p_value_4 => xla_lookups_pkg.get_meaning(
1208 'XLA_OWNER_TYPE'
1209 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1210 )
1211 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1212 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1213 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1214 ,p_ae_header_id => NULL
1215 );
1216 RETURN l_output_value;
1217 EXCEPTION
1218 WHEN xla_exceptions_pkg.application_exception THEN
1219 RAISE;
1220 WHEN OTHERS THEN
1221 xla_exceptions_pkg.raise_message
1222 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctDerRule_8');
1223 END AcctDerRule_8;
1224 --
1225
1226 ---------------------------------------
1227 --
1228 -- PRIVATE FUNCTION
1229 -- AcctLineType_9
1230 --
1231 ---------------------------------------
1232 PROCEDURE AcctLineType_9 (
1233 p_application_id IN NUMBER
1234 ,p_event_id IN NUMBER
1235 ,p_calculate_acctd_flag IN VARCHAR2
1236 ,p_calculate_g_l_flag IN VARCHAR2
1237 ,p_actual_flag IN OUT VARCHAR2
1238 ,p_balance_type_code OUT VARCHAR2
1239 ,p_gain_or_loss_ref OUT VARCHAR2
1240
1241 --Project Name
1242 , p_source_3 IN VARCHAR2
1243 --Task Name
1244 , p_source_4 IN VARCHAR2
1245 --Project Expenditure Organization Identifier
1246 , p_source_5 IN NUMBER
1247 --Expenditure Type
1248 , p_source_6 IN VARCHAR2
1249 --Document Type
1250 , p_source_9 IN VARCHAR2
1251 --Main Or Backing Code
1252 , p_source_13 IN VARCHAR2
1253 --Burden Record Identifier
1254 , p_source_14 IN VARCHAR2
1255 , p_source_14_meaning IN VARCHAR2
1256 --Burden Amount Display Method
1257 , p_source_15 IN VARCHAR2
1258 --Accounting Reversal Flag
1259 , p_source_16 IN VARCHAR2
1260 --Allocated to Application Identifier
1261 , p_source_17 IN NUMBER
1262 --Allocated to Distribution Type
1263 , p_source_18 IN VARCHAR2
1264 --Allocated to Entity Code
1265 , p_source_19 IN VARCHAR2
1266 --Allocated to First Distribution Identifier
1267 , p_source_20 IN NUMBER
1268 --Allocated to First System Transaction Identifier
1269 , p_source_21 IN NUMBER
1270 --Allocated to Second Distribution Identifier
1271 , p_source_22 IN VARCHAR2
1272 --Purchase Order Burden Applied to Application Identifier
1273 , p_source_23 IN NUMBER
1274 --PO Distribution Type
1275 , p_source_24 IN VARCHAR2
1276 --Purchase Order Burden Applied to Entity Code
1277 , p_source_25 IN VARCHAR2
1278 --Purchase Order Burden Applied to First Distribution Identifier
1279 , p_source_26 IN NUMBER
1280 --Purchase Order Burden Applied to First System Transaction Identifier
1281 , p_source_27 IN NUMBER
1282 --Purchase Order Burden Applied to Second Distribution Identifier
1283 , p_source_28 IN VARCHAR2
1284 --PO Distribution Identifier
1285 , p_source_29 IN NUMBER
1286 --Line Type Name
1287 , p_source_30 IN VARCHAR2
1288 --Encumbrance Upgrade Credit Accounting Class
1289 , p_source_31 IN VARCHAR2
1290 --Encumbrance Upgrade Credit Account
1291 , p_source_32 IN NUMBER
1292 --Entered Amount
1293 , p_source_33 IN NUMBER
1294 --Currency Code
1295 , p_source_34 IN VARCHAR2
1296 --Accounted Amount
1297 , p_source_35 IN NUMBER
1298 --Encumbrance Upgrade Debit Accounting Class
1299 , p_source_36 IN VARCHAR2
1300 --Encumbrance Upgrade Debit Account
1301 , p_source_37 IN NUMBER
1302 --Use Encumbrances Upgrade Attributes Flag
1303 , p_source_38 IN VARCHAR2
1304 --Encumbrance Upgrade Credit Encumbrance Type
1305 , p_source_39 IN NUMBER
1306 --Encumbrance Upgrade Debit Encumbrance Type
1307 , p_source_40 IN NUMBER
1308 )
1309 IS
1310
1311 l_component_type VARCHAR2(80);
1312 l_component_code VARCHAR2(30);
1313 l_component_type_code VARCHAR2(1);
1314 l_component_appl_id INTEGER;
1315 l_amb_context_code VARCHAR2(30);
1316 l_entity_code VARCHAR2(30);
1317 l_event_class_code VARCHAR2(30);
1318 l_ae_header_id NUMBER;
1319 l_event_type_code VARCHAR2(30);
1320 l_line_definition_code VARCHAR2(30);
1321 l_line_definition_owner_code VARCHAR2(1);
1322 --
1323 -- adr variables
1324 l_segment VARCHAR2(30);
1325 l_ccid NUMBER;
1326 l_adr_transaction_coa_id NUMBER;
1327 l_adr_accounting_coa_id NUMBER;
1328 l_adr_flexfield_segment_code VARCHAR2(30);
1329 l_adr_flex_value_set_id NUMBER;
1330 l_adr_value_type_code VARCHAR2(30);
1331 l_adr_value_combination_id NUMBER;
1332 l_adr_value_segment_code VARCHAR2(30);
1333
1334 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
1335 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
1336 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
1337 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
1338
1339 -- 4262811 Variables ------------------------------------------------------------------------------------------
1340 l_entered_amt_idx NUMBER;
1341 l_accted_amt_idx NUMBER;
1342 l_acc_rev_flag VARCHAR2(1);
1343 l_accrual_line_num NUMBER;
1344 l_tmp_amt NUMBER;
1345 l_acc_rev_natural_side_code VARCHAR2(1);
1346
1347 l_num_entries NUMBER;
1348 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
1349 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
1350 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
1351 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
1352 l_recog_line_1 NUMBER;
1353 l_recog_line_2 NUMBER;
1354
1355 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
1356 l_bflow_applied_to_amt NUMBER; -- 5132302
1357 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
1358
1359 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
1360
1361 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
1362 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
1363
1364 ---------------------------------------------------------------------------------------------------------------
1365
1366
1367 --
1368 -- bulk performance
1369 --
1370 l_balance_type_code VARCHAR2(1);
1371 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
1372 l_log_module VARCHAR2(240);
1373
1374 --
1375 -- Upgrade strategy
1376 --
1377 l_actual_upg_option VARCHAR2(1);
1378 l_enc_upg_option VARCHAR2(1);
1379
1380 --
1381 BEGIN
1382 --
1383 IF g_log_enabled THEN
1384 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_9';
1385 END IF;
1386 --
1387 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1388
1389 trace
1390 (p_msg => 'BEGIN of AcctLineType_9'
1391 ,p_level => C_LEVEL_PROCEDURE
1392 ,p_module => l_log_module);
1393
1394 END IF;
1395 --
1396 l_component_type := 'AMB_JLT';
1397 l_component_code := 'CANCEL_BURDENED_ RELEASE_ENC';
1398 l_component_type_code := 'S';
1399 l_component_appl_id := 201;
1400 l_amb_context_code := 'DEFAULT';
1401 l_entity_code := 'RELEASE';
1402 l_event_class_code := 'RELEASE_BURDEN';
1403 l_event_type_code := 'RELEASE_BURDEN_ALL';
1404 l_line_definition_owner_code := 'S';
1405 l_line_definition_code := 'REL_BURDEN_ENC_ALL';
1406 --
1407 l_balance_type_code := 'E';
1408 l_segment := NULL;
1409 l_ccid := NULL;
1410 l_adr_transaction_coa_id := NULL;
1411 l_adr_accounting_coa_id := NULL;
1412 l_adr_flexfield_segment_code := NULL;
1413 l_adr_flex_value_set_id := NULL;
1414 l_adr_value_type_code := NULL;
1415 l_adr_value_combination_id := NULL;
1416 l_adr_value_segment_code := NULL;
1417
1418 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
1419 l_bflow_class_code := 'REL_PA_BURDENED_ENC'; -- 4219869 Business Flow
1420 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
1421 l_budgetary_control_flag := 'Y';
1422
1423 l_bflow_applied_to_amt_idx := NULL; -- 5132302
1424 l_bflow_applied_to_amt := NULL; -- 5132302
1425 l_entered_amt_idx := NULL; -- 4262811
1426 l_accted_amt_idx := NULL; -- 4262811
1427 l_acc_rev_flag := NULL; -- 4262811
1428 l_accrual_line_num := NULL; -- 4262811
1429 l_tmp_amt := NULL; -- 4262811
1430 --
1431
1432 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
1433 l_balance_type_code <> 'B' THEN
1434 IF (NVL(
1435 xla_ae_sources_pkg.GetSystemSourceChar(
1436 p_source_code => 'XLA_EVENT_TYPE_CODE'
1437 , p_source_type_code => 'Y'
1438 , p_source_application_id => 602
1439 ),'
1440 ') = 'REL_BURDEN_CANCELLED' OR
1441 NVL(
1442 xla_ae_sources_pkg.GetSystemSourceChar(
1443 p_source_code => 'XLA_EVENT_TYPE_CODE'
1444 , p_source_type_code => 'Y'
1445 , p_source_application_id => 602
1446 ),'
1447 ') = 'REL_BURDEN_CR_MEMO_CANCELLED') AND
1448 NVL(p_source_13,'
1449 ') = 'M' AND
1450 (NVL(p_source_14,'
1451 ') = 'N' OR
1452 NVL(p_source_14,'
1453 ') = 'O') AND
1454 NVL(p_source_9,'
1455 ') = 'PO' AND
1456 NVL(p_source_15,'
1457 ') = 'S'
1458 THEN
1459
1460 --
1461 XLA_AE_LINES_PKG.SetNewLine;
1462
1463 p_balance_type_code := l_balance_type_code;
1464 -- set the flag so later we will know whether the gain loss line needs to be created
1465
1466 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
1467 p_actual_flag :='A';
1468 END IF;
1469
1470 --
1471 -- bulk performance
1472 --
1473 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
1474 p_header_num => 0); -- 4262811
1475 --
1476 -- set accounting line options
1477 --
1478 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
1479 p_natural_side_code => 'D'
1480 , p_gain_or_loss_flag => 'N'
1481 , p_gl_transfer_mode_code => 'S'
1482 , p_acct_entry_type_code => 'E'
1483 , p_switch_side_flag => 'N'
1484 , p_merge_duplicate_code => 'N'
1485 );
1486 --
1487 l_acc_rev_natural_side_code := 'C'; -- 4262811
1488 --
1489 --
1490 -- set accounting line type info
1491 --
1492 xla_ae_lines_pkg.SetAcctLineType
1493 (p_component_type => l_component_type
1494 ,p_event_type_code => l_event_type_code
1495 ,p_line_definition_owner_code => l_line_definition_owner_code
1496 ,p_line_definition_code => l_line_definition_code
1497 ,p_accounting_line_code => l_component_code
1498 ,p_accounting_line_type_code => l_component_type_code
1499 ,p_accounting_line_appl_id => l_component_appl_id
1500 ,p_amb_context_code => l_amb_context_code
1501 ,p_entity_code => l_entity_code
1502 ,p_event_class_code => l_event_class_code);
1503 --
1504 -- set accounting class
1505 --
1506 xla_ae_lines_pkg.SetAcctClass(
1507 p_accounting_class_code => 'PO_PA_BURDENED'
1508 , p_ae_header_id => l_ae_header_id
1509 );
1510
1511 --
1512 -- set rounding class
1513 --
1514 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
1515 'PO_PA_BURDENED';
1516
1517 --
1518 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
1519 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
1520 --
1521 -- bulk performance
1522 --
1523 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
1524
1525 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
1526 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
1527
1528 -- 4955764
1529 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
1530 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
1531
1532 -- 4458381 Public Sector Enh
1533
1534 --
1535 -- set accounting attributes for the line type
1536 --
1537 l_entered_amt_idx := 28;
1538 l_accted_amt_idx := 30;
1539 l_bflow_applied_to_amt_idx := NULL; -- 5132302
1540 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
1541 l_rec_acct_attrs.array_char_value(1) := p_source_16;
1542 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
1543 l_rec_acct_attrs.array_num_value(2) := p_source_17;
1544 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
1545 l_rec_acct_attrs.array_char_value(3) := p_source_18;
1546 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
1547 l_rec_acct_attrs.array_char_value(4) := p_source_19;
1548 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
1549 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
1550 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
1551 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
1552 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
1553 l_rec_acct_attrs.array_char_value(7) := p_source_22;
1554 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
1555 l_rec_acct_attrs.array_num_value(8) := p_source_23;
1556 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
1557 l_rec_acct_attrs.array_char_value(9) := p_source_24;
1558 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
1559 l_rec_acct_attrs.array_char_value(10) := p_source_25;
1560 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
1561 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_26);
1562 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
1563 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_27);
1564 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
1565 l_rec_acct_attrs.array_char_value(13) := p_source_28;
1566 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
1567 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_29);
1568 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
1569 l_rec_acct_attrs.array_char_value(15) := p_source_6;
1570 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
1571 l_rec_acct_attrs.array_char_value(16) := p_source_30;
1572 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
1573 l_rec_acct_attrs.array_char_value(17) := p_source_31;
1574 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
1575 l_rec_acct_attrs.array_num_value(18) := p_source_32;
1576 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
1577 l_rec_acct_attrs.array_num_value(19) := p_source_33;
1578 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
1579 l_rec_acct_attrs.array_char_value(20) := p_source_34;
1580 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
1581 l_rec_acct_attrs.array_num_value(21) := p_source_35;
1582 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
1583 l_rec_acct_attrs.array_char_value(22) := p_source_36;
1584 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
1585 l_rec_acct_attrs.array_num_value(23) := p_source_37;
1586 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
1587 l_rec_acct_attrs.array_num_value(24) := p_source_33;
1588 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
1589 l_rec_acct_attrs.array_char_value(25) := p_source_34;
1590 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
1591 l_rec_acct_attrs.array_num_value(26) := p_source_35;
1592 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
1593 l_rec_acct_attrs.array_char_value(27) := p_source_38;
1594 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
1595 l_rec_acct_attrs.array_num_value(28) := p_source_33;
1596 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
1597 l_rec_acct_attrs.array_char_value(29) := p_source_34;
1598 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
1599 l_rec_acct_attrs.array_num_value(30) := p_source_35;
1600 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
1601 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_29);
1602 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
1603 l_rec_acct_attrs.array_char_value(32) := p_source_6;
1604 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
1605 l_rec_acct_attrs.array_char_value(33) := p_source_30;
1606 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
1607 l_rec_acct_attrs.array_num_value(34) := p_source_39;
1608 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
1609 l_rec_acct_attrs.array_num_value(35) := p_source_40;
1610
1611 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
1612 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
1613
1614 ---------------------------------------------------------------------------------------------------------------
1615 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
1616 ---------------------------------------------------------------------------------------------------------------
1617 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
1618
1619 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
1620 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
1621
1622 IF xla_accounting_cache_pkg.GetValueChar
1623 (p_source_code => 'LEDGER_CATEGORY_CODE'
1624 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
1625 AND l_bflow_method_code = 'PRIOR_ENTRY'
1626 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
1627 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
1628 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
1629 )
1630 THEN
1631 xla_ae_lines_pkg.BflowUpgEntry
1632 (p_business_method_code => l_bflow_method_code
1633 ,p_business_class_code => l_bflow_class_code
1634 ,p_balance_type => l_balance_type_code);
1635 ELSE
1636 NULL;
1637 XLA_AE_LINES_PKG.business_flow_validation(
1638 p_business_method_code => l_bflow_method_code
1639 ,p_business_class_code => l_bflow_class_code
1640 ,p_inherit_description_flag => l_inherit_desc_flag);
1641 END IF;
1642
1643 --
1644 -- call analytical criteria
1645 --
1646 -- Inherited Analytical Criteria for business flow method of Prior Entry.
1647 --
1648 -- call description
1649 --
1650
1651 xla_ae_lines_pkg.SetLineDescription(
1652 p_ae_header_id => l_ae_header_id
1653 ,p_description => Description_2 (
1654 p_application_id => p_application_id
1655 , p_ae_header_id => l_ae_header_id
1656 , p_source_3 => p_source_3
1657 , p_source_4 => p_source_4
1658 , p_source_5 => p_source_5
1659 , p_source_6 => p_source_6
1660 )
1661 );
1662
1663
1664 --
1665 -- call ADRs
1666 -- Bug 4922099
1667 --
1668 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
1669 (NVL(l_actual_upg_option, 'N') = 'O') OR
1670 (NVL(l_enc_upg_option, 'N') = 'O')
1671 )
1672 THEN
1673 NULL;
1674 --
1675 --
1676
1677 --
1678 --
1679 END IF;
1680 --
1681 -- Bug 4922099
1682 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
1683 (NVL(l_enc_upg_option, 'N') = 'O')
1684 ) AND
1685 (l_bflow_method_code = 'PRIOR_ENTRY')
1686 )
1687 THEN
1688 IF
1689 --
1690 1 = 1
1691 --
1692 THEN
1693 xla_accounting_err_pkg.build_message
1694 (p_appli_s_name => 'XLA'
1695 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
1696 ,p_token_1 => 'LINE_NUMBER'
1697 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
1698 ,p_token_2 => 'LINE_TYPE_NAME'
1699 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
1700 l_component_type
1701 ,l_component_code
1702 ,l_component_type_code
1703 ,l_component_appl_id
1704 ,l_amb_context_code
1705 ,l_entity_code
1706 ,l_event_class_code
1707 )
1708 ,p_token_3 => 'OWNER'
1709 ,p_value_3 => xla_lookups_pkg.get_meaning(
1710 p_lookup_type => 'XLA_OWNER_TYPE'
1711 ,p_lookup_code => l_component_type_code
1712 )
1713 ,p_token_4 => 'PRODUCT_NAME'
1714 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
1715 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
1716 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
1717 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
1718 ,p_ae_header_id => NULL
1719 );
1720
1721 IF (C_LEVEL_ERROR>= g_log_level) THEN
1722 trace
1723 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
1724 ,p_level => C_LEVEL_ERROR
1725 ,p_module => l_log_module);
1726 END IF;
1727 END IF;
1728 END IF;
1729 --
1730 --
1731 ------------------------------------------------------------------------------------------------
1732 -- 4219869 Business Flow
1733 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
1734 -- Prior Entry. Currently, the following code is always generated.
1735 ------------------------------------------------------------------------------------------------
1736 -- No ValidateCurrentLine for business flow method of Prior Entry
1737
1738 ------------------------------------------------------------------------------------
1739 -- 4219869 Business Flow
1740 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
1741 ------------------------------------------------------------------------------------
1742 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
1743
1744 ----------------------------------------------------------------------------------
1745 -- 4219869 Business Flow
1746 -- Update journal entry status -- Need to generate this within IF <condition>
1747 ----------------------------------------------------------------------------------
1748 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
1749 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
1750 ,p_balance_type_code => l_balance_type_code
1751 );
1752
1753 -------------------------------------------------------------------------------------------
1754 -- 4262811 - Generate the Accrual Reversal lines
1755 -------------------------------------------------------------------------------------------
1756 BEGIN
1757 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
1758 (g_array_event(p_event_id).array_value_num('header_index'));
1759 IF l_acc_rev_flag IS NULL THEN
1760 l_acc_rev_flag := 'N';
1761 END IF;
1762 EXCEPTION
1763 WHEN OTHERS THEN
1764 l_acc_rev_flag := 'N';
1765 END;
1766 --
1767 IF (l_acc_rev_flag = 'Y') THEN
1768
1769 -- 4645092 ------------------------------------------------------------------------------
1770 -- To allow MPA report to determine if it should generate report process
1771 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
1772 ------------------------------------------------------------------------------------------
1773
1774 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
1775 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
1776
1777 --
1778 -- Update the line information that should be overwritten
1779 --
1780 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
1781 p_header_num => 1);
1782 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
1783
1784 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
1785
1786 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
1787 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
1788 END IF;
1789
1790 --
1791 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
1792 --
1793 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
1794 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
1795 ELSE
1796 ---------------------------------------------------------------------------------------------------
1797 -- 4262811a Switch Sign
1798 ---------------------------------------------------------------------------------------------------
1799 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
1800 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
1801 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
1802 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
1803 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
1804 -- 5132302
1805 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
1806 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
1807
1808 END IF;
1809
1810 -- 4955764
1811 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
1812 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
1813
1814
1815 XLA_AE_LINES_PKG.ValidateCurrentLine;
1816 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
1817
1818 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
1819 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
1820 ,p_balance_type_code => l_balance_type_code);
1821
1822 END IF;
1823
1824 -----------------------------------------------------------------------------------------
1825 -- 4262811 Multiperiod Accounting
1826 -----------------------------------------------------------------------------------------
1827 -- No MPA option is assigned.
1828
1829
1830 END IF;
1831 END IF;
1832 --
1833
1834 --
1835 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1836 trace
1837 (p_msg => 'END of AcctLineType_9'
1838 ,p_level => C_LEVEL_PROCEDURE
1839 ,p_module => l_log_module);
1840 END IF;
1841 --
1842 EXCEPTION
1843 WHEN xla_exceptions_pkg.application_exception THEN
1844 RAISE;
1845 WHEN OTHERS THEN
1846 xla_exceptions_pkg.raise_message
1847 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_9');
1848 END AcctLineType_9;
1849 --
1850
1851 ---------------------------------------
1852 --
1853 -- PRIVATE FUNCTION
1854 -- AcctLineType_10
1855 --
1856 ---------------------------------------
1857 PROCEDURE AcctLineType_10 (
1858 p_application_id IN NUMBER
1859 ,p_event_id IN NUMBER
1860 ,p_calculate_acctd_flag IN VARCHAR2
1861 ,p_calculate_g_l_flag IN VARCHAR2
1862 ,p_actual_flag IN OUT VARCHAR2
1863 ,p_balance_type_code OUT VARCHAR2
1864 ,p_gain_or_loss_ref OUT VARCHAR2
1865
1866 --Project Name
1867 , p_source_3 IN VARCHAR2
1868 --Task Name
1869 , p_source_4 IN VARCHAR2
1870 --Project Expenditure Organization Identifier
1871 , p_source_5 IN NUMBER
1872 --Expenditure Type
1873 , p_source_6 IN VARCHAR2
1874 --Document Type
1875 , p_source_9 IN VARCHAR2
1876 --Main Or Backing Code
1877 , p_source_13 IN VARCHAR2
1878 --Burden Record Identifier
1879 , p_source_14 IN VARCHAR2
1880 , p_source_14_meaning IN VARCHAR2
1881 --Burden Amount Display Method
1882 , p_source_15 IN VARCHAR2
1883 --Accounting Reversal Flag
1884 , p_source_16 IN VARCHAR2
1885 --Allocated to Application Identifier
1886 , p_source_17 IN NUMBER
1887 --Allocated to Distribution Type
1888 , p_source_18 IN VARCHAR2
1889 --Allocated to Entity Code
1890 , p_source_19 IN VARCHAR2
1891 --Allocated to First Distribution Identifier
1892 , p_source_20 IN NUMBER
1893 --Allocated to First System Transaction Identifier
1894 , p_source_21 IN NUMBER
1895 --Purchase Order Burden Applied to Application Identifier
1896 , p_source_23 IN NUMBER
1897 --PO Distribution Type
1898 , p_source_24 IN VARCHAR2
1899 --Purchase Order Burden Applied to Entity Code
1900 , p_source_25 IN VARCHAR2
1901 --Purchase Order Burden Applied to First Distribution Identifier
1902 , p_source_26 IN NUMBER
1903 --Purchase Order Burden Applied to First System Transaction Identifier
1904 , p_source_27 IN NUMBER
1905 --Purchase Order Burden Applied to Second Distribution Identifier
1906 , p_source_28 IN VARCHAR2
1907 --PO Distribution Identifier
1908 , p_source_29 IN NUMBER
1909 --Line Type Name
1910 , p_source_30 IN VARCHAR2
1911 --Encumbrance Upgrade Credit Accounting Class
1912 , p_source_31 IN VARCHAR2
1913 --Encumbrance Upgrade Credit Account
1914 , p_source_32 IN NUMBER
1915 --Entered Amount
1916 , p_source_33 IN NUMBER
1917 --Currency Code
1918 , p_source_34 IN VARCHAR2
1919 --Accounted Amount
1920 , p_source_35 IN NUMBER
1921 --Encumbrance Upgrade Debit Accounting Class
1922 , p_source_36 IN VARCHAR2
1923 --Encumbrance Upgrade Debit Account
1924 , p_source_37 IN NUMBER
1925 --Use Encumbrances Upgrade Attributes Flag
1926 , p_source_38 IN VARCHAR2
1927 --Encumbrance Upgrade Credit Encumbrance Type
1928 , p_source_39 IN NUMBER
1929 --Encumbrance Upgrade Debit Encumbrance Type
1930 , p_source_40 IN NUMBER
1931 )
1932 IS
1933
1934 l_component_type VARCHAR2(80);
1935 l_component_code VARCHAR2(30);
1936 l_component_type_code VARCHAR2(1);
1937 l_component_appl_id INTEGER;
1938 l_amb_context_code VARCHAR2(30);
1939 l_entity_code VARCHAR2(30);
1940 l_event_class_code VARCHAR2(30);
1941 l_ae_header_id NUMBER;
1942 l_event_type_code VARCHAR2(30);
1943 l_line_definition_code VARCHAR2(30);
1944 l_line_definition_owner_code VARCHAR2(1);
1945 --
1946 -- adr variables
1947 l_segment VARCHAR2(30);
1948 l_ccid NUMBER;
1949 l_adr_transaction_coa_id NUMBER;
1950 l_adr_accounting_coa_id NUMBER;
1951 l_adr_flexfield_segment_code VARCHAR2(30);
1952 l_adr_flex_value_set_id NUMBER;
1953 l_adr_value_type_code VARCHAR2(30);
1954 l_adr_value_combination_id NUMBER;
1955 l_adr_value_segment_code VARCHAR2(30);
1956
1957 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
1958 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
1959 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
1960 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
1961
1962 -- 4262811 Variables ------------------------------------------------------------------------------------------
1963 l_entered_amt_idx NUMBER;
1964 l_accted_amt_idx NUMBER;
1965 l_acc_rev_flag VARCHAR2(1);
1966 l_accrual_line_num NUMBER;
1967 l_tmp_amt NUMBER;
1968 l_acc_rev_natural_side_code VARCHAR2(1);
1969
1970 l_num_entries NUMBER;
1971 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
1972 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
1973 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
1974 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
1975 l_recog_line_1 NUMBER;
1976 l_recog_line_2 NUMBER;
1977
1978 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
1979 l_bflow_applied_to_amt NUMBER; -- 5132302
1980 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
1981
1982 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
1983
1984 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
1985 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
1986
1987 ---------------------------------------------------------------------------------------------------------------
1988
1989
1990 --
1991 -- bulk performance
1992 --
1993 l_balance_type_code VARCHAR2(1);
1994 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
1995 l_log_module VARCHAR2(240);
1996
1997 --
1998 -- Upgrade strategy
1999 --
2000 l_actual_upg_option VARCHAR2(1);
2001 l_enc_upg_option VARCHAR2(1);
2002
2003 --
2004 BEGIN
2005 --
2006 IF g_log_enabled THEN
2007 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_10';
2008 END IF;
2009 --
2010 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2011
2012 trace
2013 (p_msg => 'BEGIN of AcctLineType_10'
2014 ,p_level => C_LEVEL_PROCEDURE
2015 ,p_module => l_log_module);
2016
2017 END IF;
2018 --
2019 l_component_type := 'AMB_JLT';
2020 l_component_code := 'CANCEL_BURDENED_PO_ENC';
2021 l_component_type_code := 'S';
2022 l_component_appl_id := 201;
2023 l_amb_context_code := 'DEFAULT';
2024 l_entity_code := 'PURCHASE_ORDER';
2025 l_event_class_code := 'PO_BURDEN';
2026 l_event_type_code := 'PO_BURDEN_ALL';
2027 l_line_definition_owner_code := 'S';
2028 l_line_definition_code := 'PO_BURDEN_ENC_ALL';
2029 --
2030 l_balance_type_code := 'E';
2031 l_segment := NULL;
2032 l_ccid := NULL;
2033 l_adr_transaction_coa_id := NULL;
2034 l_adr_accounting_coa_id := NULL;
2035 l_adr_flexfield_segment_code := NULL;
2036 l_adr_flex_value_set_id := NULL;
2037 l_adr_value_type_code := NULL;
2038 l_adr_value_combination_id := NULL;
2039 l_adr_value_segment_code := NULL;
2040
2041 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
2042 l_bflow_class_code := 'PO_PA_BURDENED_ENC'; -- 4219869 Business Flow
2043 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
2044 l_budgetary_control_flag := 'Y';
2045
2046 l_bflow_applied_to_amt_idx := NULL; -- 5132302
2047 l_bflow_applied_to_amt := NULL; -- 5132302
2048 l_entered_amt_idx := NULL; -- 4262811
2049 l_accted_amt_idx := NULL; -- 4262811
2050 l_acc_rev_flag := NULL; -- 4262811
2051 l_accrual_line_num := NULL; -- 4262811
2052 l_tmp_amt := NULL; -- 4262811
2053 --
2054
2055 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
2056 l_balance_type_code <> 'B' THEN
2057 IF (NVL(
2058 xla_ae_sources_pkg.GetSystemSourceChar(
2059 p_source_code => 'XLA_EVENT_TYPE_CODE'
2060 , p_source_type_code => 'Y'
2061 , p_source_application_id => 602
2062 ),'
2063 ') = 'PO_BURDEN_CANCELLED' OR
2064 NVL(
2065 xla_ae_sources_pkg.GetSystemSourceChar(
2066 p_source_code => 'XLA_EVENT_TYPE_CODE'
2067 , p_source_type_code => 'Y'
2068 , p_source_application_id => 602
2069 ),'
2070 ') = 'PO_BURDEN_CR_MEMO_CANCELLED') AND
2071 NVL(p_source_13,'
2072 ') = 'M' AND
2073 (NVL(p_source_14,'
2074 ') = 'N' OR
2075 NVL(p_source_14,'
2076 ') = 'O') AND
2077 NVL(p_source_9,'
2078 ') = 'PO' AND
2079 NVL(p_source_15,'
2080 ') = 'S'
2081 THEN
2082
2083 --
2084 XLA_AE_LINES_PKG.SetNewLine;
2085
2086 p_balance_type_code := l_balance_type_code;
2087 -- set the flag so later we will know whether the gain loss line needs to be created
2088
2089 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
2090 p_actual_flag :='A';
2091 END IF;
2092
2093 --
2094 -- bulk performance
2095 --
2096 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
2097 p_header_num => 0); -- 4262811
2098 --
2099 -- set accounting line options
2100 --
2101 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
2102 p_natural_side_code => 'D'
2103 , p_gain_or_loss_flag => 'N'
2104 , p_gl_transfer_mode_code => 'S'
2105 , p_acct_entry_type_code => 'E'
2106 , p_switch_side_flag => 'N'
2107 , p_merge_duplicate_code => 'N'
2108 );
2109 --
2110 l_acc_rev_natural_side_code := 'C'; -- 4262811
2111 --
2112 --
2113 -- set accounting line type info
2114 --
2115 xla_ae_lines_pkg.SetAcctLineType
2116 (p_component_type => l_component_type
2117 ,p_event_type_code => l_event_type_code
2118 ,p_line_definition_owner_code => l_line_definition_owner_code
2119 ,p_line_definition_code => l_line_definition_code
2120 ,p_accounting_line_code => l_component_code
2121 ,p_accounting_line_type_code => l_component_type_code
2122 ,p_accounting_line_appl_id => l_component_appl_id
2123 ,p_amb_context_code => l_amb_context_code
2124 ,p_entity_code => l_entity_code
2125 ,p_event_class_code => l_event_class_code);
2126 --
2127 -- set accounting class
2128 --
2129 xla_ae_lines_pkg.SetAcctClass(
2130 p_accounting_class_code => 'PO_PA_BURDENED'
2131 , p_ae_header_id => l_ae_header_id
2132 );
2133
2134 --
2135 -- set rounding class
2136 --
2137 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
2138 'PO_PA_BURDENED';
2139
2140 --
2141 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
2142 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
2143 --
2144 -- bulk performance
2145 --
2146 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
2147
2148 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
2149 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
2150
2151 -- 4955764
2152 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
2153 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
2154
2155 -- 4458381 Public Sector Enh
2156
2157 --
2158 -- set accounting attributes for the line type
2159 --
2160 l_entered_amt_idx := 27;
2161 l_accted_amt_idx := 29;
2162 l_bflow_applied_to_amt_idx := NULL; -- 5132302
2163 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
2164 l_rec_acct_attrs.array_char_value(1) := p_source_16;
2165 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
2166 l_rec_acct_attrs.array_num_value(2) := p_source_17;
2167 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
2168 l_rec_acct_attrs.array_char_value(3) := p_source_18;
2169 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
2170 l_rec_acct_attrs.array_char_value(4) := p_source_19;
2171 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
2172 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
2173 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
2174 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
2175 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
2176 l_rec_acct_attrs.array_num_value(7) := p_source_23;
2177 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
2178 l_rec_acct_attrs.array_char_value(8) := p_source_24;
2179 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
2180 l_rec_acct_attrs.array_char_value(9) := p_source_25;
2181 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
2182 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_26);
2183 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
2184 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_27);
2185 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
2186 l_rec_acct_attrs.array_char_value(12) := p_source_28;
2187 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
2188 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_29);
2189 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
2190 l_rec_acct_attrs.array_char_value(14) := p_source_6;
2191 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
2192 l_rec_acct_attrs.array_char_value(15) := p_source_30;
2193 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
2194 l_rec_acct_attrs.array_char_value(16) := p_source_31;
2195 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
2196 l_rec_acct_attrs.array_num_value(17) := p_source_32;
2197 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
2198 l_rec_acct_attrs.array_num_value(18) := p_source_33;
2199 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
2200 l_rec_acct_attrs.array_char_value(19) := p_source_34;
2201 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
2202 l_rec_acct_attrs.array_num_value(20) := p_source_35;
2203 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
2204 l_rec_acct_attrs.array_char_value(21) := p_source_36;
2205 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
2206 l_rec_acct_attrs.array_num_value(22) := p_source_37;
2207 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
2208 l_rec_acct_attrs.array_num_value(23) := p_source_33;
2209 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
2210 l_rec_acct_attrs.array_char_value(24) := p_source_34;
2211 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
2212 l_rec_acct_attrs.array_num_value(25) := p_source_35;
2213 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
2214 l_rec_acct_attrs.array_char_value(26) := p_source_38;
2215 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
2216 l_rec_acct_attrs.array_num_value(27) := p_source_33;
2217 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
2218 l_rec_acct_attrs.array_char_value(28) := p_source_34;
2219 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
2220 l_rec_acct_attrs.array_num_value(29) := p_source_35;
2221 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
2222 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_29);
2223 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
2224 l_rec_acct_attrs.array_char_value(31) := p_source_6;
2225 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
2226 l_rec_acct_attrs.array_char_value(32) := p_source_30;
2227 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
2228 l_rec_acct_attrs.array_num_value(33) := p_source_39;
2229 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
2230 l_rec_acct_attrs.array_num_value(34) := p_source_40;
2231
2232 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
2233 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
2234
2235 ---------------------------------------------------------------------------------------------------------------
2236 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
2237 ---------------------------------------------------------------------------------------------------------------
2238 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
2239
2240 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
2241 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
2242
2243 IF xla_accounting_cache_pkg.GetValueChar
2244 (p_source_code => 'LEDGER_CATEGORY_CODE'
2245 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
2246 AND l_bflow_method_code = 'PRIOR_ENTRY'
2247 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
2248 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
2249 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
2250 )
2251 THEN
2252 xla_ae_lines_pkg.BflowUpgEntry
2253 (p_business_method_code => l_bflow_method_code
2254 ,p_business_class_code => l_bflow_class_code
2255 ,p_balance_type => l_balance_type_code);
2256 ELSE
2257 NULL;
2258 XLA_AE_LINES_PKG.business_flow_validation(
2259 p_business_method_code => l_bflow_method_code
2260 ,p_business_class_code => l_bflow_class_code
2261 ,p_inherit_description_flag => l_inherit_desc_flag);
2262 END IF;
2263
2264 --
2265 -- call analytical criteria
2266 --
2267 -- Inherited Analytical Criteria for business flow method of Prior Entry.
2268 --
2269 -- call description
2270 --
2271
2272 xla_ae_lines_pkg.SetLineDescription(
2273 p_ae_header_id => l_ae_header_id
2274 ,p_description => Description_2 (
2275 p_application_id => p_application_id
2276 , p_ae_header_id => l_ae_header_id
2277 , p_source_3 => p_source_3
2278 , p_source_4 => p_source_4
2279 , p_source_5 => p_source_5
2280 , p_source_6 => p_source_6
2281 )
2282 );
2283
2284
2285 --
2286 -- call ADRs
2287 -- Bug 4922099
2288 --
2289 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
2290 (NVL(l_actual_upg_option, 'N') = 'O') OR
2291 (NVL(l_enc_upg_option, 'N') = 'O')
2292 )
2293 THEN
2294 NULL;
2295 --
2296 --
2297
2298 --
2299 --
2300 END IF;
2301 --
2302 -- Bug 4922099
2303 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
2304 (NVL(l_enc_upg_option, 'N') = 'O')
2305 ) AND
2306 (l_bflow_method_code = 'PRIOR_ENTRY')
2307 )
2308 THEN
2309 IF
2310 --
2311 1 = 1
2312 --
2313 THEN
2314 xla_accounting_err_pkg.build_message
2315 (p_appli_s_name => 'XLA'
2316 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
2317 ,p_token_1 => 'LINE_NUMBER'
2318 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
2319 ,p_token_2 => 'LINE_TYPE_NAME'
2320 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
2321 l_component_type
2322 ,l_component_code
2323 ,l_component_type_code
2324 ,l_component_appl_id
2325 ,l_amb_context_code
2326 ,l_entity_code
2327 ,l_event_class_code
2328 )
2329 ,p_token_3 => 'OWNER'
2330 ,p_value_3 => xla_lookups_pkg.get_meaning(
2331 p_lookup_type => 'XLA_OWNER_TYPE'
2332 ,p_lookup_code => l_component_type_code
2333 )
2334 ,p_token_4 => 'PRODUCT_NAME'
2335 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
2336 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
2337 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
2338 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2339 ,p_ae_header_id => NULL
2340 );
2341
2342 IF (C_LEVEL_ERROR>= g_log_level) THEN
2343 trace
2344 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
2345 ,p_level => C_LEVEL_ERROR
2346 ,p_module => l_log_module);
2347 END IF;
2348 END IF;
2349 END IF;
2350 --
2351 --
2352 ------------------------------------------------------------------------------------------------
2353 -- 4219869 Business Flow
2354 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
2355 -- Prior Entry. Currently, the following code is always generated.
2356 ------------------------------------------------------------------------------------------------
2357 -- No ValidateCurrentLine for business flow method of Prior Entry
2358
2359 ------------------------------------------------------------------------------------
2360 -- 4219869 Business Flow
2361 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
2362 ------------------------------------------------------------------------------------
2363 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
2364
2365 ----------------------------------------------------------------------------------
2366 -- 4219869 Business Flow
2367 -- Update journal entry status -- Need to generate this within IF <condition>
2368 ----------------------------------------------------------------------------------
2369 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
2370 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
2371 ,p_balance_type_code => l_balance_type_code
2372 );
2373
2374 -------------------------------------------------------------------------------------------
2375 -- 4262811 - Generate the Accrual Reversal lines
2376 -------------------------------------------------------------------------------------------
2377 BEGIN
2378 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
2379 (g_array_event(p_event_id).array_value_num('header_index'));
2380 IF l_acc_rev_flag IS NULL THEN
2381 l_acc_rev_flag := 'N';
2382 END IF;
2383 EXCEPTION
2384 WHEN OTHERS THEN
2385 l_acc_rev_flag := 'N';
2386 END;
2387 --
2388 IF (l_acc_rev_flag = 'Y') THEN
2389
2390 -- 4645092 ------------------------------------------------------------------------------
2391 -- To allow MPA report to determine if it should generate report process
2392 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
2393 ------------------------------------------------------------------------------------------
2394
2395 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
2396 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
2397
2398 --
2399 -- Update the line information that should be overwritten
2400 --
2401 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
2402 p_header_num => 1);
2403 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
2404
2405 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
2406
2407 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
2408 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
2409 END IF;
2410
2411 --
2412 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
2413 --
2414 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
2415 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
2416 ELSE
2417 ---------------------------------------------------------------------------------------------------
2418 -- 4262811a Switch Sign
2419 ---------------------------------------------------------------------------------------------------
2420 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
2421 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
2422 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
2423 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
2424 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
2425 -- 5132302
2426 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
2427 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
2428
2429 END IF;
2430
2431 -- 4955764
2432 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
2433 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
2434
2435
2436 XLA_AE_LINES_PKG.ValidateCurrentLine;
2437 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
2438
2439 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
2440 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
2441 ,p_balance_type_code => l_balance_type_code);
2442
2443 END IF;
2444
2445 -----------------------------------------------------------------------------------------
2446 -- 4262811 Multiperiod Accounting
2447 -----------------------------------------------------------------------------------------
2448 -- No MPA option is assigned.
2449
2450
2451 END IF;
2452 END IF;
2453 --
2454
2455 --
2456 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2457 trace
2458 (p_msg => 'END of AcctLineType_10'
2459 ,p_level => C_LEVEL_PROCEDURE
2460 ,p_module => l_log_module);
2461 END IF;
2462 --
2463 EXCEPTION
2464 WHEN xla_exceptions_pkg.application_exception THEN
2465 RAISE;
2466 WHEN OTHERS THEN
2467 xla_exceptions_pkg.raise_message
2468 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_10');
2469 END AcctLineType_10;
2470 --
2471
2472 ---------------------------------------
2473 --
2474 -- PRIVATE FUNCTION
2475 -- AcctLineType_11
2476 --
2477 ---------------------------------------
2478 PROCEDURE AcctLineType_11 (
2479 p_application_id IN NUMBER
2480 ,p_event_id IN NUMBER
2481 ,p_calculate_acctd_flag IN VARCHAR2
2482 ,p_calculate_g_l_flag IN VARCHAR2
2483 ,p_actual_flag IN OUT VARCHAR2
2484 ,p_balance_type_code OUT VARCHAR2
2485 ,p_gain_or_loss_ref OUT VARCHAR2
2486
2487 --Project Name
2488 , p_source_3 IN VARCHAR2
2489 --Task Name
2490 , p_source_4 IN VARCHAR2
2491 --Project Expenditure Organization Identifier
2492 , p_source_5 IN NUMBER
2493 --Expenditure Type
2494 , p_source_6 IN VARCHAR2
2495 --Main Or Backing Code
2496 , p_source_13 IN VARCHAR2
2497 --Burden Record Identifier
2498 , p_source_14 IN VARCHAR2
2499 , p_source_14_meaning IN VARCHAR2
2500 --Burden Amount Display Method
2501 , p_source_15 IN VARCHAR2
2502 --Accounting Reversal Flag
2503 , p_source_16 IN VARCHAR2
2504 --Allocated to Application Identifier
2505 , p_source_17 IN NUMBER
2506 --Allocated to Distribution Type
2507 , p_source_18 IN VARCHAR2
2508 --Allocated to Entity Code
2509 , p_source_19 IN VARCHAR2
2510 --Allocated to First Distribution Identifier
2511 , p_source_20 IN NUMBER
2512 --Allocated to First System Transaction Identifier
2513 , p_source_21 IN NUMBER
2514 --Allocated to Second Distribution Identifier
2515 , p_source_22 IN VARCHAR2
2516 --Line Type Name
2517 , p_source_30 IN VARCHAR2
2518 --Encumbrance Upgrade Credit Accounting Class
2519 , p_source_31 IN VARCHAR2
2520 --Encumbrance Upgrade Credit Account
2521 , p_source_32 IN NUMBER
2522 --Entered Amount
2523 , p_source_33 IN NUMBER
2524 --Currency Code
2525 , p_source_34 IN VARCHAR2
2526 --Accounted Amount
2527 , p_source_35 IN NUMBER
2528 --Encumbrance Upgrade Debit Accounting Class
2529 , p_source_36 IN VARCHAR2
2530 --Encumbrance Upgrade Debit Account
2531 , p_source_37 IN NUMBER
2532 --Use Encumbrances Upgrade Attributes Flag
2533 , p_source_38 IN VARCHAR2
2534 --Encumbrance Upgrade Credit Encumbrance Type
2535 , p_source_39 IN NUMBER
2536 --Encumbrance Upgrade Debit Encumbrance Type
2537 , p_source_40 IN NUMBER
2538 --Requisition Burden Applied to Application Identifier
2539 , p_source_41 IN NUMBER
2540 --Requisition Distribution Type
2541 , p_source_42 IN VARCHAR2
2542 --Requisition Burden Applied to Entity Code
2543 , p_source_43 IN VARCHAR2
2544 --Requisition Burden Applied to First Distribution Identifier
2545 , p_source_44 IN NUMBER
2546 --Requisition Burden Applied to First System Transaction Identifier
2547 , p_source_45 IN NUMBER
2548 --Requisition Burden Applied to Second Distribution Identifier
2549 , p_source_46 IN VARCHAR2
2550 --Requisition Distribution Identifier
2551 , p_source_47 IN NUMBER
2552 )
2553 IS
2554
2555 l_component_type VARCHAR2(80);
2556 l_component_code VARCHAR2(30);
2557 l_component_type_code VARCHAR2(1);
2558 l_component_appl_id INTEGER;
2559 l_amb_context_code VARCHAR2(30);
2560 l_entity_code VARCHAR2(30);
2561 l_event_class_code VARCHAR2(30);
2562 l_ae_header_id NUMBER;
2563 l_event_type_code VARCHAR2(30);
2564 l_line_definition_code VARCHAR2(30);
2565 l_line_definition_owner_code VARCHAR2(1);
2566 --
2567 -- adr variables
2568 l_segment VARCHAR2(30);
2569 l_ccid NUMBER;
2570 l_adr_transaction_coa_id NUMBER;
2571 l_adr_accounting_coa_id NUMBER;
2572 l_adr_flexfield_segment_code VARCHAR2(30);
2573 l_adr_flex_value_set_id NUMBER;
2574 l_adr_value_type_code VARCHAR2(30);
2575 l_adr_value_combination_id NUMBER;
2576 l_adr_value_segment_code VARCHAR2(30);
2577
2578 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
2579 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
2580 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
2581 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
2582
2583 -- 4262811 Variables ------------------------------------------------------------------------------------------
2584 l_entered_amt_idx NUMBER;
2585 l_accted_amt_idx NUMBER;
2586 l_acc_rev_flag VARCHAR2(1);
2587 l_accrual_line_num NUMBER;
2588 l_tmp_amt NUMBER;
2589 l_acc_rev_natural_side_code VARCHAR2(1);
2590
2591 l_num_entries NUMBER;
2592 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
2593 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
2594 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
2595 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
2596 l_recog_line_1 NUMBER;
2597 l_recog_line_2 NUMBER;
2598
2599 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
2600 l_bflow_applied_to_amt NUMBER; -- 5132302
2601 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
2602
2603 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
2604
2605 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
2606 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
2607
2608 ---------------------------------------------------------------------------------------------------------------
2609
2610
2611 --
2612 -- bulk performance
2613 --
2614 l_balance_type_code VARCHAR2(1);
2615 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
2616 l_log_module VARCHAR2(240);
2617
2618 --
2619 -- Upgrade strategy
2620 --
2621 l_actual_upg_option VARCHAR2(1);
2622 l_enc_upg_option VARCHAR2(1);
2623
2624 --
2625 BEGIN
2626 --
2627 IF g_log_enabled THEN
2628 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_11';
2629 END IF;
2630 --
2631 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2632
2633 trace
2634 (p_msg => 'BEGIN of AcctLineType_11'
2635 ,p_level => C_LEVEL_PROCEDURE
2636 ,p_module => l_log_module);
2637
2638 END IF;
2639 --
2640 l_component_type := 'AMB_JLT';
2641 l_component_code := 'CANCEL_BURDENED_REQ_ENC';
2642 l_component_type_code := 'S';
2643 l_component_appl_id := 201;
2644 l_amb_context_code := 'DEFAULT';
2645 l_entity_code := 'REQUISITION';
2646 l_event_class_code := 'REQUISITION_BURDEN';
2647 l_event_type_code := 'REQUISITION_BURDEN_ALL';
2648 l_line_definition_owner_code := 'S';
2649 l_line_definition_code := 'REQ_BURDEN_ENC_ALL';
2650 --
2651 l_balance_type_code := 'E';
2652 l_segment := NULL;
2653 l_ccid := NULL;
2654 l_adr_transaction_coa_id := NULL;
2655 l_adr_accounting_coa_id := NULL;
2656 l_adr_flexfield_segment_code := NULL;
2657 l_adr_flex_value_set_id := NULL;
2658 l_adr_value_type_code := NULL;
2659 l_adr_value_combination_id := NULL;
2660 l_adr_value_segment_code := NULL;
2661
2662 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
2663 l_bflow_class_code := 'REQ_PA_BURDENED_ENC'; -- 4219869 Business Flow
2664 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
2665 l_budgetary_control_flag := 'Y';
2666
2667 l_bflow_applied_to_amt_idx := NULL; -- 5132302
2668 l_bflow_applied_to_amt := NULL; -- 5132302
2669 l_entered_amt_idx := NULL; -- 4262811
2670 l_accted_amt_idx := NULL; -- 4262811
2671 l_acc_rev_flag := NULL; -- 4262811
2672 l_accrual_line_num := NULL; -- 4262811
2673 l_tmp_amt := NULL; -- 4262811
2674 --
2675
2676 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
2677 l_balance_type_code <> 'B' THEN
2678 IF NVL(
2679 xla_ae_sources_pkg.GetSystemSourceChar(
2680 p_source_code => 'XLA_EVENT_TYPE_CODE'
2681 , p_source_type_code => 'Y'
2682 , p_source_application_id => 602
2683 ),'
2684 ') = 'REQ_BURDEN_CANCELLED' AND
2685 NVL(p_source_13,'
2686 ') = 'M' AND
2687 (NVL(p_source_14,'
2688 ') = 'N' OR
2689 NVL(p_source_14,'
2690 ') = 'O') AND
2691 NVL(p_source_15,'
2692 ') = 'S'
2693 THEN
2694
2695 --
2696 XLA_AE_LINES_PKG.SetNewLine;
2697
2698 p_balance_type_code := l_balance_type_code;
2699 -- set the flag so later we will know whether the gain loss line needs to be created
2700
2701 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
2702 p_actual_flag :='A';
2703 END IF;
2704
2705 --
2706 -- bulk performance
2707 --
2708 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
2709 p_header_num => 0); -- 4262811
2710 --
2711 -- set accounting line options
2712 --
2713 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
2714 p_natural_side_code => 'D'
2715 , p_gain_or_loss_flag => 'N'
2716 , p_gl_transfer_mode_code => 'S'
2717 , p_acct_entry_type_code => 'E'
2718 , p_switch_side_flag => 'N'
2719 , p_merge_duplicate_code => 'N'
2720 );
2721 --
2722 l_acc_rev_natural_side_code := 'C'; -- 4262811
2723 --
2724 --
2725 -- set accounting line type info
2726 --
2727 xla_ae_lines_pkg.SetAcctLineType
2728 (p_component_type => l_component_type
2729 ,p_event_type_code => l_event_type_code
2730 ,p_line_definition_owner_code => l_line_definition_owner_code
2731 ,p_line_definition_code => l_line_definition_code
2732 ,p_accounting_line_code => l_component_code
2733 ,p_accounting_line_type_code => l_component_type_code
2734 ,p_accounting_line_appl_id => l_component_appl_id
2735 ,p_amb_context_code => l_amb_context_code
2736 ,p_entity_code => l_entity_code
2737 ,p_event_class_code => l_event_class_code);
2738 --
2739 -- set accounting class
2740 --
2741 xla_ae_lines_pkg.SetAcctClass(
2742 p_accounting_class_code => 'REQ_PA_BURDENED'
2743 , p_ae_header_id => l_ae_header_id
2744 );
2745
2746 --
2747 -- set rounding class
2748 --
2749 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
2750 'REQ_PA_BURDENED';
2751
2752 --
2753 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
2754 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
2755 --
2756 -- bulk performance
2757 --
2758 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
2759
2760 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
2761 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
2762
2763 -- 4955764
2764 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
2765 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
2766
2767 -- 4458381 Public Sector Enh
2768
2769 --
2770 -- set accounting attributes for the line type
2771 --
2772 l_entered_amt_idx := 28;
2773 l_accted_amt_idx := 30;
2774 l_bflow_applied_to_amt_idx := NULL; -- 5132302
2775 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
2776 l_rec_acct_attrs.array_char_value(1) := p_source_16;
2777 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
2778 l_rec_acct_attrs.array_num_value(2) := p_source_17;
2779 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
2780 l_rec_acct_attrs.array_char_value(3) := p_source_18;
2781 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
2782 l_rec_acct_attrs.array_char_value(4) := p_source_19;
2783 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
2784 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
2785 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
2786 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
2787 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
2788 l_rec_acct_attrs.array_char_value(7) := p_source_22;
2789 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
2790 l_rec_acct_attrs.array_num_value(8) := p_source_41;
2791 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
2792 l_rec_acct_attrs.array_char_value(9) := p_source_42;
2793 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
2794 l_rec_acct_attrs.array_char_value(10) := p_source_43;
2795 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
2796 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_44);
2797 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
2798 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_45);
2799 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
2800 l_rec_acct_attrs.array_char_value(13) := p_source_46;
2801 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
2802 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_47);
2803 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
2804 l_rec_acct_attrs.array_char_value(15) := p_source_6;
2805 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
2806 l_rec_acct_attrs.array_char_value(16) := p_source_30;
2807 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
2808 l_rec_acct_attrs.array_char_value(17) := p_source_31;
2809 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
2810 l_rec_acct_attrs.array_num_value(18) := p_source_32;
2811 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
2812 l_rec_acct_attrs.array_num_value(19) := p_source_33;
2813 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
2814 l_rec_acct_attrs.array_char_value(20) := p_source_34;
2815 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
2816 l_rec_acct_attrs.array_num_value(21) := p_source_35;
2817 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
2818 l_rec_acct_attrs.array_char_value(22) := p_source_36;
2819 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
2820 l_rec_acct_attrs.array_num_value(23) := p_source_37;
2821 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
2822 l_rec_acct_attrs.array_num_value(24) := p_source_33;
2823 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
2824 l_rec_acct_attrs.array_char_value(25) := p_source_34;
2825 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
2826 l_rec_acct_attrs.array_num_value(26) := p_source_35;
2827 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
2828 l_rec_acct_attrs.array_char_value(27) := p_source_38;
2829 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
2830 l_rec_acct_attrs.array_num_value(28) := p_source_33;
2831 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
2832 l_rec_acct_attrs.array_char_value(29) := p_source_34;
2833 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
2834 l_rec_acct_attrs.array_num_value(30) := p_source_35;
2835 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
2836 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_47);
2837 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
2838 l_rec_acct_attrs.array_char_value(32) := p_source_6;
2839 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
2840 l_rec_acct_attrs.array_char_value(33) := p_source_30;
2841 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
2842 l_rec_acct_attrs.array_num_value(34) := p_source_39;
2843 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
2844 l_rec_acct_attrs.array_num_value(35) := p_source_40;
2845
2846 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
2847 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
2848
2849 ---------------------------------------------------------------------------------------------------------------
2850 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
2851 ---------------------------------------------------------------------------------------------------------------
2852 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
2853
2854 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
2855 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
2856
2857 IF xla_accounting_cache_pkg.GetValueChar
2858 (p_source_code => 'LEDGER_CATEGORY_CODE'
2859 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
2860 AND l_bflow_method_code = 'PRIOR_ENTRY'
2861 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
2862 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
2863 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
2864 )
2865 THEN
2866 xla_ae_lines_pkg.BflowUpgEntry
2867 (p_business_method_code => l_bflow_method_code
2868 ,p_business_class_code => l_bflow_class_code
2869 ,p_balance_type => l_balance_type_code);
2870 ELSE
2871 NULL;
2872 XLA_AE_LINES_PKG.business_flow_validation(
2873 p_business_method_code => l_bflow_method_code
2874 ,p_business_class_code => l_bflow_class_code
2875 ,p_inherit_description_flag => l_inherit_desc_flag);
2876 END IF;
2877
2878 --
2879 -- call analytical criteria
2880 --
2881 -- Inherited Analytical Criteria for business flow method of Prior Entry.
2882 --
2883 -- call description
2884 --
2885
2886 xla_ae_lines_pkg.SetLineDescription(
2887 p_ae_header_id => l_ae_header_id
2888 ,p_description => Description_2 (
2889 p_application_id => p_application_id
2890 , p_ae_header_id => l_ae_header_id
2891 , p_source_3 => p_source_3
2892 , p_source_4 => p_source_4
2893 , p_source_5 => p_source_5
2894 , p_source_6 => p_source_6
2895 )
2896 );
2897
2898
2899 --
2900 -- call ADRs
2901 -- Bug 4922099
2902 --
2903 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
2904 (NVL(l_actual_upg_option, 'N') = 'O') OR
2905 (NVL(l_enc_upg_option, 'N') = 'O')
2906 )
2907 THEN
2908 NULL;
2909 --
2910 --
2911
2912 --
2913 --
2914 END IF;
2915 --
2916 -- Bug 4922099
2917 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
2918 (NVL(l_enc_upg_option, 'N') = 'O')
2919 ) AND
2920 (l_bflow_method_code = 'PRIOR_ENTRY')
2921 )
2922 THEN
2923 IF
2924 --
2925 1 = 1
2926 --
2927 THEN
2928 xla_accounting_err_pkg.build_message
2929 (p_appli_s_name => 'XLA'
2930 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
2931 ,p_token_1 => 'LINE_NUMBER'
2932 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
2933 ,p_token_2 => 'LINE_TYPE_NAME'
2934 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
2935 l_component_type
2936 ,l_component_code
2937 ,l_component_type_code
2938 ,l_component_appl_id
2939 ,l_amb_context_code
2940 ,l_entity_code
2941 ,l_event_class_code
2942 )
2943 ,p_token_3 => 'OWNER'
2944 ,p_value_3 => xla_lookups_pkg.get_meaning(
2945 p_lookup_type => 'XLA_OWNER_TYPE'
2946 ,p_lookup_code => l_component_type_code
2947 )
2948 ,p_token_4 => 'PRODUCT_NAME'
2949 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
2950 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
2951 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
2952 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
2953 ,p_ae_header_id => NULL
2954 );
2955
2956 IF (C_LEVEL_ERROR>= g_log_level) THEN
2957 trace
2958 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
2959 ,p_level => C_LEVEL_ERROR
2960 ,p_module => l_log_module);
2961 END IF;
2962 END IF;
2963 END IF;
2964 --
2965 --
2966 ------------------------------------------------------------------------------------------------
2967 -- 4219869 Business Flow
2968 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
2969 -- Prior Entry. Currently, the following code is always generated.
2970 ------------------------------------------------------------------------------------------------
2971 -- No ValidateCurrentLine for business flow method of Prior Entry
2972
2973 ------------------------------------------------------------------------------------
2974 -- 4219869 Business Flow
2975 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
2976 ------------------------------------------------------------------------------------
2977 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
2978
2979 ----------------------------------------------------------------------------------
2980 -- 4219869 Business Flow
2981 -- Update journal entry status -- Need to generate this within IF <condition>
2982 ----------------------------------------------------------------------------------
2983 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
2984 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
2985 ,p_balance_type_code => l_balance_type_code
2986 );
2987
2988 -------------------------------------------------------------------------------------------
2989 -- 4262811 - Generate the Accrual Reversal lines
2990 -------------------------------------------------------------------------------------------
2991 BEGIN
2992 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
2993 (g_array_event(p_event_id).array_value_num('header_index'));
2994 IF l_acc_rev_flag IS NULL THEN
2995 l_acc_rev_flag := 'N';
2996 END IF;
2997 EXCEPTION
2998 WHEN OTHERS THEN
2999 l_acc_rev_flag := 'N';
3000 END;
3001 --
3002 IF (l_acc_rev_flag = 'Y') THEN
3003
3004 -- 4645092 ------------------------------------------------------------------------------
3005 -- To allow MPA report to determine if it should generate report process
3006 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
3007 ------------------------------------------------------------------------------------------
3008
3009 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
3010 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
3011
3012 --
3013 -- Update the line information that should be overwritten
3014 --
3015 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
3016 p_header_num => 1);
3017 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
3018
3019 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
3020
3021 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
3022 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
3023 END IF;
3024
3025 --
3026 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
3027 --
3028 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
3029 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
3030 ELSE
3031 ---------------------------------------------------------------------------------------------------
3032 -- 4262811a Switch Sign
3033 ---------------------------------------------------------------------------------------------------
3034 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
3035 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3036 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3037 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3038 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3039 -- 5132302
3040 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
3041 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3042
3043 END IF;
3044
3045 -- 4955764
3046 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3047 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
3048
3049
3050 XLA_AE_LINES_PKG.ValidateCurrentLine;
3051 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3052
3053 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
3054 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
3055 ,p_balance_type_code => l_balance_type_code);
3056
3057 END IF;
3058
3059 -----------------------------------------------------------------------------------------
3060 -- 4262811 Multiperiod Accounting
3061 -----------------------------------------------------------------------------------------
3062 -- No MPA option is assigned.
3063
3064
3065 END IF;
3066 END IF;
3067 --
3068
3069 --
3070 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3071 trace
3072 (p_msg => 'END of AcctLineType_11'
3073 ,p_level => C_LEVEL_PROCEDURE
3074 ,p_module => l_log_module);
3075 END IF;
3076 --
3077 EXCEPTION
3078 WHEN xla_exceptions_pkg.application_exception THEN
3079 RAISE;
3080 WHEN OTHERS THEN
3081 xla_exceptions_pkg.raise_message
3082 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_11');
3083 END AcctLineType_11;
3084 --
3085
3086 ---------------------------------------
3087 --
3088 -- PRIVATE FUNCTION
3089 -- AcctLineType_12
3090 --
3091 ---------------------------------------
3092 PROCEDURE AcctLineType_12 (
3093 p_application_id IN NUMBER
3094 ,p_event_id IN NUMBER
3095 ,p_calculate_acctd_flag IN VARCHAR2
3096 ,p_calculate_g_l_flag IN VARCHAR2
3097 ,p_actual_flag IN OUT VARCHAR2
3098 ,p_balance_type_code OUT VARCHAR2
3099 ,p_gain_or_loss_ref OUT VARCHAR2
3100
3101 --Project Name
3102 , p_source_3 IN VARCHAR2
3103 --Task Name
3104 , p_source_4 IN VARCHAR2
3105 --Project Expenditure Organization Identifier
3106 , p_source_5 IN NUMBER
3107 --Expenditure Type
3108 , p_source_6 IN VARCHAR2
3109 --Document Type
3110 , p_source_9 IN VARCHAR2
3111 --Main Or Backing Code
3112 , p_source_13 IN VARCHAR2
3113 --Burden Record Identifier
3114 , p_source_14 IN VARCHAR2
3115 , p_source_14_meaning IN VARCHAR2
3116 --Burden Amount Display Method
3117 , p_source_15 IN VARCHAR2
3118 --Accounting Reversal Flag
3119 , p_source_16 IN VARCHAR2
3120 --Allocated to Application Identifier
3121 , p_source_17 IN NUMBER
3122 --Allocated to Distribution Type
3123 , p_source_18 IN VARCHAR2
3124 --Allocated to Entity Code
3125 , p_source_19 IN VARCHAR2
3126 --Allocated to First Distribution Identifier
3127 , p_source_20 IN NUMBER
3128 --Allocated to First System Transaction Identifier
3129 , p_source_21 IN NUMBER
3130 --Allocated to Second Distribution Identifier
3131 , p_source_22 IN VARCHAR2
3132 --Purchase Order Burden Applied to Application Identifier
3133 , p_source_23 IN NUMBER
3134 --PO Distribution Type
3135 , p_source_24 IN VARCHAR2
3136 --Purchase Order Burden Applied to Entity Code
3137 , p_source_25 IN VARCHAR2
3138 --Purchase Order Burden Applied to First Distribution Identifier
3139 , p_source_26 IN NUMBER
3140 --Purchase Order Burden Applied to First System Transaction Identifier
3141 , p_source_27 IN NUMBER
3142 --Purchase Order Burden Applied to Second Distribution Identifier
3143 , p_source_28 IN VARCHAR2
3144 --PO Distribution Identifier
3145 , p_source_29 IN NUMBER
3146 --Line Type Name
3147 , p_source_30 IN VARCHAR2
3148 --Encumbrance Upgrade Credit Accounting Class
3149 , p_source_31 IN VARCHAR2
3150 --Encumbrance Upgrade Credit Account
3151 , p_source_32 IN NUMBER
3152 --Entered Amount
3153 , p_source_33 IN NUMBER
3154 --Currency Code
3155 , p_source_34 IN VARCHAR2
3156 --Accounted Amount
3157 , p_source_35 IN NUMBER
3158 --Encumbrance Upgrade Debit Accounting Class
3159 , p_source_36 IN VARCHAR2
3160 --Encumbrance Upgrade Debit Account
3161 , p_source_37 IN NUMBER
3162 --Use Encumbrances Upgrade Attributes Flag
3163 , p_source_38 IN VARCHAR2
3164 --Encumbrance Upgrade Credit Encumbrance Type
3165 , p_source_39 IN NUMBER
3166 --Encumbrance Upgrade Debit Encumbrance Type
3167 , p_source_40 IN NUMBER
3168 )
3169 IS
3170
3171 l_component_type VARCHAR2(80);
3172 l_component_code VARCHAR2(30);
3173 l_component_type_code VARCHAR2(1);
3174 l_component_appl_id INTEGER;
3175 l_amb_context_code VARCHAR2(30);
3176 l_entity_code VARCHAR2(30);
3177 l_event_class_code VARCHAR2(30);
3178 l_ae_header_id NUMBER;
3179 l_event_type_code VARCHAR2(30);
3180 l_line_definition_code VARCHAR2(30);
3181 l_line_definition_owner_code VARCHAR2(1);
3182 --
3183 -- adr variables
3184 l_segment VARCHAR2(30);
3185 l_ccid NUMBER;
3186 l_adr_transaction_coa_id NUMBER;
3187 l_adr_accounting_coa_id NUMBER;
3188 l_adr_flexfield_segment_code VARCHAR2(30);
3189 l_adr_flex_value_set_id NUMBER;
3190 l_adr_value_type_code VARCHAR2(30);
3191 l_adr_value_combination_id NUMBER;
3192 l_adr_value_segment_code VARCHAR2(30);
3193
3194 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
3195 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
3196 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
3197 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
3198
3199 -- 4262811 Variables ------------------------------------------------------------------------------------------
3200 l_entered_amt_idx NUMBER;
3201 l_accted_amt_idx NUMBER;
3202 l_acc_rev_flag VARCHAR2(1);
3203 l_accrual_line_num NUMBER;
3204 l_tmp_amt NUMBER;
3205 l_acc_rev_natural_side_code VARCHAR2(1);
3206
3207 l_num_entries NUMBER;
3208 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
3209 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
3210 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
3211 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
3212 l_recog_line_1 NUMBER;
3213 l_recog_line_2 NUMBER;
3214
3215 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
3216 l_bflow_applied_to_amt NUMBER; -- 5132302
3217 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
3218
3219 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
3220
3221 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
3222 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
3223
3224 ---------------------------------------------------------------------------------------------------------------
3225
3226
3227 --
3228 -- bulk performance
3229 --
3230 l_balance_type_code VARCHAR2(1);
3231 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
3232 l_log_module VARCHAR2(240);
3233
3234 --
3235 -- Upgrade strategy
3236 --
3237 l_actual_upg_option VARCHAR2(1);
3238 l_enc_upg_option VARCHAR2(1);
3239
3240 --
3241 BEGIN
3242 --
3243 IF g_log_enabled THEN
3244 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_12';
3245 END IF;
3246 --
3247 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3248
3249 trace
3250 (p_msg => 'BEGIN of AcctLineType_12'
3251 ,p_level => C_LEVEL_PROCEDURE
3252 ,p_module => l_log_module);
3253
3254 END IF;
3255 --
3256 l_component_type := 'AMB_JLT';
3257 l_component_code := 'CANCEL_BURDEN_ RELEASE_ENC';
3258 l_component_type_code := 'S';
3259 l_component_appl_id := 201;
3260 l_amb_context_code := 'DEFAULT';
3261 l_entity_code := 'RELEASE';
3262 l_event_class_code := 'RELEASE_BURDEN';
3263 l_event_type_code := 'RELEASE_BURDEN_ALL';
3264 l_line_definition_owner_code := 'S';
3265 l_line_definition_code := 'REL_BURDEN_ENC_ALL';
3266 --
3267 l_balance_type_code := 'E';
3268 l_segment := NULL;
3269 l_ccid := NULL;
3270 l_adr_transaction_coa_id := NULL;
3271 l_adr_accounting_coa_id := NULL;
3272 l_adr_flexfield_segment_code := NULL;
3273 l_adr_flex_value_set_id := NULL;
3274 l_adr_value_type_code := NULL;
3275 l_adr_value_combination_id := NULL;
3276 l_adr_value_segment_code := NULL;
3277
3278 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
3279 l_bflow_class_code := 'REL_PA_BURDEN_ENC'; -- 4219869 Business Flow
3280 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
3281 l_budgetary_control_flag := 'Y';
3282
3283 l_bflow_applied_to_amt_idx := NULL; -- 5132302
3284 l_bflow_applied_to_amt := NULL; -- 5132302
3285 l_entered_amt_idx := NULL; -- 4262811
3286 l_accted_amt_idx := NULL; -- 4262811
3287 l_acc_rev_flag := NULL; -- 4262811
3288 l_accrual_line_num := NULL; -- 4262811
3289 l_tmp_amt := NULL; -- 4262811
3290 --
3291
3292 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
3293 l_balance_type_code <> 'B' THEN
3294 IF (NVL(
3295 xla_ae_sources_pkg.GetSystemSourceChar(
3296 p_source_code => 'XLA_EVENT_TYPE_CODE'
3297 , p_source_type_code => 'Y'
3298 , p_source_application_id => 602
3299 ),'
3300 ') = 'REL_BURDEN_CANCELLED' OR
3301 NVL(
3302 xla_ae_sources_pkg.GetSystemSourceChar(
3303 p_source_code => 'XLA_EVENT_TYPE_CODE'
3304 , p_source_type_code => 'Y'
3305 , p_source_application_id => 602
3306 ),'
3307 ') = 'REL_BURDEN_CR_MEMO_CANCELLED') AND
3308 NVL(p_source_13,'
3309 ') = 'M' AND
3310 NVL(p_source_14,'
3311 ') = 'O' AND
3312 NVL(p_source_9,'
3313 ') = 'PO' AND
3314 NVL(p_source_15,'
3315 ') = 'D'
3316 THEN
3317
3318 --
3319 XLA_AE_LINES_PKG.SetNewLine;
3320
3321 p_balance_type_code := l_balance_type_code;
3322 -- set the flag so later we will know whether the gain loss line needs to be created
3323
3324 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
3325 p_actual_flag :='A';
3326 END IF;
3327
3328 --
3329 -- bulk performance
3330 --
3331 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
3332 p_header_num => 0); -- 4262811
3333 --
3334 -- set accounting line options
3335 --
3336 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
3337 p_natural_side_code => 'D'
3338 , p_gain_or_loss_flag => 'N'
3339 , p_gl_transfer_mode_code => 'S'
3340 , p_acct_entry_type_code => 'E'
3341 , p_switch_side_flag => 'N'
3342 , p_merge_duplicate_code => 'N'
3343 );
3344 --
3345 l_acc_rev_natural_side_code := 'C'; -- 4262811
3346 --
3347 --
3348 -- set accounting line type info
3349 --
3350 xla_ae_lines_pkg.SetAcctLineType
3351 (p_component_type => l_component_type
3352 ,p_event_type_code => l_event_type_code
3353 ,p_line_definition_owner_code => l_line_definition_owner_code
3354 ,p_line_definition_code => l_line_definition_code
3355 ,p_accounting_line_code => l_component_code
3356 ,p_accounting_line_type_code => l_component_type_code
3357 ,p_accounting_line_appl_id => l_component_appl_id
3358 ,p_amb_context_code => l_amb_context_code
3359 ,p_entity_code => l_entity_code
3360 ,p_event_class_code => l_event_class_code);
3361 --
3362 -- set accounting class
3363 --
3364 xla_ae_lines_pkg.SetAcctClass(
3365 p_accounting_class_code => 'PO_PA_BURDEN'
3366 , p_ae_header_id => l_ae_header_id
3367 );
3368
3369 --
3370 -- set rounding class
3371 --
3372 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
3373 'PO_PA_BURDEN';
3374
3375 --
3376 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
3377 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
3378 --
3379 -- bulk performance
3380 --
3381 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
3382
3383 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
3384 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
3385
3386 -- 4955764
3387 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3388 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
3389
3390 -- 4458381 Public Sector Enh
3391
3392 --
3393 -- set accounting attributes for the line type
3394 --
3395 l_entered_amt_idx := 28;
3396 l_accted_amt_idx := 30;
3397 l_bflow_applied_to_amt_idx := NULL; -- 5132302
3398 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
3399 l_rec_acct_attrs.array_char_value(1) := p_source_16;
3400 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
3401 l_rec_acct_attrs.array_num_value(2) := p_source_17;
3402 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
3403 l_rec_acct_attrs.array_char_value(3) := p_source_18;
3404 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
3405 l_rec_acct_attrs.array_char_value(4) := p_source_19;
3406 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
3407 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
3408 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
3409 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
3410 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
3411 l_rec_acct_attrs.array_char_value(7) := p_source_22;
3412 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
3413 l_rec_acct_attrs.array_num_value(8) := p_source_23;
3414 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
3415 l_rec_acct_attrs.array_char_value(9) := p_source_24;
3416 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
3417 l_rec_acct_attrs.array_char_value(10) := p_source_25;
3418 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
3419 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_26);
3420 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
3421 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_27);
3422 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
3423 l_rec_acct_attrs.array_char_value(13) := p_source_28;
3424 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
3425 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_29);
3426 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
3427 l_rec_acct_attrs.array_char_value(15) := p_source_6;
3428 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
3429 l_rec_acct_attrs.array_char_value(16) := p_source_30;
3430 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
3431 l_rec_acct_attrs.array_char_value(17) := p_source_31;
3432 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
3433 l_rec_acct_attrs.array_num_value(18) := p_source_32;
3434 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
3435 l_rec_acct_attrs.array_num_value(19) := p_source_33;
3436 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
3437 l_rec_acct_attrs.array_char_value(20) := p_source_34;
3438 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
3439 l_rec_acct_attrs.array_num_value(21) := p_source_35;
3440 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
3441 l_rec_acct_attrs.array_char_value(22) := p_source_36;
3442 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
3443 l_rec_acct_attrs.array_num_value(23) := p_source_37;
3444 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
3445 l_rec_acct_attrs.array_num_value(24) := p_source_33;
3446 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
3447 l_rec_acct_attrs.array_char_value(25) := p_source_34;
3448 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
3449 l_rec_acct_attrs.array_num_value(26) := p_source_35;
3450 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
3451 l_rec_acct_attrs.array_char_value(27) := p_source_38;
3452 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
3453 l_rec_acct_attrs.array_num_value(28) := p_source_33;
3454 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
3455 l_rec_acct_attrs.array_char_value(29) := p_source_34;
3456 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
3457 l_rec_acct_attrs.array_num_value(30) := p_source_35;
3458 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
3459 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_29);
3460 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
3461 l_rec_acct_attrs.array_char_value(32) := p_source_6;
3462 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
3463 l_rec_acct_attrs.array_char_value(33) := p_source_30;
3464 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
3465 l_rec_acct_attrs.array_num_value(34) := p_source_39;
3466 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
3467 l_rec_acct_attrs.array_num_value(35) := p_source_40;
3468
3469 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
3470 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
3471
3472 ---------------------------------------------------------------------------------------------------------------
3473 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
3474 ---------------------------------------------------------------------------------------------------------------
3475 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
3476
3477 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
3478 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
3479
3480 IF xla_accounting_cache_pkg.GetValueChar
3481 (p_source_code => 'LEDGER_CATEGORY_CODE'
3482 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
3483 AND l_bflow_method_code = 'PRIOR_ENTRY'
3484 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
3485 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
3486 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
3487 )
3488 THEN
3489 xla_ae_lines_pkg.BflowUpgEntry
3490 (p_business_method_code => l_bflow_method_code
3491 ,p_business_class_code => l_bflow_class_code
3492 ,p_balance_type => l_balance_type_code);
3493 ELSE
3494 NULL;
3495 XLA_AE_LINES_PKG.business_flow_validation(
3496 p_business_method_code => l_bflow_method_code
3497 ,p_business_class_code => l_bflow_class_code
3498 ,p_inherit_description_flag => l_inherit_desc_flag);
3499 END IF;
3500
3501 --
3502 -- call analytical criteria
3503 --
3504 -- Inherited Analytical Criteria for business flow method of Prior Entry.
3505 --
3506 -- call description
3507 --
3508
3509 xla_ae_lines_pkg.SetLineDescription(
3510 p_ae_header_id => l_ae_header_id
3511 ,p_description => Description_2 (
3512 p_application_id => p_application_id
3513 , p_ae_header_id => l_ae_header_id
3514 , p_source_3 => p_source_3
3515 , p_source_4 => p_source_4
3516 , p_source_5 => p_source_5
3517 , p_source_6 => p_source_6
3518 )
3519 );
3520
3521
3522 --
3523 -- call ADRs
3524 -- Bug 4922099
3525 --
3526 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
3527 (NVL(l_actual_upg_option, 'N') = 'O') OR
3528 (NVL(l_enc_upg_option, 'N') = 'O')
3529 )
3530 THEN
3531 NULL;
3532 --
3533 --
3534
3535 --
3536 --
3537 END IF;
3538 --
3539 -- Bug 4922099
3540 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
3541 (NVL(l_enc_upg_option, 'N') = 'O')
3542 ) AND
3543 (l_bflow_method_code = 'PRIOR_ENTRY')
3544 )
3545 THEN
3546 IF
3547 --
3548 1 = 1
3549 --
3550 THEN
3551 xla_accounting_err_pkg.build_message
3552 (p_appli_s_name => 'XLA'
3553 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
3554 ,p_token_1 => 'LINE_NUMBER'
3555 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
3556 ,p_token_2 => 'LINE_TYPE_NAME'
3557 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
3558 l_component_type
3559 ,l_component_code
3560 ,l_component_type_code
3561 ,l_component_appl_id
3562 ,l_amb_context_code
3563 ,l_entity_code
3564 ,l_event_class_code
3565 )
3566 ,p_token_3 => 'OWNER'
3567 ,p_value_3 => xla_lookups_pkg.get_meaning(
3568 p_lookup_type => 'XLA_OWNER_TYPE'
3569 ,p_lookup_code => l_component_type_code
3570 )
3571 ,p_token_4 => 'PRODUCT_NAME'
3572 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
3573 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
3574 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
3575 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
3576 ,p_ae_header_id => NULL
3577 );
3578
3579 IF (C_LEVEL_ERROR>= g_log_level) THEN
3580 trace
3581 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
3582 ,p_level => C_LEVEL_ERROR
3583 ,p_module => l_log_module);
3584 END IF;
3585 END IF;
3586 END IF;
3587 --
3588 --
3589 ------------------------------------------------------------------------------------------------
3590 -- 4219869 Business Flow
3591 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
3592 -- Prior Entry. Currently, the following code is always generated.
3593 ------------------------------------------------------------------------------------------------
3594 -- No ValidateCurrentLine for business flow method of Prior Entry
3595
3596 ------------------------------------------------------------------------------------
3597 -- 4219869 Business Flow
3598 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
3599 ------------------------------------------------------------------------------------
3600 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3601
3602 ----------------------------------------------------------------------------------
3603 -- 4219869 Business Flow
3604 -- Update journal entry status -- Need to generate this within IF <condition>
3605 ----------------------------------------------------------------------------------
3606 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
3607 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
3608 ,p_balance_type_code => l_balance_type_code
3609 );
3610
3611 -------------------------------------------------------------------------------------------
3612 -- 4262811 - Generate the Accrual Reversal lines
3613 -------------------------------------------------------------------------------------------
3614 BEGIN
3615 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
3616 (g_array_event(p_event_id).array_value_num('header_index'));
3617 IF l_acc_rev_flag IS NULL THEN
3618 l_acc_rev_flag := 'N';
3619 END IF;
3620 EXCEPTION
3621 WHEN OTHERS THEN
3622 l_acc_rev_flag := 'N';
3623 END;
3624 --
3625 IF (l_acc_rev_flag = 'Y') THEN
3626
3627 -- 4645092 ------------------------------------------------------------------------------
3628 -- To allow MPA report to determine if it should generate report process
3629 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
3630 ------------------------------------------------------------------------------------------
3631
3632 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
3633 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
3634
3635 --
3636 -- Update the line information that should be overwritten
3637 --
3638 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
3639 p_header_num => 1);
3640 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
3641
3642 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
3643
3644 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
3645 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
3646 END IF;
3647
3648 --
3649 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
3650 --
3651 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
3652 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
3653 ELSE
3654 ---------------------------------------------------------------------------------------------------
3655 -- 4262811a Switch Sign
3656 ---------------------------------------------------------------------------------------------------
3657 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
3658 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3659 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3660 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3661 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3662 -- 5132302
3663 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
3664 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3665
3666 END IF;
3667
3668 -- 4955764
3669 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3670 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
3671
3672
3673 XLA_AE_LINES_PKG.ValidateCurrentLine;
3674 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3675
3676 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
3677 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
3678 ,p_balance_type_code => l_balance_type_code);
3679
3680 END IF;
3681
3682 -----------------------------------------------------------------------------------------
3683 -- 4262811 Multiperiod Accounting
3684 -----------------------------------------------------------------------------------------
3685 -- No MPA option is assigned.
3686
3687
3688 END IF;
3689 END IF;
3690 --
3691
3692 --
3693 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3694 trace
3695 (p_msg => 'END of AcctLineType_12'
3696 ,p_level => C_LEVEL_PROCEDURE
3697 ,p_module => l_log_module);
3698 END IF;
3699 --
3700 EXCEPTION
3701 WHEN xla_exceptions_pkg.application_exception THEN
3702 RAISE;
3703 WHEN OTHERS THEN
3704 xla_exceptions_pkg.raise_message
3705 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_12');
3706 END AcctLineType_12;
3707 --
3708
3709 ---------------------------------------
3710 --
3711 -- PRIVATE FUNCTION
3712 -- AcctLineType_13
3713 --
3714 ---------------------------------------
3715 PROCEDURE AcctLineType_13 (
3716 p_application_id IN NUMBER
3717 ,p_event_id IN NUMBER
3718 ,p_calculate_acctd_flag IN VARCHAR2
3719 ,p_calculate_g_l_flag IN VARCHAR2
3720 ,p_actual_flag IN OUT VARCHAR2
3721 ,p_balance_type_code OUT VARCHAR2
3722 ,p_gain_or_loss_ref OUT VARCHAR2
3723
3724 --Project Name
3725 , p_source_3 IN VARCHAR2
3726 --Task Name
3727 , p_source_4 IN VARCHAR2
3728 --Project Expenditure Organization Identifier
3729 , p_source_5 IN NUMBER
3730 --Expenditure Type
3731 , p_source_6 IN VARCHAR2
3732 --Document Type
3733 , p_source_9 IN VARCHAR2
3734 --Main Or Backing Code
3735 , p_source_13 IN VARCHAR2
3736 --Burden Record Identifier
3737 , p_source_14 IN VARCHAR2
3738 , p_source_14_meaning IN VARCHAR2
3739 --Burden Amount Display Method
3740 , p_source_15 IN VARCHAR2
3741 --Accounting Reversal Flag
3742 , p_source_16 IN VARCHAR2
3743 --Allocated to Application Identifier
3744 , p_source_17 IN NUMBER
3745 --Allocated to Distribution Type
3746 , p_source_18 IN VARCHAR2
3747 --Allocated to Entity Code
3748 , p_source_19 IN VARCHAR2
3749 --Allocated to First Distribution Identifier
3750 , p_source_20 IN NUMBER
3751 --Allocated to First System Transaction Identifier
3752 , p_source_21 IN NUMBER
3753 --Purchase Order Burden Applied to Application Identifier
3754 , p_source_23 IN NUMBER
3755 --PO Distribution Type
3756 , p_source_24 IN VARCHAR2
3757 --Purchase Order Burden Applied to Entity Code
3758 , p_source_25 IN VARCHAR2
3759 --Purchase Order Burden Applied to First Distribution Identifier
3760 , p_source_26 IN NUMBER
3761 --Purchase Order Burden Applied to First System Transaction Identifier
3762 , p_source_27 IN NUMBER
3763 --Purchase Order Burden Applied to Second Distribution Identifier
3764 , p_source_28 IN VARCHAR2
3765 --PO Distribution Identifier
3766 , p_source_29 IN NUMBER
3767 --Line Type Name
3768 , p_source_30 IN VARCHAR2
3769 --Encumbrance Upgrade Credit Accounting Class
3770 , p_source_31 IN VARCHAR2
3771 --Encumbrance Upgrade Credit Account
3772 , p_source_32 IN NUMBER
3773 --Entered Amount
3774 , p_source_33 IN NUMBER
3775 --Currency Code
3776 , p_source_34 IN VARCHAR2
3777 --Accounted Amount
3778 , p_source_35 IN NUMBER
3779 --Encumbrance Upgrade Debit Accounting Class
3780 , p_source_36 IN VARCHAR2
3781 --Encumbrance Upgrade Debit Account
3782 , p_source_37 IN NUMBER
3783 --Use Encumbrances Upgrade Attributes Flag
3784 , p_source_38 IN VARCHAR2
3785 --Encumbrance Upgrade Credit Encumbrance Type
3786 , p_source_39 IN NUMBER
3787 --Encumbrance Upgrade Debit Encumbrance Type
3788 , p_source_40 IN NUMBER
3789 )
3790 IS
3791
3792 l_component_type VARCHAR2(80);
3793 l_component_code VARCHAR2(30);
3794 l_component_type_code VARCHAR2(1);
3795 l_component_appl_id INTEGER;
3796 l_amb_context_code VARCHAR2(30);
3797 l_entity_code VARCHAR2(30);
3798 l_event_class_code VARCHAR2(30);
3799 l_ae_header_id NUMBER;
3800 l_event_type_code VARCHAR2(30);
3801 l_line_definition_code VARCHAR2(30);
3802 l_line_definition_owner_code VARCHAR2(1);
3803 --
3804 -- adr variables
3805 l_segment VARCHAR2(30);
3806 l_ccid NUMBER;
3807 l_adr_transaction_coa_id NUMBER;
3808 l_adr_accounting_coa_id NUMBER;
3809 l_adr_flexfield_segment_code VARCHAR2(30);
3810 l_adr_flex_value_set_id NUMBER;
3811 l_adr_value_type_code VARCHAR2(30);
3812 l_adr_value_combination_id NUMBER;
3813 l_adr_value_segment_code VARCHAR2(30);
3814
3815 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
3816 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
3817 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
3818 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
3819
3820 -- 4262811 Variables ------------------------------------------------------------------------------------------
3821 l_entered_amt_idx NUMBER;
3822 l_accted_amt_idx NUMBER;
3823 l_acc_rev_flag VARCHAR2(1);
3824 l_accrual_line_num NUMBER;
3825 l_tmp_amt NUMBER;
3826 l_acc_rev_natural_side_code VARCHAR2(1);
3827
3828 l_num_entries NUMBER;
3829 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
3830 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
3831 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
3832 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
3833 l_recog_line_1 NUMBER;
3834 l_recog_line_2 NUMBER;
3835
3836 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
3837 l_bflow_applied_to_amt NUMBER; -- 5132302
3838 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
3839
3840 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
3841
3842 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
3843 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
3844
3845 ---------------------------------------------------------------------------------------------------------------
3846
3847
3848 --
3849 -- bulk performance
3850 --
3851 l_balance_type_code VARCHAR2(1);
3852 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
3853 l_log_module VARCHAR2(240);
3854
3855 --
3856 -- Upgrade strategy
3857 --
3858 l_actual_upg_option VARCHAR2(1);
3859 l_enc_upg_option VARCHAR2(1);
3860
3861 --
3862 BEGIN
3863 --
3864 IF g_log_enabled THEN
3865 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_13';
3866 END IF;
3867 --
3868 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3869
3870 trace
3871 (p_msg => 'BEGIN of AcctLineType_13'
3872 ,p_level => C_LEVEL_PROCEDURE
3873 ,p_module => l_log_module);
3874
3875 END IF;
3876 --
3877 l_component_type := 'AMB_JLT';
3878 l_component_code := 'CANCEL_BURDEN_PO_ENC';
3879 l_component_type_code := 'S';
3880 l_component_appl_id := 201;
3881 l_amb_context_code := 'DEFAULT';
3882 l_entity_code := 'PURCHASE_ORDER';
3883 l_event_class_code := 'PO_BURDEN';
3884 l_event_type_code := 'PO_BURDEN_ALL';
3885 l_line_definition_owner_code := 'S';
3886 l_line_definition_code := 'PO_BURDEN_ENC_ALL';
3887 --
3888 l_balance_type_code := 'E';
3889 l_segment := NULL;
3890 l_ccid := NULL;
3891 l_adr_transaction_coa_id := NULL;
3892 l_adr_accounting_coa_id := NULL;
3893 l_adr_flexfield_segment_code := NULL;
3894 l_adr_flex_value_set_id := NULL;
3895 l_adr_value_type_code := NULL;
3896 l_adr_value_combination_id := NULL;
3897 l_adr_value_segment_code := NULL;
3898
3899 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
3900 l_bflow_class_code := 'PO_PA_BURDEN_ENC'; -- 4219869 Business Flow
3901 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
3902 l_budgetary_control_flag := 'Y';
3903
3904 l_bflow_applied_to_amt_idx := NULL; -- 5132302
3905 l_bflow_applied_to_amt := NULL; -- 5132302
3906 l_entered_amt_idx := NULL; -- 4262811
3907 l_accted_amt_idx := NULL; -- 4262811
3908 l_acc_rev_flag := NULL; -- 4262811
3909 l_accrual_line_num := NULL; -- 4262811
3910 l_tmp_amt := NULL; -- 4262811
3911 --
3912
3913 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
3914 l_balance_type_code <> 'B' THEN
3915 IF (NVL(
3916 xla_ae_sources_pkg.GetSystemSourceChar(
3917 p_source_code => 'XLA_EVENT_TYPE_CODE'
3918 , p_source_type_code => 'Y'
3919 , p_source_application_id => 602
3920 ),'
3921 ') = 'PO_BURDEN_CANCELLED' OR
3922 NVL(
3923 xla_ae_sources_pkg.GetSystemSourceChar(
3924 p_source_code => 'XLA_EVENT_TYPE_CODE'
3925 , p_source_type_code => 'Y'
3926 , p_source_application_id => 602
3927 ),'
3928 ') = 'PO_BURDEN_CR_MEMO_CANCELLED') AND
3929 NVL(p_source_13,'
3930 ') = 'M' AND
3931 NVL(p_source_14,'
3932 ') = 'O' AND
3933 NVL(p_source_9,'
3934 ') = 'PO' AND
3935 NVL(p_source_15,'
3936 ') = 'D'
3937 THEN
3938
3939 --
3940 XLA_AE_LINES_PKG.SetNewLine;
3941
3942 p_balance_type_code := l_balance_type_code;
3943 -- set the flag so later we will know whether the gain loss line needs to be created
3944
3945 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
3946 p_actual_flag :='A';
3947 END IF;
3948
3949 --
3950 -- bulk performance
3951 --
3952 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
3953 p_header_num => 0); -- 4262811
3954 --
3955 -- set accounting line options
3956 --
3957 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
3958 p_natural_side_code => 'D'
3959 , p_gain_or_loss_flag => 'N'
3960 , p_gl_transfer_mode_code => 'S'
3961 , p_acct_entry_type_code => 'E'
3962 , p_switch_side_flag => 'N'
3963 , p_merge_duplicate_code => 'N'
3964 );
3965 --
3966 l_acc_rev_natural_side_code := 'C'; -- 4262811
3967 --
3968 --
3969 -- set accounting line type info
3970 --
3971 xla_ae_lines_pkg.SetAcctLineType
3972 (p_component_type => l_component_type
3973 ,p_event_type_code => l_event_type_code
3974 ,p_line_definition_owner_code => l_line_definition_owner_code
3975 ,p_line_definition_code => l_line_definition_code
3976 ,p_accounting_line_code => l_component_code
3977 ,p_accounting_line_type_code => l_component_type_code
3978 ,p_accounting_line_appl_id => l_component_appl_id
3979 ,p_amb_context_code => l_amb_context_code
3980 ,p_entity_code => l_entity_code
3981 ,p_event_class_code => l_event_class_code);
3982 --
3983 -- set accounting class
3984 --
3985 xla_ae_lines_pkg.SetAcctClass(
3986 p_accounting_class_code => 'PO_PA_BURDEN'
3987 , p_ae_header_id => l_ae_header_id
3988 );
3989
3990 --
3991 -- set rounding class
3992 --
3993 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
3994 'PO_PA_BURDEN';
3995
3996 --
3997 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
3998 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
3999 --
4000 -- bulk performance
4001 --
4002 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
4003
4004 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
4005 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
4006
4007 -- 4955764
4008 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4009 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
4010
4011 -- 4458381 Public Sector Enh
4012
4013 --
4014 -- set accounting attributes for the line type
4015 --
4016 l_entered_amt_idx := 27;
4017 l_accted_amt_idx := 29;
4018 l_bflow_applied_to_amt_idx := NULL; -- 5132302
4019 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
4020 l_rec_acct_attrs.array_char_value(1) := p_source_16;
4021 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
4022 l_rec_acct_attrs.array_num_value(2) := p_source_17;
4023 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
4024 l_rec_acct_attrs.array_char_value(3) := p_source_18;
4025 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
4026 l_rec_acct_attrs.array_char_value(4) := p_source_19;
4027 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
4028 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
4029 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
4030 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
4031 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
4032 l_rec_acct_attrs.array_num_value(7) := p_source_23;
4033 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
4034 l_rec_acct_attrs.array_char_value(8) := p_source_24;
4035 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
4036 l_rec_acct_attrs.array_char_value(9) := p_source_25;
4037 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
4038 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_26);
4039 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
4040 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_27);
4041 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
4042 l_rec_acct_attrs.array_char_value(12) := p_source_28;
4043 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
4044 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_29);
4045 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
4046 l_rec_acct_attrs.array_char_value(14) := p_source_6;
4047 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
4048 l_rec_acct_attrs.array_char_value(15) := p_source_30;
4049 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
4050 l_rec_acct_attrs.array_char_value(16) := p_source_31;
4051 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
4052 l_rec_acct_attrs.array_num_value(17) := p_source_32;
4053 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
4054 l_rec_acct_attrs.array_num_value(18) := p_source_33;
4055 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
4056 l_rec_acct_attrs.array_char_value(19) := p_source_34;
4057 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
4058 l_rec_acct_attrs.array_num_value(20) := p_source_35;
4059 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
4060 l_rec_acct_attrs.array_char_value(21) := p_source_36;
4061 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
4062 l_rec_acct_attrs.array_num_value(22) := p_source_37;
4063 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
4064 l_rec_acct_attrs.array_num_value(23) := p_source_33;
4065 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
4066 l_rec_acct_attrs.array_char_value(24) := p_source_34;
4067 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
4068 l_rec_acct_attrs.array_num_value(25) := p_source_35;
4069 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
4070 l_rec_acct_attrs.array_char_value(26) := p_source_38;
4071 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
4072 l_rec_acct_attrs.array_num_value(27) := p_source_33;
4073 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
4074 l_rec_acct_attrs.array_char_value(28) := p_source_34;
4075 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
4076 l_rec_acct_attrs.array_num_value(29) := p_source_35;
4077 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
4078 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_29);
4079 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
4080 l_rec_acct_attrs.array_char_value(31) := p_source_6;
4081 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
4082 l_rec_acct_attrs.array_char_value(32) := p_source_30;
4083 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
4084 l_rec_acct_attrs.array_num_value(33) := p_source_39;
4085 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
4086 l_rec_acct_attrs.array_num_value(34) := p_source_40;
4087
4088 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
4089 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
4090
4091 ---------------------------------------------------------------------------------------------------------------
4092 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
4093 ---------------------------------------------------------------------------------------------------------------
4094 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
4095
4096 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4097 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4098
4099 IF xla_accounting_cache_pkg.GetValueChar
4100 (p_source_code => 'LEDGER_CATEGORY_CODE'
4101 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
4102 AND l_bflow_method_code = 'PRIOR_ENTRY'
4103 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
4104 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
4105 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
4106 )
4107 THEN
4108 xla_ae_lines_pkg.BflowUpgEntry
4109 (p_business_method_code => l_bflow_method_code
4110 ,p_business_class_code => l_bflow_class_code
4111 ,p_balance_type => l_balance_type_code);
4112 ELSE
4113 NULL;
4114 XLA_AE_LINES_PKG.business_flow_validation(
4115 p_business_method_code => l_bflow_method_code
4116 ,p_business_class_code => l_bflow_class_code
4117 ,p_inherit_description_flag => l_inherit_desc_flag);
4118 END IF;
4119
4120 --
4121 -- call analytical criteria
4122 --
4123 -- Inherited Analytical Criteria for business flow method of Prior Entry.
4124 --
4125 -- call description
4126 --
4127
4128 xla_ae_lines_pkg.SetLineDescription(
4129 p_ae_header_id => l_ae_header_id
4130 ,p_description => Description_2 (
4131 p_application_id => p_application_id
4132 , p_ae_header_id => l_ae_header_id
4133 , p_source_3 => p_source_3
4134 , p_source_4 => p_source_4
4135 , p_source_5 => p_source_5
4136 , p_source_6 => p_source_6
4137 )
4138 );
4139
4140
4141 --
4142 -- call ADRs
4143 -- Bug 4922099
4144 --
4145 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
4146 (NVL(l_actual_upg_option, 'N') = 'O') OR
4147 (NVL(l_enc_upg_option, 'N') = 'O')
4148 )
4149 THEN
4150 NULL;
4151 --
4152 --
4153
4154 --
4155 --
4156 END IF;
4157 --
4158 -- Bug 4922099
4159 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
4160 (NVL(l_enc_upg_option, 'N') = 'O')
4161 ) AND
4162 (l_bflow_method_code = 'PRIOR_ENTRY')
4163 )
4164 THEN
4165 IF
4166 --
4167 1 = 1
4168 --
4169 THEN
4170 xla_accounting_err_pkg.build_message
4171 (p_appli_s_name => 'XLA'
4172 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4173 ,p_token_1 => 'LINE_NUMBER'
4174 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
4175 ,p_token_2 => 'LINE_TYPE_NAME'
4176 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
4177 l_component_type
4178 ,l_component_code
4179 ,l_component_type_code
4180 ,l_component_appl_id
4181 ,l_amb_context_code
4182 ,l_entity_code
4183 ,l_event_class_code
4184 )
4185 ,p_token_3 => 'OWNER'
4186 ,p_value_3 => xla_lookups_pkg.get_meaning(
4187 p_lookup_type => 'XLA_OWNER_TYPE'
4188 ,p_lookup_code => l_component_type_code
4189 )
4190 ,p_token_4 => 'PRODUCT_NAME'
4191 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
4192 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
4193 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
4194 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
4195 ,p_ae_header_id => NULL
4196 );
4197
4198 IF (C_LEVEL_ERROR>= g_log_level) THEN
4199 trace
4200 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4201 ,p_level => C_LEVEL_ERROR
4202 ,p_module => l_log_module);
4203 END IF;
4204 END IF;
4205 END IF;
4206 --
4207 --
4208 ------------------------------------------------------------------------------------------------
4209 -- 4219869 Business Flow
4210 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
4211 -- Prior Entry. Currently, the following code is always generated.
4212 ------------------------------------------------------------------------------------------------
4213 -- No ValidateCurrentLine for business flow method of Prior Entry
4214
4215 ------------------------------------------------------------------------------------
4216 -- 4219869 Business Flow
4217 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
4218 ------------------------------------------------------------------------------------
4219 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4220
4221 ----------------------------------------------------------------------------------
4222 -- 4219869 Business Flow
4223 -- Update journal entry status -- Need to generate this within IF <condition>
4224 ----------------------------------------------------------------------------------
4225 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4226 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
4227 ,p_balance_type_code => l_balance_type_code
4228 );
4229
4230 -------------------------------------------------------------------------------------------
4231 -- 4262811 - Generate the Accrual Reversal lines
4232 -------------------------------------------------------------------------------------------
4233 BEGIN
4234 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
4235 (g_array_event(p_event_id).array_value_num('header_index'));
4236 IF l_acc_rev_flag IS NULL THEN
4237 l_acc_rev_flag := 'N';
4238 END IF;
4239 EXCEPTION
4240 WHEN OTHERS THEN
4241 l_acc_rev_flag := 'N';
4242 END;
4243 --
4244 IF (l_acc_rev_flag = 'Y') THEN
4245
4246 -- 4645092 ------------------------------------------------------------------------------
4247 -- To allow MPA report to determine if it should generate report process
4248 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
4249 ------------------------------------------------------------------------------------------
4250
4251 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
4252 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
4253
4254 --
4255 -- Update the line information that should be overwritten
4256 --
4257 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
4258 p_header_num => 1);
4259 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
4260
4261 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
4262
4263 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
4264 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
4265 END IF;
4266
4267 --
4268 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
4269 --
4270 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
4271 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
4272 ELSE
4273 ---------------------------------------------------------------------------------------------------
4274 -- 4262811a Switch Sign
4275 ---------------------------------------------------------------------------------------------------
4276 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
4277 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4278 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4279 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4280 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4281 -- 5132302
4282 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
4283 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4284
4285 END IF;
4286
4287 -- 4955764
4288 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4289 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
4290
4291
4292 XLA_AE_LINES_PKG.ValidateCurrentLine;
4293 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4294
4295 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4296 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
4297 ,p_balance_type_code => l_balance_type_code);
4298
4299 END IF;
4300
4301 -----------------------------------------------------------------------------------------
4302 -- 4262811 Multiperiod Accounting
4303 -----------------------------------------------------------------------------------------
4304 -- No MPA option is assigned.
4305
4306
4307 END IF;
4308 END IF;
4309 --
4310
4311 --
4312 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4313 trace
4314 (p_msg => 'END of AcctLineType_13'
4315 ,p_level => C_LEVEL_PROCEDURE
4316 ,p_module => l_log_module);
4317 END IF;
4318 --
4319 EXCEPTION
4320 WHEN xla_exceptions_pkg.application_exception THEN
4321 RAISE;
4322 WHEN OTHERS THEN
4323 xla_exceptions_pkg.raise_message
4324 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_13');
4325 END AcctLineType_13;
4326 --
4327
4328 ---------------------------------------
4329 --
4330 -- PRIVATE FUNCTION
4331 -- AcctLineType_14
4332 --
4333 ---------------------------------------
4334 PROCEDURE AcctLineType_14 (
4335 p_application_id IN NUMBER
4336 ,p_event_id IN NUMBER
4337 ,p_calculate_acctd_flag IN VARCHAR2
4338 ,p_calculate_g_l_flag IN VARCHAR2
4339 ,p_actual_flag IN OUT VARCHAR2
4340 ,p_balance_type_code OUT VARCHAR2
4341 ,p_gain_or_loss_ref OUT VARCHAR2
4342
4343 --Project Name
4344 , p_source_3 IN VARCHAR2
4345 --Task Name
4346 , p_source_4 IN VARCHAR2
4347 --Project Expenditure Organization Identifier
4348 , p_source_5 IN NUMBER
4349 --Expenditure Type
4350 , p_source_6 IN VARCHAR2
4351 --Main Or Backing Code
4352 , p_source_13 IN VARCHAR2
4353 --Burden Record Identifier
4354 , p_source_14 IN VARCHAR2
4355 , p_source_14_meaning IN VARCHAR2
4356 --Burden Amount Display Method
4357 , p_source_15 IN VARCHAR2
4358 --Accounting Reversal Flag
4359 , p_source_16 IN VARCHAR2
4360 --Allocated to Application Identifier
4361 , p_source_17 IN NUMBER
4362 --Allocated to Distribution Type
4363 , p_source_18 IN VARCHAR2
4364 --Allocated to Entity Code
4365 , p_source_19 IN VARCHAR2
4366 --Allocated to First Distribution Identifier
4367 , p_source_20 IN NUMBER
4368 --Allocated to First System Transaction Identifier
4369 , p_source_21 IN NUMBER
4370 --Allocated to Second Distribution Identifier
4371 , p_source_22 IN VARCHAR2
4372 --Line Type Name
4373 , p_source_30 IN VARCHAR2
4374 --Encumbrance Upgrade Credit Accounting Class
4375 , p_source_31 IN VARCHAR2
4376 --Encumbrance Upgrade Credit Account
4377 , p_source_32 IN NUMBER
4378 --Entered Amount
4379 , p_source_33 IN NUMBER
4380 --Currency Code
4381 , p_source_34 IN VARCHAR2
4382 --Accounted Amount
4383 , p_source_35 IN NUMBER
4384 --Encumbrance Upgrade Debit Accounting Class
4385 , p_source_36 IN VARCHAR2
4386 --Encumbrance Upgrade Debit Account
4387 , p_source_37 IN NUMBER
4388 --Use Encumbrances Upgrade Attributes Flag
4389 , p_source_38 IN VARCHAR2
4390 --Encumbrance Upgrade Credit Encumbrance Type
4391 , p_source_39 IN NUMBER
4392 --Encumbrance Upgrade Debit Encumbrance Type
4393 , p_source_40 IN NUMBER
4394 --Requisition Burden Applied to Application Identifier
4395 , p_source_41 IN NUMBER
4396 --Requisition Distribution Type
4397 , p_source_42 IN VARCHAR2
4398 --Requisition Burden Applied to Entity Code
4399 , p_source_43 IN VARCHAR2
4400 --Requisition Burden Applied to First Distribution Identifier
4401 , p_source_44 IN NUMBER
4402 --Requisition Burden Applied to First System Transaction Identifier
4403 , p_source_45 IN NUMBER
4404 --Requisition Burden Applied to Second Distribution Identifier
4405 , p_source_46 IN VARCHAR2
4406 --Requisition Distribution Identifier
4407 , p_source_47 IN NUMBER
4408 )
4409 IS
4410
4411 l_component_type VARCHAR2(80);
4412 l_component_code VARCHAR2(30);
4413 l_component_type_code VARCHAR2(1);
4414 l_component_appl_id INTEGER;
4415 l_amb_context_code VARCHAR2(30);
4416 l_entity_code VARCHAR2(30);
4417 l_event_class_code VARCHAR2(30);
4418 l_ae_header_id NUMBER;
4419 l_event_type_code VARCHAR2(30);
4420 l_line_definition_code VARCHAR2(30);
4421 l_line_definition_owner_code VARCHAR2(1);
4422 --
4423 -- adr variables
4424 l_segment VARCHAR2(30);
4425 l_ccid NUMBER;
4426 l_adr_transaction_coa_id NUMBER;
4427 l_adr_accounting_coa_id NUMBER;
4428 l_adr_flexfield_segment_code VARCHAR2(30);
4429 l_adr_flex_value_set_id NUMBER;
4430 l_adr_value_type_code VARCHAR2(30);
4431 l_adr_value_combination_id NUMBER;
4432 l_adr_value_segment_code VARCHAR2(30);
4433
4434 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
4435 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
4436 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
4437 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
4438
4439 -- 4262811 Variables ------------------------------------------------------------------------------------------
4440 l_entered_amt_idx NUMBER;
4441 l_accted_amt_idx NUMBER;
4442 l_acc_rev_flag VARCHAR2(1);
4443 l_accrual_line_num NUMBER;
4444 l_tmp_amt NUMBER;
4445 l_acc_rev_natural_side_code VARCHAR2(1);
4446
4447 l_num_entries NUMBER;
4448 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
4449 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
4450 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
4451 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
4452 l_recog_line_1 NUMBER;
4453 l_recog_line_2 NUMBER;
4454
4455 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
4456 l_bflow_applied_to_amt NUMBER; -- 5132302
4457 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
4458
4459 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
4460
4461 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
4462 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
4463
4464 ---------------------------------------------------------------------------------------------------------------
4465
4466
4467 --
4468 -- bulk performance
4469 --
4470 l_balance_type_code VARCHAR2(1);
4471 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
4472 l_log_module VARCHAR2(240);
4473
4474 --
4475 -- Upgrade strategy
4476 --
4477 l_actual_upg_option VARCHAR2(1);
4478 l_enc_upg_option VARCHAR2(1);
4479
4480 --
4481 BEGIN
4482 --
4483 IF g_log_enabled THEN
4484 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_14';
4485 END IF;
4486 --
4487 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4488
4489 trace
4490 (p_msg => 'BEGIN of AcctLineType_14'
4491 ,p_level => C_LEVEL_PROCEDURE
4492 ,p_module => l_log_module);
4493
4494 END IF;
4495 --
4496 l_component_type := 'AMB_JLT';
4497 l_component_code := 'CANCEL_BURDEN_REQ_ENC';
4498 l_component_type_code := 'S';
4499 l_component_appl_id := 201;
4500 l_amb_context_code := 'DEFAULT';
4501 l_entity_code := 'REQUISITION';
4502 l_event_class_code := 'REQUISITION_BURDEN';
4503 l_event_type_code := 'REQUISITION_BURDEN_ALL';
4504 l_line_definition_owner_code := 'S';
4505 l_line_definition_code := 'REQ_BURDEN_ENC_ALL';
4506 --
4507 l_balance_type_code := 'E';
4508 l_segment := NULL;
4509 l_ccid := NULL;
4510 l_adr_transaction_coa_id := NULL;
4511 l_adr_accounting_coa_id := NULL;
4512 l_adr_flexfield_segment_code := NULL;
4513 l_adr_flex_value_set_id := NULL;
4514 l_adr_value_type_code := NULL;
4515 l_adr_value_combination_id := NULL;
4516 l_adr_value_segment_code := NULL;
4517
4518 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
4519 l_bflow_class_code := 'REQ_PA_BURDEN_ENC'; -- 4219869 Business Flow
4520 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
4521 l_budgetary_control_flag := 'Y';
4522
4523 l_bflow_applied_to_amt_idx := NULL; -- 5132302
4524 l_bflow_applied_to_amt := NULL; -- 5132302
4525 l_entered_amt_idx := NULL; -- 4262811
4526 l_accted_amt_idx := NULL; -- 4262811
4527 l_acc_rev_flag := NULL; -- 4262811
4528 l_accrual_line_num := NULL; -- 4262811
4529 l_tmp_amt := NULL; -- 4262811
4530 --
4531
4532 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
4533 l_balance_type_code <> 'B' THEN
4534 IF NVL(
4535 xla_ae_sources_pkg.GetSystemSourceChar(
4536 p_source_code => 'XLA_EVENT_TYPE_CODE'
4537 , p_source_type_code => 'Y'
4538 , p_source_application_id => 602
4539 ),'
4540 ') = 'REQ_BURDEN_CANCELLED' AND
4541 NVL(p_source_13,'
4542 ') = 'M' AND
4543 NVL(p_source_14,'
4544 ') = 'O' AND
4545 NVL(p_source_15,'
4546 ') = 'D'
4547 THEN
4548
4549 --
4550 XLA_AE_LINES_PKG.SetNewLine;
4551
4552 p_balance_type_code := l_balance_type_code;
4553 -- set the flag so later we will know whether the gain loss line needs to be created
4554
4555 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
4556 p_actual_flag :='A';
4557 END IF;
4558
4559 --
4560 -- bulk performance
4561 --
4562 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
4563 p_header_num => 0); -- 4262811
4564 --
4565 -- set accounting line options
4566 --
4567 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
4568 p_natural_side_code => 'D'
4569 , p_gain_or_loss_flag => 'N'
4570 , p_gl_transfer_mode_code => 'S'
4571 , p_acct_entry_type_code => 'E'
4572 , p_switch_side_flag => 'N'
4573 , p_merge_duplicate_code => 'N'
4574 );
4575 --
4576 l_acc_rev_natural_side_code := 'C'; -- 4262811
4577 --
4578 --
4579 -- set accounting line type info
4580 --
4581 xla_ae_lines_pkg.SetAcctLineType
4582 (p_component_type => l_component_type
4583 ,p_event_type_code => l_event_type_code
4584 ,p_line_definition_owner_code => l_line_definition_owner_code
4585 ,p_line_definition_code => l_line_definition_code
4586 ,p_accounting_line_code => l_component_code
4587 ,p_accounting_line_type_code => l_component_type_code
4588 ,p_accounting_line_appl_id => l_component_appl_id
4589 ,p_amb_context_code => l_amb_context_code
4590 ,p_entity_code => l_entity_code
4591 ,p_event_class_code => l_event_class_code);
4592 --
4593 -- set accounting class
4594 --
4595 xla_ae_lines_pkg.SetAcctClass(
4596 p_accounting_class_code => 'REQ_PA_BURDEN'
4597 , p_ae_header_id => l_ae_header_id
4598 );
4599
4600 --
4601 -- set rounding class
4602 --
4603 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
4604 'REQ_PA_BURDEN';
4605
4606 --
4607 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
4608 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
4609 --
4610 -- bulk performance
4611 --
4612 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
4613
4614 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
4615 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
4616
4617 -- 4955764
4618 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4619 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
4620
4621 -- 4458381 Public Sector Enh
4622
4623 --
4624 -- set accounting attributes for the line type
4625 --
4626 l_entered_amt_idx := 28;
4627 l_accted_amt_idx := 30;
4628 l_bflow_applied_to_amt_idx := NULL; -- 5132302
4629 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
4630 l_rec_acct_attrs.array_char_value(1) := p_source_16;
4631 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
4632 l_rec_acct_attrs.array_num_value(2) := p_source_17;
4633 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
4634 l_rec_acct_attrs.array_char_value(3) := p_source_18;
4635 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
4636 l_rec_acct_attrs.array_char_value(4) := p_source_19;
4637 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
4638 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
4639 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
4640 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
4641 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
4642 l_rec_acct_attrs.array_char_value(7) := p_source_22;
4643 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
4644 l_rec_acct_attrs.array_num_value(8) := p_source_41;
4645 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
4646 l_rec_acct_attrs.array_char_value(9) := p_source_42;
4647 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
4648 l_rec_acct_attrs.array_char_value(10) := p_source_43;
4649 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
4650 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_44);
4651 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
4652 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_45);
4653 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
4654 l_rec_acct_attrs.array_char_value(13) := p_source_46;
4655 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
4656 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_47);
4657 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
4658 l_rec_acct_attrs.array_char_value(15) := p_source_6;
4659 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
4660 l_rec_acct_attrs.array_char_value(16) := p_source_30;
4661 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
4662 l_rec_acct_attrs.array_char_value(17) := p_source_31;
4663 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
4664 l_rec_acct_attrs.array_num_value(18) := p_source_32;
4665 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
4666 l_rec_acct_attrs.array_num_value(19) := p_source_33;
4667 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
4668 l_rec_acct_attrs.array_char_value(20) := p_source_34;
4669 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
4670 l_rec_acct_attrs.array_num_value(21) := p_source_35;
4671 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
4672 l_rec_acct_attrs.array_char_value(22) := p_source_36;
4673 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
4674 l_rec_acct_attrs.array_num_value(23) := p_source_37;
4675 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
4676 l_rec_acct_attrs.array_num_value(24) := p_source_33;
4677 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
4678 l_rec_acct_attrs.array_char_value(25) := p_source_34;
4679 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
4680 l_rec_acct_attrs.array_num_value(26) := p_source_35;
4681 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
4682 l_rec_acct_attrs.array_char_value(27) := p_source_38;
4683 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
4684 l_rec_acct_attrs.array_num_value(28) := p_source_33;
4685 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
4686 l_rec_acct_attrs.array_char_value(29) := p_source_34;
4687 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
4688 l_rec_acct_attrs.array_num_value(30) := p_source_35;
4689 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
4690 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_47);
4691 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
4692 l_rec_acct_attrs.array_char_value(32) := p_source_6;
4693 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
4694 l_rec_acct_attrs.array_char_value(33) := p_source_30;
4695 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
4696 l_rec_acct_attrs.array_num_value(34) := p_source_39;
4697 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
4698 l_rec_acct_attrs.array_num_value(35) := p_source_40;
4699
4700 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
4701 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
4702
4703 ---------------------------------------------------------------------------------------------------------------
4704 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
4705 ---------------------------------------------------------------------------------------------------------------
4706 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
4707
4708 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4709 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4710
4711 IF xla_accounting_cache_pkg.GetValueChar
4712 (p_source_code => 'LEDGER_CATEGORY_CODE'
4713 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
4714 AND l_bflow_method_code = 'PRIOR_ENTRY'
4715 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
4716 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
4717 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
4718 )
4719 THEN
4720 xla_ae_lines_pkg.BflowUpgEntry
4721 (p_business_method_code => l_bflow_method_code
4722 ,p_business_class_code => l_bflow_class_code
4723 ,p_balance_type => l_balance_type_code);
4724 ELSE
4725 NULL;
4726 XLA_AE_LINES_PKG.business_flow_validation(
4727 p_business_method_code => l_bflow_method_code
4728 ,p_business_class_code => l_bflow_class_code
4729 ,p_inherit_description_flag => l_inherit_desc_flag);
4730 END IF;
4731
4732 --
4733 -- call analytical criteria
4734 --
4735 -- Inherited Analytical Criteria for business flow method of Prior Entry.
4736 --
4737 -- call description
4738 --
4739
4740 xla_ae_lines_pkg.SetLineDescription(
4741 p_ae_header_id => l_ae_header_id
4742 ,p_description => Description_2 (
4743 p_application_id => p_application_id
4744 , p_ae_header_id => l_ae_header_id
4745 , p_source_3 => p_source_3
4746 , p_source_4 => p_source_4
4747 , p_source_5 => p_source_5
4748 , p_source_6 => p_source_6
4749 )
4750 );
4751
4752
4753 --
4754 -- call ADRs
4755 -- Bug 4922099
4756 --
4757 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
4758 (NVL(l_actual_upg_option, 'N') = 'O') OR
4759 (NVL(l_enc_upg_option, 'N') = 'O')
4760 )
4761 THEN
4762 NULL;
4763 --
4764 --
4765
4766 --
4767 --
4768 END IF;
4769 --
4770 -- Bug 4922099
4771 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
4772 (NVL(l_enc_upg_option, 'N') = 'O')
4773 ) AND
4774 (l_bflow_method_code = 'PRIOR_ENTRY')
4775 )
4776 THEN
4777 IF
4778 --
4779 1 = 1
4780 --
4781 THEN
4782 xla_accounting_err_pkg.build_message
4783 (p_appli_s_name => 'XLA'
4784 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4785 ,p_token_1 => 'LINE_NUMBER'
4786 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
4787 ,p_token_2 => 'LINE_TYPE_NAME'
4788 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
4789 l_component_type
4790 ,l_component_code
4791 ,l_component_type_code
4792 ,l_component_appl_id
4793 ,l_amb_context_code
4794 ,l_entity_code
4795 ,l_event_class_code
4796 )
4797 ,p_token_3 => 'OWNER'
4798 ,p_value_3 => xla_lookups_pkg.get_meaning(
4799 p_lookup_type => 'XLA_OWNER_TYPE'
4800 ,p_lookup_code => l_component_type_code
4801 )
4802 ,p_token_4 => 'PRODUCT_NAME'
4803 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
4804 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
4805 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
4806 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
4807 ,p_ae_header_id => NULL
4808 );
4809
4810 IF (C_LEVEL_ERROR>= g_log_level) THEN
4811 trace
4812 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4813 ,p_level => C_LEVEL_ERROR
4814 ,p_module => l_log_module);
4815 END IF;
4816 END IF;
4817 END IF;
4818 --
4819 --
4820 ------------------------------------------------------------------------------------------------
4821 -- 4219869 Business Flow
4822 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
4823 -- Prior Entry. Currently, the following code is always generated.
4824 ------------------------------------------------------------------------------------------------
4825 -- No ValidateCurrentLine for business flow method of Prior Entry
4826
4827 ------------------------------------------------------------------------------------
4828 -- 4219869 Business Flow
4829 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
4830 ------------------------------------------------------------------------------------
4831 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4832
4833 ----------------------------------------------------------------------------------
4834 -- 4219869 Business Flow
4835 -- Update journal entry status -- Need to generate this within IF <condition>
4836 ----------------------------------------------------------------------------------
4837 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4838 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
4839 ,p_balance_type_code => l_balance_type_code
4840 );
4841
4842 -------------------------------------------------------------------------------------------
4843 -- 4262811 - Generate the Accrual Reversal lines
4844 -------------------------------------------------------------------------------------------
4845 BEGIN
4846 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
4847 (g_array_event(p_event_id).array_value_num('header_index'));
4848 IF l_acc_rev_flag IS NULL THEN
4849 l_acc_rev_flag := 'N';
4850 END IF;
4851 EXCEPTION
4852 WHEN OTHERS THEN
4853 l_acc_rev_flag := 'N';
4854 END;
4855 --
4856 IF (l_acc_rev_flag = 'Y') THEN
4857
4858 -- 4645092 ------------------------------------------------------------------------------
4859 -- To allow MPA report to determine if it should generate report process
4860 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
4861 ------------------------------------------------------------------------------------------
4862
4863 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
4864 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
4865
4866 --
4867 -- Update the line information that should be overwritten
4868 --
4869 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
4870 p_header_num => 1);
4871 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
4872
4873 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
4874
4875 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
4876 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
4877 END IF;
4878
4879 --
4880 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
4881 --
4882 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
4883 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
4884 ELSE
4885 ---------------------------------------------------------------------------------------------------
4886 -- 4262811a Switch Sign
4887 ---------------------------------------------------------------------------------------------------
4888 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
4889 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4890 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4891 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4892 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4893 -- 5132302
4894 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
4895 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4896
4897 END IF;
4898
4899 -- 4955764
4900 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4901 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
4902
4903
4904 XLA_AE_LINES_PKG.ValidateCurrentLine;
4905 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4906
4907 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4908 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
4909 ,p_balance_type_code => l_balance_type_code);
4910
4911 END IF;
4912
4913 -----------------------------------------------------------------------------------------
4914 -- 4262811 Multiperiod Accounting
4915 -----------------------------------------------------------------------------------------
4916 -- No MPA option is assigned.
4917
4918
4919 END IF;
4920 END IF;
4921 --
4922
4923 --
4924 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4925 trace
4926 (p_msg => 'END of AcctLineType_14'
4927 ,p_level => C_LEVEL_PROCEDURE
4928 ,p_module => l_log_module);
4929 END IF;
4930 --
4931 EXCEPTION
4932 WHEN xla_exceptions_pkg.application_exception THEN
4933 RAISE;
4934 WHEN OTHERS THEN
4935 xla_exceptions_pkg.raise_message
4936 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_14');
4937 END AcctLineType_14;
4938 --
4939
4940 ---------------------------------------
4941 --
4942 -- PRIVATE FUNCTION
4943 -- AcctLineType_15
4944 --
4945 ---------------------------------------
4946 PROCEDURE AcctLineType_15 (
4947 p_application_id IN NUMBER
4948 ,p_event_id IN NUMBER
4949 ,p_calculate_acctd_flag IN VARCHAR2
4950 ,p_calculate_g_l_flag IN VARCHAR2
4951 ,p_actual_flag IN OUT VARCHAR2
4952 ,p_balance_type_code OUT VARCHAR2
4953 ,p_gain_or_loss_ref OUT VARCHAR2
4954
4955 --Budget Account
4956 , p_source_11 IN NUMBER
4957 --Main Or Backing Code
4958 , p_source_13 IN VARCHAR2
4959 --Accounting Reversal Flag
4960 , p_source_16 IN VARCHAR2
4961 --PO Distribution Identifier
4962 , p_source_29 IN NUMBER
4963 --Entered Amount
4964 , p_source_33 IN NUMBER
4965 --Currency Code
4966 , p_source_34 IN VARCHAR2
4967 --Accounted Amount
4968 , p_source_35 IN NUMBER
4969 --Allocated to Main Document Distribution Type
4970 , p_source_49 IN VARCHAR2
4971 --Allocated to Main Document Distribution Identifier
4972 , p_source_51 IN NUMBER
4973 --PO Header Identifier
4974 , p_source_52 IN NUMBER
4975 --Applied To Application Identifier
4976 , p_source_53 IN NUMBER
4977 --Applied To Distribution Link Type
4978 , p_source_54 IN VARCHAR2
4979 --Applied To Entity Code
4980 , p_source_55 IN VARCHAR2
4981 --Applied To Distribution Identifier 1
4982 , p_source_56 IN NUMBER
4983 --Applied To Header Identifier 1
4984 , p_source_57 IN NUMBER
4985 --Distribution Link Type
4986 , p_source_58 IN VARCHAR2
4987 --PO Encumbrance Upgrade Option
4988 , p_source_59 IN VARCHAR2
4989 --JFMIP Reference
4990 , p_source_60 IN VARCHAR2
4991 --PO Upgrade Encumbrance Type Identifier
4992 , p_source_61 IN NUMBER
4993 )
4994 IS
4995
4996 l_component_type VARCHAR2(80);
4997 l_component_code VARCHAR2(30);
4998 l_component_type_code VARCHAR2(1);
4999 l_component_appl_id INTEGER;
5000 l_amb_context_code VARCHAR2(30);
5001 l_entity_code VARCHAR2(30);
5002 l_event_class_code VARCHAR2(30);
5003 l_ae_header_id NUMBER;
5004 l_event_type_code VARCHAR2(30);
5005 l_line_definition_code VARCHAR2(30);
5006 l_line_definition_owner_code VARCHAR2(1);
5007 --
5008 -- adr variables
5009 l_segment VARCHAR2(30);
5010 l_ccid NUMBER;
5011 l_adr_transaction_coa_id NUMBER;
5012 l_adr_accounting_coa_id NUMBER;
5013 l_adr_flexfield_segment_code VARCHAR2(30);
5014 l_adr_flex_value_set_id NUMBER;
5015 l_adr_value_type_code VARCHAR2(30);
5016 l_adr_value_combination_id NUMBER;
5017 l_adr_value_segment_code VARCHAR2(30);
5018
5019 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
5020 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
5021 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
5022 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
5023
5024 -- 4262811 Variables ------------------------------------------------------------------------------------------
5025 l_entered_amt_idx NUMBER;
5026 l_accted_amt_idx NUMBER;
5027 l_acc_rev_flag VARCHAR2(1);
5028 l_accrual_line_num NUMBER;
5029 l_tmp_amt NUMBER;
5030 l_acc_rev_natural_side_code VARCHAR2(1);
5031
5032 l_num_entries NUMBER;
5033 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
5034 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
5035 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
5036 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
5037 l_recog_line_1 NUMBER;
5038 l_recog_line_2 NUMBER;
5039
5040 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
5041 l_bflow_applied_to_amt NUMBER; -- 5132302
5042 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
5043
5044 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
5045
5046 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
5047 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
5048
5049 ---------------------------------------------------------------------------------------------------------------
5050
5051
5052 --
5053 -- bulk performance
5054 --
5055 l_balance_type_code VARCHAR2(1);
5056 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
5057 l_log_module VARCHAR2(240);
5058
5059 --
5060 -- Upgrade strategy
5061 --
5062 l_actual_upg_option VARCHAR2(1);
5063 l_enc_upg_option VARCHAR2(1);
5064
5065 --
5066 BEGIN
5067 --
5068 IF g_log_enabled THEN
5069 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_15';
5070 END IF;
5071 --
5072 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5073
5074 trace
5075 (p_msg => 'BEGIN of AcctLineType_15'
5076 ,p_level => C_LEVEL_PROCEDURE
5077 ,p_module => l_log_module);
5078
5079 END IF;
5080 --
5081 l_component_type := 'AMB_JLT';
5082 l_component_code := 'REINSTATE_BPA_ENC_FROM_PO_CR';
5083 l_component_type_code := 'S';
5084 l_component_appl_id := 201;
5085 l_amb_context_code := 'DEFAULT';
5086 l_entity_code := 'PURCHASE_ORDER';
5087 l_event_class_code := 'PO_PA';
5088 l_event_type_code := 'PO_PA_ALL';
5089 l_line_definition_owner_code := 'S';
5090 l_line_definition_code := 'PO_PA_ENC_ALL';
5091 --
5092 l_balance_type_code := 'E';
5093 l_segment := NULL;
5094 l_ccid := NULL;
5095 l_adr_transaction_coa_id := NULL;
5096 l_adr_accounting_coa_id := NULL;
5097 l_adr_flexfield_segment_code := NULL;
5098 l_adr_flex_value_set_id := NULL;
5099 l_adr_value_type_code := NULL;
5100 l_adr_value_combination_id := NULL;
5101 l_adr_value_segment_code := NULL;
5102
5103 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
5104 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
5105 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
5106 l_budgetary_control_flag := 'Y';
5107
5108 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5109 l_bflow_applied_to_amt := NULL; -- 5132302
5110 l_entered_amt_idx := NULL; -- 4262811
5111 l_accted_amt_idx := NULL; -- 4262811
5112 l_acc_rev_flag := NULL; -- 4262811
5113 l_accrual_line_num := NULL; -- 4262811
5114 l_tmp_amt := NULL; -- 4262811
5115 --
5116
5117 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
5118 l_balance_type_code <> 'B' THEN
5119 IF (NVL(
5120 xla_ae_sources_pkg.GetSystemSourceChar(
5121 p_source_code => 'XLA_EVENT_TYPE_CODE'
5122 , p_source_type_code => 'Y'
5123 , p_source_application_id => 602
5124 ),'
5125 ') = 'PO_PA_CANCELLED' OR
5126 NVL(
5127 xla_ae_sources_pkg.GetSystemSourceChar(
5128 p_source_code => 'XLA_EVENT_TYPE_CODE'
5129 , p_source_type_code => 'Y'
5130 , p_source_application_id => 602
5131 ),'
5132 ') = 'PO_PA_CR_MEMO_CANCELLED') AND
5133 NVL(p_source_13,'
5134 ') = 'B_PA'
5135 THEN
5136
5137 --
5138 XLA_AE_LINES_PKG.SetNewLine;
5139
5140 p_balance_type_code := l_balance_type_code;
5141 -- set the flag so later we will know whether the gain loss line needs to be created
5142
5143 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
5144 p_actual_flag :='A';
5145 END IF;
5146
5147 --
5148 -- bulk performance
5149 --
5150 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
5151 p_header_num => 0); -- 4262811
5152 --
5153 -- set accounting line options
5154 --
5155 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
5156 p_natural_side_code => 'C'
5157 , p_gain_or_loss_flag => 'N'
5158 , p_gl_transfer_mode_code => 'S'
5159 , p_acct_entry_type_code => 'E'
5160 , p_switch_side_flag => 'N'
5161 , p_merge_duplicate_code => 'N'
5162 );
5163 --
5164 l_acc_rev_natural_side_code := 'D'; -- 4262811
5165 --
5166 --
5167 -- set accounting line type info
5168 --
5169 xla_ae_lines_pkg.SetAcctLineType
5170 (p_component_type => l_component_type
5171 ,p_event_type_code => l_event_type_code
5172 ,p_line_definition_owner_code => l_line_definition_owner_code
5173 ,p_line_definition_code => l_line_definition_code
5174 ,p_accounting_line_code => l_component_code
5175 ,p_accounting_line_type_code => l_component_type_code
5176 ,p_accounting_line_appl_id => l_component_appl_id
5177 ,p_amb_context_code => l_amb_context_code
5178 ,p_entity_code => l_entity_code
5179 ,p_event_class_code => l_event_class_code);
5180 --
5181 -- set accounting class
5182 --
5183 xla_ae_lines_pkg.SetAcctClass(
5184 p_accounting_class_code => 'PURCHASE_ORDER'
5185 , p_ae_header_id => l_ae_header_id
5186 );
5187
5188 --
5189 -- set rounding class
5190 --
5191 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
5192 'PURCHASE_ORDER';
5193
5194 --
5195 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
5196 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
5197 --
5198 -- bulk performance
5199 --
5200 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
5201
5202 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
5203 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
5204
5205 -- 4955764
5206 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5207 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
5208
5209 -- 4458381 Public Sector Enh
5210
5211 --
5212 -- set accounting attributes for the line type
5213 --
5214 l_entered_amt_idx := 23;
5215 l_accted_amt_idx := 25;
5216 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5217 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
5218 l_rec_acct_attrs.array_char_value(1) := p_source_16;
5219 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
5220 l_rec_acct_attrs.array_num_value(2) :=
5221 xla_ae_sources_pkg.GetSystemSourceNum(
5222 p_source_code => 'XLA_EVENT_APPL_ID'
5223 , p_source_type_code => 'Y'
5224 , p_source_application_id => 602
5225 );
5226 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
5227 l_rec_acct_attrs.array_char_value(3) := p_source_49;
5228 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
5229 l_rec_acct_attrs.array_char_value(4) :=
5230 xla_ae_sources_pkg.GetSystemSourceChar(
5231 p_source_code => 'XLA_ENTITY_CODE'
5232 , p_source_type_code => 'Y'
5233 , p_source_application_id => 602
5234 );
5235 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
5236 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_51);
5237 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
5238 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_52);
5239 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
5240 l_rec_acct_attrs.array_num_value(7) := p_source_53;
5241 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
5242 l_rec_acct_attrs.array_char_value(8) := p_source_54;
5243 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
5244 l_rec_acct_attrs.array_char_value(9) := p_source_55;
5245 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
5246 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_56);
5247 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
5248 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_57);
5249 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
5250 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_29);
5251 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
5252 l_rec_acct_attrs.array_char_value(13) := p_source_58;
5253 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
5254 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_11);
5255 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
5256 l_rec_acct_attrs.array_num_value(15) := p_source_33;
5257 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
5258 l_rec_acct_attrs.array_char_value(16) := p_source_34;
5259 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
5260 l_rec_acct_attrs.array_num_value(17) := p_source_35;
5261 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
5262 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_11);
5263 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
5264 l_rec_acct_attrs.array_num_value(19) := p_source_33;
5265 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
5266 l_rec_acct_attrs.array_char_value(20) := p_source_34;
5267 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
5268 l_rec_acct_attrs.array_num_value(21) := p_source_35;
5269 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
5270 l_rec_acct_attrs.array_char_value(22) := p_source_59;
5271 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
5272 l_rec_acct_attrs.array_num_value(23) := p_source_33;
5273 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
5274 l_rec_acct_attrs.array_char_value(24) := p_source_34;
5275 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
5276 l_rec_acct_attrs.array_num_value(25) := p_source_35;
5277 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
5278 l_rec_acct_attrs.array_char_value(26) := p_source_60;
5279 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
5280 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_56);
5281 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
5282 l_rec_acct_attrs.array_char_value(28) := p_source_54;
5283 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
5284 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_29);
5285 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
5286 l_rec_acct_attrs.array_num_value(30) := p_source_61;
5287 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
5288 l_rec_acct_attrs.array_num_value(31) := p_source_61;
5289
5290 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
5291 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
5292
5293 ---------------------------------------------------------------------------------------------------------------
5294 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
5295 ---------------------------------------------------------------------------------------------------------------
5296 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
5297
5298 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5299 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5300
5301 IF xla_accounting_cache_pkg.GetValueChar
5302 (p_source_code => 'LEDGER_CATEGORY_CODE'
5303 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
5304 AND l_bflow_method_code = 'PRIOR_ENTRY'
5305 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
5306 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
5307 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
5308 )
5309 THEN
5310 xla_ae_lines_pkg.BflowUpgEntry
5311 (p_business_method_code => l_bflow_method_code
5312 ,p_business_class_code => l_bflow_class_code
5313 ,p_balance_type => l_balance_type_code);
5314 ELSE
5315 NULL;
5316 XLA_AE_LINES_PKG.business_flow_validation(
5317 p_business_method_code => l_bflow_method_code
5318 ,p_business_class_code => l_bflow_class_code
5319 ,p_inherit_description_flag => l_inherit_desc_flag);
5320 END IF;
5321
5322 --
5323 -- call analytical criteria
5324 --
5325 -- Inherited Analytical Criteria for business flow method of Prior Entry.
5326 --
5327 -- call description
5328 --
5329 -- No description or it is inherited.
5330 --
5331 -- call ADRs
5332 -- Bug 4922099
5333 --
5334 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5335 (NVL(l_actual_upg_option, 'N') = 'O') OR
5336 (NVL(l_enc_upg_option, 'N') = 'O')
5337 )
5338 THEN
5339 NULL;
5340 --
5341 --
5342
5343 --
5344 --
5345 END IF;
5346 --
5347 -- Bug 4922099
5348 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
5349 (NVL(l_enc_upg_option, 'N') = 'O')
5350 ) AND
5351 (l_bflow_method_code = 'PRIOR_ENTRY')
5352 )
5353 THEN
5354 IF
5355 --
5356 1 = 1
5357 --
5358 THEN
5359 xla_accounting_err_pkg.build_message
5360 (p_appli_s_name => 'XLA'
5361 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5362 ,p_token_1 => 'LINE_NUMBER'
5363 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
5364 ,p_token_2 => 'LINE_TYPE_NAME'
5365 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
5366 l_component_type
5367 ,l_component_code
5368 ,l_component_type_code
5369 ,l_component_appl_id
5370 ,l_amb_context_code
5371 ,l_entity_code
5372 ,l_event_class_code
5373 )
5374 ,p_token_3 => 'OWNER'
5375 ,p_value_3 => xla_lookups_pkg.get_meaning(
5376 p_lookup_type => 'XLA_OWNER_TYPE'
5377 ,p_lookup_code => l_component_type_code
5378 )
5379 ,p_token_4 => 'PRODUCT_NAME'
5380 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
5381 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
5382 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
5383 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
5384 ,p_ae_header_id => NULL
5385 );
5386
5387 IF (C_LEVEL_ERROR>= g_log_level) THEN
5388 trace
5389 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5390 ,p_level => C_LEVEL_ERROR
5391 ,p_module => l_log_module);
5392 END IF;
5393 END IF;
5394 END IF;
5395 --
5396 --
5397 ------------------------------------------------------------------------------------------------
5398 -- 4219869 Business Flow
5399 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
5400 -- Prior Entry. Currently, the following code is always generated.
5401 ------------------------------------------------------------------------------------------------
5402 -- No ValidateCurrentLine for business flow method of Prior Entry
5403
5404 ------------------------------------------------------------------------------------
5405 -- 4219869 Business Flow
5406 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
5407 ------------------------------------------------------------------------------------
5408 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5409
5410 ----------------------------------------------------------------------------------
5411 -- 4219869 Business Flow
5412 -- Update journal entry status -- Need to generate this within IF <condition>
5413 ----------------------------------------------------------------------------------
5414 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5415 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
5416 ,p_balance_type_code => l_balance_type_code
5417 );
5418
5419 -------------------------------------------------------------------------------------------
5420 -- 4262811 - Generate the Accrual Reversal lines
5421 -------------------------------------------------------------------------------------------
5422 BEGIN
5423 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
5424 (g_array_event(p_event_id).array_value_num('header_index'));
5425 IF l_acc_rev_flag IS NULL THEN
5426 l_acc_rev_flag := 'N';
5427 END IF;
5428 EXCEPTION
5429 WHEN OTHERS THEN
5430 l_acc_rev_flag := 'N';
5431 END;
5432 --
5433 IF (l_acc_rev_flag = 'Y') THEN
5434
5435 -- 4645092 ------------------------------------------------------------------------------
5436 -- To allow MPA report to determine if it should generate report process
5437 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
5438 ------------------------------------------------------------------------------------------
5439
5440 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
5441 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
5442
5443 --
5444 -- Update the line information that should be overwritten
5445 --
5446 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
5447 p_header_num => 1);
5448 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
5449
5450 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
5451
5452 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
5453 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
5454 END IF;
5455
5456 --
5457 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
5458 --
5459 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
5460 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
5461 ELSE
5462 ---------------------------------------------------------------------------------------------------
5463 -- 4262811a Switch Sign
5464 ---------------------------------------------------------------------------------------------------
5465 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
5466 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5467 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5468 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5469 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5470 -- 5132302
5471 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
5472 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5473
5474 END IF;
5475
5476 -- 4955764
5477 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5478 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
5479
5480
5481 XLA_AE_LINES_PKG.ValidateCurrentLine;
5482 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5483
5484 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5485 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
5486 ,p_balance_type_code => l_balance_type_code);
5487
5488 END IF;
5489
5490 -----------------------------------------------------------------------------------------
5491 -- 4262811 Multiperiod Accounting
5492 -----------------------------------------------------------------------------------------
5493 -- No MPA option is assigned.
5494
5495
5496 END IF;
5497 END IF;
5498 --
5499
5500 --
5501 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5502 trace
5503 (p_msg => 'END of AcctLineType_15'
5504 ,p_level => C_LEVEL_PROCEDURE
5505 ,p_module => l_log_module);
5506 END IF;
5507 --
5508 EXCEPTION
5509 WHEN xla_exceptions_pkg.application_exception THEN
5510 RAISE;
5511 WHEN OTHERS THEN
5512 xla_exceptions_pkg.raise_message
5513 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_15');
5514 END AcctLineType_15;
5515 --
5516
5517 ---------------------------------------
5518 --
5519 -- PRIVATE FUNCTION
5520 -- AcctLineType_16
5521 --
5522 ---------------------------------------
5523 PROCEDURE AcctLineType_16 (
5524 p_application_id IN NUMBER
5525 ,p_event_id IN NUMBER
5526 ,p_calculate_acctd_flag IN VARCHAR2
5527 ,p_calculate_g_l_flag IN VARCHAR2
5528 ,p_actual_flag IN OUT VARCHAR2
5529 ,p_balance_type_code OUT VARCHAR2
5530 ,p_gain_or_loss_ref OUT VARCHAR2
5531
5532 --Budget Account
5533 , p_source_11 IN NUMBER
5534 --Main Or Backing Code
5535 , p_source_13 IN VARCHAR2
5536 --Accounting Reversal Flag
5537 , p_source_16 IN VARCHAR2
5538 --PO Distribution Identifier
5539 , p_source_29 IN NUMBER
5540 --Entered Amount
5541 , p_source_33 IN NUMBER
5542 --Currency Code
5543 , p_source_34 IN VARCHAR2
5544 --Accounted Amount
5545 , p_source_35 IN NUMBER
5546 --Allocated to Main Document Distribution Type
5547 , p_source_49 IN VARCHAR2
5548 --Allocated to Main Document Distribution Identifier
5549 , p_source_51 IN NUMBER
5550 --PO Header Identifier
5551 , p_source_52 IN NUMBER
5552 --Applied To Application Identifier
5553 , p_source_53 IN NUMBER
5554 --Applied To Distribution Link Type
5555 , p_source_54 IN VARCHAR2
5556 --Applied To Entity Code
5557 , p_source_55 IN VARCHAR2
5558 --Applied To Distribution Identifier 1
5559 , p_source_56 IN NUMBER
5560 --Applied To Header Identifier 1
5561 , p_source_57 IN NUMBER
5562 --Distribution Link Type
5563 , p_source_58 IN VARCHAR2
5564 --PO Encumbrance Upgrade Option
5565 , p_source_59 IN VARCHAR2
5566 --JFMIP Reference
5567 , p_source_60 IN VARCHAR2
5568 --PO Upgrade Encumbrance Type Identifier
5569 , p_source_61 IN NUMBER
5570 )
5571 IS
5572
5573 l_component_type VARCHAR2(80);
5574 l_component_code VARCHAR2(30);
5575 l_component_type_code VARCHAR2(1);
5576 l_component_appl_id INTEGER;
5577 l_amb_context_code VARCHAR2(30);
5578 l_entity_code VARCHAR2(30);
5579 l_event_class_code VARCHAR2(30);
5580 l_ae_header_id NUMBER;
5581 l_event_type_code VARCHAR2(30);
5582 l_line_definition_code VARCHAR2(30);
5583 l_line_definition_owner_code VARCHAR2(1);
5584 --
5585 -- adr variables
5586 l_segment VARCHAR2(30);
5587 l_ccid NUMBER;
5588 l_adr_transaction_coa_id NUMBER;
5589 l_adr_accounting_coa_id NUMBER;
5590 l_adr_flexfield_segment_code VARCHAR2(30);
5591 l_adr_flex_value_set_id NUMBER;
5592 l_adr_value_type_code VARCHAR2(30);
5593 l_adr_value_combination_id NUMBER;
5594 l_adr_value_segment_code VARCHAR2(30);
5595
5596 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
5597 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
5598 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
5599 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
5600
5601 -- 4262811 Variables ------------------------------------------------------------------------------------------
5602 l_entered_amt_idx NUMBER;
5603 l_accted_amt_idx NUMBER;
5604 l_acc_rev_flag VARCHAR2(1);
5605 l_accrual_line_num NUMBER;
5606 l_tmp_amt NUMBER;
5607 l_acc_rev_natural_side_code VARCHAR2(1);
5608
5609 l_num_entries NUMBER;
5610 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
5611 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
5612 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
5613 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
5614 l_recog_line_1 NUMBER;
5615 l_recog_line_2 NUMBER;
5616
5617 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
5618 l_bflow_applied_to_amt NUMBER; -- 5132302
5619 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
5620
5621 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
5622
5623 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
5624 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
5625
5626 ---------------------------------------------------------------------------------------------------------------
5627
5628
5629 --
5630 -- bulk performance
5631 --
5632 l_balance_type_code VARCHAR2(1);
5633 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
5634 l_log_module VARCHAR2(240);
5635
5636 --
5637 -- Upgrade strategy
5638 --
5639 l_actual_upg_option VARCHAR2(1);
5640 l_enc_upg_option VARCHAR2(1);
5641
5642 --
5643 BEGIN
5644 --
5645 IF g_log_enabled THEN
5646 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_16';
5647 END IF;
5648 --
5649 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5650
5651 trace
5652 (p_msg => 'BEGIN of AcctLineType_16'
5653 ,p_level => C_LEVEL_PROCEDURE
5654 ,p_module => l_log_module);
5655
5656 END IF;
5657 --
5658 l_component_type := 'AMB_JLT';
5659 l_component_code := 'REINSTATE_BPA_ENC_FROM_PO_DR';
5660 l_component_type_code := 'S';
5661 l_component_appl_id := 201;
5662 l_amb_context_code := 'DEFAULT';
5663 l_entity_code := 'PURCHASE_ORDER';
5664 l_event_class_code := 'PO_PA';
5665 l_event_type_code := 'PO_PA_ALL';
5666 l_line_definition_owner_code := 'S';
5667 l_line_definition_code := 'PO_PA_ENC_ALL';
5668 --
5669 l_balance_type_code := 'E';
5670 l_segment := NULL;
5671 l_ccid := NULL;
5672 l_adr_transaction_coa_id := NULL;
5673 l_adr_accounting_coa_id := NULL;
5674 l_adr_flexfield_segment_code := NULL;
5675 l_adr_flex_value_set_id := NULL;
5676 l_adr_value_type_code := NULL;
5677 l_adr_value_combination_id := NULL;
5678 l_adr_value_segment_code := NULL;
5679
5680 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
5681 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
5682 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
5683 l_budgetary_control_flag := 'Y';
5684
5685 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5686 l_bflow_applied_to_amt := NULL; -- 5132302
5687 l_entered_amt_idx := NULL; -- 4262811
5688 l_accted_amt_idx := NULL; -- 4262811
5689 l_acc_rev_flag := NULL; -- 4262811
5690 l_accrual_line_num := NULL; -- 4262811
5691 l_tmp_amt := NULL; -- 4262811
5692 --
5693
5694 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
5695 l_balance_type_code <> 'B' THEN
5696 IF (NVL(
5697 xla_ae_sources_pkg.GetSystemSourceChar(
5698 p_source_code => 'XLA_EVENT_TYPE_CODE'
5699 , p_source_type_code => 'Y'
5700 , p_source_application_id => 602
5701 ),'
5702 ') = 'PO_PA_UNRESERVED' OR
5703 NVL(
5704 xla_ae_sources_pkg.GetSystemSourceChar(
5705 p_source_code => 'XLA_EVENT_TYPE_CODE'
5706 , p_source_type_code => 'Y'
5707 , p_source_application_id => 602
5708 ),'
5709 ') = 'PO_PA_REJECTED' OR
5710 NVL(
5711 xla_ae_sources_pkg.GetSystemSourceChar(
5712 p_source_code => 'XLA_EVENT_TYPE_CODE'
5713 , p_source_type_code => 'Y'
5714 , p_source_application_id => 602
5715 ),'
5716 ') = 'PO_PA_INV_CANCELLED') AND
5717 NVL(p_source_13,'
5718 ') = 'B_PA'
5719 THEN
5720
5721 --
5722 XLA_AE_LINES_PKG.SetNewLine;
5723
5724 p_balance_type_code := l_balance_type_code;
5725 -- set the flag so later we will know whether the gain loss line needs to be created
5726
5727 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
5728 p_actual_flag :='A';
5729 END IF;
5730
5731 --
5732 -- bulk performance
5733 --
5734 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
5735 p_header_num => 0); -- 4262811
5736 --
5737 -- set accounting line options
5738 --
5739 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
5740 p_natural_side_code => 'D'
5741 , p_gain_or_loss_flag => 'N'
5742 , p_gl_transfer_mode_code => 'S'
5743 , p_acct_entry_type_code => 'E'
5744 , p_switch_side_flag => 'N'
5745 , p_merge_duplicate_code => 'N'
5746 );
5747 --
5748 l_acc_rev_natural_side_code := 'C'; -- 4262811
5749 --
5750 --
5751 -- set accounting line type info
5752 --
5753 xla_ae_lines_pkg.SetAcctLineType
5754 (p_component_type => l_component_type
5755 ,p_event_type_code => l_event_type_code
5756 ,p_line_definition_owner_code => l_line_definition_owner_code
5757 ,p_line_definition_code => l_line_definition_code
5758 ,p_accounting_line_code => l_component_code
5759 ,p_accounting_line_type_code => l_component_type_code
5760 ,p_accounting_line_appl_id => l_component_appl_id
5761 ,p_amb_context_code => l_amb_context_code
5762 ,p_entity_code => l_entity_code
5763 ,p_event_class_code => l_event_class_code);
5764 --
5765 -- set accounting class
5766 --
5767 xla_ae_lines_pkg.SetAcctClass(
5768 p_accounting_class_code => 'PURCHASE_ORDER'
5769 , p_ae_header_id => l_ae_header_id
5770 );
5771
5772 --
5773 -- set rounding class
5774 --
5775 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
5776 'PURCHASE_ORDER';
5777
5778 --
5779 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
5780 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
5781 --
5782 -- bulk performance
5783 --
5784 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
5785
5786 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
5787 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
5788
5789 -- 4955764
5790 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5791 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
5792
5793 -- 4458381 Public Sector Enh
5794
5795 --
5796 -- set accounting attributes for the line type
5797 --
5798 l_entered_amt_idx := 23;
5799 l_accted_amt_idx := 25;
5800 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5801 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
5802 l_rec_acct_attrs.array_char_value(1) := p_source_16;
5803 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
5804 l_rec_acct_attrs.array_num_value(2) :=
5805 xla_ae_sources_pkg.GetSystemSourceNum(
5806 p_source_code => 'XLA_EVENT_APPL_ID'
5807 , p_source_type_code => 'Y'
5808 , p_source_application_id => 602
5809 );
5810 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
5811 l_rec_acct_attrs.array_char_value(3) := p_source_49;
5812 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
5813 l_rec_acct_attrs.array_char_value(4) :=
5814 xla_ae_sources_pkg.GetSystemSourceChar(
5815 p_source_code => 'XLA_ENTITY_CODE'
5816 , p_source_type_code => 'Y'
5817 , p_source_application_id => 602
5818 );
5819 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
5820 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_51);
5821 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
5822 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_52);
5823 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
5824 l_rec_acct_attrs.array_num_value(7) := p_source_53;
5825 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
5826 l_rec_acct_attrs.array_char_value(8) := p_source_54;
5827 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
5828 l_rec_acct_attrs.array_char_value(9) := p_source_55;
5829 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
5830 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_56);
5831 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
5832 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_57);
5833 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
5834 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_29);
5835 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
5836 l_rec_acct_attrs.array_char_value(13) := p_source_58;
5837 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
5838 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_11);
5839 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
5840 l_rec_acct_attrs.array_num_value(15) := p_source_33;
5841 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
5842 l_rec_acct_attrs.array_char_value(16) := p_source_34;
5843 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
5844 l_rec_acct_attrs.array_num_value(17) := p_source_35;
5845 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
5846 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_11);
5847 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
5848 l_rec_acct_attrs.array_num_value(19) := p_source_33;
5849 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
5850 l_rec_acct_attrs.array_char_value(20) := p_source_34;
5851 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
5852 l_rec_acct_attrs.array_num_value(21) := p_source_35;
5853 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
5854 l_rec_acct_attrs.array_char_value(22) := p_source_59;
5855 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
5856 l_rec_acct_attrs.array_num_value(23) := p_source_33;
5857 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
5858 l_rec_acct_attrs.array_char_value(24) := p_source_34;
5859 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
5860 l_rec_acct_attrs.array_num_value(25) := p_source_35;
5861 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
5862 l_rec_acct_attrs.array_char_value(26) := p_source_60;
5863 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
5864 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_56);
5865 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
5866 l_rec_acct_attrs.array_char_value(28) := p_source_54;
5867 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
5868 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_29);
5869 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
5870 l_rec_acct_attrs.array_num_value(30) := p_source_61;
5871 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
5872 l_rec_acct_attrs.array_num_value(31) := p_source_61;
5873
5874 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
5875 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
5876
5877 ---------------------------------------------------------------------------------------------------------------
5878 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
5879 ---------------------------------------------------------------------------------------------------------------
5880 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
5881
5882 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5883 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5884
5885 IF xla_accounting_cache_pkg.GetValueChar
5886 (p_source_code => 'LEDGER_CATEGORY_CODE'
5887 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
5888 AND l_bflow_method_code = 'PRIOR_ENTRY'
5889 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
5890 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
5891 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
5892 )
5893 THEN
5894 xla_ae_lines_pkg.BflowUpgEntry
5895 (p_business_method_code => l_bflow_method_code
5896 ,p_business_class_code => l_bflow_class_code
5897 ,p_balance_type => l_balance_type_code);
5898 ELSE
5899 NULL;
5900 XLA_AE_LINES_PKG.business_flow_validation(
5901 p_business_method_code => l_bflow_method_code
5902 ,p_business_class_code => l_bflow_class_code
5903 ,p_inherit_description_flag => l_inherit_desc_flag);
5904 END IF;
5905
5906 --
5907 -- call analytical criteria
5908 --
5909 -- Inherited Analytical Criteria for business flow method of Prior Entry.
5910 --
5911 -- call description
5912 --
5913 -- No description or it is inherited.
5914 --
5915 -- call ADRs
5916 -- Bug 4922099
5917 --
5918 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5919 (NVL(l_actual_upg_option, 'N') = 'O') OR
5920 (NVL(l_enc_upg_option, 'N') = 'O')
5921 )
5922 THEN
5923 NULL;
5924 --
5925 --
5926
5927 --
5928 --
5929 END IF;
5930 --
5931 -- Bug 4922099
5932 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
5933 (NVL(l_enc_upg_option, 'N') = 'O')
5934 ) AND
5935 (l_bflow_method_code = 'PRIOR_ENTRY')
5936 )
5937 THEN
5938 IF
5939 --
5940 1 = 1
5941 --
5942 THEN
5943 xla_accounting_err_pkg.build_message
5944 (p_appli_s_name => 'XLA'
5945 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5946 ,p_token_1 => 'LINE_NUMBER'
5947 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
5948 ,p_token_2 => 'LINE_TYPE_NAME'
5949 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
5950 l_component_type
5951 ,l_component_code
5952 ,l_component_type_code
5953 ,l_component_appl_id
5954 ,l_amb_context_code
5955 ,l_entity_code
5956 ,l_event_class_code
5957 )
5958 ,p_token_3 => 'OWNER'
5959 ,p_value_3 => xla_lookups_pkg.get_meaning(
5960 p_lookup_type => 'XLA_OWNER_TYPE'
5961 ,p_lookup_code => l_component_type_code
5962 )
5963 ,p_token_4 => 'PRODUCT_NAME'
5964 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
5965 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
5966 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
5967 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
5968 ,p_ae_header_id => NULL
5969 );
5970
5971 IF (C_LEVEL_ERROR>= g_log_level) THEN
5972 trace
5973 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5974 ,p_level => C_LEVEL_ERROR
5975 ,p_module => l_log_module);
5976 END IF;
5977 END IF;
5978 END IF;
5979 --
5980 --
5981 ------------------------------------------------------------------------------------------------
5982 -- 4219869 Business Flow
5983 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
5984 -- Prior Entry. Currently, the following code is always generated.
5985 ------------------------------------------------------------------------------------------------
5986 -- No ValidateCurrentLine for business flow method of Prior Entry
5987
5988 ------------------------------------------------------------------------------------
5989 -- 4219869 Business Flow
5990 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
5991 ------------------------------------------------------------------------------------
5992 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5993
5994 ----------------------------------------------------------------------------------
5995 -- 4219869 Business Flow
5996 -- Update journal entry status -- Need to generate this within IF <condition>
5997 ----------------------------------------------------------------------------------
5998 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5999 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
6000 ,p_balance_type_code => l_balance_type_code
6001 );
6002
6003 -------------------------------------------------------------------------------------------
6004 -- 4262811 - Generate the Accrual Reversal lines
6005 -------------------------------------------------------------------------------------------
6006 BEGIN
6007 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
6008 (g_array_event(p_event_id).array_value_num('header_index'));
6009 IF l_acc_rev_flag IS NULL THEN
6010 l_acc_rev_flag := 'N';
6011 END IF;
6012 EXCEPTION
6013 WHEN OTHERS THEN
6014 l_acc_rev_flag := 'N';
6015 END;
6016 --
6017 IF (l_acc_rev_flag = 'Y') THEN
6018
6019 -- 4645092 ------------------------------------------------------------------------------
6020 -- To allow MPA report to determine if it should generate report process
6021 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
6022 ------------------------------------------------------------------------------------------
6023
6024 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
6025 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
6026
6027 --
6028 -- Update the line information that should be overwritten
6029 --
6030 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
6031 p_header_num => 1);
6032 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
6033
6034 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
6035
6036 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
6037 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
6038 END IF;
6039
6040 --
6041 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
6042 --
6043 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
6044 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
6045 ELSE
6046 ---------------------------------------------------------------------------------------------------
6047 -- 4262811a Switch Sign
6048 ---------------------------------------------------------------------------------------------------
6049 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
6050 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6051 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6052 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6053 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6054 -- 5132302
6055 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
6056 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6057
6058 END IF;
6059
6060 -- 4955764
6061 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6062 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
6063
6064
6065 XLA_AE_LINES_PKG.ValidateCurrentLine;
6066 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6067
6068 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6069 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
6070 ,p_balance_type_code => l_balance_type_code);
6071
6072 END IF;
6073
6074 -----------------------------------------------------------------------------------------
6075 -- 4262811 Multiperiod Accounting
6076 -----------------------------------------------------------------------------------------
6077 -- No MPA option is assigned.
6078
6079
6080 END IF;
6081 END IF;
6082 --
6083
6084 --
6085 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6086 trace
6087 (p_msg => 'END of AcctLineType_16'
6088 ,p_level => C_LEVEL_PROCEDURE
6089 ,p_module => l_log_module);
6090 END IF;
6091 --
6092 EXCEPTION
6093 WHEN xla_exceptions_pkg.application_exception THEN
6094 RAISE;
6095 WHEN OTHERS THEN
6096 xla_exceptions_pkg.raise_message
6097 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_16');
6098 END AcctLineType_16;
6099 --
6100
6101 ---------------------------------------
6102 --
6103 -- PRIVATE FUNCTION
6104 -- AcctLineType_17
6105 --
6106 ---------------------------------------
6107 PROCEDURE AcctLineType_17 (
6108 p_application_id IN NUMBER
6109 ,p_event_id IN NUMBER
6110 ,p_calculate_acctd_flag IN VARCHAR2
6111 ,p_calculate_g_l_flag IN VARCHAR2
6112 ,p_actual_flag IN OUT VARCHAR2
6113 ,p_balance_type_code OUT VARCHAR2
6114 ,p_gain_or_loss_ref OUT VARCHAR2
6115
6116 --Journal entry Line Description
6117 , p_source_7 IN VARCHAR2
6118 --Budget Account
6119 , p_source_11 IN NUMBER
6120 --Main Or Backing Code
6121 , p_source_13 IN VARCHAR2
6122 --Accounting Reversal Flag
6123 , p_source_16 IN VARCHAR2
6124 --PO Distribution Identifier
6125 , p_source_29 IN NUMBER
6126 --Entered Amount
6127 , p_source_33 IN NUMBER
6128 --Currency Code
6129 , p_source_34 IN VARCHAR2
6130 --Accounted Amount
6131 , p_source_35 IN NUMBER
6132 --Allocated to Main Document Distribution Type
6133 , p_source_49 IN VARCHAR2
6134 --Allocated to Main Document Distribution Identifier
6135 , p_source_51 IN NUMBER
6136 --PO Header Identifier
6137 , p_source_52 IN NUMBER
6138 --Applied To Application Identifier
6139 , p_source_53 IN NUMBER
6140 --Applied To Distribution Link Type
6141 , p_source_54 IN VARCHAR2
6142 --Applied To Entity Code
6143 , p_source_55 IN VARCHAR2
6144 --Applied To Distribution Identifier 1
6145 , p_source_56 IN NUMBER
6146 --Applied To Header Identifier 1
6147 , p_source_57 IN NUMBER
6148 --Distribution Link Type
6149 , p_source_58 IN VARCHAR2
6150 --PO Encumbrance Upgrade Option
6151 , p_source_59 IN VARCHAR2
6152 --JFMIP Reference
6153 , p_source_60 IN VARCHAR2
6154 --PO Upgrade Encumbrance Type Identifier
6155 , p_source_61 IN NUMBER
6156 --Currency Conversion Date
6157 , p_source_62 IN DATE
6158 --Currency Conversion Rate
6159 , p_source_63 IN NUMBER
6160 --Currency Conversion Type
6161 , p_source_64 IN VARCHAR2
6162 )
6163 IS
6164
6165 l_component_type VARCHAR2(80);
6166 l_component_code VARCHAR2(30);
6167 l_component_type_code VARCHAR2(1);
6168 l_component_appl_id INTEGER;
6169 l_amb_context_code VARCHAR2(30);
6170 l_entity_code VARCHAR2(30);
6171 l_event_class_code VARCHAR2(30);
6172 l_ae_header_id NUMBER;
6173 l_event_type_code VARCHAR2(30);
6174 l_line_definition_code VARCHAR2(30);
6175 l_line_definition_owner_code VARCHAR2(1);
6176 --
6177 -- adr variables
6178 l_segment VARCHAR2(30);
6179 l_ccid NUMBER;
6180 l_adr_transaction_coa_id NUMBER;
6181 l_adr_accounting_coa_id NUMBER;
6182 l_adr_flexfield_segment_code VARCHAR2(30);
6183 l_adr_flex_value_set_id NUMBER;
6184 l_adr_value_type_code VARCHAR2(30);
6185 l_adr_value_combination_id NUMBER;
6186 l_adr_value_segment_code VARCHAR2(30);
6187
6188 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
6189 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
6190 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
6191 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
6192
6193 -- 4262811 Variables ------------------------------------------------------------------------------------------
6194 l_entered_amt_idx NUMBER;
6195 l_accted_amt_idx NUMBER;
6196 l_acc_rev_flag VARCHAR2(1);
6197 l_accrual_line_num NUMBER;
6198 l_tmp_amt NUMBER;
6199 l_acc_rev_natural_side_code VARCHAR2(1);
6200
6201 l_num_entries NUMBER;
6202 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
6203 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
6204 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
6205 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
6206 l_recog_line_1 NUMBER;
6207 l_recog_line_2 NUMBER;
6208
6209 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
6210 l_bflow_applied_to_amt NUMBER; -- 5132302
6211 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
6212
6213 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
6214
6215 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
6216 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
6217
6218 ---------------------------------------------------------------------------------------------------------------
6219
6220
6221 --
6222 -- bulk performance
6223 --
6224 l_balance_type_code VARCHAR2(1);
6225 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
6226 l_log_module VARCHAR2(240);
6227
6228 --
6229 -- Upgrade strategy
6230 --
6231 l_actual_upg_option VARCHAR2(1);
6232 l_enc_upg_option VARCHAR2(1);
6233
6234 --
6235 BEGIN
6236 --
6237 IF g_log_enabled THEN
6238 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_17';
6239 END IF;
6240 --
6241 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6242
6243 trace
6244 (p_msg => 'BEGIN of AcctLineType_17'
6245 ,p_level => C_LEVEL_PROCEDURE
6246 ,p_module => l_log_module);
6247
6248 END IF;
6249 --
6250 l_component_type := 'AMB_JLT';
6251 l_component_code := 'REINSTATE_REQ_ENC_FROM_PO_CR';
6252 l_component_type_code := 'S';
6253 l_component_appl_id := 201;
6254 l_amb_context_code := 'DEFAULT';
6255 l_entity_code := 'PURCHASE_ORDER';
6256 l_event_class_code := 'PO_PA';
6257 l_event_type_code := 'PO_PA_ALL';
6258 l_line_definition_owner_code := 'S';
6259 l_line_definition_code := 'PO_PA_ENC_ALL';
6260 --
6261 l_balance_type_code := 'E';
6262 l_segment := NULL;
6263 l_ccid := NULL;
6264 l_adr_transaction_coa_id := NULL;
6265 l_adr_accounting_coa_id := NULL;
6266 l_adr_flexfield_segment_code := NULL;
6267 l_adr_flex_value_set_id := NULL;
6268 l_adr_value_type_code := NULL;
6269 l_adr_value_combination_id := NULL;
6270 l_adr_value_segment_code := NULL;
6271
6272 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
6273 l_bflow_class_code := ''; -- 4219869 Business Flow
6274 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
6275 l_budgetary_control_flag := 'Y';
6276
6277 l_bflow_applied_to_amt_idx := NULL; -- 5132302
6278 l_bflow_applied_to_amt := NULL; -- 5132302
6279 l_entered_amt_idx := NULL; -- 4262811
6280 l_accted_amt_idx := NULL; -- 4262811
6281 l_acc_rev_flag := NULL; -- 4262811
6282 l_accrual_line_num := NULL; -- 4262811
6283 l_tmp_amt := NULL; -- 4262811
6284 --
6285
6286 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
6287 l_balance_type_code <> 'B' THEN
6288 IF (NVL(
6289 xla_ae_sources_pkg.GetSystemSourceChar(
6290 p_source_code => 'XLA_EVENT_TYPE_CODE'
6291 , p_source_type_code => 'Y'
6292 , p_source_application_id => 602
6293 ),'
6294 ') = 'PO_PA_CANCELLED' OR
6295 NVL(
6296 xla_ae_sources_pkg.GetSystemSourceChar(
6297 p_source_code => 'XLA_EVENT_TYPE_CODE'
6298 , p_source_type_code => 'Y'
6299 , p_source_application_id => 602
6300 ),'
6301 ') = 'PO_PA_CR_MEMO_CANCELLED') AND
6302 NVL(p_source_13,'
6303 ') = 'B_REQ'
6304 THEN
6305
6306 --
6307 XLA_AE_LINES_PKG.SetNewLine;
6308
6309 p_balance_type_code := l_balance_type_code;
6310 -- set the flag so later we will know whether the gain loss line needs to be created
6311
6312 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
6313 p_actual_flag :='A';
6314 END IF;
6315
6316 --
6317 -- bulk performance
6318 --
6319 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
6320 p_header_num => 0); -- 4262811
6321 --
6322 -- set accounting line options
6323 --
6324 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
6325 p_natural_side_code => 'C'
6326 , p_gain_or_loss_flag => 'N'
6327 , p_gl_transfer_mode_code => 'S'
6328 , p_acct_entry_type_code => 'E'
6329 , p_switch_side_flag => 'N'
6330 , p_merge_duplicate_code => 'N'
6331 );
6332 --
6333 l_acc_rev_natural_side_code := 'D'; -- 4262811
6334 --
6335 --
6336 -- set accounting line type info
6337 --
6338 xla_ae_lines_pkg.SetAcctLineType
6339 (p_component_type => l_component_type
6340 ,p_event_type_code => l_event_type_code
6341 ,p_line_definition_owner_code => l_line_definition_owner_code
6342 ,p_line_definition_code => l_line_definition_code
6343 ,p_accounting_line_code => l_component_code
6344 ,p_accounting_line_type_code => l_component_type_code
6345 ,p_accounting_line_appl_id => l_component_appl_id
6346 ,p_amb_context_code => l_amb_context_code
6347 ,p_entity_code => l_entity_code
6348 ,p_event_class_code => l_event_class_code);
6349 --
6350 -- set accounting class
6351 --
6352 xla_ae_lines_pkg.SetAcctClass(
6353 p_accounting_class_code => 'REQUISITION'
6354 , p_ae_header_id => l_ae_header_id
6355 );
6356
6357 --
6358 -- set rounding class
6359 --
6360 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
6361 'REQUISITION';
6362
6363 --
6364 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
6365 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
6366 --
6367 -- bulk performance
6368 --
6369 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
6370
6371 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
6372 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
6373
6374 -- 4955764
6375 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6376 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
6377
6378 -- 4458381 Public Sector Enh
6379 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1000;
6380 --
6381 -- set accounting attributes for the line type
6382 --
6383 l_entered_amt_idx := 23;
6384 l_accted_amt_idx := 28;
6385 l_bflow_applied_to_amt_idx := NULL; -- 5132302
6386 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
6387 l_rec_acct_attrs.array_char_value(1) := p_source_16;
6388 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
6389 l_rec_acct_attrs.array_num_value(2) :=
6390 xla_ae_sources_pkg.GetSystemSourceNum(
6391 p_source_code => 'XLA_EVENT_APPL_ID'
6392 , p_source_type_code => 'Y'
6393 , p_source_application_id => 602
6394 );
6395 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
6396 l_rec_acct_attrs.array_char_value(3) := p_source_49;
6397 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
6398 l_rec_acct_attrs.array_char_value(4) :=
6399 xla_ae_sources_pkg.GetSystemSourceChar(
6400 p_source_code => 'XLA_ENTITY_CODE'
6401 , p_source_type_code => 'Y'
6402 , p_source_application_id => 602
6403 );
6404 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
6405 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_51);
6406 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
6407 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_52);
6408 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
6409 l_rec_acct_attrs.array_num_value(7) := p_source_53;
6410 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
6411 l_rec_acct_attrs.array_char_value(8) := p_source_54;
6412 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
6413 l_rec_acct_attrs.array_char_value(9) := p_source_55;
6414 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
6415 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_56);
6416 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
6417 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_57);
6418 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
6419 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_29);
6420 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
6421 l_rec_acct_attrs.array_char_value(13) := p_source_58;
6422 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
6423 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_11);
6424 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
6425 l_rec_acct_attrs.array_num_value(15) := p_source_33;
6426 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
6427 l_rec_acct_attrs.array_char_value(16) := p_source_34;
6428 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
6429 l_rec_acct_attrs.array_num_value(17) := p_source_35;
6430 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
6431 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_11);
6432 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
6433 l_rec_acct_attrs.array_num_value(19) := p_source_33;
6434 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
6435 l_rec_acct_attrs.array_char_value(20) := p_source_34;
6436 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
6437 l_rec_acct_attrs.array_num_value(21) := p_source_35;
6438 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
6439 l_rec_acct_attrs.array_char_value(22) := p_source_59;
6440 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
6441 l_rec_acct_attrs.array_num_value(23) := p_source_33;
6442 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
6443 l_rec_acct_attrs.array_char_value(24) := p_source_34;
6444 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
6445 l_rec_acct_attrs.array_date_value(25) := p_source_62;
6446 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
6447 l_rec_acct_attrs.array_num_value(26) := p_source_63;
6448 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
6449 l_rec_acct_attrs.array_char_value(27) := p_source_64;
6450 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
6451 l_rec_acct_attrs.array_num_value(28) := p_source_35;
6452 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
6453 l_rec_acct_attrs.array_char_value(29) := p_source_60;
6454 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
6455 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_56);
6456 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
6457 l_rec_acct_attrs.array_char_value(31) := p_source_54;
6458 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
6459 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_29);
6460 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
6461 l_rec_acct_attrs.array_num_value(33) := p_source_61;
6462 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
6463 l_rec_acct_attrs.array_num_value(34) := p_source_61;
6464
6465 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
6466 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
6467
6468 ---------------------------------------------------------------------------------------------------------------
6469 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
6470 ---------------------------------------------------------------------------------------------------------------
6471 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
6472
6473 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6474 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6475
6476 IF xla_accounting_cache_pkg.GetValueChar
6477 (p_source_code => 'LEDGER_CATEGORY_CODE'
6478 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
6479 AND l_bflow_method_code = 'PRIOR_ENTRY'
6480 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
6481 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
6482 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
6483 )
6484 THEN
6485 xla_ae_lines_pkg.BflowUpgEntry
6486 (p_business_method_code => l_bflow_method_code
6487 ,p_business_class_code => l_bflow_class_code
6488 ,p_balance_type => l_balance_type_code);
6489 ELSE
6490 NULL;
6491 -- No business flow processing for business flow method of NONE.
6492 END IF;
6493
6494 --
6495 -- call analytical criteria
6496 --
6497
6498 --
6499 -- call description
6500 --
6501
6502 xla_ae_lines_pkg.SetLineDescription(
6503 p_ae_header_id => l_ae_header_id
6504 ,p_description => Description_3 (
6505 p_application_id => p_application_id
6506 , p_ae_header_id => l_ae_header_id
6507 , p_source_7 => p_source_7
6508 )
6509 );
6510
6511
6512 --
6513 -- call ADRs
6514 -- Bug 4922099
6515 --
6516 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6517 (NVL(l_actual_upg_option, 'N') = 'O') OR
6518 (NVL(l_enc_upg_option, 'N') = 'O')
6519 )
6520 THEN
6521 NULL;
6522 --
6523 --
6524
6525 l_ccid := AcctDerRule_8(
6526 p_application_id => p_application_id
6527 , p_ae_header_id => l_ae_header_id
6528 , p_source_11 => p_source_11
6529 , x_transaction_coa_id => l_adr_transaction_coa_id
6530 , x_accounting_coa_id => l_adr_accounting_coa_id
6531 , x_value_type_code => l_adr_value_type_code
6532 , p_side => 'NA'
6533 );
6534
6535 xla_ae_lines_pkg.set_ccid(
6536 p_code_combination_id => l_ccid
6537 , p_value_type_code => l_adr_value_type_code
6538 , p_transaction_coa_id => l_adr_transaction_coa_id
6539 , p_accounting_coa_id => l_adr_accounting_coa_id
6540 , p_adr_code => 'PURCHASING_ENCUMBRANCE_ADR'
6541 , p_adr_type_code => 'S'
6542 , p_component_type => l_component_type
6543 , p_component_code => l_component_code
6544 , p_component_type_code => l_component_type_code
6545 , p_component_appl_id => l_component_appl_id
6546 , p_amb_context_code => l_amb_context_code
6547 , p_side => 'NA'
6548 );
6549
6550
6551 --
6552 --
6553 END IF;
6554 --
6555 -- Bug 4922099
6556 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
6557 (NVL(l_enc_upg_option, 'N') = 'O')
6558 ) AND
6559 (l_bflow_method_code = 'PRIOR_ENTRY')
6560 )
6561 THEN
6562 IF
6563 --
6564 1 = 2
6565 --
6566 THEN
6567 xla_accounting_err_pkg.build_message
6568 (p_appli_s_name => 'XLA'
6569 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6570 ,p_token_1 => 'LINE_NUMBER'
6571 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
6572 ,p_token_2 => 'LINE_TYPE_NAME'
6573 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
6574 l_component_type
6575 ,l_component_code
6576 ,l_component_type_code
6577 ,l_component_appl_id
6578 ,l_amb_context_code
6579 ,l_entity_code
6580 ,l_event_class_code
6581 )
6582 ,p_token_3 => 'OWNER'
6583 ,p_value_3 => xla_lookups_pkg.get_meaning(
6584 p_lookup_type => 'XLA_OWNER_TYPE'
6585 ,p_lookup_code => l_component_type_code
6586 )
6587 ,p_token_4 => 'PRODUCT_NAME'
6588 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
6589 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
6590 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
6591 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
6592 ,p_ae_header_id => NULL
6593 );
6594
6595 IF (C_LEVEL_ERROR>= g_log_level) THEN
6596 trace
6597 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6598 ,p_level => C_LEVEL_ERROR
6599 ,p_module => l_log_module);
6600 END IF;
6601 END IF;
6602 END IF;
6603 --
6604 --
6605 ------------------------------------------------------------------------------------------------
6606 -- 4219869 Business Flow
6607 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
6608 -- Prior Entry. Currently, the following code is always generated.
6609 ------------------------------------------------------------------------------------------------
6610 XLA_AE_LINES_PKG.ValidateCurrentLine;
6611
6612 ------------------------------------------------------------------------------------
6613 -- 4219869 Business Flow
6614 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
6615 ------------------------------------------------------------------------------------
6616 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6617
6618 ----------------------------------------------------------------------------------
6619 -- 4219869 Business Flow
6620 -- Update journal entry status -- Need to generate this within IF <condition>
6621 ----------------------------------------------------------------------------------
6622 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6623 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
6624 ,p_balance_type_code => l_balance_type_code
6625 );
6626
6627 -------------------------------------------------------------------------------------------
6628 -- 4262811 - Generate the Accrual Reversal lines
6629 -------------------------------------------------------------------------------------------
6630 BEGIN
6631 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
6632 (g_array_event(p_event_id).array_value_num('header_index'));
6633 IF l_acc_rev_flag IS NULL THEN
6634 l_acc_rev_flag := 'N';
6635 END IF;
6636 EXCEPTION
6637 WHEN OTHERS THEN
6638 l_acc_rev_flag := 'N';
6639 END;
6640 --
6641 IF (l_acc_rev_flag = 'Y') THEN
6642
6643 -- 4645092 ------------------------------------------------------------------------------
6644 -- To allow MPA report to determine if it should generate report process
6645 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
6646 ------------------------------------------------------------------------------------------
6647
6648 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
6649 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
6650
6651 --
6652 -- Update the line information that should be overwritten
6653 --
6654 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
6655 p_header_num => 1);
6656 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
6657
6658 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
6659
6660 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
6661 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
6662 END IF;
6663
6664 --
6665 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
6666 --
6667 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
6668 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
6669 ELSE
6670 ---------------------------------------------------------------------------------------------------
6671 -- 4262811a Switch Sign
6672 ---------------------------------------------------------------------------------------------------
6673 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
6674 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6675 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6676 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6677 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6678 -- 5132302
6679 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
6680 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6681
6682 END IF;
6683
6684 -- 4955764
6685 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6686 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
6687
6688
6689 XLA_AE_LINES_PKG.ValidateCurrentLine;
6690 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6691
6692 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6693 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
6694 ,p_balance_type_code => l_balance_type_code);
6695
6696 END IF;
6697
6698 -----------------------------------------------------------------------------------------
6699 -- 4262811 Multiperiod Accounting
6700 -----------------------------------------------------------------------------------------
6701 -- No MPA option is assigned.
6702
6703
6704 END IF;
6705 END IF;
6706 --
6707
6708 --
6709 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6710 trace
6711 (p_msg => 'END of AcctLineType_17'
6712 ,p_level => C_LEVEL_PROCEDURE
6713 ,p_module => l_log_module);
6714 END IF;
6715 --
6716 EXCEPTION
6717 WHEN xla_exceptions_pkg.application_exception THEN
6718 RAISE;
6719 WHEN OTHERS THEN
6720 xla_exceptions_pkg.raise_message
6721 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_17');
6722 END AcctLineType_17;
6723 --
6724
6725 ---------------------------------------
6726 --
6727 -- PRIVATE FUNCTION
6728 -- AcctLineType_18
6729 --
6730 ---------------------------------------
6731 PROCEDURE AcctLineType_18 (
6732 p_application_id IN NUMBER
6733 ,p_event_id IN NUMBER
6734 ,p_calculate_acctd_flag IN VARCHAR2
6735 ,p_calculate_g_l_flag IN VARCHAR2
6736 ,p_actual_flag IN OUT VARCHAR2
6737 ,p_balance_type_code OUT VARCHAR2
6738 ,p_gain_or_loss_ref OUT VARCHAR2
6739
6740 --Budget Account
6741 , p_source_11 IN NUMBER
6742 --Main Or Backing Code
6743 , p_source_13 IN VARCHAR2
6744 --Accounting Reversal Flag
6745 , p_source_16 IN VARCHAR2
6746 --PO Distribution Identifier
6747 , p_source_29 IN NUMBER
6748 --Entered Amount
6749 , p_source_33 IN NUMBER
6750 --Currency Code
6751 , p_source_34 IN VARCHAR2
6752 --Accounted Amount
6753 , p_source_35 IN NUMBER
6754 --Allocated to Main Document Distribution Type
6755 , p_source_49 IN VARCHAR2
6756 --Allocated to Main Document Distribution Identifier
6757 , p_source_51 IN NUMBER
6758 --PO Header Identifier
6759 , p_source_52 IN NUMBER
6760 --Applied To Application Identifier
6761 , p_source_53 IN NUMBER
6762 --Applied To Distribution Link Type
6763 , p_source_54 IN VARCHAR2
6764 --Applied To Entity Code
6765 , p_source_55 IN VARCHAR2
6766 --Applied To Distribution Identifier 1
6767 , p_source_56 IN NUMBER
6768 --Applied To Header Identifier 1
6769 , p_source_57 IN NUMBER
6770 --Distribution Link Type
6771 , p_source_58 IN VARCHAR2
6772 --PO Encumbrance Upgrade Option
6773 , p_source_59 IN VARCHAR2
6774 --JFMIP Reference
6775 , p_source_60 IN VARCHAR2
6776 --PO Upgrade Encumbrance Type Identifier
6777 , p_source_61 IN NUMBER
6778 --Backing Requisition Prevent Encumbrance Changed Flag
6779 , p_source_65 IN VARCHAR2
6780 )
6781 IS
6782
6783 l_component_type VARCHAR2(80);
6784 l_component_code VARCHAR2(30);
6785 l_component_type_code VARCHAR2(1);
6786 l_component_appl_id INTEGER;
6787 l_amb_context_code VARCHAR2(30);
6788 l_entity_code VARCHAR2(30);
6789 l_event_class_code VARCHAR2(30);
6790 l_ae_header_id NUMBER;
6791 l_event_type_code VARCHAR2(30);
6792 l_line_definition_code VARCHAR2(30);
6793 l_line_definition_owner_code VARCHAR2(1);
6794 --
6795 -- adr variables
6796 l_segment VARCHAR2(30);
6797 l_ccid NUMBER;
6798 l_adr_transaction_coa_id NUMBER;
6799 l_adr_accounting_coa_id NUMBER;
6800 l_adr_flexfield_segment_code VARCHAR2(30);
6801 l_adr_flex_value_set_id NUMBER;
6802 l_adr_value_type_code VARCHAR2(30);
6803 l_adr_value_combination_id NUMBER;
6804 l_adr_value_segment_code VARCHAR2(30);
6805
6806 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
6807 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
6808 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
6809 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
6810
6811 -- 4262811 Variables ------------------------------------------------------------------------------------------
6812 l_entered_amt_idx NUMBER;
6813 l_accted_amt_idx NUMBER;
6814 l_acc_rev_flag VARCHAR2(1);
6815 l_accrual_line_num NUMBER;
6816 l_tmp_amt NUMBER;
6817 l_acc_rev_natural_side_code VARCHAR2(1);
6818
6819 l_num_entries NUMBER;
6820 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
6821 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
6822 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
6823 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
6824 l_recog_line_1 NUMBER;
6825 l_recog_line_2 NUMBER;
6826
6827 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
6828 l_bflow_applied_to_amt NUMBER; -- 5132302
6829 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
6830
6831 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
6832
6833 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
6834 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
6835
6836 ---------------------------------------------------------------------------------------------------------------
6837
6838
6839 --
6840 -- bulk performance
6841 --
6842 l_balance_type_code VARCHAR2(1);
6843 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
6844 l_log_module VARCHAR2(240);
6845
6846 --
6847 -- Upgrade strategy
6848 --
6849 l_actual_upg_option VARCHAR2(1);
6850 l_enc_upg_option VARCHAR2(1);
6851
6852 --
6853 BEGIN
6854 --
6855 IF g_log_enabled THEN
6856 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_18';
6857 END IF;
6858 --
6859 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6860
6861 trace
6862 (p_msg => 'BEGIN of AcctLineType_18'
6863 ,p_level => C_LEVEL_PROCEDURE
6864 ,p_module => l_log_module);
6865
6866 END IF;
6867 --
6868 l_component_type := 'AMB_JLT';
6869 l_component_code := 'REINSTATE_REQ_ENC_FROM_PO_DR';
6870 l_component_type_code := 'S';
6871 l_component_appl_id := 201;
6872 l_amb_context_code := 'DEFAULT';
6873 l_entity_code := 'PURCHASE_ORDER';
6874 l_event_class_code := 'PO_PA';
6875 l_event_type_code := 'PO_PA_ALL';
6876 l_line_definition_owner_code := 'S';
6877 l_line_definition_code := 'PO_PA_ENC_ALL';
6878 --
6879 l_balance_type_code := 'E';
6880 l_segment := NULL;
6881 l_ccid := NULL;
6882 l_adr_transaction_coa_id := NULL;
6883 l_adr_accounting_coa_id := NULL;
6884 l_adr_flexfield_segment_code := NULL;
6885 l_adr_flex_value_set_id := NULL;
6886 l_adr_value_type_code := NULL;
6887 l_adr_value_combination_id := NULL;
6888 l_adr_value_segment_code := NULL;
6889
6890 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
6891 l_bflow_class_code := 'REQ_ENCUMBRANCE'; -- 4219869 Business Flow
6892 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
6893 l_budgetary_control_flag := 'Y';
6894
6895 l_bflow_applied_to_amt_idx := NULL; -- 5132302
6896 l_bflow_applied_to_amt := NULL; -- 5132302
6897 l_entered_amt_idx := NULL; -- 4262811
6898 l_accted_amt_idx := NULL; -- 4262811
6899 l_acc_rev_flag := NULL; -- 4262811
6900 l_accrual_line_num := NULL; -- 4262811
6901 l_tmp_amt := NULL; -- 4262811
6902 --
6903
6904 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
6905 l_balance_type_code <> 'B' THEN
6906 IF (NVL(
6907 xla_ae_sources_pkg.GetSystemSourceChar(
6908 p_source_code => 'XLA_EVENT_TYPE_CODE'
6909 , p_source_type_code => 'Y'
6910 , p_source_application_id => 602
6911 ),'
6912 ') = 'PO_PA_UNRESERVED' OR
6913 NVL(
6914 xla_ae_sources_pkg.GetSystemSourceChar(
6915 p_source_code => 'XLA_EVENT_TYPE_CODE'
6916 , p_source_type_code => 'Y'
6917 , p_source_application_id => 602
6918 ),'
6919 ') = 'PO_PA_REJECTED' OR
6920 NVL(
6921 xla_ae_sources_pkg.GetSystemSourceChar(
6922 p_source_code => 'XLA_EVENT_TYPE_CODE'
6923 , p_source_type_code => 'Y'
6924 , p_source_application_id => 602
6925 ),'
6926 ') = 'PO_PA_INV_CANCELLED') AND
6927 NVL(p_source_13,'
6928 ') = 'B_REQ' AND
6929 NVL(p_source_65,'
6930 ') = 'N'
6931 THEN
6932
6933 --
6934 XLA_AE_LINES_PKG.SetNewLine;
6935
6936 p_balance_type_code := l_balance_type_code;
6937 -- set the flag so later we will know whether the gain loss line needs to be created
6938
6939 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
6940 p_actual_flag :='A';
6941 END IF;
6942
6943 --
6944 -- bulk performance
6945 --
6946 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
6947 p_header_num => 0); -- 4262811
6948 --
6949 -- set accounting line options
6950 --
6951 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
6952 p_natural_side_code => 'D'
6953 , p_gain_or_loss_flag => 'N'
6954 , p_gl_transfer_mode_code => 'S'
6955 , p_acct_entry_type_code => 'E'
6956 , p_switch_side_flag => 'N'
6957 , p_merge_duplicate_code => 'N'
6958 );
6959 --
6960 l_acc_rev_natural_side_code := 'C'; -- 4262811
6961 --
6962 --
6963 -- set accounting line type info
6964 --
6965 xla_ae_lines_pkg.SetAcctLineType
6966 (p_component_type => l_component_type
6967 ,p_event_type_code => l_event_type_code
6968 ,p_line_definition_owner_code => l_line_definition_owner_code
6969 ,p_line_definition_code => l_line_definition_code
6970 ,p_accounting_line_code => l_component_code
6971 ,p_accounting_line_type_code => l_component_type_code
6972 ,p_accounting_line_appl_id => l_component_appl_id
6973 ,p_amb_context_code => l_amb_context_code
6974 ,p_entity_code => l_entity_code
6975 ,p_event_class_code => l_event_class_code);
6976 --
6977 -- set accounting class
6978 --
6979 xla_ae_lines_pkg.SetAcctClass(
6980 p_accounting_class_code => 'REQUISITION'
6981 , p_ae_header_id => l_ae_header_id
6982 );
6983
6984 --
6985 -- set rounding class
6986 --
6987 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
6988 'REQUISITION';
6989
6990 --
6991 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
6992 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
6993 --
6994 -- bulk performance
6995 --
6996 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
6997
6998 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
6999 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
7000
7001 -- 4955764
7002 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7003 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
7004
7005 -- 4458381 Public Sector Enh
7006
7007 --
7008 -- set accounting attributes for the line type
7009 --
7010 l_entered_amt_idx := 23;
7011 l_accted_amt_idx := 25;
7012 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7013 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
7014 l_rec_acct_attrs.array_char_value(1) := p_source_16;
7015 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
7016 l_rec_acct_attrs.array_num_value(2) :=
7017 xla_ae_sources_pkg.GetSystemSourceNum(
7018 p_source_code => 'XLA_EVENT_APPL_ID'
7019 , p_source_type_code => 'Y'
7020 , p_source_application_id => 602
7021 );
7022 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
7023 l_rec_acct_attrs.array_char_value(3) := p_source_49;
7024 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
7025 l_rec_acct_attrs.array_char_value(4) :=
7026 xla_ae_sources_pkg.GetSystemSourceChar(
7027 p_source_code => 'XLA_ENTITY_CODE'
7028 , p_source_type_code => 'Y'
7029 , p_source_application_id => 602
7030 );
7031 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
7032 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_51);
7033 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
7034 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_52);
7035 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
7036 l_rec_acct_attrs.array_num_value(7) := p_source_53;
7037 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
7038 l_rec_acct_attrs.array_char_value(8) := p_source_54;
7039 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
7040 l_rec_acct_attrs.array_char_value(9) := p_source_55;
7041 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
7042 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_56);
7043 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
7044 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_57);
7045 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
7046 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_29);
7047 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
7048 l_rec_acct_attrs.array_char_value(13) := p_source_58;
7049 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
7050 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_11);
7051 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
7052 l_rec_acct_attrs.array_num_value(15) := p_source_33;
7053 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
7054 l_rec_acct_attrs.array_char_value(16) := p_source_34;
7055 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
7056 l_rec_acct_attrs.array_num_value(17) := p_source_35;
7057 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
7058 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_11);
7059 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
7060 l_rec_acct_attrs.array_num_value(19) := p_source_33;
7061 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
7062 l_rec_acct_attrs.array_char_value(20) := p_source_34;
7063 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
7064 l_rec_acct_attrs.array_num_value(21) := p_source_35;
7065 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
7066 l_rec_acct_attrs.array_char_value(22) := p_source_59;
7067 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
7068 l_rec_acct_attrs.array_num_value(23) := p_source_33;
7069 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
7070 l_rec_acct_attrs.array_char_value(24) := p_source_34;
7071 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
7072 l_rec_acct_attrs.array_num_value(25) := p_source_35;
7073 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
7074 l_rec_acct_attrs.array_char_value(26) := p_source_60;
7075 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
7076 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_56);
7077 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
7078 l_rec_acct_attrs.array_char_value(28) := p_source_54;
7079 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
7080 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_29);
7081 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
7082 l_rec_acct_attrs.array_num_value(30) := p_source_61;
7083 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
7084 l_rec_acct_attrs.array_num_value(31) := p_source_61;
7085
7086 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
7087 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
7088
7089 ---------------------------------------------------------------------------------------------------------------
7090 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
7091 ---------------------------------------------------------------------------------------------------------------
7092 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
7093
7094 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7095 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7096
7097 IF xla_accounting_cache_pkg.GetValueChar
7098 (p_source_code => 'LEDGER_CATEGORY_CODE'
7099 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
7100 AND l_bflow_method_code = 'PRIOR_ENTRY'
7101 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
7102 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
7103 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
7104 )
7105 THEN
7106 xla_ae_lines_pkg.BflowUpgEntry
7107 (p_business_method_code => l_bflow_method_code
7108 ,p_business_class_code => l_bflow_class_code
7109 ,p_balance_type => l_balance_type_code);
7110 ELSE
7111 NULL;
7112 XLA_AE_LINES_PKG.business_flow_validation(
7113 p_business_method_code => l_bflow_method_code
7114 ,p_business_class_code => l_bflow_class_code
7115 ,p_inherit_description_flag => l_inherit_desc_flag);
7116 END IF;
7117
7118 --
7119 -- call analytical criteria
7120 --
7121 -- Inherited Analytical Criteria for business flow method of Prior Entry.
7122 --
7123 -- call description
7124 --
7125 -- No description or it is inherited.
7126 --
7127 -- call ADRs
7128 -- Bug 4922099
7129 --
7130 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7131 (NVL(l_actual_upg_option, 'N') = 'O') OR
7132 (NVL(l_enc_upg_option, 'N') = 'O')
7133 )
7134 THEN
7135 NULL;
7136 --
7137 --
7138
7139 --
7140 --
7141 END IF;
7142 --
7143 -- Bug 4922099
7144 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
7145 (NVL(l_enc_upg_option, 'N') = 'O')
7146 ) AND
7147 (l_bflow_method_code = 'PRIOR_ENTRY')
7148 )
7149 THEN
7150 IF
7151 --
7152 1 = 1
7153 --
7154 THEN
7155 xla_accounting_err_pkg.build_message
7156 (p_appli_s_name => 'XLA'
7157 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7158 ,p_token_1 => 'LINE_NUMBER'
7159 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
7160 ,p_token_2 => 'LINE_TYPE_NAME'
7161 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
7162 l_component_type
7163 ,l_component_code
7164 ,l_component_type_code
7165 ,l_component_appl_id
7166 ,l_amb_context_code
7167 ,l_entity_code
7168 ,l_event_class_code
7169 )
7170 ,p_token_3 => 'OWNER'
7171 ,p_value_3 => xla_lookups_pkg.get_meaning(
7172 p_lookup_type => 'XLA_OWNER_TYPE'
7173 ,p_lookup_code => l_component_type_code
7174 )
7175 ,p_token_4 => 'PRODUCT_NAME'
7176 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
7177 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
7178 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
7179 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
7180 ,p_ae_header_id => NULL
7181 );
7182
7183 IF (C_LEVEL_ERROR>= g_log_level) THEN
7184 trace
7185 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7186 ,p_level => C_LEVEL_ERROR
7187 ,p_module => l_log_module);
7188 END IF;
7189 END IF;
7190 END IF;
7191 --
7192 --
7193 ------------------------------------------------------------------------------------------------
7194 -- 4219869 Business Flow
7195 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
7196 -- Prior Entry. Currently, the following code is always generated.
7197 ------------------------------------------------------------------------------------------------
7198 -- No ValidateCurrentLine for business flow method of Prior Entry
7199
7200 ------------------------------------------------------------------------------------
7201 -- 4219869 Business Flow
7202 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
7203 ------------------------------------------------------------------------------------
7204 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7205
7206 ----------------------------------------------------------------------------------
7207 -- 4219869 Business Flow
7208 -- Update journal entry status -- Need to generate this within IF <condition>
7209 ----------------------------------------------------------------------------------
7210 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7211 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
7212 ,p_balance_type_code => l_balance_type_code
7213 );
7214
7215 -------------------------------------------------------------------------------------------
7216 -- 4262811 - Generate the Accrual Reversal lines
7217 -------------------------------------------------------------------------------------------
7218 BEGIN
7219 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
7220 (g_array_event(p_event_id).array_value_num('header_index'));
7221 IF l_acc_rev_flag IS NULL THEN
7222 l_acc_rev_flag := 'N';
7223 END IF;
7224 EXCEPTION
7225 WHEN OTHERS THEN
7226 l_acc_rev_flag := 'N';
7227 END;
7228 --
7229 IF (l_acc_rev_flag = 'Y') THEN
7230
7231 -- 4645092 ------------------------------------------------------------------------------
7232 -- To allow MPA report to determine if it should generate report process
7233 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
7234 ------------------------------------------------------------------------------------------
7235
7236 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
7237 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
7238
7239 --
7240 -- Update the line information that should be overwritten
7241 --
7242 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
7243 p_header_num => 1);
7244 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
7245
7246 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
7247
7248 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
7249 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
7250 END IF;
7251
7252 --
7253 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
7254 --
7255 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
7256 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
7257 ELSE
7258 ---------------------------------------------------------------------------------------------------
7259 -- 4262811a Switch Sign
7260 ---------------------------------------------------------------------------------------------------
7261 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
7262 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7263 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7264 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7265 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7266 -- 5132302
7267 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
7268 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7269
7270 END IF;
7271
7272 -- 4955764
7273 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7274 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
7275
7276
7277 XLA_AE_LINES_PKG.ValidateCurrentLine;
7278 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7279
7280 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7281 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
7282 ,p_balance_type_code => l_balance_type_code);
7283
7284 END IF;
7285
7286 -----------------------------------------------------------------------------------------
7287 -- 4262811 Multiperiod Accounting
7288 -----------------------------------------------------------------------------------------
7289 -- No MPA option is assigned.
7290
7291
7292 END IF;
7293 END IF;
7294 --
7295
7296 --
7297 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7298 trace
7299 (p_msg => 'END of AcctLineType_18'
7300 ,p_level => C_LEVEL_PROCEDURE
7301 ,p_module => l_log_module);
7302 END IF;
7303 --
7304 EXCEPTION
7305 WHEN xla_exceptions_pkg.application_exception THEN
7306 RAISE;
7307 WHEN OTHERS THEN
7308 xla_exceptions_pkg.raise_message
7309 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_18');
7310 END AcctLineType_18;
7311 --
7312
7313 ---------------------------------------
7314 --
7315 -- PRIVATE FUNCTION
7316 -- AcctLineType_19
7317 --
7318 ---------------------------------------
7319 PROCEDURE AcctLineType_19 (
7320 p_application_id IN NUMBER
7321 ,p_event_id IN NUMBER
7322 ,p_calculate_acctd_flag IN VARCHAR2
7323 ,p_calculate_g_l_flag IN VARCHAR2
7324 ,p_actual_flag IN OUT VARCHAR2
7325 ,p_balance_type_code OUT VARCHAR2
7326 ,p_gain_or_loss_ref OUT VARCHAR2
7327
7328 --Budget Account
7329 , p_source_11 IN NUMBER
7330 --Main Or Backing Code
7331 , p_source_13 IN VARCHAR2
7332 --Accounting Reversal Flag
7333 , p_source_16 IN VARCHAR2
7334 --PO Distribution Identifier
7335 , p_source_29 IN NUMBER
7336 --Entered Amount
7337 , p_source_33 IN NUMBER
7338 --Currency Code
7339 , p_source_34 IN VARCHAR2
7340 --Accounted Amount
7341 , p_source_35 IN NUMBER
7342 --Allocated to Main Document Distribution Type
7343 , p_source_49 IN VARCHAR2
7344 --Allocated to Main Document Distribution Identifier
7345 , p_source_51 IN NUMBER
7346 --Applied To Application Identifier
7347 , p_source_53 IN NUMBER
7348 --Applied To Distribution Link Type
7349 , p_source_54 IN VARCHAR2
7350 --Applied To Entity Code
7351 , p_source_55 IN VARCHAR2
7352 --Applied To Distribution Identifier 1
7353 , p_source_56 IN NUMBER
7354 --Applied To Header Identifier 1
7355 , p_source_57 IN NUMBER
7356 --Distribution Link Type
7357 , p_source_58 IN VARCHAR2
7358 --PO Encumbrance Upgrade Option
7359 , p_source_59 IN VARCHAR2
7360 --JFMIP Reference
7361 , p_source_60 IN VARCHAR2
7362 --PO Upgrade Encumbrance Type Identifier
7363 , p_source_61 IN NUMBER
7364 --PO Release Identifier
7365 , p_source_66 IN NUMBER
7366 )
7367 IS
7368
7369 l_component_type VARCHAR2(80);
7370 l_component_code VARCHAR2(30);
7371 l_component_type_code VARCHAR2(1);
7372 l_component_appl_id INTEGER;
7373 l_amb_context_code VARCHAR2(30);
7374 l_entity_code VARCHAR2(30);
7375 l_event_class_code VARCHAR2(30);
7376 l_ae_header_id NUMBER;
7377 l_event_type_code VARCHAR2(30);
7378 l_line_definition_code VARCHAR2(30);
7379 l_line_definition_owner_code VARCHAR2(1);
7380 --
7381 -- adr variables
7382 l_segment VARCHAR2(30);
7383 l_ccid NUMBER;
7384 l_adr_transaction_coa_id NUMBER;
7385 l_adr_accounting_coa_id NUMBER;
7386 l_adr_flexfield_segment_code VARCHAR2(30);
7387 l_adr_flex_value_set_id NUMBER;
7388 l_adr_value_type_code VARCHAR2(30);
7389 l_adr_value_combination_id NUMBER;
7390 l_adr_value_segment_code VARCHAR2(30);
7391
7392 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
7393 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
7394 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
7395 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
7396
7397 -- 4262811 Variables ------------------------------------------------------------------------------------------
7398 l_entered_amt_idx NUMBER;
7399 l_accted_amt_idx NUMBER;
7400 l_acc_rev_flag VARCHAR2(1);
7401 l_accrual_line_num NUMBER;
7402 l_tmp_amt NUMBER;
7403 l_acc_rev_natural_side_code VARCHAR2(1);
7404
7405 l_num_entries NUMBER;
7406 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
7407 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
7408 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
7409 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
7410 l_recog_line_1 NUMBER;
7411 l_recog_line_2 NUMBER;
7412
7413 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
7414 l_bflow_applied_to_amt NUMBER; -- 5132302
7415 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
7416
7417 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
7418
7419 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
7420 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
7421
7422 ---------------------------------------------------------------------------------------------------------------
7423
7424
7425 --
7426 -- bulk performance
7427 --
7428 l_balance_type_code VARCHAR2(1);
7429 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
7430 l_log_module VARCHAR2(240);
7431
7432 --
7433 -- Upgrade strategy
7434 --
7435 l_actual_upg_option VARCHAR2(1);
7436 l_enc_upg_option VARCHAR2(1);
7437
7438 --
7439 BEGIN
7440 --
7441 IF g_log_enabled THEN
7442 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_19';
7443 END IF;
7444 --
7445 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7446
7447 trace
7448 (p_msg => 'BEGIN of AcctLineType_19'
7449 ,p_level => C_LEVEL_PROCEDURE
7450 ,p_module => l_log_module);
7451
7452 END IF;
7453 --
7454 l_component_type := 'AMB_JLT';
7455 l_component_code := 'REINSTATE_REQ_ENC_FROM_REL_CR';
7456 l_component_type_code := 'S';
7457 l_component_appl_id := 201;
7458 l_amb_context_code := 'DEFAULT';
7459 l_entity_code := 'RELEASE';
7460 l_event_class_code := 'RELEASE';
7461 l_event_type_code := 'RELEASE_ALL';
7462 l_line_definition_owner_code := 'S';
7463 l_line_definition_code := 'RELEASE_ENC_ALL';
7464 --
7465 l_balance_type_code := 'E';
7466 l_segment := NULL;
7467 l_ccid := NULL;
7468 l_adr_transaction_coa_id := NULL;
7469 l_adr_accounting_coa_id := NULL;
7470 l_adr_flexfield_segment_code := NULL;
7471 l_adr_flex_value_set_id := NULL;
7472 l_adr_value_type_code := NULL;
7473 l_adr_value_combination_id := NULL;
7474 l_adr_value_segment_code := NULL;
7475
7476 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
7477 l_bflow_class_code := 'REQ_ENCUMBRANCE'; -- 4219869 Business Flow
7478 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
7479 l_budgetary_control_flag := 'Y';
7480
7481 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7482 l_bflow_applied_to_amt := NULL; -- 5132302
7483 l_entered_amt_idx := NULL; -- 4262811
7484 l_accted_amt_idx := NULL; -- 4262811
7485 l_acc_rev_flag := NULL; -- 4262811
7486 l_accrual_line_num := NULL; -- 4262811
7487 l_tmp_amt := NULL; -- 4262811
7488 --
7489
7490 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
7491 l_balance_type_code <> 'B' THEN
7492 IF (NVL(
7493 xla_ae_sources_pkg.GetSystemSourceChar(
7494 p_source_code => 'XLA_EVENT_TYPE_CODE'
7495 , p_source_type_code => 'Y'
7496 , p_source_application_id => 602
7497 ),'
7498 ') = 'RELEASE_CANCELLED' OR
7499 NVL(
7500 xla_ae_sources_pkg.GetSystemSourceChar(
7501 p_source_code => 'XLA_EVENT_TYPE_CODE'
7502 , p_source_type_code => 'Y'
7503 , p_source_application_id => 602
7504 ),'
7505 ') = 'RELEASE_CR_MEMO_CANCELLED') AND
7506 NVL(p_source_13,'
7507 ') = 'B_REQ'
7508 THEN
7509
7510 --
7511 XLA_AE_LINES_PKG.SetNewLine;
7512
7513 p_balance_type_code := l_balance_type_code;
7514 -- set the flag so later we will know whether the gain loss line needs to be created
7515
7516 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
7517 p_actual_flag :='A';
7518 END IF;
7519
7520 --
7521 -- bulk performance
7522 --
7523 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
7524 p_header_num => 0); -- 4262811
7525 --
7526 -- set accounting line options
7527 --
7528 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
7529 p_natural_side_code => 'C'
7530 , p_gain_or_loss_flag => 'N'
7531 , p_gl_transfer_mode_code => 'S'
7532 , p_acct_entry_type_code => 'E'
7533 , p_switch_side_flag => 'N'
7534 , p_merge_duplicate_code => 'N'
7535 );
7536 --
7537 l_acc_rev_natural_side_code := 'D'; -- 4262811
7538 --
7539 --
7540 -- set accounting line type info
7541 --
7542 xla_ae_lines_pkg.SetAcctLineType
7543 (p_component_type => l_component_type
7544 ,p_event_type_code => l_event_type_code
7545 ,p_line_definition_owner_code => l_line_definition_owner_code
7546 ,p_line_definition_code => l_line_definition_code
7547 ,p_accounting_line_code => l_component_code
7548 ,p_accounting_line_type_code => l_component_type_code
7549 ,p_accounting_line_appl_id => l_component_appl_id
7550 ,p_amb_context_code => l_amb_context_code
7551 ,p_entity_code => l_entity_code
7552 ,p_event_class_code => l_event_class_code);
7553 --
7554 -- set accounting class
7555 --
7556 xla_ae_lines_pkg.SetAcctClass(
7557 p_accounting_class_code => 'PURCHASE_ORDER'
7558 , p_ae_header_id => l_ae_header_id
7559 );
7560
7561 --
7562 -- set rounding class
7563 --
7564 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
7565 'PURCHASE_ORDER';
7566
7567 --
7568 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
7569 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
7570 --
7571 -- bulk performance
7572 --
7573 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
7574
7575 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
7576 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
7577
7578 -- 4955764
7579 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7580 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
7581
7582 -- 4458381 Public Sector Enh
7583
7584 --
7585 -- set accounting attributes for the line type
7586 --
7587 l_entered_amt_idx := 23;
7588 l_accted_amt_idx := 25;
7589 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7590 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
7591 l_rec_acct_attrs.array_char_value(1) := p_source_16;
7592 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
7593 l_rec_acct_attrs.array_num_value(2) :=
7594 xla_ae_sources_pkg.GetSystemSourceNum(
7595 p_source_code => 'XLA_EVENT_APPL_ID'
7596 , p_source_type_code => 'Y'
7597 , p_source_application_id => 602
7598 );
7599 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
7600 l_rec_acct_attrs.array_char_value(3) := p_source_49;
7601 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
7602 l_rec_acct_attrs.array_char_value(4) :=
7603 xla_ae_sources_pkg.GetSystemSourceChar(
7604 p_source_code => 'XLA_ENTITY_CODE'
7605 , p_source_type_code => 'Y'
7606 , p_source_application_id => 602
7607 );
7608 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
7609 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_51);
7610 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
7611 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_66);
7612 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
7613 l_rec_acct_attrs.array_num_value(7) := p_source_53;
7614 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
7615 l_rec_acct_attrs.array_char_value(8) := p_source_54;
7616 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
7617 l_rec_acct_attrs.array_char_value(9) := p_source_55;
7618 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
7619 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_56);
7620 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
7621 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_57);
7622 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
7623 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_29);
7624 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
7625 l_rec_acct_attrs.array_char_value(13) := p_source_58;
7626 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
7627 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_11);
7628 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
7629 l_rec_acct_attrs.array_num_value(15) := p_source_33;
7630 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
7631 l_rec_acct_attrs.array_char_value(16) := p_source_34;
7632 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
7633 l_rec_acct_attrs.array_num_value(17) := p_source_35;
7634 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
7635 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_11);
7636 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
7637 l_rec_acct_attrs.array_num_value(19) := p_source_33;
7638 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
7639 l_rec_acct_attrs.array_char_value(20) := p_source_34;
7640 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
7641 l_rec_acct_attrs.array_num_value(21) := p_source_35;
7642 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
7643 l_rec_acct_attrs.array_char_value(22) := p_source_59;
7644 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
7645 l_rec_acct_attrs.array_num_value(23) := p_source_33;
7646 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
7647 l_rec_acct_attrs.array_char_value(24) := p_source_34;
7648 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
7649 l_rec_acct_attrs.array_num_value(25) := p_source_35;
7650 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
7651 l_rec_acct_attrs.array_char_value(26) := p_source_60;
7652 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
7653 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_56);
7654 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
7655 l_rec_acct_attrs.array_char_value(28) := p_source_54;
7656 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
7657 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_66);
7658 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
7659 l_rec_acct_attrs.array_num_value(30) := p_source_61;
7660 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
7661 l_rec_acct_attrs.array_num_value(31) := p_source_61;
7662
7663 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
7664 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
7665
7666 ---------------------------------------------------------------------------------------------------------------
7667 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
7668 ---------------------------------------------------------------------------------------------------------------
7669 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
7670
7671 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7672 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7673
7674 IF xla_accounting_cache_pkg.GetValueChar
7675 (p_source_code => 'LEDGER_CATEGORY_CODE'
7676 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
7677 AND l_bflow_method_code = 'PRIOR_ENTRY'
7678 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
7679 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
7680 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
7681 )
7682 THEN
7683 xla_ae_lines_pkg.BflowUpgEntry
7684 (p_business_method_code => l_bflow_method_code
7685 ,p_business_class_code => l_bflow_class_code
7686 ,p_balance_type => l_balance_type_code);
7687 ELSE
7688 NULL;
7689 XLA_AE_LINES_PKG.business_flow_validation(
7690 p_business_method_code => l_bflow_method_code
7691 ,p_business_class_code => l_bflow_class_code
7692 ,p_inherit_description_flag => l_inherit_desc_flag);
7693 END IF;
7694
7695 --
7696 -- call analytical criteria
7697 --
7698 -- Inherited Analytical Criteria for business flow method of Prior Entry.
7699 --
7700 -- call description
7701 --
7702 -- No description or it is inherited.
7703 --
7704 -- call ADRs
7705 -- Bug 4922099
7706 --
7707 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7708 (NVL(l_actual_upg_option, 'N') = 'O') OR
7709 (NVL(l_enc_upg_option, 'N') = 'O')
7710 )
7711 THEN
7712 NULL;
7713 --
7714 --
7715
7716 --
7717 --
7718 END IF;
7719 --
7720 -- Bug 4922099
7721 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
7722 (NVL(l_enc_upg_option, 'N') = 'O')
7723 ) AND
7724 (l_bflow_method_code = 'PRIOR_ENTRY')
7725 )
7726 THEN
7727 IF
7728 --
7729 1 = 1
7730 --
7731 THEN
7732 xla_accounting_err_pkg.build_message
7733 (p_appli_s_name => 'XLA'
7734 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7735 ,p_token_1 => 'LINE_NUMBER'
7736 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
7737 ,p_token_2 => 'LINE_TYPE_NAME'
7738 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
7739 l_component_type
7740 ,l_component_code
7741 ,l_component_type_code
7742 ,l_component_appl_id
7743 ,l_amb_context_code
7744 ,l_entity_code
7745 ,l_event_class_code
7746 )
7747 ,p_token_3 => 'OWNER'
7748 ,p_value_3 => xla_lookups_pkg.get_meaning(
7749 p_lookup_type => 'XLA_OWNER_TYPE'
7750 ,p_lookup_code => l_component_type_code
7751 )
7752 ,p_token_4 => 'PRODUCT_NAME'
7753 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
7754 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
7755 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
7756 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
7757 ,p_ae_header_id => NULL
7758 );
7759
7760 IF (C_LEVEL_ERROR>= g_log_level) THEN
7761 trace
7762 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7763 ,p_level => C_LEVEL_ERROR
7764 ,p_module => l_log_module);
7765 END IF;
7766 END IF;
7767 END IF;
7768 --
7769 --
7770 ------------------------------------------------------------------------------------------------
7771 -- 4219869 Business Flow
7772 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
7773 -- Prior Entry. Currently, the following code is always generated.
7774 ------------------------------------------------------------------------------------------------
7775 -- No ValidateCurrentLine for business flow method of Prior Entry
7776
7777 ------------------------------------------------------------------------------------
7778 -- 4219869 Business Flow
7779 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
7780 ------------------------------------------------------------------------------------
7781 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7782
7783 ----------------------------------------------------------------------------------
7784 -- 4219869 Business Flow
7785 -- Update journal entry status -- Need to generate this within IF <condition>
7786 ----------------------------------------------------------------------------------
7787 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7788 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
7789 ,p_balance_type_code => l_balance_type_code
7790 );
7791
7792 -------------------------------------------------------------------------------------------
7793 -- 4262811 - Generate the Accrual Reversal lines
7794 -------------------------------------------------------------------------------------------
7795 BEGIN
7796 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
7797 (g_array_event(p_event_id).array_value_num('header_index'));
7798 IF l_acc_rev_flag IS NULL THEN
7799 l_acc_rev_flag := 'N';
7800 END IF;
7801 EXCEPTION
7802 WHEN OTHERS THEN
7803 l_acc_rev_flag := 'N';
7804 END;
7805 --
7806 IF (l_acc_rev_flag = 'Y') THEN
7807
7808 -- 4645092 ------------------------------------------------------------------------------
7809 -- To allow MPA report to determine if it should generate report process
7810 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
7811 ------------------------------------------------------------------------------------------
7812
7813 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
7814 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
7815
7816 --
7817 -- Update the line information that should be overwritten
7818 --
7819 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
7820 p_header_num => 1);
7821 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
7822
7823 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
7824
7825 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
7826 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
7827 END IF;
7828
7829 --
7830 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
7831 --
7832 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
7833 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
7834 ELSE
7835 ---------------------------------------------------------------------------------------------------
7836 -- 4262811a Switch Sign
7837 ---------------------------------------------------------------------------------------------------
7838 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
7839 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7840 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7841 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7842 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7843 -- 5132302
7844 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
7845 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7846
7847 END IF;
7848
7849 -- 4955764
7850 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7851 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
7852
7853
7854 XLA_AE_LINES_PKG.ValidateCurrentLine;
7855 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7856
7857 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7858 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
7859 ,p_balance_type_code => l_balance_type_code);
7860
7861 END IF;
7862
7863 -----------------------------------------------------------------------------------------
7864 -- 4262811 Multiperiod Accounting
7865 -----------------------------------------------------------------------------------------
7866 -- No MPA option is assigned.
7867
7868
7869 END IF;
7870 END IF;
7871 --
7872
7873 --
7874 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7875 trace
7876 (p_msg => 'END of AcctLineType_19'
7877 ,p_level => C_LEVEL_PROCEDURE
7878 ,p_module => l_log_module);
7879 END IF;
7880 --
7881 EXCEPTION
7882 WHEN xla_exceptions_pkg.application_exception THEN
7883 RAISE;
7884 WHEN OTHERS THEN
7885 xla_exceptions_pkg.raise_message
7886 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_19');
7887 END AcctLineType_19;
7888 --
7889
7890 ---------------------------------------
7891 --
7892 -- PRIVATE FUNCTION
7893 -- AcctLineType_20
7894 --
7895 ---------------------------------------
7896 PROCEDURE AcctLineType_20 (
7897 p_application_id IN NUMBER
7898 ,p_event_id IN NUMBER
7899 ,p_calculate_acctd_flag IN VARCHAR2
7900 ,p_calculate_g_l_flag IN VARCHAR2
7901 ,p_actual_flag IN OUT VARCHAR2
7902 ,p_balance_type_code OUT VARCHAR2
7903 ,p_gain_or_loss_ref OUT VARCHAR2
7904
7905 --Budget Account
7906 , p_source_11 IN NUMBER
7907 --Main Or Backing Code
7908 , p_source_13 IN VARCHAR2
7909 --Accounting Reversal Flag
7910 , p_source_16 IN VARCHAR2
7911 --PO Distribution Identifier
7912 , p_source_29 IN NUMBER
7913 --Entered Amount
7914 , p_source_33 IN NUMBER
7915 --Currency Code
7916 , p_source_34 IN VARCHAR2
7917 --Accounted Amount
7918 , p_source_35 IN NUMBER
7919 --Allocated to Main Document Distribution Type
7920 , p_source_49 IN VARCHAR2
7921 --Allocated to Main Document Distribution Identifier
7922 , p_source_51 IN NUMBER
7923 --Applied To Application Identifier
7924 , p_source_53 IN NUMBER
7925 --Applied To Distribution Link Type
7926 , p_source_54 IN VARCHAR2
7927 --Applied To Entity Code
7928 , p_source_55 IN VARCHAR2
7929 --Applied To Distribution Identifier 1
7930 , p_source_56 IN NUMBER
7931 --Applied To Header Identifier 1
7932 , p_source_57 IN NUMBER
7933 --Distribution Link Type
7934 , p_source_58 IN VARCHAR2
7935 --PO Encumbrance Upgrade Option
7936 , p_source_59 IN VARCHAR2
7937 --JFMIP Reference
7938 , p_source_60 IN VARCHAR2
7939 --PO Upgrade Encumbrance Type Identifier
7940 , p_source_61 IN NUMBER
7941 --PO Release Identifier
7942 , p_source_66 IN NUMBER
7943 )
7944 IS
7945
7946 l_component_type VARCHAR2(80);
7947 l_component_code VARCHAR2(30);
7948 l_component_type_code VARCHAR2(1);
7949 l_component_appl_id INTEGER;
7950 l_amb_context_code VARCHAR2(30);
7951 l_entity_code VARCHAR2(30);
7952 l_event_class_code VARCHAR2(30);
7953 l_ae_header_id NUMBER;
7954 l_event_type_code VARCHAR2(30);
7955 l_line_definition_code VARCHAR2(30);
7956 l_line_definition_owner_code VARCHAR2(1);
7957 --
7958 -- adr variables
7959 l_segment VARCHAR2(30);
7960 l_ccid NUMBER;
7961 l_adr_transaction_coa_id NUMBER;
7962 l_adr_accounting_coa_id NUMBER;
7963 l_adr_flexfield_segment_code VARCHAR2(30);
7964 l_adr_flex_value_set_id NUMBER;
7965 l_adr_value_type_code VARCHAR2(30);
7966 l_adr_value_combination_id NUMBER;
7967 l_adr_value_segment_code VARCHAR2(30);
7968
7969 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
7970 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
7971 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
7972 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
7973
7974 -- 4262811 Variables ------------------------------------------------------------------------------------------
7975 l_entered_amt_idx NUMBER;
7976 l_accted_amt_idx NUMBER;
7977 l_acc_rev_flag VARCHAR2(1);
7978 l_accrual_line_num NUMBER;
7979 l_tmp_amt NUMBER;
7980 l_acc_rev_natural_side_code VARCHAR2(1);
7981
7982 l_num_entries NUMBER;
7983 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
7984 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
7985 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
7986 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
7987 l_recog_line_1 NUMBER;
7988 l_recog_line_2 NUMBER;
7989
7990 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
7991 l_bflow_applied_to_amt NUMBER; -- 5132302
7992 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
7993
7994 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
7995
7996 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
7997 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
7998
7999 ---------------------------------------------------------------------------------------------------------------
8000
8001
8002 --
8003 -- bulk performance
8004 --
8005 l_balance_type_code VARCHAR2(1);
8006 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
8007 l_log_module VARCHAR2(240);
8008
8009 --
8010 -- Upgrade strategy
8011 --
8012 l_actual_upg_option VARCHAR2(1);
8013 l_enc_upg_option VARCHAR2(1);
8014
8015 --
8016 BEGIN
8017 --
8018 IF g_log_enabled THEN
8019 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_20';
8020 END IF;
8021 --
8022 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8023
8024 trace
8025 (p_msg => 'BEGIN of AcctLineType_20'
8026 ,p_level => C_LEVEL_PROCEDURE
8027 ,p_module => l_log_module);
8028
8029 END IF;
8030 --
8031 l_component_type := 'AMB_JLT';
8032 l_component_code := 'REINSTATE_REQ_ENC_FROM_REL_DR';
8033 l_component_type_code := 'S';
8034 l_component_appl_id := 201;
8035 l_amb_context_code := 'DEFAULT';
8036 l_entity_code := 'RELEASE';
8037 l_event_class_code := 'RELEASE';
8038 l_event_type_code := 'RELEASE_ALL';
8039 l_line_definition_owner_code := 'S';
8040 l_line_definition_code := 'RELEASE_ENC_ALL';
8041 --
8042 l_balance_type_code := 'E';
8043 l_segment := NULL;
8044 l_ccid := NULL;
8045 l_adr_transaction_coa_id := NULL;
8046 l_adr_accounting_coa_id := NULL;
8047 l_adr_flexfield_segment_code := NULL;
8048 l_adr_flex_value_set_id := NULL;
8049 l_adr_value_type_code := NULL;
8050 l_adr_value_combination_id := NULL;
8051 l_adr_value_segment_code := NULL;
8052
8053 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
8054 l_bflow_class_code := 'REQ_ENCUMBRANCE'; -- 4219869 Business Flow
8055 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
8056 l_budgetary_control_flag := 'Y';
8057
8058 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8059 l_bflow_applied_to_amt := NULL; -- 5132302
8060 l_entered_amt_idx := NULL; -- 4262811
8061 l_accted_amt_idx := NULL; -- 4262811
8062 l_acc_rev_flag := NULL; -- 4262811
8063 l_accrual_line_num := NULL; -- 4262811
8064 l_tmp_amt := NULL; -- 4262811
8065 --
8066
8067 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
8068 l_balance_type_code <> 'B' THEN
8069 IF (NVL(
8070 xla_ae_sources_pkg.GetSystemSourceChar(
8071 p_source_code => 'XLA_EVENT_TYPE_CODE'
8072 , p_source_type_code => 'Y'
8073 , p_source_application_id => 602
8074 ),'
8075 ') = 'RELEASE_REJECTED' OR
8076 NVL(
8077 xla_ae_sources_pkg.GetSystemSourceChar(
8078 p_source_code => 'XLA_EVENT_TYPE_CODE'
8079 , p_source_type_code => 'Y'
8080 , p_source_application_id => 602
8081 ),'
8082 ') = 'RELEASE_UNRESERVED' OR
8083 NVL(
8084 xla_ae_sources_pkg.GetSystemSourceChar(
8085 p_source_code => 'XLA_EVENT_TYPE_CODE'
8086 , p_source_type_code => 'Y'
8087 , p_source_application_id => 602
8088 ),'
8089 ') = 'RELEASE_INV_CANCELLED') AND
8090 NVL(p_source_13,'
8091 ') = 'B_REQ'
8092 THEN
8093
8094 --
8095 XLA_AE_LINES_PKG.SetNewLine;
8096
8097 p_balance_type_code := l_balance_type_code;
8098 -- set the flag so later we will know whether the gain loss line needs to be created
8099
8100 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
8101 p_actual_flag :='A';
8102 END IF;
8103
8104 --
8105 -- bulk performance
8106 --
8107 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
8108 p_header_num => 0); -- 4262811
8109 --
8110 -- set accounting line options
8111 --
8112 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
8113 p_natural_side_code => 'D'
8114 , p_gain_or_loss_flag => 'N'
8115 , p_gl_transfer_mode_code => 'S'
8116 , p_acct_entry_type_code => 'E'
8117 , p_switch_side_flag => 'N'
8118 , p_merge_duplicate_code => 'N'
8119 );
8120 --
8121 l_acc_rev_natural_side_code := 'C'; -- 4262811
8122 --
8123 --
8124 -- set accounting line type info
8125 --
8126 xla_ae_lines_pkg.SetAcctLineType
8127 (p_component_type => l_component_type
8128 ,p_event_type_code => l_event_type_code
8129 ,p_line_definition_owner_code => l_line_definition_owner_code
8130 ,p_line_definition_code => l_line_definition_code
8131 ,p_accounting_line_code => l_component_code
8132 ,p_accounting_line_type_code => l_component_type_code
8133 ,p_accounting_line_appl_id => l_component_appl_id
8134 ,p_amb_context_code => l_amb_context_code
8135 ,p_entity_code => l_entity_code
8136 ,p_event_class_code => l_event_class_code);
8137 --
8138 -- set accounting class
8139 --
8140 xla_ae_lines_pkg.SetAcctClass(
8141 p_accounting_class_code => 'PURCHASE_ORDER'
8142 , p_ae_header_id => l_ae_header_id
8143 );
8144
8145 --
8146 -- set rounding class
8147 --
8148 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
8149 'PURCHASE_ORDER';
8150
8151 --
8152 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
8153 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
8154 --
8155 -- bulk performance
8156 --
8157 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
8158
8159 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
8160 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
8161
8162 -- 4955764
8163 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8164 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
8165
8166 -- 4458381 Public Sector Enh
8167
8168 --
8169 -- set accounting attributes for the line type
8170 --
8171 l_entered_amt_idx := 23;
8172 l_accted_amt_idx := 25;
8173 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8174 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
8175 l_rec_acct_attrs.array_char_value(1) := p_source_16;
8176 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
8177 l_rec_acct_attrs.array_num_value(2) :=
8178 xla_ae_sources_pkg.GetSystemSourceNum(
8179 p_source_code => 'XLA_EVENT_APPL_ID'
8180 , p_source_type_code => 'Y'
8181 , p_source_application_id => 602
8182 );
8183 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
8184 l_rec_acct_attrs.array_char_value(3) := p_source_49;
8185 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
8186 l_rec_acct_attrs.array_char_value(4) :=
8187 xla_ae_sources_pkg.GetSystemSourceChar(
8188 p_source_code => 'XLA_ENTITY_CODE'
8189 , p_source_type_code => 'Y'
8190 , p_source_application_id => 602
8191 );
8192 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
8193 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_51);
8194 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
8195 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_66);
8196 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
8197 l_rec_acct_attrs.array_num_value(7) := p_source_53;
8198 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
8199 l_rec_acct_attrs.array_char_value(8) := p_source_54;
8200 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
8201 l_rec_acct_attrs.array_char_value(9) := p_source_55;
8202 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
8203 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_56);
8204 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
8205 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_57);
8206 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
8207 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_29);
8208 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
8209 l_rec_acct_attrs.array_char_value(13) := p_source_58;
8210 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
8211 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_11);
8212 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
8213 l_rec_acct_attrs.array_num_value(15) := p_source_33;
8214 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
8215 l_rec_acct_attrs.array_char_value(16) := p_source_34;
8216 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
8217 l_rec_acct_attrs.array_num_value(17) := p_source_35;
8218 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
8219 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_11);
8220 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
8221 l_rec_acct_attrs.array_num_value(19) := p_source_33;
8222 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
8223 l_rec_acct_attrs.array_char_value(20) := p_source_34;
8224 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
8225 l_rec_acct_attrs.array_num_value(21) := p_source_35;
8226 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
8227 l_rec_acct_attrs.array_char_value(22) := p_source_59;
8228 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
8229 l_rec_acct_attrs.array_num_value(23) := p_source_33;
8230 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
8231 l_rec_acct_attrs.array_char_value(24) := p_source_34;
8232 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
8233 l_rec_acct_attrs.array_num_value(25) := p_source_35;
8234 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
8235 l_rec_acct_attrs.array_char_value(26) := p_source_60;
8236 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
8237 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_56);
8238 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
8239 l_rec_acct_attrs.array_char_value(28) := p_source_54;
8240 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
8241 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_66);
8242 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
8243 l_rec_acct_attrs.array_num_value(30) := p_source_61;
8244 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
8245 l_rec_acct_attrs.array_num_value(31) := p_source_61;
8246
8247 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
8248 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
8249
8250 ---------------------------------------------------------------------------------------------------------------
8251 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
8252 ---------------------------------------------------------------------------------------------------------------
8253 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
8254
8255 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8256 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8257
8258 IF xla_accounting_cache_pkg.GetValueChar
8259 (p_source_code => 'LEDGER_CATEGORY_CODE'
8260 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
8261 AND l_bflow_method_code = 'PRIOR_ENTRY'
8262 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
8263 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
8264 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
8265 )
8266 THEN
8267 xla_ae_lines_pkg.BflowUpgEntry
8268 (p_business_method_code => l_bflow_method_code
8269 ,p_business_class_code => l_bflow_class_code
8270 ,p_balance_type => l_balance_type_code);
8271 ELSE
8272 NULL;
8273 XLA_AE_LINES_PKG.business_flow_validation(
8274 p_business_method_code => l_bflow_method_code
8275 ,p_business_class_code => l_bflow_class_code
8276 ,p_inherit_description_flag => l_inherit_desc_flag);
8277 END IF;
8278
8279 --
8280 -- call analytical criteria
8281 --
8282 -- Inherited Analytical Criteria for business flow method of Prior Entry.
8283 --
8284 -- call description
8285 --
8286 -- No description or it is inherited.
8287 --
8288 -- call ADRs
8289 -- Bug 4922099
8290 --
8291 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8292 (NVL(l_actual_upg_option, 'N') = 'O') OR
8293 (NVL(l_enc_upg_option, 'N') = 'O')
8294 )
8295 THEN
8296 NULL;
8297 --
8298 --
8299
8300 --
8301 --
8302 END IF;
8303 --
8304 -- Bug 4922099
8305 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
8306 (NVL(l_enc_upg_option, 'N') = 'O')
8307 ) AND
8308 (l_bflow_method_code = 'PRIOR_ENTRY')
8309 )
8310 THEN
8311 IF
8312 --
8313 1 = 1
8314 --
8315 THEN
8316 xla_accounting_err_pkg.build_message
8317 (p_appli_s_name => 'XLA'
8318 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8319 ,p_token_1 => 'LINE_NUMBER'
8320 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
8321 ,p_token_2 => 'LINE_TYPE_NAME'
8322 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
8323 l_component_type
8324 ,l_component_code
8325 ,l_component_type_code
8326 ,l_component_appl_id
8327 ,l_amb_context_code
8328 ,l_entity_code
8329 ,l_event_class_code
8330 )
8331 ,p_token_3 => 'OWNER'
8332 ,p_value_3 => xla_lookups_pkg.get_meaning(
8333 p_lookup_type => 'XLA_OWNER_TYPE'
8334 ,p_lookup_code => l_component_type_code
8335 )
8336 ,p_token_4 => 'PRODUCT_NAME'
8337 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
8338 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8339 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8340 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
8341 ,p_ae_header_id => NULL
8342 );
8343
8344 IF (C_LEVEL_ERROR>= g_log_level) THEN
8345 trace
8346 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8347 ,p_level => C_LEVEL_ERROR
8348 ,p_module => l_log_module);
8349 END IF;
8350 END IF;
8351 END IF;
8352 --
8353 --
8354 ------------------------------------------------------------------------------------------------
8355 -- 4219869 Business Flow
8356 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
8357 -- Prior Entry. Currently, the following code is always generated.
8358 ------------------------------------------------------------------------------------------------
8359 -- No ValidateCurrentLine for business flow method of Prior Entry
8360
8361 ------------------------------------------------------------------------------------
8362 -- 4219869 Business Flow
8363 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
8364 ------------------------------------------------------------------------------------
8365 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8366
8367 ----------------------------------------------------------------------------------
8368 -- 4219869 Business Flow
8369 -- Update journal entry status -- Need to generate this within IF <condition>
8370 ----------------------------------------------------------------------------------
8371 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8372 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
8373 ,p_balance_type_code => l_balance_type_code
8374 );
8375
8376 -------------------------------------------------------------------------------------------
8377 -- 4262811 - Generate the Accrual Reversal lines
8378 -------------------------------------------------------------------------------------------
8379 BEGIN
8380 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
8381 (g_array_event(p_event_id).array_value_num('header_index'));
8382 IF l_acc_rev_flag IS NULL THEN
8383 l_acc_rev_flag := 'N';
8384 END IF;
8385 EXCEPTION
8386 WHEN OTHERS THEN
8387 l_acc_rev_flag := 'N';
8388 END;
8389 --
8390 IF (l_acc_rev_flag = 'Y') THEN
8391
8392 -- 4645092 ------------------------------------------------------------------------------
8393 -- To allow MPA report to determine if it should generate report process
8394 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
8395 ------------------------------------------------------------------------------------------
8396
8397 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
8398 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
8399
8400 --
8401 -- Update the line information that should be overwritten
8402 --
8403 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
8404 p_header_num => 1);
8405 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
8406
8407 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
8408
8409 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
8410 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
8411 END IF;
8412
8413 --
8414 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
8415 --
8416 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
8417 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
8418 ELSE
8419 ---------------------------------------------------------------------------------------------------
8420 -- 4262811a Switch Sign
8421 ---------------------------------------------------------------------------------------------------
8422 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
8423 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8424 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8425 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8426 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8427 -- 5132302
8428 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
8429 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8430
8431 END IF;
8432
8433 -- 4955764
8434 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8435 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
8436
8437
8438 XLA_AE_LINES_PKG.ValidateCurrentLine;
8439 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8440
8441 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8442 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
8443 ,p_balance_type_code => l_balance_type_code);
8444
8445 END IF;
8446
8447 -----------------------------------------------------------------------------------------
8448 -- 4262811 Multiperiod Accounting
8449 -----------------------------------------------------------------------------------------
8450 -- No MPA option is assigned.
8451
8452
8453 END IF;
8454 END IF;
8455 --
8456
8457 --
8458 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8459 trace
8460 (p_msg => 'END of AcctLineType_20'
8461 ,p_level => C_LEVEL_PROCEDURE
8462 ,p_module => l_log_module);
8463 END IF;
8464 --
8465 EXCEPTION
8466 WHEN xla_exceptions_pkg.application_exception THEN
8467 RAISE;
8468 WHEN OTHERS THEN
8469 xla_exceptions_pkg.raise_message
8470 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_20');
8471 END AcctLineType_20;
8472 --
8473
8474 ---------------------------------------
8475 --
8476 -- PRIVATE FUNCTION
8477 -- AcctLineType_21
8478 --
8479 ---------------------------------------
8480 PROCEDURE AcctLineType_21 (
8481 p_application_id IN NUMBER
8482 ,p_event_id IN NUMBER
8483 ,p_calculate_acctd_flag IN VARCHAR2
8484 ,p_calculate_g_l_flag IN VARCHAR2
8485 ,p_actual_flag IN OUT VARCHAR2
8486 ,p_balance_type_code OUT VARCHAR2
8487 ,p_gain_or_loss_ref OUT VARCHAR2
8488
8489 --Journal entry Line Description
8490 , p_source_7 IN VARCHAR2
8491 --Budget Account
8492 , p_source_11 IN NUMBER
8493 --Main Or Backing Code
8494 , p_source_13 IN VARCHAR2
8495 --Accounting Reversal Flag
8496 , p_source_16 IN VARCHAR2
8497 --PO Distribution Identifier
8498 , p_source_29 IN NUMBER
8499 --Entered Amount
8500 , p_source_33 IN NUMBER
8501 --Currency Code
8502 , p_source_34 IN VARCHAR2
8503 --Accounted Amount
8504 , p_source_35 IN NUMBER
8505 --Allocated to Main Document Distribution Identifier
8506 , p_source_51 IN NUMBER
8507 --PO Header Identifier
8508 , p_source_52 IN NUMBER
8509 --Applied To Application Identifier
8510 , p_source_53 IN NUMBER
8511 --Applied To Distribution Link Type
8512 , p_source_54 IN VARCHAR2
8513 --Applied To Entity Code
8514 , p_source_55 IN VARCHAR2
8515 --Applied To Distribution Identifier 1
8516 , p_source_56 IN NUMBER
8517 --Applied To Header Identifier 1
8518 , p_source_57 IN NUMBER
8519 --Distribution Link Type
8520 , p_source_58 IN VARCHAR2
8521 --PO Encumbrance Upgrade Option
8522 , p_source_59 IN VARCHAR2
8523 --JFMIP Reference
8524 , p_source_60 IN VARCHAR2
8525 --PO Upgrade Encumbrance Type Identifier
8526 , p_source_61 IN NUMBER
8527 --Currency Conversion Date
8528 , p_source_62 IN DATE
8529 --Currency Conversion Rate
8530 , p_source_63 IN NUMBER
8531 --Currency Conversion Type
8532 , p_source_64 IN VARCHAR2
8533 --Backing Requisition Prevent Encumbrance Changed Flag
8534 , p_source_65 IN VARCHAR2
8535 )
8536 IS
8537
8538 l_component_type VARCHAR2(80);
8539 l_component_code VARCHAR2(30);
8540 l_component_type_code VARCHAR2(1);
8541 l_component_appl_id INTEGER;
8542 l_amb_context_code VARCHAR2(30);
8543 l_entity_code VARCHAR2(30);
8544 l_event_class_code VARCHAR2(30);
8545 l_ae_header_id NUMBER;
8546 l_event_type_code VARCHAR2(30);
8547 l_line_definition_code VARCHAR2(30);
8548 l_line_definition_owner_code VARCHAR2(1);
8549 --
8550 -- adr variables
8551 l_segment VARCHAR2(30);
8552 l_ccid NUMBER;
8553 l_adr_transaction_coa_id NUMBER;
8554 l_adr_accounting_coa_id NUMBER;
8555 l_adr_flexfield_segment_code VARCHAR2(30);
8556 l_adr_flex_value_set_id NUMBER;
8557 l_adr_value_type_code VARCHAR2(30);
8558 l_adr_value_combination_id NUMBER;
8559 l_adr_value_segment_code VARCHAR2(30);
8560
8561 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
8562 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
8563 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
8564 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
8565
8566 -- 4262811 Variables ------------------------------------------------------------------------------------------
8567 l_entered_amt_idx NUMBER;
8568 l_accted_amt_idx NUMBER;
8569 l_acc_rev_flag VARCHAR2(1);
8570 l_accrual_line_num NUMBER;
8571 l_tmp_amt NUMBER;
8572 l_acc_rev_natural_side_code VARCHAR2(1);
8573
8574 l_num_entries NUMBER;
8575 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
8576 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
8577 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
8578 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
8579 l_recog_line_1 NUMBER;
8580 l_recog_line_2 NUMBER;
8581
8582 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
8583 l_bflow_applied_to_amt NUMBER; -- 5132302
8584 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
8585
8586 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
8587
8588 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
8589 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
8590
8591 ---------------------------------------------------------------------------------------------------------------
8592
8593
8594 --
8595 -- bulk performance
8596 --
8597 l_balance_type_code VARCHAR2(1);
8598 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
8599 l_log_module VARCHAR2(240);
8600
8601 --
8602 -- Upgrade strategy
8603 --
8604 l_actual_upg_option VARCHAR2(1);
8605 l_enc_upg_option VARCHAR2(1);
8606
8607 --
8608 BEGIN
8609 --
8610 IF g_log_enabled THEN
8611 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_21';
8612 END IF;
8613 --
8614 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8615
8616 trace
8617 (p_msg => 'BEGIN of AcctLineType_21'
8618 ,p_level => C_LEVEL_PROCEDURE
8619 ,p_module => l_log_module);
8620
8621 END IF;
8622 --
8623 l_component_type := 'AMB_JLT';
8624 l_component_code := 'REINSTATE_UNENC_REQ_ENC_PO_DR';
8625 l_component_type_code := 'S';
8626 l_component_appl_id := 201;
8627 l_amb_context_code := 'DEFAULT';
8628 l_entity_code := 'PURCHASE_ORDER';
8629 l_event_class_code := 'PO_PA';
8630 l_event_type_code := 'PO_PA_ALL';
8631 l_line_definition_owner_code := 'S';
8632 l_line_definition_code := 'PO_PA_ENC_ALL';
8633 --
8634 l_balance_type_code := 'E';
8635 l_segment := NULL;
8636 l_ccid := NULL;
8637 l_adr_transaction_coa_id := NULL;
8638 l_adr_accounting_coa_id := NULL;
8639 l_adr_flexfield_segment_code := NULL;
8640 l_adr_flex_value_set_id := NULL;
8641 l_adr_value_type_code := NULL;
8642 l_adr_value_combination_id := NULL;
8643 l_adr_value_segment_code := NULL;
8644
8645 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
8646 l_bflow_class_code := ''; -- 4219869 Business Flow
8647 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
8648 l_budgetary_control_flag := 'Y';
8649
8650 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8651 l_bflow_applied_to_amt := NULL; -- 5132302
8652 l_entered_amt_idx := NULL; -- 4262811
8653 l_accted_amt_idx := NULL; -- 4262811
8654 l_acc_rev_flag := NULL; -- 4262811
8655 l_accrual_line_num := NULL; -- 4262811
8656 l_tmp_amt := NULL; -- 4262811
8657 --
8658
8659 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
8660 l_balance_type_code <> 'B' THEN
8661 IF (NVL(
8662 xla_ae_sources_pkg.GetSystemSourceChar(
8663 p_source_code => 'XLA_EVENT_TYPE_CODE'
8664 , p_source_type_code => 'Y'
8665 , p_source_application_id => 602
8666 ),'
8667 ') = 'PO_PA_UNRESERVED' OR
8668 NVL(
8669 xla_ae_sources_pkg.GetSystemSourceChar(
8670 p_source_code => 'XLA_EVENT_TYPE_CODE'
8671 , p_source_type_code => 'Y'
8672 , p_source_application_id => 602
8673 ),'
8674 ') = 'PO_PA_REJECTED' OR
8675 NVL(
8676 xla_ae_sources_pkg.GetSystemSourceChar(
8677 p_source_code => 'XLA_EVENT_TYPE_CODE'
8678 , p_source_type_code => 'Y'
8679 , p_source_application_id => 602
8680 ),'
8681 ') = 'PO_PA_INV_CANCELLED') AND
8682 NVL(p_source_13,'
8683 ') = 'B_REQ' AND
8684 NVL(p_source_65,'
8685 ') = 'Y'
8686 THEN
8687
8688 --
8689 XLA_AE_LINES_PKG.SetNewLine;
8690
8691 p_balance_type_code := l_balance_type_code;
8692 -- set the flag so later we will know whether the gain loss line needs to be created
8693
8694 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
8695 p_actual_flag :='A';
8696 END IF;
8697
8698 --
8699 -- bulk performance
8700 --
8701 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
8702 p_header_num => 0); -- 4262811
8703 --
8704 -- set accounting line options
8705 --
8706 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
8707 p_natural_side_code => 'D'
8708 , p_gain_or_loss_flag => 'N'
8709 , p_gl_transfer_mode_code => 'S'
8710 , p_acct_entry_type_code => 'E'
8711 , p_switch_side_flag => 'N'
8712 , p_merge_duplicate_code => 'N'
8713 );
8714 --
8715 l_acc_rev_natural_side_code := 'C'; -- 4262811
8716 --
8717 --
8718 -- set accounting line type info
8719 --
8720 xla_ae_lines_pkg.SetAcctLineType
8721 (p_component_type => l_component_type
8722 ,p_event_type_code => l_event_type_code
8723 ,p_line_definition_owner_code => l_line_definition_owner_code
8724 ,p_line_definition_code => l_line_definition_code
8725 ,p_accounting_line_code => l_component_code
8726 ,p_accounting_line_type_code => l_component_type_code
8727 ,p_accounting_line_appl_id => l_component_appl_id
8728 ,p_amb_context_code => l_amb_context_code
8729 ,p_entity_code => l_entity_code
8730 ,p_event_class_code => l_event_class_code);
8731 --
8732 -- set accounting class
8733 --
8734 xla_ae_lines_pkg.SetAcctClass(
8735 p_accounting_class_code => 'REQUISITION'
8736 , p_ae_header_id => l_ae_header_id
8737 );
8738
8739 --
8740 -- set rounding class
8741 --
8742 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
8743 'REQUISITION';
8744
8745 --
8746 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
8747 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
8748 --
8749 -- bulk performance
8750 --
8751 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
8752
8753 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
8754 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
8755
8756 -- 4955764
8757 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8758 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
8759
8760 -- 4458381 Public Sector Enh
8761 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1000;
8762 --
8763 -- set accounting attributes for the line type
8764 --
8765 l_entered_amt_idx := 23;
8766 l_accted_amt_idx := 28;
8767 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8768 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
8769 l_rec_acct_attrs.array_char_value(1) := p_source_16;
8770 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
8771 l_rec_acct_attrs.array_num_value(2) :=
8772 xla_ae_sources_pkg.GetSystemSourceNum(
8773 p_source_code => 'XLA_EVENT_APPL_ID'
8774 , p_source_type_code => 'Y'
8775 , p_source_application_id => 602
8776 );
8777 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
8778 l_rec_acct_attrs.array_char_value(3) := p_source_58;
8779 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
8780 l_rec_acct_attrs.array_char_value(4) :=
8781 xla_ae_sources_pkg.GetSystemSourceChar(
8782 p_source_code => 'XLA_ENTITY_CODE'
8783 , p_source_type_code => 'Y'
8784 , p_source_application_id => 602
8785 );
8786 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
8787 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_51);
8788 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
8789 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_52);
8790 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
8791 l_rec_acct_attrs.array_num_value(7) := p_source_53;
8792 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
8793 l_rec_acct_attrs.array_char_value(8) := p_source_54;
8794 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
8795 l_rec_acct_attrs.array_char_value(9) := p_source_55;
8796 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
8797 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_56);
8798 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
8799 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_57);
8800 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
8801 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_29);
8802 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
8803 l_rec_acct_attrs.array_char_value(13) := p_source_58;
8804 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
8805 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_11);
8806 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
8807 l_rec_acct_attrs.array_num_value(15) := p_source_33;
8808 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
8809 l_rec_acct_attrs.array_char_value(16) := p_source_34;
8810 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
8811 l_rec_acct_attrs.array_num_value(17) := p_source_35;
8812 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
8813 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_11);
8814 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
8815 l_rec_acct_attrs.array_num_value(19) := p_source_33;
8816 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
8817 l_rec_acct_attrs.array_char_value(20) := p_source_34;
8818 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
8819 l_rec_acct_attrs.array_num_value(21) := p_source_35;
8820 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
8821 l_rec_acct_attrs.array_char_value(22) := p_source_59;
8822 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
8823 l_rec_acct_attrs.array_num_value(23) := p_source_33;
8824 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
8825 l_rec_acct_attrs.array_char_value(24) := p_source_34;
8826 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
8827 l_rec_acct_attrs.array_date_value(25) := p_source_62;
8828 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
8829 l_rec_acct_attrs.array_num_value(26) := p_source_63;
8830 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
8831 l_rec_acct_attrs.array_char_value(27) := p_source_64;
8832 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
8833 l_rec_acct_attrs.array_num_value(28) := p_source_35;
8834 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
8835 l_rec_acct_attrs.array_char_value(29) := p_source_60;
8836 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
8837 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_56);
8838 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
8839 l_rec_acct_attrs.array_char_value(31) := p_source_54;
8840 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
8841 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_29);
8842 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
8843 l_rec_acct_attrs.array_num_value(33) := p_source_61;
8844 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
8845 l_rec_acct_attrs.array_num_value(34) := p_source_61;
8846
8847 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
8848 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
8849
8850 ---------------------------------------------------------------------------------------------------------------
8851 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
8852 ---------------------------------------------------------------------------------------------------------------
8853 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
8854
8855 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8856 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8857
8858 IF xla_accounting_cache_pkg.GetValueChar
8859 (p_source_code => 'LEDGER_CATEGORY_CODE'
8860 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
8861 AND l_bflow_method_code = 'PRIOR_ENTRY'
8862 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
8863 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
8864 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
8865 )
8866 THEN
8867 xla_ae_lines_pkg.BflowUpgEntry
8868 (p_business_method_code => l_bflow_method_code
8869 ,p_business_class_code => l_bflow_class_code
8870 ,p_balance_type => l_balance_type_code);
8871 ELSE
8872 NULL;
8873 -- No business flow processing for business flow method of NONE.
8874 END IF;
8875
8876 --
8877 -- call analytical criteria
8878 --
8879
8880 --
8881 -- call description
8882 --
8883
8884 xla_ae_lines_pkg.SetLineDescription(
8885 p_ae_header_id => l_ae_header_id
8886 ,p_description => Description_3 (
8887 p_application_id => p_application_id
8888 , p_ae_header_id => l_ae_header_id
8889 , p_source_7 => p_source_7
8890 )
8891 );
8892
8893
8894 --
8895 -- call ADRs
8896 -- Bug 4922099
8897 --
8898 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8899 (NVL(l_actual_upg_option, 'N') = 'O') OR
8900 (NVL(l_enc_upg_option, 'N') = 'O')
8901 )
8902 THEN
8903 NULL;
8904 --
8905 --
8906
8907 l_ccid := AcctDerRule_8(
8908 p_application_id => p_application_id
8909 , p_ae_header_id => l_ae_header_id
8910 , p_source_11 => p_source_11
8911 , x_transaction_coa_id => l_adr_transaction_coa_id
8912 , x_accounting_coa_id => l_adr_accounting_coa_id
8913 , x_value_type_code => l_adr_value_type_code
8914 , p_side => 'NA'
8915 );
8916
8917 xla_ae_lines_pkg.set_ccid(
8918 p_code_combination_id => l_ccid
8919 , p_value_type_code => l_adr_value_type_code
8920 , p_transaction_coa_id => l_adr_transaction_coa_id
8921 , p_accounting_coa_id => l_adr_accounting_coa_id
8922 , p_adr_code => 'PURCHASING_ENCUMBRANCE_ADR'
8923 , p_adr_type_code => 'S'
8924 , p_component_type => l_component_type
8925 , p_component_code => l_component_code
8926 , p_component_type_code => l_component_type_code
8927 , p_component_appl_id => l_component_appl_id
8928 , p_amb_context_code => l_amb_context_code
8929 , p_side => 'NA'
8930 );
8931
8932
8933 --
8934 --
8935 END IF;
8936 --
8937 -- Bug 4922099
8938 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
8939 (NVL(l_enc_upg_option, 'N') = 'O')
8940 ) AND
8941 (l_bflow_method_code = 'PRIOR_ENTRY')
8942 )
8943 THEN
8944 IF
8945 --
8946 1 = 2
8947 --
8948 THEN
8949 xla_accounting_err_pkg.build_message
8950 (p_appli_s_name => 'XLA'
8951 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8952 ,p_token_1 => 'LINE_NUMBER'
8953 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
8954 ,p_token_2 => 'LINE_TYPE_NAME'
8955 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
8956 l_component_type
8957 ,l_component_code
8958 ,l_component_type_code
8959 ,l_component_appl_id
8960 ,l_amb_context_code
8961 ,l_entity_code
8962 ,l_event_class_code
8963 )
8964 ,p_token_3 => 'OWNER'
8965 ,p_value_3 => xla_lookups_pkg.get_meaning(
8966 p_lookup_type => 'XLA_OWNER_TYPE'
8967 ,p_lookup_code => l_component_type_code
8968 )
8969 ,p_token_4 => 'PRODUCT_NAME'
8970 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
8971 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8972 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8973 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
8974 ,p_ae_header_id => NULL
8975 );
8976
8977 IF (C_LEVEL_ERROR>= g_log_level) THEN
8978 trace
8979 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8980 ,p_level => C_LEVEL_ERROR
8981 ,p_module => l_log_module);
8982 END IF;
8983 END IF;
8984 END IF;
8985 --
8986 --
8987 ------------------------------------------------------------------------------------------------
8988 -- 4219869 Business Flow
8989 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
8990 -- Prior Entry. Currently, the following code is always generated.
8991 ------------------------------------------------------------------------------------------------
8992 XLA_AE_LINES_PKG.ValidateCurrentLine;
8993
8994 ------------------------------------------------------------------------------------
8995 -- 4219869 Business Flow
8996 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
8997 ------------------------------------------------------------------------------------
8998 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8999
9000 ----------------------------------------------------------------------------------
9001 -- 4219869 Business Flow
9002 -- Update journal entry status -- Need to generate this within IF <condition>
9003 ----------------------------------------------------------------------------------
9004 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9005 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
9006 ,p_balance_type_code => l_balance_type_code
9007 );
9008
9009 -------------------------------------------------------------------------------------------
9010 -- 4262811 - Generate the Accrual Reversal lines
9011 -------------------------------------------------------------------------------------------
9012 BEGIN
9013 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
9014 (g_array_event(p_event_id).array_value_num('header_index'));
9015 IF l_acc_rev_flag IS NULL THEN
9016 l_acc_rev_flag := 'N';
9017 END IF;
9018 EXCEPTION
9019 WHEN OTHERS THEN
9020 l_acc_rev_flag := 'N';
9021 END;
9022 --
9023 IF (l_acc_rev_flag = 'Y') THEN
9024
9025 -- 4645092 ------------------------------------------------------------------------------
9026 -- To allow MPA report to determine if it should generate report process
9027 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
9028 ------------------------------------------------------------------------------------------
9029
9030 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
9031 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
9032
9033 --
9034 -- Update the line information that should be overwritten
9035 --
9036 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
9037 p_header_num => 1);
9038 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
9039
9040 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
9041
9042 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
9043 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
9044 END IF;
9045
9046 --
9047 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
9048 --
9049 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
9050 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
9051 ELSE
9052 ---------------------------------------------------------------------------------------------------
9053 -- 4262811a Switch Sign
9054 ---------------------------------------------------------------------------------------------------
9055 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
9056 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9057 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9058 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9059 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9060 -- 5132302
9061 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
9062 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9063
9064 END IF;
9065
9066 -- 4955764
9067 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9068 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
9069
9070
9071 XLA_AE_LINES_PKG.ValidateCurrentLine;
9072 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9073
9074 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9075 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
9076 ,p_balance_type_code => l_balance_type_code);
9077
9078 END IF;
9079
9080 -----------------------------------------------------------------------------------------
9081 -- 4262811 Multiperiod Accounting
9082 -----------------------------------------------------------------------------------------
9083 -- No MPA option is assigned.
9084
9085
9086 END IF;
9087 END IF;
9088 --
9089
9090 --
9091 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9092 trace
9093 (p_msg => 'END of AcctLineType_21'
9094 ,p_level => C_LEVEL_PROCEDURE
9095 ,p_module => l_log_module);
9096 END IF;
9097 --
9098 EXCEPTION
9099 WHEN xla_exceptions_pkg.application_exception THEN
9100 RAISE;
9101 WHEN OTHERS THEN
9102 xla_exceptions_pkg.raise_message
9103 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_21');
9104 END AcctLineType_21;
9105 --
9106
9107 ---------------------------------------
9108 --
9109 -- PRIVATE FUNCTION
9110 -- AcctLineType_22
9111 --
9112 ---------------------------------------
9113 PROCEDURE AcctLineType_22 (
9114 p_application_id IN NUMBER
9115 ,p_event_id IN NUMBER
9116 ,p_calculate_acctd_flag IN VARCHAR2
9117 ,p_calculate_g_l_flag IN VARCHAR2
9118 ,p_actual_flag IN OUT VARCHAR2
9119 ,p_balance_type_code OUT VARCHAR2
9120 ,p_gain_or_loss_ref OUT VARCHAR2
9121
9122 --Project Name
9123 , p_source_3 IN VARCHAR2
9124 --Task Name
9125 , p_source_4 IN VARCHAR2
9126 --Project Expenditure Organization Identifier
9127 , p_source_5 IN NUMBER
9128 --Expenditure Type
9129 , p_source_6 IN VARCHAR2
9130 --Document Type
9131 , p_source_9 IN VARCHAR2
9132 --Main Or Backing Code
9133 , p_source_13 IN VARCHAR2
9134 --Burden Record Identifier
9135 , p_source_14 IN VARCHAR2
9136 , p_source_14_meaning IN VARCHAR2
9137 --Burden Amount Display Method
9138 , p_source_15 IN VARCHAR2
9139 --Accounting Reversal Flag
9140 , p_source_16 IN VARCHAR2
9141 --Allocated to Application Identifier
9142 , p_source_17 IN NUMBER
9143 --Allocated to Distribution Type
9144 , p_source_18 IN VARCHAR2
9145 --Allocated to Entity Code
9146 , p_source_19 IN VARCHAR2
9147 --Allocated to First Distribution Identifier
9148 , p_source_20 IN NUMBER
9149 --Allocated to First System Transaction Identifier
9150 , p_source_21 IN NUMBER
9151 --Allocated to Second Distribution Identifier
9152 , p_source_22 IN VARCHAR2
9153 --Purchase Order Burden Applied to Application Identifier
9154 , p_source_23 IN NUMBER
9155 --PO Distribution Type
9156 , p_source_24 IN VARCHAR2
9157 --Purchase Order Burden Applied to Entity Code
9158 , p_source_25 IN VARCHAR2
9159 --Purchase Order Burden Applied to First Distribution Identifier
9160 , p_source_26 IN NUMBER
9161 --Purchase Order Burden Applied to First System Transaction Identifier
9162 , p_source_27 IN NUMBER
9163 --Purchase Order Burden Applied to Second Distribution Identifier
9164 , p_source_28 IN VARCHAR2
9165 --PO Distribution Identifier
9166 , p_source_29 IN NUMBER
9167 --Line Type Name
9168 , p_source_30 IN VARCHAR2
9169 --Encumbrance Upgrade Credit Accounting Class
9170 , p_source_31 IN VARCHAR2
9171 --Encumbrance Upgrade Credit Account
9172 , p_source_32 IN NUMBER
9173 --Entered Amount
9174 , p_source_33 IN NUMBER
9175 --Currency Code
9176 , p_source_34 IN VARCHAR2
9177 --Accounted Amount
9178 , p_source_35 IN NUMBER
9179 --Encumbrance Upgrade Debit Accounting Class
9180 , p_source_36 IN VARCHAR2
9181 --Encumbrance Upgrade Debit Account
9182 , p_source_37 IN NUMBER
9183 --Use Encumbrances Upgrade Attributes Flag
9184 , p_source_38 IN VARCHAR2
9185 --Encumbrance Upgrade Credit Encumbrance Type
9186 , p_source_39 IN NUMBER
9187 --Encumbrance Upgrade Debit Encumbrance Type
9188 , p_source_40 IN NUMBER
9189 )
9190 IS
9191
9192 l_component_type VARCHAR2(80);
9193 l_component_code VARCHAR2(30);
9194 l_component_type_code VARCHAR2(1);
9195 l_component_appl_id INTEGER;
9196 l_amb_context_code VARCHAR2(30);
9197 l_entity_code VARCHAR2(30);
9198 l_event_class_code VARCHAR2(30);
9199 l_ae_header_id NUMBER;
9200 l_event_type_code VARCHAR2(30);
9201 l_line_definition_code VARCHAR2(30);
9202 l_line_definition_owner_code VARCHAR2(1);
9203 --
9204 -- adr variables
9205 l_segment VARCHAR2(30);
9206 l_ccid NUMBER;
9207 l_adr_transaction_coa_id NUMBER;
9208 l_adr_accounting_coa_id NUMBER;
9209 l_adr_flexfield_segment_code VARCHAR2(30);
9210 l_adr_flex_value_set_id NUMBER;
9211 l_adr_value_type_code VARCHAR2(30);
9212 l_adr_value_combination_id NUMBER;
9213 l_adr_value_segment_code VARCHAR2(30);
9214
9215 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
9216 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
9217 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
9218 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
9219
9220 -- 4262811 Variables ------------------------------------------------------------------------------------------
9221 l_entered_amt_idx NUMBER;
9222 l_accted_amt_idx NUMBER;
9223 l_acc_rev_flag VARCHAR2(1);
9224 l_accrual_line_num NUMBER;
9225 l_tmp_amt NUMBER;
9226 l_acc_rev_natural_side_code VARCHAR2(1);
9227
9228 l_num_entries NUMBER;
9229 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
9230 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
9231 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
9232 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
9233 l_recog_line_1 NUMBER;
9234 l_recog_line_2 NUMBER;
9235
9236 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
9237 l_bflow_applied_to_amt NUMBER; -- 5132302
9238 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
9239
9240 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
9241
9242 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
9243 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
9244
9245 ---------------------------------------------------------------------------------------------------------------
9246
9247
9248 --
9249 -- bulk performance
9250 --
9251 l_balance_type_code VARCHAR2(1);
9252 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
9253 l_log_module VARCHAR2(240);
9254
9255 --
9256 -- Upgrade strategy
9257 --
9258 l_actual_upg_option VARCHAR2(1);
9259 l_enc_upg_option VARCHAR2(1);
9260
9261 --
9262 BEGIN
9263 --
9264 IF g_log_enabled THEN
9265 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_22';
9266 END IF;
9267 --
9268 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9269
9270 trace
9271 (p_msg => 'BEGIN of AcctLineType_22'
9272 ,p_level => C_LEVEL_PROCEDURE
9273 ,p_module => l_log_module);
9274
9275 END IF;
9276 --
9277 l_component_type := 'AMB_JLT';
9278 l_component_code := 'REINST_PO_BURDENED_ENCFORRELCR';
9279 l_component_type_code := 'S';
9280 l_component_appl_id := 201;
9281 l_amb_context_code := 'DEFAULT';
9282 l_entity_code := 'RELEASE';
9283 l_event_class_code := 'RELEASE_BURDEN';
9284 l_event_type_code := 'RELEASE_BURDEN_ALL';
9285 l_line_definition_owner_code := 'S';
9286 l_line_definition_code := 'REL_BURDEN_ENC_ALL';
9287 --
9288 l_balance_type_code := 'E';
9289 l_segment := NULL;
9290 l_ccid := NULL;
9291 l_adr_transaction_coa_id := NULL;
9292 l_adr_accounting_coa_id := NULL;
9293 l_adr_flexfield_segment_code := NULL;
9294 l_adr_flex_value_set_id := NULL;
9295 l_adr_value_type_code := NULL;
9296 l_adr_value_combination_id := NULL;
9297 l_adr_value_segment_code := NULL;
9298
9299 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
9300 l_bflow_class_code := 'PO_PA_BURDENED_ENC'; -- 4219869 Business Flow
9301 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
9302 l_budgetary_control_flag := 'Y';
9303
9304 l_bflow_applied_to_amt_idx := NULL; -- 5132302
9305 l_bflow_applied_to_amt := NULL; -- 5132302
9306 l_entered_amt_idx := NULL; -- 4262811
9307 l_accted_amt_idx := NULL; -- 4262811
9308 l_acc_rev_flag := NULL; -- 4262811
9309 l_accrual_line_num := NULL; -- 4262811
9310 l_tmp_amt := NULL; -- 4262811
9311 --
9312
9313 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
9314 l_balance_type_code <> 'B' THEN
9315 IF (NVL(
9316 xla_ae_sources_pkg.GetSystemSourceChar(
9317 p_source_code => 'XLA_EVENT_TYPE_CODE'
9318 , p_source_type_code => 'Y'
9319 , p_source_application_id => 602
9320 ),'
9321 ') = 'REL_BURDEN_CANCELLED' OR
9322 NVL(
9323 xla_ae_sources_pkg.GetSystemSourceChar(
9324 p_source_code => 'XLA_EVENT_TYPE_CODE'
9325 , p_source_type_code => 'Y'
9326 , p_source_application_id => 602
9327 ),'
9328 ') = 'REL_BURDEN_CR_MEMO_CANCELLED') AND
9329 (NVL(p_source_13,'
9330 ') = 'B_PO' OR
9331 NVL(p_source_13,'
9332 ') = 'B_PA') AND
9333 (NVL(p_source_14,'
9334 ') = 'N' OR
9335 NVL(p_source_14,'
9336 ') = 'O') AND
9337 NVL(p_source_9,'
9338 ') = 'PO' AND
9339 NVL(p_source_15,'
9340 ') = 'S'
9341 THEN
9342
9343 --
9344 XLA_AE_LINES_PKG.SetNewLine;
9345
9346 p_balance_type_code := l_balance_type_code;
9347 -- set the flag so later we will know whether the gain loss line needs to be created
9348
9349 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
9350 p_actual_flag :='A';
9351 END IF;
9352
9353 --
9354 -- bulk performance
9355 --
9356 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
9357 p_header_num => 0); -- 4262811
9358 --
9359 -- set accounting line options
9360 --
9361 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
9362 p_natural_side_code => 'C'
9363 , p_gain_or_loss_flag => 'N'
9364 , p_gl_transfer_mode_code => 'S'
9365 , p_acct_entry_type_code => 'E'
9366 , p_switch_side_flag => 'N'
9367 , p_merge_duplicate_code => 'N'
9368 );
9369 --
9370 l_acc_rev_natural_side_code := 'D'; -- 4262811
9371 --
9372 --
9373 -- set accounting line type info
9374 --
9375 xla_ae_lines_pkg.SetAcctLineType
9376 (p_component_type => l_component_type
9377 ,p_event_type_code => l_event_type_code
9378 ,p_line_definition_owner_code => l_line_definition_owner_code
9379 ,p_line_definition_code => l_line_definition_code
9380 ,p_accounting_line_code => l_component_code
9381 ,p_accounting_line_type_code => l_component_type_code
9382 ,p_accounting_line_appl_id => l_component_appl_id
9383 ,p_amb_context_code => l_amb_context_code
9384 ,p_entity_code => l_entity_code
9385 ,p_event_class_code => l_event_class_code);
9386 --
9387 -- set accounting class
9388 --
9389 xla_ae_lines_pkg.SetAcctClass(
9390 p_accounting_class_code => 'PO_PA_BURDENED'
9391 , p_ae_header_id => l_ae_header_id
9392 );
9393
9394 --
9395 -- set rounding class
9396 --
9397 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
9398 'PO_PA_BURDENED';
9399
9400 --
9401 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
9402 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
9403 --
9404 -- bulk performance
9405 --
9406 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
9407
9408 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
9409 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9410
9411 -- 4955764
9412 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9413 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
9414
9415 -- 4458381 Public Sector Enh
9416
9417 --
9418 -- set accounting attributes for the line type
9419 --
9420 l_entered_amt_idx := 28;
9421 l_accted_amt_idx := 30;
9422 l_bflow_applied_to_amt_idx := NULL; -- 5132302
9423 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
9424 l_rec_acct_attrs.array_char_value(1) := p_source_16;
9425 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
9426 l_rec_acct_attrs.array_num_value(2) := p_source_17;
9427 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
9428 l_rec_acct_attrs.array_char_value(3) := p_source_18;
9429 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
9430 l_rec_acct_attrs.array_char_value(4) := p_source_19;
9431 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
9432 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
9433 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
9434 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
9435 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
9436 l_rec_acct_attrs.array_char_value(7) := p_source_22;
9437 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
9438 l_rec_acct_attrs.array_num_value(8) := p_source_23;
9439 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
9440 l_rec_acct_attrs.array_char_value(9) := p_source_24;
9441 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
9442 l_rec_acct_attrs.array_char_value(10) := p_source_25;
9443 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
9444 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_26);
9445 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
9446 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_27);
9447 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
9448 l_rec_acct_attrs.array_char_value(13) := p_source_28;
9449 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
9450 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_29);
9451 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
9452 l_rec_acct_attrs.array_char_value(15) := p_source_6;
9453 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
9454 l_rec_acct_attrs.array_char_value(16) := p_source_30;
9455 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
9456 l_rec_acct_attrs.array_char_value(17) := p_source_31;
9457 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
9458 l_rec_acct_attrs.array_num_value(18) := p_source_32;
9459 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
9460 l_rec_acct_attrs.array_num_value(19) := p_source_33;
9461 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
9462 l_rec_acct_attrs.array_char_value(20) := p_source_34;
9463 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
9464 l_rec_acct_attrs.array_num_value(21) := p_source_35;
9465 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
9466 l_rec_acct_attrs.array_char_value(22) := p_source_36;
9467 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
9468 l_rec_acct_attrs.array_num_value(23) := p_source_37;
9469 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
9470 l_rec_acct_attrs.array_num_value(24) := p_source_33;
9471 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
9472 l_rec_acct_attrs.array_char_value(25) := p_source_34;
9473 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
9474 l_rec_acct_attrs.array_num_value(26) := p_source_35;
9475 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
9476 l_rec_acct_attrs.array_char_value(27) := p_source_38;
9477 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
9478 l_rec_acct_attrs.array_num_value(28) := p_source_33;
9479 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
9480 l_rec_acct_attrs.array_char_value(29) := p_source_34;
9481 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
9482 l_rec_acct_attrs.array_num_value(30) := p_source_35;
9483 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
9484 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_29);
9485 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
9486 l_rec_acct_attrs.array_char_value(32) := p_source_6;
9487 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
9488 l_rec_acct_attrs.array_char_value(33) := p_source_30;
9489 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
9490 l_rec_acct_attrs.array_num_value(34) := p_source_39;
9491 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
9492 l_rec_acct_attrs.array_num_value(35) := p_source_40;
9493
9494 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
9495 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
9496
9497 ---------------------------------------------------------------------------------------------------------------
9498 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
9499 ---------------------------------------------------------------------------------------------------------------
9500 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
9501
9502 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9503 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9504
9505 IF xla_accounting_cache_pkg.GetValueChar
9506 (p_source_code => 'LEDGER_CATEGORY_CODE'
9507 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9508 AND l_bflow_method_code = 'PRIOR_ENTRY'
9509 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
9510 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
9511 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
9512 )
9513 THEN
9514 xla_ae_lines_pkg.BflowUpgEntry
9515 (p_business_method_code => l_bflow_method_code
9516 ,p_business_class_code => l_bflow_class_code
9517 ,p_balance_type => l_balance_type_code);
9518 ELSE
9519 NULL;
9520 XLA_AE_LINES_PKG.business_flow_validation(
9521 p_business_method_code => l_bflow_method_code
9522 ,p_business_class_code => l_bflow_class_code
9523 ,p_inherit_description_flag => l_inherit_desc_flag);
9524 END IF;
9525
9526 --
9527 -- call analytical criteria
9528 --
9529 -- Inherited Analytical Criteria for business flow method of Prior Entry.
9530 --
9531 -- call description
9532 --
9533
9534 xla_ae_lines_pkg.SetLineDescription(
9535 p_ae_header_id => l_ae_header_id
9536 ,p_description => Description_2 (
9537 p_application_id => p_application_id
9538 , p_ae_header_id => l_ae_header_id
9539 , p_source_3 => p_source_3
9540 , p_source_4 => p_source_4
9541 , p_source_5 => p_source_5
9542 , p_source_6 => p_source_6
9543 )
9544 );
9545
9546
9547 --
9548 -- call ADRs
9549 -- Bug 4922099
9550 --
9551 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9552 (NVL(l_actual_upg_option, 'N') = 'O') OR
9553 (NVL(l_enc_upg_option, 'N') = 'O')
9554 )
9555 THEN
9556 NULL;
9557 --
9558 --
9559
9560 --
9561 --
9562 END IF;
9563 --
9564 -- Bug 4922099
9565 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
9566 (NVL(l_enc_upg_option, 'N') = 'O')
9567 ) AND
9568 (l_bflow_method_code = 'PRIOR_ENTRY')
9569 )
9570 THEN
9571 IF
9572 --
9573 1 = 1
9574 --
9575 THEN
9576 xla_accounting_err_pkg.build_message
9577 (p_appli_s_name => 'XLA'
9578 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9579 ,p_token_1 => 'LINE_NUMBER'
9580 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
9581 ,p_token_2 => 'LINE_TYPE_NAME'
9582 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
9583 l_component_type
9584 ,l_component_code
9585 ,l_component_type_code
9586 ,l_component_appl_id
9587 ,l_amb_context_code
9588 ,l_entity_code
9589 ,l_event_class_code
9590 )
9591 ,p_token_3 => 'OWNER'
9592 ,p_value_3 => xla_lookups_pkg.get_meaning(
9593 p_lookup_type => 'XLA_OWNER_TYPE'
9594 ,p_lookup_code => l_component_type_code
9595 )
9596 ,p_token_4 => 'PRODUCT_NAME'
9597 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
9598 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
9599 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
9600 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
9601 ,p_ae_header_id => NULL
9602 );
9603
9604 IF (C_LEVEL_ERROR>= g_log_level) THEN
9605 trace
9606 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9607 ,p_level => C_LEVEL_ERROR
9608 ,p_module => l_log_module);
9609 END IF;
9610 END IF;
9611 END IF;
9612 --
9613 --
9614 ------------------------------------------------------------------------------------------------
9615 -- 4219869 Business Flow
9616 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
9617 -- Prior Entry. Currently, the following code is always generated.
9618 ------------------------------------------------------------------------------------------------
9619 -- No ValidateCurrentLine for business flow method of Prior Entry
9620
9621 ------------------------------------------------------------------------------------
9622 -- 4219869 Business Flow
9623 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
9624 ------------------------------------------------------------------------------------
9625 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9626
9627 ----------------------------------------------------------------------------------
9628 -- 4219869 Business Flow
9629 -- Update journal entry status -- Need to generate this within IF <condition>
9630 ----------------------------------------------------------------------------------
9631 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9632 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
9633 ,p_balance_type_code => l_balance_type_code
9634 );
9635
9636 -------------------------------------------------------------------------------------------
9637 -- 4262811 - Generate the Accrual Reversal lines
9638 -------------------------------------------------------------------------------------------
9639 BEGIN
9640 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
9641 (g_array_event(p_event_id).array_value_num('header_index'));
9642 IF l_acc_rev_flag IS NULL THEN
9643 l_acc_rev_flag := 'N';
9644 END IF;
9645 EXCEPTION
9646 WHEN OTHERS THEN
9647 l_acc_rev_flag := 'N';
9648 END;
9649 --
9650 IF (l_acc_rev_flag = 'Y') THEN
9651
9652 -- 4645092 ------------------------------------------------------------------------------
9653 -- To allow MPA report to determine if it should generate report process
9654 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
9655 ------------------------------------------------------------------------------------------
9656
9657 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
9658 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
9659
9660 --
9661 -- Update the line information that should be overwritten
9662 --
9663 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
9664 p_header_num => 1);
9665 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
9666
9667 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
9668
9669 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
9670 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
9671 END IF;
9672
9673 --
9674 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
9675 --
9676 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
9677 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
9678 ELSE
9679 ---------------------------------------------------------------------------------------------------
9680 -- 4262811a Switch Sign
9681 ---------------------------------------------------------------------------------------------------
9682 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
9683 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9684 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9685 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9686 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9687 -- 5132302
9688 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
9689 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9690
9691 END IF;
9692
9693 -- 4955764
9694 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9695 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
9696
9697
9698 XLA_AE_LINES_PKG.ValidateCurrentLine;
9699 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9700
9701 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9702 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
9703 ,p_balance_type_code => l_balance_type_code);
9704
9705 END IF;
9706
9707 -----------------------------------------------------------------------------------------
9708 -- 4262811 Multiperiod Accounting
9709 -----------------------------------------------------------------------------------------
9710 -- No MPA option is assigned.
9711
9712
9713 END IF;
9714 END IF;
9715 --
9716
9717 --
9718 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9719 trace
9720 (p_msg => 'END of AcctLineType_22'
9721 ,p_level => C_LEVEL_PROCEDURE
9722 ,p_module => l_log_module);
9723 END IF;
9724 --
9725 EXCEPTION
9726 WHEN xla_exceptions_pkg.application_exception THEN
9727 RAISE;
9728 WHEN OTHERS THEN
9729 xla_exceptions_pkg.raise_message
9730 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_22');
9731 END AcctLineType_22;
9732 --
9733
9734 ---------------------------------------
9735 --
9736 -- PRIVATE FUNCTION
9737 -- AcctLineType_23
9738 --
9739 ---------------------------------------
9740 PROCEDURE AcctLineType_23 (
9741 p_application_id IN NUMBER
9742 ,p_event_id IN NUMBER
9743 ,p_calculate_acctd_flag IN VARCHAR2
9744 ,p_calculate_g_l_flag IN VARCHAR2
9745 ,p_actual_flag IN OUT VARCHAR2
9746 ,p_balance_type_code OUT VARCHAR2
9747 ,p_gain_or_loss_ref OUT VARCHAR2
9748
9749 --Project Name
9750 , p_source_3 IN VARCHAR2
9751 --Task Name
9752 , p_source_4 IN VARCHAR2
9753 --Project Expenditure Organization Identifier
9754 , p_source_5 IN NUMBER
9755 --Expenditure Type
9756 , p_source_6 IN VARCHAR2
9757 --Document Type
9758 , p_source_9 IN VARCHAR2
9759 --Main Or Backing Code
9760 , p_source_13 IN VARCHAR2
9761 --Burden Record Identifier
9762 , p_source_14 IN VARCHAR2
9763 , p_source_14_meaning IN VARCHAR2
9764 --Burden Amount Display Method
9765 , p_source_15 IN VARCHAR2
9766 --Accounting Reversal Flag
9767 , p_source_16 IN VARCHAR2
9768 --Allocated to Application Identifier
9769 , p_source_17 IN NUMBER
9770 --Allocated to Distribution Type
9771 , p_source_18 IN VARCHAR2
9772 --Allocated to Entity Code
9773 , p_source_19 IN VARCHAR2
9774 --Allocated to First Distribution Identifier
9775 , p_source_20 IN NUMBER
9776 --Allocated to First System Transaction Identifier
9777 , p_source_21 IN NUMBER
9778 --Allocated to Second Distribution Identifier
9779 , p_source_22 IN VARCHAR2
9780 --Purchase Order Burden Applied to Application Identifier
9781 , p_source_23 IN NUMBER
9782 --PO Distribution Type
9783 , p_source_24 IN VARCHAR2
9784 --Purchase Order Burden Applied to Entity Code
9785 , p_source_25 IN VARCHAR2
9786 --Purchase Order Burden Applied to First Distribution Identifier
9787 , p_source_26 IN NUMBER
9788 --Purchase Order Burden Applied to First System Transaction Identifier
9789 , p_source_27 IN NUMBER
9790 --Purchase Order Burden Applied to Second Distribution Identifier
9791 , p_source_28 IN VARCHAR2
9792 --PO Distribution Identifier
9793 , p_source_29 IN NUMBER
9794 --Line Type Name
9795 , p_source_30 IN VARCHAR2
9796 --Encumbrance Upgrade Credit Accounting Class
9797 , p_source_31 IN VARCHAR2
9798 --Encumbrance Upgrade Credit Account
9799 , p_source_32 IN NUMBER
9800 --Entered Amount
9801 , p_source_33 IN NUMBER
9802 --Currency Code
9803 , p_source_34 IN VARCHAR2
9804 --Accounted Amount
9805 , p_source_35 IN NUMBER
9806 --Encumbrance Upgrade Debit Accounting Class
9807 , p_source_36 IN VARCHAR2
9808 --Encumbrance Upgrade Debit Account
9809 , p_source_37 IN NUMBER
9810 --Use Encumbrances Upgrade Attributes Flag
9811 , p_source_38 IN VARCHAR2
9812 --Encumbrance Upgrade Credit Encumbrance Type
9813 , p_source_39 IN NUMBER
9814 --Encumbrance Upgrade Debit Encumbrance Type
9815 , p_source_40 IN NUMBER
9816 )
9817 IS
9818
9819 l_component_type VARCHAR2(80);
9820 l_component_code VARCHAR2(30);
9821 l_component_type_code VARCHAR2(1);
9822 l_component_appl_id INTEGER;
9823 l_amb_context_code VARCHAR2(30);
9824 l_entity_code VARCHAR2(30);
9825 l_event_class_code VARCHAR2(30);
9826 l_ae_header_id NUMBER;
9827 l_event_type_code VARCHAR2(30);
9828 l_line_definition_code VARCHAR2(30);
9829 l_line_definition_owner_code VARCHAR2(1);
9830 --
9831 -- adr variables
9832 l_segment VARCHAR2(30);
9833 l_ccid NUMBER;
9834 l_adr_transaction_coa_id NUMBER;
9835 l_adr_accounting_coa_id NUMBER;
9836 l_adr_flexfield_segment_code VARCHAR2(30);
9837 l_adr_flex_value_set_id NUMBER;
9838 l_adr_value_type_code VARCHAR2(30);
9839 l_adr_value_combination_id NUMBER;
9840 l_adr_value_segment_code VARCHAR2(30);
9841
9842 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
9843 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
9844 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
9845 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
9846
9847 -- 4262811 Variables ------------------------------------------------------------------------------------------
9848 l_entered_amt_idx NUMBER;
9849 l_accted_amt_idx NUMBER;
9850 l_acc_rev_flag VARCHAR2(1);
9851 l_accrual_line_num NUMBER;
9852 l_tmp_amt NUMBER;
9853 l_acc_rev_natural_side_code VARCHAR2(1);
9854
9855 l_num_entries NUMBER;
9856 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
9857 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
9858 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
9859 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
9860 l_recog_line_1 NUMBER;
9861 l_recog_line_2 NUMBER;
9862
9863 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
9864 l_bflow_applied_to_amt NUMBER; -- 5132302
9865 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
9866
9867 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
9868
9869 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
9870 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
9871
9872 ---------------------------------------------------------------------------------------------------------------
9873
9874
9875 --
9876 -- bulk performance
9877 --
9878 l_balance_type_code VARCHAR2(1);
9879 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
9880 l_log_module VARCHAR2(240);
9881
9882 --
9883 -- Upgrade strategy
9884 --
9885 l_actual_upg_option VARCHAR2(1);
9886 l_enc_upg_option VARCHAR2(1);
9887
9888 --
9889 BEGIN
9890 --
9891 IF g_log_enabled THEN
9892 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_23';
9893 END IF;
9894 --
9895 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9896
9897 trace
9898 (p_msg => 'BEGIN of AcctLineType_23'
9899 ,p_level => C_LEVEL_PROCEDURE
9900 ,p_module => l_log_module);
9901
9902 END IF;
9903 --
9904 l_component_type := 'AMB_JLT';
9905 l_component_code := 'REINST_PO_BURDENED_ENCFORRELDR';
9906 l_component_type_code := 'S';
9907 l_component_appl_id := 201;
9908 l_amb_context_code := 'DEFAULT';
9909 l_entity_code := 'RELEASE';
9910 l_event_class_code := 'RELEASE_BURDEN';
9911 l_event_type_code := 'RELEASE_BURDEN_ALL';
9912 l_line_definition_owner_code := 'S';
9913 l_line_definition_code := 'REL_BURDEN_ENC_ALL';
9914 --
9915 l_balance_type_code := 'E';
9916 l_segment := NULL;
9917 l_ccid := NULL;
9918 l_adr_transaction_coa_id := NULL;
9919 l_adr_accounting_coa_id := NULL;
9920 l_adr_flexfield_segment_code := NULL;
9921 l_adr_flex_value_set_id := NULL;
9922 l_adr_value_type_code := NULL;
9923 l_adr_value_combination_id := NULL;
9924 l_adr_value_segment_code := NULL;
9925
9926 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
9927 l_bflow_class_code := 'PO_PA_BURDENED_ENC'; -- 4219869 Business Flow
9928 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
9929 l_budgetary_control_flag := 'Y';
9930
9931 l_bflow_applied_to_amt_idx := NULL; -- 5132302
9932 l_bflow_applied_to_amt := NULL; -- 5132302
9933 l_entered_amt_idx := NULL; -- 4262811
9934 l_accted_amt_idx := NULL; -- 4262811
9935 l_acc_rev_flag := NULL; -- 4262811
9936 l_accrual_line_num := NULL; -- 4262811
9937 l_tmp_amt := NULL; -- 4262811
9938 --
9939
9940 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
9941 l_balance_type_code <> 'B' THEN
9942 IF (NVL(
9943 xla_ae_sources_pkg.GetSystemSourceChar(
9944 p_source_code => 'XLA_EVENT_TYPE_CODE'
9945 , p_source_type_code => 'Y'
9946 , p_source_application_id => 602
9947 ),'
9948 ') = 'REL_BURDEN_UNRESERVED' OR
9949 NVL(
9950 xla_ae_sources_pkg.GetSystemSourceChar(
9951 p_source_code => 'XLA_EVENT_TYPE_CODE'
9952 , p_source_type_code => 'Y'
9953 , p_source_application_id => 602
9954 ),'
9955 ') = 'REL_BURDEN_INV_CANCELLED' OR
9956 NVL(
9957 xla_ae_sources_pkg.GetSystemSourceChar(
9958 p_source_code => 'XLA_EVENT_TYPE_CODE'
9959 , p_source_type_code => 'Y'
9960 , p_source_application_id => 602
9961 ),'
9962 ') = 'REL_BURDEN_REJECTED') AND
9963 (NVL(p_source_13,'
9964 ') = 'B_PO' OR
9965 NVL(p_source_13,'
9966 ') = 'B_PA') AND
9967 (NVL(p_source_14,'
9968 ') = 'N' OR
9969 NVL(p_source_14,'
9970 ') = 'O') AND
9971 NVL(p_source_9,'
9972 ') = 'PO' AND
9973 NVL(p_source_15,'
9974 ') = 'S'
9975 THEN
9976
9977 --
9978 XLA_AE_LINES_PKG.SetNewLine;
9979
9980 p_balance_type_code := l_balance_type_code;
9981 -- set the flag so later we will know whether the gain loss line needs to be created
9982
9983 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
9984 p_actual_flag :='A';
9985 END IF;
9986
9987 --
9988 -- bulk performance
9989 --
9990 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
9991 p_header_num => 0); -- 4262811
9992 --
9993 -- set accounting line options
9994 --
9995 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
9996 p_natural_side_code => 'D'
9997 , p_gain_or_loss_flag => 'N'
9998 , p_gl_transfer_mode_code => 'S'
9999 , p_acct_entry_type_code => 'E'
10000 , p_switch_side_flag => 'N'
10001 , p_merge_duplicate_code => 'N'
10002 );
10003 --
10004 l_acc_rev_natural_side_code := 'C'; -- 4262811
10005 --
10006 --
10007 -- set accounting line type info
10008 --
10009 xla_ae_lines_pkg.SetAcctLineType
10010 (p_component_type => l_component_type
10011 ,p_event_type_code => l_event_type_code
10012 ,p_line_definition_owner_code => l_line_definition_owner_code
10013 ,p_line_definition_code => l_line_definition_code
10014 ,p_accounting_line_code => l_component_code
10015 ,p_accounting_line_type_code => l_component_type_code
10016 ,p_accounting_line_appl_id => l_component_appl_id
10017 ,p_amb_context_code => l_amb_context_code
10018 ,p_entity_code => l_entity_code
10019 ,p_event_class_code => l_event_class_code);
10020 --
10021 -- set accounting class
10022 --
10023 xla_ae_lines_pkg.SetAcctClass(
10024 p_accounting_class_code => 'PO_PA_BURDENED'
10025 , p_ae_header_id => l_ae_header_id
10026 );
10027
10028 --
10029 -- set rounding class
10030 --
10031 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
10032 'PO_PA_BURDENED';
10033
10034 --
10035 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
10036 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
10037 --
10038 -- bulk performance
10039 --
10040 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
10041
10042 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
10043 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
10044
10045 -- 4955764
10046 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10047 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
10048
10049 -- 4458381 Public Sector Enh
10050
10051 --
10052 -- set accounting attributes for the line type
10053 --
10054 l_entered_amt_idx := 28;
10055 l_accted_amt_idx := 30;
10056 l_bflow_applied_to_amt_idx := NULL; -- 5132302
10057 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
10058 l_rec_acct_attrs.array_char_value(1) := p_source_16;
10059 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
10060 l_rec_acct_attrs.array_num_value(2) := p_source_17;
10061 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
10062 l_rec_acct_attrs.array_char_value(3) := p_source_18;
10063 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
10064 l_rec_acct_attrs.array_char_value(4) := p_source_19;
10065 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
10066 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
10067 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
10068 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
10069 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
10070 l_rec_acct_attrs.array_char_value(7) := p_source_22;
10071 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
10072 l_rec_acct_attrs.array_num_value(8) := p_source_23;
10073 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
10074 l_rec_acct_attrs.array_char_value(9) := p_source_24;
10075 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
10076 l_rec_acct_attrs.array_char_value(10) := p_source_25;
10077 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
10078 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_26);
10079 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
10080 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_27);
10081 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
10082 l_rec_acct_attrs.array_char_value(13) := p_source_28;
10083 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
10084 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_29);
10085 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
10086 l_rec_acct_attrs.array_char_value(15) := p_source_6;
10087 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
10088 l_rec_acct_attrs.array_char_value(16) := p_source_30;
10089 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
10090 l_rec_acct_attrs.array_char_value(17) := p_source_31;
10091 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
10092 l_rec_acct_attrs.array_num_value(18) := p_source_32;
10093 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
10094 l_rec_acct_attrs.array_num_value(19) := p_source_33;
10095 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
10096 l_rec_acct_attrs.array_char_value(20) := p_source_34;
10097 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
10098 l_rec_acct_attrs.array_num_value(21) := p_source_35;
10099 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
10100 l_rec_acct_attrs.array_char_value(22) := p_source_36;
10101 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
10102 l_rec_acct_attrs.array_num_value(23) := p_source_37;
10103 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
10104 l_rec_acct_attrs.array_num_value(24) := p_source_33;
10105 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
10106 l_rec_acct_attrs.array_char_value(25) := p_source_34;
10107 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
10108 l_rec_acct_attrs.array_num_value(26) := p_source_35;
10109 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
10110 l_rec_acct_attrs.array_char_value(27) := p_source_38;
10111 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
10112 l_rec_acct_attrs.array_num_value(28) := p_source_33;
10113 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
10114 l_rec_acct_attrs.array_char_value(29) := p_source_34;
10115 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
10116 l_rec_acct_attrs.array_num_value(30) := p_source_35;
10117 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
10118 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_29);
10119 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
10120 l_rec_acct_attrs.array_char_value(32) := p_source_6;
10121 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
10122 l_rec_acct_attrs.array_char_value(33) := p_source_30;
10123 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
10124 l_rec_acct_attrs.array_num_value(34) := p_source_39;
10125 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
10126 l_rec_acct_attrs.array_num_value(35) := p_source_40;
10127
10128 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
10129 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
10130
10131 ---------------------------------------------------------------------------------------------------------------
10132 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
10133 ---------------------------------------------------------------------------------------------------------------
10134 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
10135
10136 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10137 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10138
10139 IF xla_accounting_cache_pkg.GetValueChar
10140 (p_source_code => 'LEDGER_CATEGORY_CODE'
10141 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
10142 AND l_bflow_method_code = 'PRIOR_ENTRY'
10143 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
10144 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
10145 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
10146 )
10147 THEN
10148 xla_ae_lines_pkg.BflowUpgEntry
10149 (p_business_method_code => l_bflow_method_code
10150 ,p_business_class_code => l_bflow_class_code
10151 ,p_balance_type => l_balance_type_code);
10152 ELSE
10153 NULL;
10154 XLA_AE_LINES_PKG.business_flow_validation(
10155 p_business_method_code => l_bflow_method_code
10156 ,p_business_class_code => l_bflow_class_code
10157 ,p_inherit_description_flag => l_inherit_desc_flag);
10158 END IF;
10159
10160 --
10161 -- call analytical criteria
10162 --
10163 -- Inherited Analytical Criteria for business flow method of Prior Entry.
10164 --
10165 -- call description
10166 --
10167
10168 xla_ae_lines_pkg.SetLineDescription(
10169 p_ae_header_id => l_ae_header_id
10170 ,p_description => Description_2 (
10171 p_application_id => p_application_id
10172 , p_ae_header_id => l_ae_header_id
10173 , p_source_3 => p_source_3
10174 , p_source_4 => p_source_4
10175 , p_source_5 => p_source_5
10176 , p_source_6 => p_source_6
10177 )
10178 );
10179
10180
10181 --
10182 -- call ADRs
10183 -- Bug 4922099
10184 --
10185 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10186 (NVL(l_actual_upg_option, 'N') = 'O') OR
10187 (NVL(l_enc_upg_option, 'N') = 'O')
10188 )
10189 THEN
10190 NULL;
10191 --
10192 --
10193
10194 --
10195 --
10196 END IF;
10197 --
10198 -- Bug 4922099
10199 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
10200 (NVL(l_enc_upg_option, 'N') = 'O')
10201 ) AND
10202 (l_bflow_method_code = 'PRIOR_ENTRY')
10203 )
10204 THEN
10205 IF
10206 --
10207 1 = 1
10208 --
10209 THEN
10210 xla_accounting_err_pkg.build_message
10211 (p_appli_s_name => 'XLA'
10212 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10213 ,p_token_1 => 'LINE_NUMBER'
10214 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
10215 ,p_token_2 => 'LINE_TYPE_NAME'
10216 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
10217 l_component_type
10218 ,l_component_code
10219 ,l_component_type_code
10220 ,l_component_appl_id
10221 ,l_amb_context_code
10222 ,l_entity_code
10223 ,l_event_class_code
10224 )
10225 ,p_token_3 => 'OWNER'
10226 ,p_value_3 => xla_lookups_pkg.get_meaning(
10227 p_lookup_type => 'XLA_OWNER_TYPE'
10228 ,p_lookup_code => l_component_type_code
10229 )
10230 ,p_token_4 => 'PRODUCT_NAME'
10231 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
10232 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
10233 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
10234 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
10235 ,p_ae_header_id => NULL
10236 );
10237
10238 IF (C_LEVEL_ERROR>= g_log_level) THEN
10239 trace
10240 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10241 ,p_level => C_LEVEL_ERROR
10242 ,p_module => l_log_module);
10243 END IF;
10244 END IF;
10245 END IF;
10246 --
10247 --
10248 ------------------------------------------------------------------------------------------------
10249 -- 4219869 Business Flow
10250 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
10251 -- Prior Entry. Currently, the following code is always generated.
10252 ------------------------------------------------------------------------------------------------
10253 -- No ValidateCurrentLine for business flow method of Prior Entry
10254
10255 ------------------------------------------------------------------------------------
10256 -- 4219869 Business Flow
10257 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
10258 ------------------------------------------------------------------------------------
10259 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10260
10261 ----------------------------------------------------------------------------------
10262 -- 4219869 Business Flow
10263 -- Update journal entry status -- Need to generate this within IF <condition>
10264 ----------------------------------------------------------------------------------
10265 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10266 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
10267 ,p_balance_type_code => l_balance_type_code
10268 );
10269
10270 -------------------------------------------------------------------------------------------
10271 -- 4262811 - Generate the Accrual Reversal lines
10272 -------------------------------------------------------------------------------------------
10273 BEGIN
10274 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
10275 (g_array_event(p_event_id).array_value_num('header_index'));
10276 IF l_acc_rev_flag IS NULL THEN
10277 l_acc_rev_flag := 'N';
10278 END IF;
10279 EXCEPTION
10280 WHEN OTHERS THEN
10281 l_acc_rev_flag := 'N';
10282 END;
10283 --
10284 IF (l_acc_rev_flag = 'Y') THEN
10285
10286 -- 4645092 ------------------------------------------------------------------------------
10287 -- To allow MPA report to determine if it should generate report process
10288 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
10289 ------------------------------------------------------------------------------------------
10290
10291 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
10292 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
10293
10294 --
10295 -- Update the line information that should be overwritten
10296 --
10297 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
10298 p_header_num => 1);
10299 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
10300
10301 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
10302
10303 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
10304 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
10305 END IF;
10306
10307 --
10308 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
10309 --
10310 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
10311 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
10312 ELSE
10313 ---------------------------------------------------------------------------------------------------
10314 -- 4262811a Switch Sign
10315 ---------------------------------------------------------------------------------------------------
10316 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
10317 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10318 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10319 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10320 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10321 -- 5132302
10322 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
10323 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10324
10325 END IF;
10326
10327 -- 4955764
10328 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10329 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
10330
10331
10332 XLA_AE_LINES_PKG.ValidateCurrentLine;
10333 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10334
10335 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10336 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
10337 ,p_balance_type_code => l_balance_type_code);
10338
10339 END IF;
10340
10341 -----------------------------------------------------------------------------------------
10342 -- 4262811 Multiperiod Accounting
10343 -----------------------------------------------------------------------------------------
10344 -- No MPA option is assigned.
10345
10346
10347 END IF;
10348 END IF;
10349 --
10350
10351 --
10352 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10353 trace
10354 (p_msg => 'END of AcctLineType_23'
10355 ,p_level => C_LEVEL_PROCEDURE
10356 ,p_module => l_log_module);
10357 END IF;
10358 --
10359 EXCEPTION
10360 WHEN xla_exceptions_pkg.application_exception THEN
10361 RAISE;
10362 WHEN OTHERS THEN
10363 xla_exceptions_pkg.raise_message
10364 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_23');
10365 END AcctLineType_23;
10366 --
10367
10368 ---------------------------------------
10369 --
10370 -- PRIVATE FUNCTION
10371 -- AcctLineType_24
10372 --
10373 ---------------------------------------
10374 PROCEDURE AcctLineType_24 (
10375 p_application_id IN NUMBER
10376 ,p_event_id IN NUMBER
10377 ,p_calculate_acctd_flag IN VARCHAR2
10378 ,p_calculate_g_l_flag IN VARCHAR2
10379 ,p_actual_flag IN OUT VARCHAR2
10380 ,p_balance_type_code OUT VARCHAR2
10381 ,p_gain_or_loss_ref OUT VARCHAR2
10382
10383 --Project Name
10384 , p_source_3 IN VARCHAR2
10385 --Task Name
10386 , p_source_4 IN VARCHAR2
10387 --Project Expenditure Organization Identifier
10388 , p_source_5 IN NUMBER
10389 --Expenditure Type
10390 , p_source_6 IN VARCHAR2
10391 --Document Type
10392 , p_source_9 IN VARCHAR2
10393 --Main Or Backing Code
10394 , p_source_13 IN VARCHAR2
10395 --Burden Record Identifier
10396 , p_source_14 IN VARCHAR2
10397 , p_source_14_meaning IN VARCHAR2
10398 --Burden Amount Display Method
10399 , p_source_15 IN VARCHAR2
10400 --Accounting Reversal Flag
10401 , p_source_16 IN VARCHAR2
10402 --Allocated to Application Identifier
10403 , p_source_17 IN NUMBER
10404 --Allocated to Distribution Type
10405 , p_source_18 IN VARCHAR2
10406 --Allocated to Entity Code
10407 , p_source_19 IN VARCHAR2
10408 --Allocated to First Distribution Identifier
10409 , p_source_20 IN NUMBER
10410 --Allocated to First System Transaction Identifier
10411 , p_source_21 IN NUMBER
10412 --Allocated to Second Distribution Identifier
10413 , p_source_22 IN VARCHAR2
10414 --Purchase Order Burden Applied to Application Identifier
10415 , p_source_23 IN NUMBER
10416 --PO Distribution Type
10417 , p_source_24 IN VARCHAR2
10418 --Purchase Order Burden Applied to Entity Code
10419 , p_source_25 IN VARCHAR2
10420 --Purchase Order Burden Applied to First Distribution Identifier
10421 , p_source_26 IN NUMBER
10422 --Purchase Order Burden Applied to First System Transaction Identifier
10423 , p_source_27 IN NUMBER
10424 --Purchase Order Burden Applied to Second Distribution Identifier
10425 , p_source_28 IN VARCHAR2
10426 --PO Distribution Identifier
10427 , p_source_29 IN NUMBER
10428 --Line Type Name
10429 , p_source_30 IN VARCHAR2
10430 --Encumbrance Upgrade Credit Accounting Class
10431 , p_source_31 IN VARCHAR2
10432 --Encumbrance Upgrade Credit Account
10433 , p_source_32 IN NUMBER
10434 --Entered Amount
10435 , p_source_33 IN NUMBER
10436 --Currency Code
10437 , p_source_34 IN VARCHAR2
10438 --Accounted Amount
10439 , p_source_35 IN NUMBER
10440 --Encumbrance Upgrade Debit Accounting Class
10441 , p_source_36 IN VARCHAR2
10442 --Encumbrance Upgrade Debit Account
10443 , p_source_37 IN NUMBER
10444 --Use Encumbrances Upgrade Attributes Flag
10445 , p_source_38 IN VARCHAR2
10446 --Encumbrance Upgrade Credit Encumbrance Type
10447 , p_source_39 IN NUMBER
10448 --Encumbrance Upgrade Debit Encumbrance Type
10449 , p_source_40 IN NUMBER
10450 )
10451 IS
10452
10453 l_component_type VARCHAR2(80);
10454 l_component_code VARCHAR2(30);
10455 l_component_type_code VARCHAR2(1);
10456 l_component_appl_id INTEGER;
10457 l_amb_context_code VARCHAR2(30);
10458 l_entity_code VARCHAR2(30);
10459 l_event_class_code VARCHAR2(30);
10460 l_ae_header_id NUMBER;
10461 l_event_type_code VARCHAR2(30);
10462 l_line_definition_code VARCHAR2(30);
10463 l_line_definition_owner_code VARCHAR2(1);
10464 --
10465 -- adr variables
10466 l_segment VARCHAR2(30);
10467 l_ccid NUMBER;
10468 l_adr_transaction_coa_id NUMBER;
10469 l_adr_accounting_coa_id NUMBER;
10470 l_adr_flexfield_segment_code VARCHAR2(30);
10471 l_adr_flex_value_set_id NUMBER;
10472 l_adr_value_type_code VARCHAR2(30);
10473 l_adr_value_combination_id NUMBER;
10474 l_adr_value_segment_code VARCHAR2(30);
10475
10476 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
10477 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
10478 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
10479 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
10480
10481 -- 4262811 Variables ------------------------------------------------------------------------------------------
10482 l_entered_amt_idx NUMBER;
10483 l_accted_amt_idx NUMBER;
10484 l_acc_rev_flag VARCHAR2(1);
10485 l_accrual_line_num NUMBER;
10486 l_tmp_amt NUMBER;
10487 l_acc_rev_natural_side_code VARCHAR2(1);
10488
10489 l_num_entries NUMBER;
10490 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
10491 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
10492 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
10493 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
10494 l_recog_line_1 NUMBER;
10495 l_recog_line_2 NUMBER;
10496
10497 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
10498 l_bflow_applied_to_amt NUMBER; -- 5132302
10499 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
10500
10501 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
10502
10503 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
10504 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
10505
10506 ---------------------------------------------------------------------------------------------------------------
10507
10508
10509 --
10510 -- bulk performance
10511 --
10512 l_balance_type_code VARCHAR2(1);
10513 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
10514 l_log_module VARCHAR2(240);
10515
10516 --
10517 -- Upgrade strategy
10518 --
10519 l_actual_upg_option VARCHAR2(1);
10520 l_enc_upg_option VARCHAR2(1);
10521
10522 --
10523 BEGIN
10524 --
10525 IF g_log_enabled THEN
10526 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_24';
10527 END IF;
10528 --
10529 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10530
10531 trace
10532 (p_msg => 'BEGIN of AcctLineType_24'
10533 ,p_level => C_LEVEL_PROCEDURE
10534 ,p_module => l_log_module);
10535
10536 END IF;
10537 --
10538 l_component_type := 'AMB_JLT';
10539 l_component_code := 'REINST_PO_BURDEN_ENCFORRELCR';
10540 l_component_type_code := 'S';
10541 l_component_appl_id := 201;
10542 l_amb_context_code := 'DEFAULT';
10543 l_entity_code := 'RELEASE';
10544 l_event_class_code := 'RELEASE_BURDEN';
10545 l_event_type_code := 'RELEASE_BURDEN_ALL';
10546 l_line_definition_owner_code := 'S';
10547 l_line_definition_code := 'REL_BURDEN_ENC_ALL';
10548 --
10549 l_balance_type_code := 'E';
10550 l_segment := NULL;
10551 l_ccid := NULL;
10552 l_adr_transaction_coa_id := NULL;
10553 l_adr_accounting_coa_id := NULL;
10554 l_adr_flexfield_segment_code := NULL;
10555 l_adr_flex_value_set_id := NULL;
10556 l_adr_value_type_code := NULL;
10557 l_adr_value_combination_id := NULL;
10558 l_adr_value_segment_code := NULL;
10559
10560 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
10561 l_bflow_class_code := 'PO_PA_BURDEN_ENC'; -- 4219869 Business Flow
10562 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
10563 l_budgetary_control_flag := 'Y';
10564
10565 l_bflow_applied_to_amt_idx := NULL; -- 5132302
10566 l_bflow_applied_to_amt := NULL; -- 5132302
10567 l_entered_amt_idx := NULL; -- 4262811
10568 l_accted_amt_idx := NULL; -- 4262811
10569 l_acc_rev_flag := NULL; -- 4262811
10570 l_accrual_line_num := NULL; -- 4262811
10571 l_tmp_amt := NULL; -- 4262811
10572 --
10573
10574 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
10575 l_balance_type_code <> 'B' THEN
10576 IF (NVL(
10577 xla_ae_sources_pkg.GetSystemSourceChar(
10578 p_source_code => 'XLA_EVENT_TYPE_CODE'
10579 , p_source_type_code => 'Y'
10580 , p_source_application_id => 602
10581 ),'
10582 ') = 'REL_BURDEN_CANCELLED' OR
10583 NVL(
10584 xla_ae_sources_pkg.GetSystemSourceChar(
10585 p_source_code => 'XLA_EVENT_TYPE_CODE'
10586 , p_source_type_code => 'Y'
10587 , p_source_application_id => 602
10588 ),'
10589 ') = 'REL_BURDEN_CR_MEMO_CANCELLED') AND
10590 (NVL(p_source_13,'
10591 ') = 'B_PO' OR
10592 NVL(p_source_13,'
10593 ') = 'B_PA') AND
10594 NVL(p_source_14,'
10595 ') = 'O' AND
10596 NVL(p_source_9,'
10597 ') = 'PO' AND
10598 NVL(p_source_15,'
10599 ') = 'D'
10600 THEN
10601
10602 --
10603 XLA_AE_LINES_PKG.SetNewLine;
10604
10605 p_balance_type_code := l_balance_type_code;
10606 -- set the flag so later we will know whether the gain loss line needs to be created
10607
10608 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
10609 p_actual_flag :='A';
10610 END IF;
10611
10612 --
10613 -- bulk performance
10614 --
10615 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
10616 p_header_num => 0); -- 4262811
10617 --
10618 -- set accounting line options
10619 --
10620 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
10621 p_natural_side_code => 'C'
10622 , p_gain_or_loss_flag => 'N'
10623 , p_gl_transfer_mode_code => 'S'
10624 , p_acct_entry_type_code => 'E'
10625 , p_switch_side_flag => 'N'
10626 , p_merge_duplicate_code => 'N'
10627 );
10628 --
10629 l_acc_rev_natural_side_code := 'D'; -- 4262811
10630 --
10631 --
10632 -- set accounting line type info
10633 --
10634 xla_ae_lines_pkg.SetAcctLineType
10635 (p_component_type => l_component_type
10636 ,p_event_type_code => l_event_type_code
10637 ,p_line_definition_owner_code => l_line_definition_owner_code
10638 ,p_line_definition_code => l_line_definition_code
10639 ,p_accounting_line_code => l_component_code
10640 ,p_accounting_line_type_code => l_component_type_code
10641 ,p_accounting_line_appl_id => l_component_appl_id
10642 ,p_amb_context_code => l_amb_context_code
10643 ,p_entity_code => l_entity_code
10644 ,p_event_class_code => l_event_class_code);
10645 --
10646 -- set accounting class
10647 --
10648 xla_ae_lines_pkg.SetAcctClass(
10649 p_accounting_class_code => 'PO_PA_BURDEN'
10650 , p_ae_header_id => l_ae_header_id
10651 );
10652
10653 --
10654 -- set rounding class
10655 --
10656 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
10657 'PO_PA_BURDEN';
10658
10659 --
10660 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
10661 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
10662 --
10663 -- bulk performance
10664 --
10665 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
10666
10667 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
10668 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
10669
10670 -- 4955764
10671 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10672 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
10673
10674 -- 4458381 Public Sector Enh
10675
10676 --
10677 -- set accounting attributes for the line type
10678 --
10679 l_entered_amt_idx := 28;
10680 l_accted_amt_idx := 30;
10681 l_bflow_applied_to_amt_idx := NULL; -- 5132302
10682 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
10683 l_rec_acct_attrs.array_char_value(1) := p_source_16;
10684 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
10685 l_rec_acct_attrs.array_num_value(2) := p_source_17;
10686 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
10687 l_rec_acct_attrs.array_char_value(3) := p_source_18;
10688 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
10689 l_rec_acct_attrs.array_char_value(4) := p_source_19;
10690 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
10691 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
10692 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
10693 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
10694 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
10695 l_rec_acct_attrs.array_char_value(7) := p_source_22;
10696 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
10697 l_rec_acct_attrs.array_num_value(8) := p_source_23;
10698 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
10699 l_rec_acct_attrs.array_char_value(9) := p_source_24;
10700 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
10701 l_rec_acct_attrs.array_char_value(10) := p_source_25;
10702 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
10703 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_26);
10704 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
10705 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_27);
10706 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
10707 l_rec_acct_attrs.array_char_value(13) := p_source_28;
10708 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
10709 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_29);
10710 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
10711 l_rec_acct_attrs.array_char_value(15) := p_source_6;
10712 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
10713 l_rec_acct_attrs.array_char_value(16) := p_source_30;
10714 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
10715 l_rec_acct_attrs.array_char_value(17) := p_source_31;
10716 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
10717 l_rec_acct_attrs.array_num_value(18) := p_source_32;
10718 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
10719 l_rec_acct_attrs.array_num_value(19) := p_source_33;
10720 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
10721 l_rec_acct_attrs.array_char_value(20) := p_source_34;
10722 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
10723 l_rec_acct_attrs.array_num_value(21) := p_source_35;
10724 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
10725 l_rec_acct_attrs.array_char_value(22) := p_source_36;
10726 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
10727 l_rec_acct_attrs.array_num_value(23) := p_source_37;
10728 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
10729 l_rec_acct_attrs.array_num_value(24) := p_source_33;
10730 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
10731 l_rec_acct_attrs.array_char_value(25) := p_source_34;
10732 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
10733 l_rec_acct_attrs.array_num_value(26) := p_source_35;
10734 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
10735 l_rec_acct_attrs.array_char_value(27) := p_source_38;
10736 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
10737 l_rec_acct_attrs.array_num_value(28) := p_source_33;
10738 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
10739 l_rec_acct_attrs.array_char_value(29) := p_source_34;
10740 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
10741 l_rec_acct_attrs.array_num_value(30) := p_source_35;
10742 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
10743 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_29);
10744 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
10745 l_rec_acct_attrs.array_char_value(32) := p_source_6;
10746 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
10747 l_rec_acct_attrs.array_char_value(33) := p_source_30;
10748 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
10749 l_rec_acct_attrs.array_num_value(34) := p_source_39;
10750 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
10751 l_rec_acct_attrs.array_num_value(35) := p_source_40;
10752
10753 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
10754 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
10755
10756 ---------------------------------------------------------------------------------------------------------------
10757 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
10758 ---------------------------------------------------------------------------------------------------------------
10759 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
10760
10761 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10762 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10763
10764 IF xla_accounting_cache_pkg.GetValueChar
10765 (p_source_code => 'LEDGER_CATEGORY_CODE'
10766 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
10767 AND l_bflow_method_code = 'PRIOR_ENTRY'
10768 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
10769 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
10770 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
10771 )
10772 THEN
10773 xla_ae_lines_pkg.BflowUpgEntry
10774 (p_business_method_code => l_bflow_method_code
10775 ,p_business_class_code => l_bflow_class_code
10776 ,p_balance_type => l_balance_type_code);
10777 ELSE
10778 NULL;
10779 XLA_AE_LINES_PKG.business_flow_validation(
10780 p_business_method_code => l_bflow_method_code
10781 ,p_business_class_code => l_bflow_class_code
10782 ,p_inherit_description_flag => l_inherit_desc_flag);
10783 END IF;
10784
10785 --
10786 -- call analytical criteria
10787 --
10788 -- Inherited Analytical Criteria for business flow method of Prior Entry.
10789 --
10790 -- call description
10791 --
10792
10793 xla_ae_lines_pkg.SetLineDescription(
10794 p_ae_header_id => l_ae_header_id
10795 ,p_description => Description_2 (
10796 p_application_id => p_application_id
10797 , p_ae_header_id => l_ae_header_id
10798 , p_source_3 => p_source_3
10799 , p_source_4 => p_source_4
10800 , p_source_5 => p_source_5
10801 , p_source_6 => p_source_6
10802 )
10803 );
10804
10805
10806 --
10807 -- call ADRs
10808 -- Bug 4922099
10809 --
10810 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10811 (NVL(l_actual_upg_option, 'N') = 'O') OR
10812 (NVL(l_enc_upg_option, 'N') = 'O')
10813 )
10814 THEN
10815 NULL;
10816 --
10817 --
10818
10819 --
10820 --
10821 END IF;
10822 --
10823 -- Bug 4922099
10824 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
10825 (NVL(l_enc_upg_option, 'N') = 'O')
10826 ) AND
10827 (l_bflow_method_code = 'PRIOR_ENTRY')
10828 )
10829 THEN
10830 IF
10831 --
10832 1 = 1
10833 --
10834 THEN
10835 xla_accounting_err_pkg.build_message
10836 (p_appli_s_name => 'XLA'
10837 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10838 ,p_token_1 => 'LINE_NUMBER'
10839 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
10840 ,p_token_2 => 'LINE_TYPE_NAME'
10841 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
10842 l_component_type
10843 ,l_component_code
10844 ,l_component_type_code
10845 ,l_component_appl_id
10846 ,l_amb_context_code
10847 ,l_entity_code
10848 ,l_event_class_code
10849 )
10850 ,p_token_3 => 'OWNER'
10851 ,p_value_3 => xla_lookups_pkg.get_meaning(
10852 p_lookup_type => 'XLA_OWNER_TYPE'
10853 ,p_lookup_code => l_component_type_code
10854 )
10855 ,p_token_4 => 'PRODUCT_NAME'
10856 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
10857 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
10858 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
10859 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
10860 ,p_ae_header_id => NULL
10861 );
10862
10863 IF (C_LEVEL_ERROR>= g_log_level) THEN
10864 trace
10865 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10866 ,p_level => C_LEVEL_ERROR
10867 ,p_module => l_log_module);
10868 END IF;
10869 END IF;
10870 END IF;
10871 --
10872 --
10873 ------------------------------------------------------------------------------------------------
10874 -- 4219869 Business Flow
10875 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
10876 -- Prior Entry. Currently, the following code is always generated.
10877 ------------------------------------------------------------------------------------------------
10878 -- No ValidateCurrentLine for business flow method of Prior Entry
10879
10880 ------------------------------------------------------------------------------------
10881 -- 4219869 Business Flow
10882 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
10883 ------------------------------------------------------------------------------------
10884 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10885
10886 ----------------------------------------------------------------------------------
10887 -- 4219869 Business Flow
10888 -- Update journal entry status -- Need to generate this within IF <condition>
10889 ----------------------------------------------------------------------------------
10890 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10891 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
10892 ,p_balance_type_code => l_balance_type_code
10893 );
10894
10895 -------------------------------------------------------------------------------------------
10896 -- 4262811 - Generate the Accrual Reversal lines
10897 -------------------------------------------------------------------------------------------
10898 BEGIN
10899 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
10900 (g_array_event(p_event_id).array_value_num('header_index'));
10901 IF l_acc_rev_flag IS NULL THEN
10902 l_acc_rev_flag := 'N';
10903 END IF;
10904 EXCEPTION
10905 WHEN OTHERS THEN
10906 l_acc_rev_flag := 'N';
10907 END;
10908 --
10909 IF (l_acc_rev_flag = 'Y') THEN
10910
10911 -- 4645092 ------------------------------------------------------------------------------
10912 -- To allow MPA report to determine if it should generate report process
10913 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
10914 ------------------------------------------------------------------------------------------
10915
10916 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
10917 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
10918
10919 --
10920 -- Update the line information that should be overwritten
10921 --
10922 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
10923 p_header_num => 1);
10924 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
10925
10926 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
10927
10928 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
10929 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
10930 END IF;
10931
10932 --
10933 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
10934 --
10935 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
10936 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
10937 ELSE
10938 ---------------------------------------------------------------------------------------------------
10939 -- 4262811a Switch Sign
10940 ---------------------------------------------------------------------------------------------------
10941 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
10942 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10943 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10944 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10945 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10946 -- 5132302
10947 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
10948 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10949
10950 END IF;
10951
10952 -- 4955764
10953 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10954 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
10955
10956
10957 XLA_AE_LINES_PKG.ValidateCurrentLine;
10958 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10959
10960 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10961 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
10962 ,p_balance_type_code => l_balance_type_code);
10963
10964 END IF;
10965
10966 -----------------------------------------------------------------------------------------
10967 -- 4262811 Multiperiod Accounting
10968 -----------------------------------------------------------------------------------------
10969 -- No MPA option is assigned.
10970
10971
10972 END IF;
10973 END IF;
10974 --
10975
10976 --
10977 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10978 trace
10979 (p_msg => 'END of AcctLineType_24'
10980 ,p_level => C_LEVEL_PROCEDURE
10981 ,p_module => l_log_module);
10982 END IF;
10983 --
10984 EXCEPTION
10985 WHEN xla_exceptions_pkg.application_exception THEN
10986 RAISE;
10987 WHEN OTHERS THEN
10988 xla_exceptions_pkg.raise_message
10989 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_24');
10990 END AcctLineType_24;
10991 --
10992
10993 ---------------------------------------
10994 --
10995 -- PRIVATE FUNCTION
10996 -- AcctLineType_25
10997 --
10998 ---------------------------------------
10999 PROCEDURE AcctLineType_25 (
11000 p_application_id IN NUMBER
11001 ,p_event_id IN NUMBER
11002 ,p_calculate_acctd_flag IN VARCHAR2
11003 ,p_calculate_g_l_flag IN VARCHAR2
11004 ,p_actual_flag IN OUT VARCHAR2
11005 ,p_balance_type_code OUT VARCHAR2
11006 ,p_gain_or_loss_ref OUT VARCHAR2
11007
11008 --Project Name
11009 , p_source_3 IN VARCHAR2
11010 --Task Name
11011 , p_source_4 IN VARCHAR2
11012 --Project Expenditure Organization Identifier
11013 , p_source_5 IN NUMBER
11014 --Expenditure Type
11015 , p_source_6 IN VARCHAR2
11016 --Document Type
11017 , p_source_9 IN VARCHAR2
11018 --Main Or Backing Code
11019 , p_source_13 IN VARCHAR2
11020 --Burden Record Identifier
11021 , p_source_14 IN VARCHAR2
11022 , p_source_14_meaning IN VARCHAR2
11023 --Burden Amount Display Method
11024 , p_source_15 IN VARCHAR2
11025 --Accounting Reversal Flag
11026 , p_source_16 IN VARCHAR2
11027 --Allocated to Application Identifier
11028 , p_source_17 IN NUMBER
11029 --Allocated to Distribution Type
11030 , p_source_18 IN VARCHAR2
11031 --Allocated to Entity Code
11032 , p_source_19 IN VARCHAR2
11033 --Allocated to First Distribution Identifier
11034 , p_source_20 IN NUMBER
11035 --Allocated to First System Transaction Identifier
11036 , p_source_21 IN NUMBER
11037 --Allocated to Second Distribution Identifier
11038 , p_source_22 IN VARCHAR2
11039 --Purchase Order Burden Applied to Application Identifier
11040 , p_source_23 IN NUMBER
11041 --PO Distribution Type
11042 , p_source_24 IN VARCHAR2
11043 --Purchase Order Burden Applied to Entity Code
11044 , p_source_25 IN VARCHAR2
11045 --Purchase Order Burden Applied to First Distribution Identifier
11046 , p_source_26 IN NUMBER
11047 --Purchase Order Burden Applied to First System Transaction Identifier
11048 , p_source_27 IN NUMBER
11049 --Purchase Order Burden Applied to Second Distribution Identifier
11050 , p_source_28 IN VARCHAR2
11051 --PO Distribution Identifier
11052 , p_source_29 IN NUMBER
11053 --Line Type Name
11054 , p_source_30 IN VARCHAR2
11055 --Encumbrance Upgrade Credit Accounting Class
11056 , p_source_31 IN VARCHAR2
11057 --Encumbrance Upgrade Credit Account
11058 , p_source_32 IN NUMBER
11059 --Entered Amount
11060 , p_source_33 IN NUMBER
11061 --Currency Code
11062 , p_source_34 IN VARCHAR2
11063 --Accounted Amount
11064 , p_source_35 IN NUMBER
11065 --Encumbrance Upgrade Debit Accounting Class
11066 , p_source_36 IN VARCHAR2
11067 --Encumbrance Upgrade Debit Account
11068 , p_source_37 IN NUMBER
11069 --Use Encumbrances Upgrade Attributes Flag
11070 , p_source_38 IN VARCHAR2
11071 --Encumbrance Upgrade Credit Encumbrance Type
11072 , p_source_39 IN NUMBER
11073 --Encumbrance Upgrade Debit Encumbrance Type
11074 , p_source_40 IN NUMBER
11075 )
11076 IS
11077
11078 l_component_type VARCHAR2(80);
11079 l_component_code VARCHAR2(30);
11080 l_component_type_code VARCHAR2(1);
11081 l_component_appl_id INTEGER;
11082 l_amb_context_code VARCHAR2(30);
11083 l_entity_code VARCHAR2(30);
11084 l_event_class_code VARCHAR2(30);
11085 l_ae_header_id NUMBER;
11086 l_event_type_code VARCHAR2(30);
11087 l_line_definition_code VARCHAR2(30);
11088 l_line_definition_owner_code VARCHAR2(1);
11089 --
11090 -- adr variables
11091 l_segment VARCHAR2(30);
11092 l_ccid NUMBER;
11093 l_adr_transaction_coa_id NUMBER;
11094 l_adr_accounting_coa_id NUMBER;
11095 l_adr_flexfield_segment_code VARCHAR2(30);
11096 l_adr_flex_value_set_id NUMBER;
11097 l_adr_value_type_code VARCHAR2(30);
11098 l_adr_value_combination_id NUMBER;
11099 l_adr_value_segment_code VARCHAR2(30);
11100
11101 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
11102 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
11103 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
11104 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
11105
11106 -- 4262811 Variables ------------------------------------------------------------------------------------------
11107 l_entered_amt_idx NUMBER;
11108 l_accted_amt_idx NUMBER;
11109 l_acc_rev_flag VARCHAR2(1);
11110 l_accrual_line_num NUMBER;
11111 l_tmp_amt NUMBER;
11112 l_acc_rev_natural_side_code VARCHAR2(1);
11113
11114 l_num_entries NUMBER;
11115 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
11116 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
11117 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
11118 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
11119 l_recog_line_1 NUMBER;
11120 l_recog_line_2 NUMBER;
11121
11122 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
11123 l_bflow_applied_to_amt NUMBER; -- 5132302
11124 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
11125
11126 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
11127
11128 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
11129 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
11130
11131 ---------------------------------------------------------------------------------------------------------------
11132
11133
11134 --
11135 -- bulk performance
11136 --
11137 l_balance_type_code VARCHAR2(1);
11138 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
11139 l_log_module VARCHAR2(240);
11140
11141 --
11142 -- Upgrade strategy
11143 --
11144 l_actual_upg_option VARCHAR2(1);
11145 l_enc_upg_option VARCHAR2(1);
11146
11147 --
11148 BEGIN
11149 --
11150 IF g_log_enabled THEN
11151 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_25';
11152 END IF;
11153 --
11154 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11155
11156 trace
11157 (p_msg => 'BEGIN of AcctLineType_25'
11158 ,p_level => C_LEVEL_PROCEDURE
11159 ,p_module => l_log_module);
11160
11161 END IF;
11162 --
11163 l_component_type := 'AMB_JLT';
11164 l_component_code := 'REINST_PO_BURDEN_ENCFORRELDR';
11165 l_component_type_code := 'S';
11166 l_component_appl_id := 201;
11167 l_amb_context_code := 'DEFAULT';
11168 l_entity_code := 'RELEASE';
11169 l_event_class_code := 'RELEASE_BURDEN';
11170 l_event_type_code := 'RELEASE_BURDEN_ALL';
11171 l_line_definition_owner_code := 'S';
11172 l_line_definition_code := 'REL_BURDEN_ENC_ALL';
11173 --
11174 l_balance_type_code := 'E';
11175 l_segment := NULL;
11176 l_ccid := NULL;
11177 l_adr_transaction_coa_id := NULL;
11178 l_adr_accounting_coa_id := NULL;
11179 l_adr_flexfield_segment_code := NULL;
11180 l_adr_flex_value_set_id := NULL;
11181 l_adr_value_type_code := NULL;
11182 l_adr_value_combination_id := NULL;
11183 l_adr_value_segment_code := NULL;
11184
11185 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
11186 l_bflow_class_code := 'PO_PA_BURDEN_ENC'; -- 4219869 Business Flow
11187 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
11188 l_budgetary_control_flag := 'Y';
11189
11190 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11191 l_bflow_applied_to_amt := NULL; -- 5132302
11192 l_entered_amt_idx := NULL; -- 4262811
11193 l_accted_amt_idx := NULL; -- 4262811
11194 l_acc_rev_flag := NULL; -- 4262811
11195 l_accrual_line_num := NULL; -- 4262811
11196 l_tmp_amt := NULL; -- 4262811
11197 --
11198
11199 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
11200 l_balance_type_code <> 'B' THEN
11201 IF (NVL(
11202 xla_ae_sources_pkg.GetSystemSourceChar(
11203 p_source_code => 'XLA_EVENT_TYPE_CODE'
11204 , p_source_type_code => 'Y'
11205 , p_source_application_id => 602
11206 ),'
11207 ') = 'REL_BURDEN_UNRESERVED' OR
11208 NVL(
11209 xla_ae_sources_pkg.GetSystemSourceChar(
11210 p_source_code => 'XLA_EVENT_TYPE_CODE'
11211 , p_source_type_code => 'Y'
11212 , p_source_application_id => 602
11213 ),'
11214 ') = 'REL_BURDEN_INV_CANCELLED' OR
11215 NVL(
11216 xla_ae_sources_pkg.GetSystemSourceChar(
11217 p_source_code => 'XLA_EVENT_TYPE_CODE'
11218 , p_source_type_code => 'Y'
11219 , p_source_application_id => 602
11220 ),'
11221 ') = 'REL_BURDEN_REJECTED') AND
11222 (NVL(p_source_13,'
11223 ') = 'B_PO' OR
11224 NVL(p_source_13,'
11225 ') = 'B_PA') AND
11226 NVL(p_source_14,'
11227 ') = 'O' AND
11228 NVL(p_source_9,'
11229 ') = 'PO' AND
11230 NVL(p_source_15,'
11231 ') = 'D'
11232 THEN
11233
11234 --
11235 XLA_AE_LINES_PKG.SetNewLine;
11236
11237 p_balance_type_code := l_balance_type_code;
11238 -- set the flag so later we will know whether the gain loss line needs to be created
11239
11240 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
11241 p_actual_flag :='A';
11242 END IF;
11243
11244 --
11245 -- bulk performance
11246 --
11247 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
11248 p_header_num => 0); -- 4262811
11249 --
11250 -- set accounting line options
11251 --
11252 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
11253 p_natural_side_code => 'D'
11254 , p_gain_or_loss_flag => 'N'
11255 , p_gl_transfer_mode_code => 'S'
11256 , p_acct_entry_type_code => 'E'
11257 , p_switch_side_flag => 'N'
11258 , p_merge_duplicate_code => 'N'
11259 );
11260 --
11261 l_acc_rev_natural_side_code := 'C'; -- 4262811
11262 --
11263 --
11264 -- set accounting line type info
11265 --
11266 xla_ae_lines_pkg.SetAcctLineType
11267 (p_component_type => l_component_type
11268 ,p_event_type_code => l_event_type_code
11269 ,p_line_definition_owner_code => l_line_definition_owner_code
11270 ,p_line_definition_code => l_line_definition_code
11271 ,p_accounting_line_code => l_component_code
11272 ,p_accounting_line_type_code => l_component_type_code
11273 ,p_accounting_line_appl_id => l_component_appl_id
11274 ,p_amb_context_code => l_amb_context_code
11275 ,p_entity_code => l_entity_code
11276 ,p_event_class_code => l_event_class_code);
11277 --
11278 -- set accounting class
11279 --
11280 xla_ae_lines_pkg.SetAcctClass(
11281 p_accounting_class_code => 'PO_PA_BURDEN'
11282 , p_ae_header_id => l_ae_header_id
11283 );
11284
11285 --
11286 -- set rounding class
11287 --
11288 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
11289 'PO_PA_BURDEN';
11290
11291 --
11292 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
11293 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
11294 --
11295 -- bulk performance
11296 --
11297 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
11298
11299 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
11300 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
11301
11302 -- 4955764
11303 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11304 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
11305
11306 -- 4458381 Public Sector Enh
11307
11308 --
11309 -- set accounting attributes for the line type
11310 --
11311 l_entered_amt_idx := 28;
11312 l_accted_amt_idx := 30;
11313 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11314 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
11315 l_rec_acct_attrs.array_char_value(1) := p_source_16;
11316 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
11317 l_rec_acct_attrs.array_num_value(2) := p_source_17;
11318 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
11319 l_rec_acct_attrs.array_char_value(3) := p_source_18;
11320 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
11321 l_rec_acct_attrs.array_char_value(4) := p_source_19;
11322 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
11323 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
11324 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
11325 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
11326 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
11327 l_rec_acct_attrs.array_char_value(7) := p_source_22;
11328 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
11329 l_rec_acct_attrs.array_num_value(8) := p_source_23;
11330 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
11331 l_rec_acct_attrs.array_char_value(9) := p_source_24;
11332 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
11333 l_rec_acct_attrs.array_char_value(10) := p_source_25;
11334 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
11335 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_26);
11336 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
11337 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_27);
11338 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
11339 l_rec_acct_attrs.array_char_value(13) := p_source_28;
11340 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
11341 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_29);
11342 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
11343 l_rec_acct_attrs.array_char_value(15) := p_source_6;
11344 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
11345 l_rec_acct_attrs.array_char_value(16) := p_source_30;
11346 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
11347 l_rec_acct_attrs.array_char_value(17) := p_source_31;
11348 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
11349 l_rec_acct_attrs.array_num_value(18) := p_source_32;
11350 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
11351 l_rec_acct_attrs.array_num_value(19) := p_source_33;
11352 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
11353 l_rec_acct_attrs.array_char_value(20) := p_source_34;
11354 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
11355 l_rec_acct_attrs.array_num_value(21) := p_source_35;
11356 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
11357 l_rec_acct_attrs.array_char_value(22) := p_source_36;
11358 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
11359 l_rec_acct_attrs.array_num_value(23) := p_source_37;
11360 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
11361 l_rec_acct_attrs.array_num_value(24) := p_source_33;
11362 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
11363 l_rec_acct_attrs.array_char_value(25) := p_source_34;
11364 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
11365 l_rec_acct_attrs.array_num_value(26) := p_source_35;
11366 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
11367 l_rec_acct_attrs.array_char_value(27) := p_source_38;
11368 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
11369 l_rec_acct_attrs.array_num_value(28) := p_source_33;
11370 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
11371 l_rec_acct_attrs.array_char_value(29) := p_source_34;
11372 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
11373 l_rec_acct_attrs.array_num_value(30) := p_source_35;
11374 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
11375 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_29);
11376 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
11377 l_rec_acct_attrs.array_char_value(32) := p_source_6;
11378 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
11379 l_rec_acct_attrs.array_char_value(33) := p_source_30;
11380 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
11381 l_rec_acct_attrs.array_num_value(34) := p_source_39;
11382 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
11383 l_rec_acct_attrs.array_num_value(35) := p_source_40;
11384
11385 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
11386 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
11387
11388 ---------------------------------------------------------------------------------------------------------------
11389 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
11390 ---------------------------------------------------------------------------------------------------------------
11391 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
11392
11393 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11394 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11395
11396 IF xla_accounting_cache_pkg.GetValueChar
11397 (p_source_code => 'LEDGER_CATEGORY_CODE'
11398 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
11399 AND l_bflow_method_code = 'PRIOR_ENTRY'
11400 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
11401 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
11402 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
11403 )
11404 THEN
11405 xla_ae_lines_pkg.BflowUpgEntry
11406 (p_business_method_code => l_bflow_method_code
11407 ,p_business_class_code => l_bflow_class_code
11408 ,p_balance_type => l_balance_type_code);
11409 ELSE
11410 NULL;
11411 XLA_AE_LINES_PKG.business_flow_validation(
11412 p_business_method_code => l_bflow_method_code
11413 ,p_business_class_code => l_bflow_class_code
11414 ,p_inherit_description_flag => l_inherit_desc_flag);
11415 END IF;
11416
11417 --
11418 -- call analytical criteria
11419 --
11420 -- Inherited Analytical Criteria for business flow method of Prior Entry.
11421 --
11422 -- call description
11423 --
11424
11425 xla_ae_lines_pkg.SetLineDescription(
11426 p_ae_header_id => l_ae_header_id
11427 ,p_description => Description_2 (
11428 p_application_id => p_application_id
11429 , p_ae_header_id => l_ae_header_id
11430 , p_source_3 => p_source_3
11431 , p_source_4 => p_source_4
11432 , p_source_5 => p_source_5
11433 , p_source_6 => p_source_6
11434 )
11435 );
11436
11437
11438 --
11439 -- call ADRs
11440 -- Bug 4922099
11441 --
11442 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11443 (NVL(l_actual_upg_option, 'N') = 'O') OR
11444 (NVL(l_enc_upg_option, 'N') = 'O')
11445 )
11446 THEN
11447 NULL;
11448 --
11449 --
11450
11451 --
11452 --
11453 END IF;
11454 --
11455 -- Bug 4922099
11456 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
11457 (NVL(l_enc_upg_option, 'N') = 'O')
11458 ) AND
11459 (l_bflow_method_code = 'PRIOR_ENTRY')
11460 )
11461 THEN
11462 IF
11463 --
11464 1 = 1
11465 --
11466 THEN
11467 xla_accounting_err_pkg.build_message
11468 (p_appli_s_name => 'XLA'
11469 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11470 ,p_token_1 => 'LINE_NUMBER'
11471 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
11472 ,p_token_2 => 'LINE_TYPE_NAME'
11473 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
11474 l_component_type
11475 ,l_component_code
11476 ,l_component_type_code
11477 ,l_component_appl_id
11478 ,l_amb_context_code
11479 ,l_entity_code
11480 ,l_event_class_code
11481 )
11482 ,p_token_3 => 'OWNER'
11483 ,p_value_3 => xla_lookups_pkg.get_meaning(
11484 p_lookup_type => 'XLA_OWNER_TYPE'
11485 ,p_lookup_code => l_component_type_code
11486 )
11487 ,p_token_4 => 'PRODUCT_NAME'
11488 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
11489 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
11490 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
11491 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
11492 ,p_ae_header_id => NULL
11493 );
11494
11495 IF (C_LEVEL_ERROR>= g_log_level) THEN
11496 trace
11497 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11498 ,p_level => C_LEVEL_ERROR
11499 ,p_module => l_log_module);
11500 END IF;
11501 END IF;
11502 END IF;
11503 --
11504 --
11505 ------------------------------------------------------------------------------------------------
11506 -- 4219869 Business Flow
11507 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
11508 -- Prior Entry. Currently, the following code is always generated.
11509 ------------------------------------------------------------------------------------------------
11510 -- No ValidateCurrentLine for business flow method of Prior Entry
11511
11512 ------------------------------------------------------------------------------------
11513 -- 4219869 Business Flow
11514 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
11515 ------------------------------------------------------------------------------------
11516 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11517
11518 ----------------------------------------------------------------------------------
11519 -- 4219869 Business Flow
11520 -- Update journal entry status -- Need to generate this within IF <condition>
11521 ----------------------------------------------------------------------------------
11522 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11523 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
11524 ,p_balance_type_code => l_balance_type_code
11525 );
11526
11527 -------------------------------------------------------------------------------------------
11528 -- 4262811 - Generate the Accrual Reversal lines
11529 -------------------------------------------------------------------------------------------
11530 BEGIN
11531 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
11532 (g_array_event(p_event_id).array_value_num('header_index'));
11533 IF l_acc_rev_flag IS NULL THEN
11534 l_acc_rev_flag := 'N';
11535 END IF;
11536 EXCEPTION
11537 WHEN OTHERS THEN
11538 l_acc_rev_flag := 'N';
11539 END;
11540 --
11541 IF (l_acc_rev_flag = 'Y') THEN
11542
11543 -- 4645092 ------------------------------------------------------------------------------
11544 -- To allow MPA report to determine if it should generate report process
11545 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
11546 ------------------------------------------------------------------------------------------
11547
11548 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
11549 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
11550
11551 --
11552 -- Update the line information that should be overwritten
11553 --
11554 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
11555 p_header_num => 1);
11556 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
11557
11558 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
11559
11560 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
11561 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
11562 END IF;
11563
11564 --
11565 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
11566 --
11567 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
11568 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
11569 ELSE
11570 ---------------------------------------------------------------------------------------------------
11571 -- 4262811a Switch Sign
11572 ---------------------------------------------------------------------------------------------------
11573 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
11574 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11575 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11576 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11577 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11578 -- 5132302
11579 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
11580 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11581
11582 END IF;
11583
11584 -- 4955764
11585 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11586 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
11587
11588
11589 XLA_AE_LINES_PKG.ValidateCurrentLine;
11590 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11591
11592 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11593 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
11594 ,p_balance_type_code => l_balance_type_code);
11595
11596 END IF;
11597
11598 -----------------------------------------------------------------------------------------
11599 -- 4262811 Multiperiod Accounting
11600 -----------------------------------------------------------------------------------------
11601 -- No MPA option is assigned.
11602
11603
11604 END IF;
11605 END IF;
11606 --
11607
11608 --
11609 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11610 trace
11611 (p_msg => 'END of AcctLineType_25'
11612 ,p_level => C_LEVEL_PROCEDURE
11613 ,p_module => l_log_module);
11614 END IF;
11615 --
11616 EXCEPTION
11617 WHEN xla_exceptions_pkg.application_exception THEN
11618 RAISE;
11619 WHEN OTHERS THEN
11620 xla_exceptions_pkg.raise_message
11621 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_25');
11622 END AcctLineType_25;
11623 --
11624
11625 ---------------------------------------
11626 --
11627 -- PRIVATE FUNCTION
11628 -- AcctLineType_26
11629 --
11630 ---------------------------------------
11631 PROCEDURE AcctLineType_26 (
11632 p_application_id IN NUMBER
11633 ,p_event_id IN NUMBER
11634 ,p_calculate_acctd_flag IN VARCHAR2
11635 ,p_calculate_g_l_flag IN VARCHAR2
11636 ,p_actual_flag IN OUT VARCHAR2
11637 ,p_balance_type_code OUT VARCHAR2
11638 ,p_gain_or_loss_ref OUT VARCHAR2
11639
11640 --Budget Account
11641 , p_source_11 IN NUMBER
11642 --Main Or Backing Code
11643 , p_source_13 IN VARCHAR2
11644 --Accounting Reversal Flag
11645 , p_source_16 IN VARCHAR2
11646 --PO Distribution Identifier
11647 , p_source_29 IN NUMBER
11648 --Entered Amount
11649 , p_source_33 IN NUMBER
11650 --Currency Code
11651 , p_source_34 IN VARCHAR2
11652 --Accounted Amount
11653 , p_source_35 IN NUMBER
11654 --Allocated to Main Document Distribution Type
11655 , p_source_49 IN VARCHAR2
11656 --Allocated to Main Document Distribution Identifier
11657 , p_source_51 IN NUMBER
11658 --Applied To Application Identifier
11659 , p_source_53 IN NUMBER
11660 --Applied To Distribution Link Type
11661 , p_source_54 IN VARCHAR2
11662 --Applied To Entity Code
11663 , p_source_55 IN VARCHAR2
11664 --Applied To Distribution Identifier 1
11665 , p_source_56 IN NUMBER
11666 --Applied To Header Identifier 1
11667 , p_source_57 IN NUMBER
11668 --Distribution Link Type
11669 , p_source_58 IN VARCHAR2
11670 --PO Encumbrance Upgrade Option
11671 , p_source_59 IN VARCHAR2
11672 --JFMIP Reference
11673 , p_source_60 IN VARCHAR2
11674 --PO Upgrade Encumbrance Type Identifier
11675 , p_source_61 IN NUMBER
11676 --PO Release Identifier
11677 , p_source_66 IN NUMBER
11678 )
11679 IS
11680
11681 l_component_type VARCHAR2(80);
11682 l_component_code VARCHAR2(30);
11683 l_component_type_code VARCHAR2(1);
11684 l_component_appl_id INTEGER;
11685 l_amb_context_code VARCHAR2(30);
11686 l_entity_code VARCHAR2(30);
11687 l_event_class_code VARCHAR2(30);
11688 l_ae_header_id NUMBER;
11689 l_event_type_code VARCHAR2(30);
11690 l_line_definition_code VARCHAR2(30);
11691 l_line_definition_owner_code VARCHAR2(1);
11692 --
11693 -- adr variables
11694 l_segment VARCHAR2(30);
11695 l_ccid NUMBER;
11696 l_adr_transaction_coa_id NUMBER;
11697 l_adr_accounting_coa_id NUMBER;
11698 l_adr_flexfield_segment_code VARCHAR2(30);
11699 l_adr_flex_value_set_id NUMBER;
11700 l_adr_value_type_code VARCHAR2(30);
11701 l_adr_value_combination_id NUMBER;
11702 l_adr_value_segment_code VARCHAR2(30);
11703
11704 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
11705 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
11706 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
11707 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
11708
11709 -- 4262811 Variables ------------------------------------------------------------------------------------------
11710 l_entered_amt_idx NUMBER;
11711 l_accted_amt_idx NUMBER;
11712 l_acc_rev_flag VARCHAR2(1);
11713 l_accrual_line_num NUMBER;
11714 l_tmp_amt NUMBER;
11715 l_acc_rev_natural_side_code VARCHAR2(1);
11716
11717 l_num_entries NUMBER;
11718 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
11719 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
11720 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
11721 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
11722 l_recog_line_1 NUMBER;
11723 l_recog_line_2 NUMBER;
11724
11725 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
11726 l_bflow_applied_to_amt NUMBER; -- 5132302
11727 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
11728
11729 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
11730
11731 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
11732 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
11733
11734 ---------------------------------------------------------------------------------------------------------------
11735
11736
11737 --
11738 -- bulk performance
11739 --
11740 l_balance_type_code VARCHAR2(1);
11741 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
11742 l_log_module VARCHAR2(240);
11743
11744 --
11745 -- Upgrade strategy
11746 --
11747 l_actual_upg_option VARCHAR2(1);
11748 l_enc_upg_option VARCHAR2(1);
11749
11750 --
11751 BEGIN
11752 --
11753 IF g_log_enabled THEN
11754 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_26';
11755 END IF;
11756 --
11757 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11758
11759 trace
11760 (p_msg => 'BEGIN of AcctLineType_26'
11761 ,p_level => C_LEVEL_PROCEDURE
11762 ,p_module => l_log_module);
11763
11764 END IF;
11765 --
11766 l_component_type := 'AMB_JLT';
11767 l_component_code := 'REINST_PO_PA_ENC_FROM_REL_CR';
11768 l_component_type_code := 'S';
11769 l_component_appl_id := 201;
11770 l_amb_context_code := 'DEFAULT';
11771 l_entity_code := 'RELEASE';
11772 l_event_class_code := 'RELEASE';
11773 l_event_type_code := 'RELEASE_ALL';
11774 l_line_definition_owner_code := 'S';
11775 l_line_definition_code := 'RELEASE_ENC_ALL';
11776 --
11777 l_balance_type_code := 'E';
11778 l_segment := NULL;
11779 l_ccid := NULL;
11780 l_adr_transaction_coa_id := NULL;
11781 l_adr_accounting_coa_id := NULL;
11782 l_adr_flexfield_segment_code := NULL;
11783 l_adr_flex_value_set_id := NULL;
11784 l_adr_value_type_code := NULL;
11785 l_adr_value_combination_id := NULL;
11786 l_adr_value_segment_code := NULL;
11787
11788 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
11789 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
11790 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
11791 l_budgetary_control_flag := 'Y';
11792
11793 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11794 l_bflow_applied_to_amt := NULL; -- 5132302
11795 l_entered_amt_idx := NULL; -- 4262811
11796 l_accted_amt_idx := NULL; -- 4262811
11797 l_acc_rev_flag := NULL; -- 4262811
11798 l_accrual_line_num := NULL; -- 4262811
11799 l_tmp_amt := NULL; -- 4262811
11800 --
11801
11802 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
11803 l_balance_type_code <> 'B' THEN
11804 IF (NVL(
11805 xla_ae_sources_pkg.GetSystemSourceChar(
11806 p_source_code => 'XLA_EVENT_TYPE_CODE'
11807 , p_source_type_code => 'Y'
11808 , p_source_application_id => 602
11809 ),'
11810 ') = 'RELEASE_CANCELLED' OR
11811 NVL(
11812 xla_ae_sources_pkg.GetSystemSourceChar(
11813 p_source_code => 'XLA_EVENT_TYPE_CODE'
11814 , p_source_type_code => 'Y'
11815 , p_source_application_id => 602
11816 ),'
11817 ') = 'RELEASE_CR_MEMO_CANCELLED') AND
11818 (NVL(p_source_13,'
11819 ') = 'B_PO' OR
11820 NVL(p_source_13,'
11821 ') = 'B_PA')
11822 THEN
11823
11824 --
11825 XLA_AE_LINES_PKG.SetNewLine;
11826
11827 p_balance_type_code := l_balance_type_code;
11828 -- set the flag so later we will know whether the gain loss line needs to be created
11829
11830 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
11831 p_actual_flag :='A';
11832 END IF;
11833
11834 --
11835 -- bulk performance
11836 --
11837 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
11838 p_header_num => 0); -- 4262811
11839 --
11840 -- set accounting line options
11841 --
11842 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
11843 p_natural_side_code => 'C'
11844 , p_gain_or_loss_flag => 'N'
11845 , p_gl_transfer_mode_code => 'S'
11846 , p_acct_entry_type_code => 'E'
11847 , p_switch_side_flag => 'N'
11848 , p_merge_duplicate_code => 'N'
11849 );
11850 --
11851 l_acc_rev_natural_side_code := 'D'; -- 4262811
11852 --
11853 --
11854 -- set accounting line type info
11855 --
11856 xla_ae_lines_pkg.SetAcctLineType
11857 (p_component_type => l_component_type
11858 ,p_event_type_code => l_event_type_code
11859 ,p_line_definition_owner_code => l_line_definition_owner_code
11860 ,p_line_definition_code => l_line_definition_code
11861 ,p_accounting_line_code => l_component_code
11862 ,p_accounting_line_type_code => l_component_type_code
11863 ,p_accounting_line_appl_id => l_component_appl_id
11864 ,p_amb_context_code => l_amb_context_code
11865 ,p_entity_code => l_entity_code
11866 ,p_event_class_code => l_event_class_code);
11867 --
11868 -- set accounting class
11869 --
11870 xla_ae_lines_pkg.SetAcctClass(
11871 p_accounting_class_code => 'PURCHASE_ORDER'
11872 , p_ae_header_id => l_ae_header_id
11873 );
11874
11875 --
11876 -- set rounding class
11877 --
11878 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
11879 'PURCHASE_ORDER';
11880
11881 --
11882 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
11883 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
11884 --
11885 -- bulk performance
11886 --
11887 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
11888
11889 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
11890 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
11891
11892 -- 4955764
11893 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11894 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
11895
11896 -- 4458381 Public Sector Enh
11897
11898 --
11899 -- set accounting attributes for the line type
11900 --
11901 l_entered_amt_idx := 23;
11902 l_accted_amt_idx := 25;
11903 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11904 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
11905 l_rec_acct_attrs.array_char_value(1) := p_source_16;
11906 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
11907 l_rec_acct_attrs.array_num_value(2) :=
11908 xla_ae_sources_pkg.GetSystemSourceNum(
11909 p_source_code => 'XLA_EVENT_APPL_ID'
11910 , p_source_type_code => 'Y'
11911 , p_source_application_id => 602
11912 );
11913 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
11914 l_rec_acct_attrs.array_char_value(3) := p_source_49;
11915 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
11916 l_rec_acct_attrs.array_char_value(4) :=
11917 xla_ae_sources_pkg.GetSystemSourceChar(
11918 p_source_code => 'XLA_ENTITY_CODE'
11919 , p_source_type_code => 'Y'
11920 , p_source_application_id => 602
11921 );
11922 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
11923 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_51);
11924 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
11925 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_66);
11926 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
11927 l_rec_acct_attrs.array_num_value(7) := p_source_53;
11928 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
11929 l_rec_acct_attrs.array_char_value(8) := p_source_54;
11930 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
11931 l_rec_acct_attrs.array_char_value(9) := p_source_55;
11932 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
11933 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_56);
11934 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
11935 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_57);
11936 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
11937 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_29);
11938 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
11939 l_rec_acct_attrs.array_char_value(13) := p_source_58;
11940 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
11941 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_11);
11942 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
11943 l_rec_acct_attrs.array_num_value(15) := p_source_33;
11944 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
11945 l_rec_acct_attrs.array_char_value(16) := p_source_34;
11946 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
11947 l_rec_acct_attrs.array_num_value(17) := p_source_35;
11948 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
11949 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_11);
11950 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
11951 l_rec_acct_attrs.array_num_value(19) := p_source_33;
11952 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
11953 l_rec_acct_attrs.array_char_value(20) := p_source_34;
11954 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
11955 l_rec_acct_attrs.array_num_value(21) := p_source_35;
11956 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
11957 l_rec_acct_attrs.array_char_value(22) := p_source_59;
11958 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
11959 l_rec_acct_attrs.array_num_value(23) := p_source_33;
11960 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
11961 l_rec_acct_attrs.array_char_value(24) := p_source_34;
11962 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
11963 l_rec_acct_attrs.array_num_value(25) := p_source_35;
11964 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
11965 l_rec_acct_attrs.array_char_value(26) := p_source_60;
11966 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
11967 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_56);
11968 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
11969 l_rec_acct_attrs.array_char_value(28) := p_source_54;
11970 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
11971 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_66);
11972 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
11973 l_rec_acct_attrs.array_num_value(30) := p_source_61;
11974 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
11975 l_rec_acct_attrs.array_num_value(31) := p_source_61;
11976
11977 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
11978 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
11979
11980 ---------------------------------------------------------------------------------------------------------------
11981 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
11982 ---------------------------------------------------------------------------------------------------------------
11983 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
11984
11985 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11986 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11987
11988 IF xla_accounting_cache_pkg.GetValueChar
11989 (p_source_code => 'LEDGER_CATEGORY_CODE'
11990 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
11991 AND l_bflow_method_code = 'PRIOR_ENTRY'
11992 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
11993 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
11994 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
11995 )
11996 THEN
11997 xla_ae_lines_pkg.BflowUpgEntry
11998 (p_business_method_code => l_bflow_method_code
11999 ,p_business_class_code => l_bflow_class_code
12000 ,p_balance_type => l_balance_type_code);
12001 ELSE
12002 NULL;
12003 XLA_AE_LINES_PKG.business_flow_validation(
12004 p_business_method_code => l_bflow_method_code
12005 ,p_business_class_code => l_bflow_class_code
12006 ,p_inherit_description_flag => l_inherit_desc_flag);
12007 END IF;
12008
12009 --
12010 -- call analytical criteria
12011 --
12012 -- Inherited Analytical Criteria for business flow method of Prior Entry.
12013 --
12014 -- call description
12015 --
12016 -- No description or it is inherited.
12017 --
12018 -- call ADRs
12019 -- Bug 4922099
12020 --
12021 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12022 (NVL(l_actual_upg_option, 'N') = 'O') OR
12023 (NVL(l_enc_upg_option, 'N') = 'O')
12024 )
12025 THEN
12026 NULL;
12027 --
12028 --
12029
12030 --
12031 --
12032 END IF;
12033 --
12034 -- Bug 4922099
12035 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
12036 (NVL(l_enc_upg_option, 'N') = 'O')
12037 ) AND
12038 (l_bflow_method_code = 'PRIOR_ENTRY')
12039 )
12040 THEN
12041 IF
12042 --
12043 1 = 1
12044 --
12045 THEN
12046 xla_accounting_err_pkg.build_message
12047 (p_appli_s_name => 'XLA'
12048 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12049 ,p_token_1 => 'LINE_NUMBER'
12050 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
12051 ,p_token_2 => 'LINE_TYPE_NAME'
12052 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
12053 l_component_type
12054 ,l_component_code
12055 ,l_component_type_code
12056 ,l_component_appl_id
12057 ,l_amb_context_code
12058 ,l_entity_code
12059 ,l_event_class_code
12060 )
12061 ,p_token_3 => 'OWNER'
12062 ,p_value_3 => xla_lookups_pkg.get_meaning(
12063 p_lookup_type => 'XLA_OWNER_TYPE'
12064 ,p_lookup_code => l_component_type_code
12065 )
12066 ,p_token_4 => 'PRODUCT_NAME'
12067 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
12068 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
12069 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
12070 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
12071 ,p_ae_header_id => NULL
12072 );
12073
12074 IF (C_LEVEL_ERROR>= g_log_level) THEN
12075 trace
12076 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12077 ,p_level => C_LEVEL_ERROR
12078 ,p_module => l_log_module);
12079 END IF;
12080 END IF;
12081 END IF;
12082 --
12083 --
12084 ------------------------------------------------------------------------------------------------
12085 -- 4219869 Business Flow
12086 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
12087 -- Prior Entry. Currently, the following code is always generated.
12088 ------------------------------------------------------------------------------------------------
12089 -- No ValidateCurrentLine for business flow method of Prior Entry
12090
12091 ------------------------------------------------------------------------------------
12092 -- 4219869 Business Flow
12093 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
12094 ------------------------------------------------------------------------------------
12095 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12096
12097 ----------------------------------------------------------------------------------
12098 -- 4219869 Business Flow
12099 -- Update journal entry status -- Need to generate this within IF <condition>
12100 ----------------------------------------------------------------------------------
12101 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12102 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
12103 ,p_balance_type_code => l_balance_type_code
12104 );
12105
12106 -------------------------------------------------------------------------------------------
12107 -- 4262811 - Generate the Accrual Reversal lines
12108 -------------------------------------------------------------------------------------------
12109 BEGIN
12110 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
12111 (g_array_event(p_event_id).array_value_num('header_index'));
12112 IF l_acc_rev_flag IS NULL THEN
12113 l_acc_rev_flag := 'N';
12114 END IF;
12115 EXCEPTION
12116 WHEN OTHERS THEN
12117 l_acc_rev_flag := 'N';
12118 END;
12119 --
12120 IF (l_acc_rev_flag = 'Y') THEN
12121
12122 -- 4645092 ------------------------------------------------------------------------------
12123 -- To allow MPA report to determine if it should generate report process
12124 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
12125 ------------------------------------------------------------------------------------------
12126
12127 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
12128 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
12129
12130 --
12131 -- Update the line information that should be overwritten
12132 --
12133 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
12134 p_header_num => 1);
12135 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
12136
12137 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
12138
12139 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
12140 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
12141 END IF;
12142
12143 --
12144 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
12145 --
12146 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
12147 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
12148 ELSE
12149 ---------------------------------------------------------------------------------------------------
12150 -- 4262811a Switch Sign
12151 ---------------------------------------------------------------------------------------------------
12152 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
12153 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12154 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12155 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12156 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12157 -- 5132302
12158 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
12159 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12160
12161 END IF;
12162
12163 -- 4955764
12164 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12165 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
12166
12167
12168 XLA_AE_LINES_PKG.ValidateCurrentLine;
12169 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12170
12171 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12172 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
12173 ,p_balance_type_code => l_balance_type_code);
12174
12175 END IF;
12176
12177 -----------------------------------------------------------------------------------------
12178 -- 4262811 Multiperiod Accounting
12179 -----------------------------------------------------------------------------------------
12180 -- No MPA option is assigned.
12181
12182
12183 END IF;
12184 END IF;
12185 --
12186
12187 --
12188 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12189 trace
12190 (p_msg => 'END of AcctLineType_26'
12191 ,p_level => C_LEVEL_PROCEDURE
12192 ,p_module => l_log_module);
12193 END IF;
12194 --
12195 EXCEPTION
12196 WHEN xla_exceptions_pkg.application_exception THEN
12197 RAISE;
12198 WHEN OTHERS THEN
12199 xla_exceptions_pkg.raise_message
12200 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_26');
12201 END AcctLineType_26;
12202 --
12203
12204 ---------------------------------------
12205 --
12206 -- PRIVATE FUNCTION
12207 -- AcctLineType_27
12208 --
12209 ---------------------------------------
12210 PROCEDURE AcctLineType_27 (
12211 p_application_id IN NUMBER
12212 ,p_event_id IN NUMBER
12213 ,p_calculate_acctd_flag IN VARCHAR2
12214 ,p_calculate_g_l_flag IN VARCHAR2
12215 ,p_actual_flag IN OUT VARCHAR2
12216 ,p_balance_type_code OUT VARCHAR2
12217 ,p_gain_or_loss_ref OUT VARCHAR2
12218
12219 --Budget Account
12220 , p_source_11 IN NUMBER
12221 --Main Or Backing Code
12222 , p_source_13 IN VARCHAR2
12223 --Accounting Reversal Flag
12224 , p_source_16 IN VARCHAR2
12225 --PO Distribution Identifier
12226 , p_source_29 IN NUMBER
12227 --Entered Amount
12228 , p_source_33 IN NUMBER
12229 --Currency Code
12230 , p_source_34 IN VARCHAR2
12231 --Accounted Amount
12232 , p_source_35 IN NUMBER
12233 --Allocated to Main Document Distribution Type
12234 , p_source_49 IN VARCHAR2
12235 --Allocated to Main Document Distribution Identifier
12236 , p_source_51 IN NUMBER
12237 --Applied To Application Identifier
12238 , p_source_53 IN NUMBER
12239 --Applied To Distribution Link Type
12240 , p_source_54 IN VARCHAR2
12241 --Applied To Entity Code
12242 , p_source_55 IN VARCHAR2
12243 --Applied To Distribution Identifier 1
12244 , p_source_56 IN NUMBER
12245 --Applied To Header Identifier 1
12246 , p_source_57 IN NUMBER
12247 --Distribution Link Type
12248 , p_source_58 IN VARCHAR2
12249 --PO Encumbrance Upgrade Option
12250 , p_source_59 IN VARCHAR2
12251 --JFMIP Reference
12252 , p_source_60 IN VARCHAR2
12253 --PO Upgrade Encumbrance Type Identifier
12254 , p_source_61 IN NUMBER
12255 --PO Release Identifier
12256 , p_source_66 IN NUMBER
12257 )
12258 IS
12259
12260 l_component_type VARCHAR2(80);
12261 l_component_code VARCHAR2(30);
12262 l_component_type_code VARCHAR2(1);
12263 l_component_appl_id INTEGER;
12264 l_amb_context_code VARCHAR2(30);
12265 l_entity_code VARCHAR2(30);
12266 l_event_class_code VARCHAR2(30);
12267 l_ae_header_id NUMBER;
12268 l_event_type_code VARCHAR2(30);
12269 l_line_definition_code VARCHAR2(30);
12270 l_line_definition_owner_code VARCHAR2(1);
12271 --
12272 -- adr variables
12273 l_segment VARCHAR2(30);
12274 l_ccid NUMBER;
12275 l_adr_transaction_coa_id NUMBER;
12276 l_adr_accounting_coa_id NUMBER;
12277 l_adr_flexfield_segment_code VARCHAR2(30);
12278 l_adr_flex_value_set_id NUMBER;
12279 l_adr_value_type_code VARCHAR2(30);
12280 l_adr_value_combination_id NUMBER;
12281 l_adr_value_segment_code VARCHAR2(30);
12282
12283 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
12284 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
12285 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
12286 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
12287
12288 -- 4262811 Variables ------------------------------------------------------------------------------------------
12289 l_entered_amt_idx NUMBER;
12290 l_accted_amt_idx NUMBER;
12291 l_acc_rev_flag VARCHAR2(1);
12292 l_accrual_line_num NUMBER;
12293 l_tmp_amt NUMBER;
12294 l_acc_rev_natural_side_code VARCHAR2(1);
12295
12296 l_num_entries NUMBER;
12297 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
12298 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
12299 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
12300 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
12301 l_recog_line_1 NUMBER;
12302 l_recog_line_2 NUMBER;
12303
12304 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
12305 l_bflow_applied_to_amt NUMBER; -- 5132302
12306 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
12307
12308 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
12309
12310 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
12311 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
12312
12313 ---------------------------------------------------------------------------------------------------------------
12314
12315
12316 --
12317 -- bulk performance
12318 --
12319 l_balance_type_code VARCHAR2(1);
12320 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
12321 l_log_module VARCHAR2(240);
12322
12323 --
12324 -- Upgrade strategy
12325 --
12326 l_actual_upg_option VARCHAR2(1);
12327 l_enc_upg_option VARCHAR2(1);
12328
12329 --
12330 BEGIN
12331 --
12332 IF g_log_enabled THEN
12333 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_27';
12334 END IF;
12335 --
12336 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12337
12338 trace
12339 (p_msg => 'BEGIN of AcctLineType_27'
12340 ,p_level => C_LEVEL_PROCEDURE
12341 ,p_module => l_log_module);
12342
12343 END IF;
12344 --
12345 l_component_type := 'AMB_JLT';
12346 l_component_code := 'REINST_PO_PA_ENC_FROM_REL_DR';
12347 l_component_type_code := 'S';
12348 l_component_appl_id := 201;
12349 l_amb_context_code := 'DEFAULT';
12350 l_entity_code := 'RELEASE';
12351 l_event_class_code := 'RELEASE';
12352 l_event_type_code := 'RELEASE_ALL';
12353 l_line_definition_owner_code := 'S';
12354 l_line_definition_code := 'RELEASE_ENC_ALL';
12355 --
12356 l_balance_type_code := 'E';
12357 l_segment := NULL;
12358 l_ccid := NULL;
12359 l_adr_transaction_coa_id := NULL;
12360 l_adr_accounting_coa_id := NULL;
12361 l_adr_flexfield_segment_code := NULL;
12362 l_adr_flex_value_set_id := NULL;
12363 l_adr_value_type_code := NULL;
12364 l_adr_value_combination_id := NULL;
12365 l_adr_value_segment_code := NULL;
12366
12367 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
12368 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
12369 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
12370 l_budgetary_control_flag := 'Y';
12371
12372 l_bflow_applied_to_amt_idx := NULL; -- 5132302
12373 l_bflow_applied_to_amt := NULL; -- 5132302
12374 l_entered_amt_idx := NULL; -- 4262811
12375 l_accted_amt_idx := NULL; -- 4262811
12376 l_acc_rev_flag := NULL; -- 4262811
12377 l_accrual_line_num := NULL; -- 4262811
12378 l_tmp_amt := NULL; -- 4262811
12379 --
12380
12381 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
12382 l_balance_type_code <> 'B' THEN
12383 IF (NVL(
12384 xla_ae_sources_pkg.GetSystemSourceChar(
12385 p_source_code => 'XLA_EVENT_TYPE_CODE'
12386 , p_source_type_code => 'Y'
12387 , p_source_application_id => 602
12388 ),'
12389 ') = 'RELEASE_UNRESERVED' OR
12390 NVL(
12391 xla_ae_sources_pkg.GetSystemSourceChar(
12392 p_source_code => 'XLA_EVENT_TYPE_CODE'
12393 , p_source_type_code => 'Y'
12394 , p_source_application_id => 602
12395 ),'
12396 ') = 'RELEASE_REJECTED' OR
12397 NVL(
12398 xla_ae_sources_pkg.GetSystemSourceChar(
12399 p_source_code => 'XLA_EVENT_TYPE_CODE'
12400 , p_source_type_code => 'Y'
12401 , p_source_application_id => 602
12402 ),'
12403 ') = 'RELEASE_INV_CANCELLED') AND
12404 (NVL(p_source_13,'
12405 ') = 'B_PO' OR
12406 NVL(p_source_13,'
12407 ') = 'B_PA')
12408 THEN
12409
12410 --
12411 XLA_AE_LINES_PKG.SetNewLine;
12412
12413 p_balance_type_code := l_balance_type_code;
12414 -- set the flag so later we will know whether the gain loss line needs to be created
12415
12416 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
12417 p_actual_flag :='A';
12418 END IF;
12419
12420 --
12421 -- bulk performance
12422 --
12423 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
12424 p_header_num => 0); -- 4262811
12425 --
12426 -- set accounting line options
12427 --
12428 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
12429 p_natural_side_code => 'D'
12430 , p_gain_or_loss_flag => 'N'
12431 , p_gl_transfer_mode_code => 'S'
12432 , p_acct_entry_type_code => 'E'
12433 , p_switch_side_flag => 'N'
12434 , p_merge_duplicate_code => 'N'
12435 );
12436 --
12437 l_acc_rev_natural_side_code := 'C'; -- 4262811
12438 --
12439 --
12440 -- set accounting line type info
12441 --
12442 xla_ae_lines_pkg.SetAcctLineType
12443 (p_component_type => l_component_type
12444 ,p_event_type_code => l_event_type_code
12445 ,p_line_definition_owner_code => l_line_definition_owner_code
12446 ,p_line_definition_code => l_line_definition_code
12447 ,p_accounting_line_code => l_component_code
12448 ,p_accounting_line_type_code => l_component_type_code
12449 ,p_accounting_line_appl_id => l_component_appl_id
12450 ,p_amb_context_code => l_amb_context_code
12451 ,p_entity_code => l_entity_code
12452 ,p_event_class_code => l_event_class_code);
12453 --
12454 -- set accounting class
12455 --
12456 xla_ae_lines_pkg.SetAcctClass(
12457 p_accounting_class_code => 'PURCHASE_ORDER'
12458 , p_ae_header_id => l_ae_header_id
12459 );
12460
12461 --
12462 -- set rounding class
12463 --
12464 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
12465 'PURCHASE_ORDER';
12466
12467 --
12468 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
12469 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
12470 --
12471 -- bulk performance
12472 --
12473 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
12474
12475 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
12476 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
12477
12478 -- 4955764
12479 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12480 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
12481
12482 -- 4458381 Public Sector Enh
12483
12484 --
12485 -- set accounting attributes for the line type
12486 --
12487 l_entered_amt_idx := 23;
12488 l_accted_amt_idx := 25;
12489 l_bflow_applied_to_amt_idx := NULL; -- 5132302
12490 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
12491 l_rec_acct_attrs.array_char_value(1) := p_source_16;
12492 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
12493 l_rec_acct_attrs.array_num_value(2) :=
12494 xla_ae_sources_pkg.GetSystemSourceNum(
12495 p_source_code => 'XLA_EVENT_APPL_ID'
12496 , p_source_type_code => 'Y'
12497 , p_source_application_id => 602
12498 );
12499 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
12500 l_rec_acct_attrs.array_char_value(3) := p_source_49;
12501 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
12502 l_rec_acct_attrs.array_char_value(4) :=
12503 xla_ae_sources_pkg.GetSystemSourceChar(
12504 p_source_code => 'XLA_ENTITY_CODE'
12505 , p_source_type_code => 'Y'
12506 , p_source_application_id => 602
12507 );
12508 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
12509 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_51);
12510 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
12511 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_66);
12512 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
12513 l_rec_acct_attrs.array_num_value(7) := p_source_53;
12514 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
12515 l_rec_acct_attrs.array_char_value(8) := p_source_54;
12516 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
12517 l_rec_acct_attrs.array_char_value(9) := p_source_55;
12518 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
12519 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_56);
12520 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
12521 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_57);
12522 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
12523 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_29);
12524 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
12525 l_rec_acct_attrs.array_char_value(13) := p_source_58;
12526 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
12527 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_11);
12528 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
12529 l_rec_acct_attrs.array_num_value(15) := p_source_33;
12530 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
12531 l_rec_acct_attrs.array_char_value(16) := p_source_34;
12532 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
12533 l_rec_acct_attrs.array_num_value(17) := p_source_35;
12534 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
12535 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_11);
12536 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
12537 l_rec_acct_attrs.array_num_value(19) := p_source_33;
12538 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
12539 l_rec_acct_attrs.array_char_value(20) := p_source_34;
12540 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
12541 l_rec_acct_attrs.array_num_value(21) := p_source_35;
12542 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
12543 l_rec_acct_attrs.array_char_value(22) := p_source_59;
12544 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
12545 l_rec_acct_attrs.array_num_value(23) := p_source_33;
12546 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
12547 l_rec_acct_attrs.array_char_value(24) := p_source_34;
12548 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
12549 l_rec_acct_attrs.array_num_value(25) := p_source_35;
12550 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
12551 l_rec_acct_attrs.array_char_value(26) := p_source_60;
12552 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
12553 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_56);
12554 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
12555 l_rec_acct_attrs.array_char_value(28) := p_source_54;
12556 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
12557 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_66);
12558 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
12559 l_rec_acct_attrs.array_num_value(30) := p_source_61;
12560 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
12561 l_rec_acct_attrs.array_num_value(31) := p_source_61;
12562
12563 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
12564 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
12565
12566 ---------------------------------------------------------------------------------------------------------------
12567 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
12568 ---------------------------------------------------------------------------------------------------------------
12569 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
12570
12571 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12572 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12573
12574 IF xla_accounting_cache_pkg.GetValueChar
12575 (p_source_code => 'LEDGER_CATEGORY_CODE'
12576 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
12577 AND l_bflow_method_code = 'PRIOR_ENTRY'
12578 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
12579 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
12580 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
12581 )
12582 THEN
12583 xla_ae_lines_pkg.BflowUpgEntry
12584 (p_business_method_code => l_bflow_method_code
12585 ,p_business_class_code => l_bflow_class_code
12586 ,p_balance_type => l_balance_type_code);
12587 ELSE
12588 NULL;
12589 XLA_AE_LINES_PKG.business_flow_validation(
12590 p_business_method_code => l_bflow_method_code
12591 ,p_business_class_code => l_bflow_class_code
12592 ,p_inherit_description_flag => l_inherit_desc_flag);
12593 END IF;
12594
12595 --
12596 -- call analytical criteria
12597 --
12598 -- Inherited Analytical Criteria for business flow method of Prior Entry.
12599 --
12600 -- call description
12601 --
12602 -- No description or it is inherited.
12603 --
12604 -- call ADRs
12605 -- Bug 4922099
12606 --
12607 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12608 (NVL(l_actual_upg_option, 'N') = 'O') OR
12609 (NVL(l_enc_upg_option, 'N') = 'O')
12610 )
12611 THEN
12612 NULL;
12613 --
12614 --
12615
12616 --
12617 --
12618 END IF;
12619 --
12620 -- Bug 4922099
12621 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
12622 (NVL(l_enc_upg_option, 'N') = 'O')
12623 ) AND
12624 (l_bflow_method_code = 'PRIOR_ENTRY')
12625 )
12626 THEN
12627 IF
12628 --
12629 1 = 1
12630 --
12631 THEN
12632 xla_accounting_err_pkg.build_message
12633 (p_appli_s_name => 'XLA'
12634 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12635 ,p_token_1 => 'LINE_NUMBER'
12636 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
12637 ,p_token_2 => 'LINE_TYPE_NAME'
12638 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
12639 l_component_type
12640 ,l_component_code
12641 ,l_component_type_code
12642 ,l_component_appl_id
12643 ,l_amb_context_code
12644 ,l_entity_code
12645 ,l_event_class_code
12646 )
12647 ,p_token_3 => 'OWNER'
12648 ,p_value_3 => xla_lookups_pkg.get_meaning(
12649 p_lookup_type => 'XLA_OWNER_TYPE'
12650 ,p_lookup_code => l_component_type_code
12651 )
12652 ,p_token_4 => 'PRODUCT_NAME'
12653 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
12654 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
12655 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
12656 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
12657 ,p_ae_header_id => NULL
12658 );
12659
12660 IF (C_LEVEL_ERROR>= g_log_level) THEN
12661 trace
12662 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12663 ,p_level => C_LEVEL_ERROR
12664 ,p_module => l_log_module);
12665 END IF;
12666 END IF;
12667 END IF;
12668 --
12669 --
12670 ------------------------------------------------------------------------------------------------
12671 -- 4219869 Business Flow
12672 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
12673 -- Prior Entry. Currently, the following code is always generated.
12674 ------------------------------------------------------------------------------------------------
12675 -- No ValidateCurrentLine for business flow method of Prior Entry
12676
12677 ------------------------------------------------------------------------------------
12678 -- 4219869 Business Flow
12679 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
12680 ------------------------------------------------------------------------------------
12681 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12682
12683 ----------------------------------------------------------------------------------
12684 -- 4219869 Business Flow
12685 -- Update journal entry status -- Need to generate this within IF <condition>
12686 ----------------------------------------------------------------------------------
12687 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12688 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
12689 ,p_balance_type_code => l_balance_type_code
12690 );
12691
12692 -------------------------------------------------------------------------------------------
12693 -- 4262811 - Generate the Accrual Reversal lines
12694 -------------------------------------------------------------------------------------------
12695 BEGIN
12696 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
12697 (g_array_event(p_event_id).array_value_num('header_index'));
12698 IF l_acc_rev_flag IS NULL THEN
12699 l_acc_rev_flag := 'N';
12700 END IF;
12701 EXCEPTION
12702 WHEN OTHERS THEN
12703 l_acc_rev_flag := 'N';
12704 END;
12705 --
12706 IF (l_acc_rev_flag = 'Y') THEN
12707
12708 -- 4645092 ------------------------------------------------------------------------------
12709 -- To allow MPA report to determine if it should generate report process
12710 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
12711 ------------------------------------------------------------------------------------------
12712
12713 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
12714 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
12715
12716 --
12717 -- Update the line information that should be overwritten
12718 --
12719 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
12720 p_header_num => 1);
12721 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
12722
12723 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
12724
12725 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
12726 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
12727 END IF;
12728
12729 --
12730 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
12731 --
12732 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
12733 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
12734 ELSE
12735 ---------------------------------------------------------------------------------------------------
12736 -- 4262811a Switch Sign
12737 ---------------------------------------------------------------------------------------------------
12738 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
12739 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12740 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12741 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12742 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12743 -- 5132302
12744 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
12745 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12746
12747 END IF;
12748
12749 -- 4955764
12750 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12751 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
12752
12753
12754 XLA_AE_LINES_PKG.ValidateCurrentLine;
12755 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12756
12757 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12758 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
12759 ,p_balance_type_code => l_balance_type_code);
12760
12761 END IF;
12762
12763 -----------------------------------------------------------------------------------------
12764 -- 4262811 Multiperiod Accounting
12765 -----------------------------------------------------------------------------------------
12766 -- No MPA option is assigned.
12767
12768
12769 END IF;
12770 END IF;
12771 --
12772
12773 --
12774 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12775 trace
12776 (p_msg => 'END of AcctLineType_27'
12777 ,p_level => C_LEVEL_PROCEDURE
12778 ,p_module => l_log_module);
12779 END IF;
12780 --
12781 EXCEPTION
12782 WHEN xla_exceptions_pkg.application_exception THEN
12783 RAISE;
12784 WHEN OTHERS THEN
12785 xla_exceptions_pkg.raise_message
12786 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_27');
12787 END AcctLineType_27;
12788 --
12789
12790 ---------------------------------------
12791 --
12792 -- PRIVATE FUNCTION
12793 -- AcctLineType_28
12794 --
12795 ---------------------------------------
12796 PROCEDURE AcctLineType_28 (
12797 p_application_id IN NUMBER
12798 ,p_event_id IN NUMBER
12799 ,p_calculate_acctd_flag IN VARCHAR2
12800 ,p_calculate_g_l_flag IN VARCHAR2
12801 ,p_actual_flag IN OUT VARCHAR2
12802 ,p_balance_type_code OUT VARCHAR2
12803 ,p_gain_or_loss_ref OUT VARCHAR2
12804
12805 --Project Name
12806 , p_source_3 IN VARCHAR2
12807 --Task Name
12808 , p_source_4 IN VARCHAR2
12809 --Project Expenditure Organization Identifier
12810 , p_source_5 IN NUMBER
12811 --Expenditure Type
12812 , p_source_6 IN VARCHAR2
12813 --Document Type
12814 , p_source_9 IN VARCHAR2
12815 --Budget Account
12816 , p_source_11 IN NUMBER
12817 --Main Or Backing Code
12818 , p_source_13 IN VARCHAR2
12819 --Burden Record Identifier
12820 , p_source_14 IN VARCHAR2
12821 , p_source_14_meaning IN VARCHAR2
12822 --Burden Amount Display Method
12823 , p_source_15 IN VARCHAR2
12824 --Accounting Reversal Flag
12825 , p_source_16 IN VARCHAR2
12826 --Allocated to Application Identifier
12827 , p_source_17 IN NUMBER
12828 --Allocated to Distribution Type
12829 , p_source_18 IN VARCHAR2
12830 --Allocated to Entity Code
12831 , p_source_19 IN VARCHAR2
12832 --Allocated to First Distribution Identifier
12833 , p_source_20 IN NUMBER
12834 --Allocated to First System Transaction Identifier
12835 , p_source_21 IN NUMBER
12836 --PO Distribution Identifier
12837 , p_source_29 IN NUMBER
12838 --Line Type Name
12839 , p_source_30 IN VARCHAR2
12840 --Encumbrance Upgrade Credit Accounting Class
12841 , p_source_31 IN VARCHAR2
12842 --Encumbrance Upgrade Credit Account
12843 , p_source_32 IN NUMBER
12844 --Entered Amount
12845 , p_source_33 IN NUMBER
12846 --Currency Code
12847 , p_source_34 IN VARCHAR2
12848 --Accounted Amount
12849 , p_source_35 IN NUMBER
12850 --Encumbrance Upgrade Debit Accounting Class
12851 , p_source_36 IN VARCHAR2
12852 --Encumbrance Upgrade Debit Account
12853 , p_source_37 IN NUMBER
12854 --Use Encumbrances Upgrade Attributes Flag
12855 , p_source_38 IN VARCHAR2
12856 --Encumbrance Upgrade Credit Encumbrance Type
12857 , p_source_39 IN NUMBER
12858 --Encumbrance Upgrade Debit Encumbrance Type
12859 , p_source_40 IN NUMBER
12860 --Requisition Burden Applied to Application Identifier
12861 , p_source_41 IN NUMBER
12862 --Requisition Distribution Type
12863 , p_source_42 IN VARCHAR2
12864 --Requisition Burden Applied to Entity Code
12865 , p_source_43 IN VARCHAR2
12866 --Requisition Burden Applied to First Distribution Identifier
12867 , p_source_44 IN NUMBER
12868 --Requisition Burden Applied to First System Transaction Identifier
12869 , p_source_45 IN NUMBER
12870 --Requisition Burden Applied to Second Distribution Identifier
12871 , p_source_46 IN VARCHAR2
12872 )
12873 IS
12874
12875 l_component_type VARCHAR2(80);
12876 l_component_code VARCHAR2(30);
12877 l_component_type_code VARCHAR2(1);
12878 l_component_appl_id INTEGER;
12879 l_amb_context_code VARCHAR2(30);
12880 l_entity_code VARCHAR2(30);
12881 l_event_class_code VARCHAR2(30);
12882 l_ae_header_id NUMBER;
12883 l_event_type_code VARCHAR2(30);
12884 l_line_definition_code VARCHAR2(30);
12885 l_line_definition_owner_code VARCHAR2(1);
12886 --
12887 -- adr variables
12888 l_segment VARCHAR2(30);
12889 l_ccid NUMBER;
12890 l_adr_transaction_coa_id NUMBER;
12891 l_adr_accounting_coa_id NUMBER;
12892 l_adr_flexfield_segment_code VARCHAR2(30);
12893 l_adr_flex_value_set_id NUMBER;
12894 l_adr_value_type_code VARCHAR2(30);
12895 l_adr_value_combination_id NUMBER;
12896 l_adr_value_segment_code VARCHAR2(30);
12897
12898 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
12899 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
12900 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
12901 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
12902
12903 -- 4262811 Variables ------------------------------------------------------------------------------------------
12904 l_entered_amt_idx NUMBER;
12905 l_accted_amt_idx NUMBER;
12906 l_acc_rev_flag VARCHAR2(1);
12907 l_accrual_line_num NUMBER;
12908 l_tmp_amt NUMBER;
12909 l_acc_rev_natural_side_code VARCHAR2(1);
12910
12911 l_num_entries NUMBER;
12912 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
12913 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
12914 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
12915 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
12916 l_recog_line_1 NUMBER;
12917 l_recog_line_2 NUMBER;
12918
12919 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
12920 l_bflow_applied_to_amt NUMBER; -- 5132302
12921 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
12922
12923 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
12924
12925 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
12926 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
12927
12928 ---------------------------------------------------------------------------------------------------------------
12929
12930
12931 --
12932 -- bulk performance
12933 --
12934 l_balance_type_code VARCHAR2(1);
12935 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
12936 l_log_module VARCHAR2(240);
12937
12938 --
12939 -- Upgrade strategy
12940 --
12941 l_actual_upg_option VARCHAR2(1);
12942 l_enc_upg_option VARCHAR2(1);
12943
12944 --
12945 BEGIN
12946 --
12947 IF g_log_enabled THEN
12948 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_28';
12949 END IF;
12950 --
12951 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12952
12953 trace
12954 (p_msg => 'BEGIN of AcctLineType_28'
12955 ,p_level => C_LEVEL_PROCEDURE
12956 ,p_module => l_log_module);
12957
12958 END IF;
12959 --
12960 l_component_type := 'AMB_JLT';
12961 l_component_code := 'REINST_REQ_BURDEND_ENCFORPO_CR';
12962 l_component_type_code := 'S';
12963 l_component_appl_id := 201;
12964 l_amb_context_code := 'DEFAULT';
12965 l_entity_code := 'PURCHASE_ORDER';
12966 l_event_class_code := 'PO_BURDEN';
12967 l_event_type_code := 'PO_BURDEN_ALL';
12968 l_line_definition_owner_code := 'S';
12969 l_line_definition_code := 'PO_BURDEN_ENC_ALL';
12970 --
12971 l_balance_type_code := 'E';
12972 l_segment := NULL;
12973 l_ccid := NULL;
12974 l_adr_transaction_coa_id := NULL;
12975 l_adr_accounting_coa_id := NULL;
12976 l_adr_flexfield_segment_code := NULL;
12977 l_adr_flex_value_set_id := NULL;
12978 l_adr_value_type_code := NULL;
12979 l_adr_value_combination_id := NULL;
12980 l_adr_value_segment_code := NULL;
12981
12982 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
12983 l_bflow_class_code := ''; -- 4219869 Business Flow
12984 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
12985 l_budgetary_control_flag := 'Y';
12986
12987 l_bflow_applied_to_amt_idx := NULL; -- 5132302
12988 l_bflow_applied_to_amt := NULL; -- 5132302
12989 l_entered_amt_idx := NULL; -- 4262811
12990 l_accted_amt_idx := NULL; -- 4262811
12991 l_acc_rev_flag := NULL; -- 4262811
12992 l_accrual_line_num := NULL; -- 4262811
12993 l_tmp_amt := NULL; -- 4262811
12994 --
12995
12996 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
12997 l_balance_type_code <> 'B' THEN
12998 IF (NVL(
12999 xla_ae_sources_pkg.GetSystemSourceChar(
13000 p_source_code => 'XLA_EVENT_TYPE_CODE'
13001 , p_source_type_code => 'Y'
13002 , p_source_application_id => 602
13003 ),'
13004 ') = 'PO_BURDEN_CANCELLED' OR
13005 NVL(
13006 xla_ae_sources_pkg.GetSystemSourceChar(
13007 p_source_code => 'XLA_EVENT_TYPE_CODE'
13008 , p_source_type_code => 'Y'
13009 , p_source_application_id => 602
13010 ),'
13011 ') = 'PO_BURDEN_CR_MEMO_CANCELLED') AND
13012 NVL(p_source_13,'
13013 ') = 'B_REQ' AND
13014 (NVL(p_source_14,'
13015 ') = 'N' OR
13016 NVL(p_source_14,'
13017 ') = 'O') AND
13018 NVL(p_source_9,'
13019 ') = 'REQ' AND
13020 NVL(p_source_15,'
13021 ') = 'S'
13022 THEN
13023
13024 --
13025 XLA_AE_LINES_PKG.SetNewLine;
13026
13027 p_balance_type_code := l_balance_type_code;
13028 -- set the flag so later we will know whether the gain loss line needs to be created
13029
13030 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
13031 p_actual_flag :='A';
13032 END IF;
13033
13034 --
13035 -- bulk performance
13036 --
13037 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
13038 p_header_num => 0); -- 4262811
13039 --
13040 -- set accounting line options
13041 --
13042 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
13043 p_natural_side_code => 'C'
13044 , p_gain_or_loss_flag => 'N'
13045 , p_gl_transfer_mode_code => 'S'
13046 , p_acct_entry_type_code => 'E'
13047 , p_switch_side_flag => 'N'
13048 , p_merge_duplicate_code => 'N'
13049 );
13050 --
13051 l_acc_rev_natural_side_code := 'D'; -- 4262811
13052 --
13053 --
13054 -- set accounting line type info
13055 --
13056 xla_ae_lines_pkg.SetAcctLineType
13057 (p_component_type => l_component_type
13058 ,p_event_type_code => l_event_type_code
13059 ,p_line_definition_owner_code => l_line_definition_owner_code
13060 ,p_line_definition_code => l_line_definition_code
13061 ,p_accounting_line_code => l_component_code
13062 ,p_accounting_line_type_code => l_component_type_code
13063 ,p_accounting_line_appl_id => l_component_appl_id
13064 ,p_amb_context_code => l_amb_context_code
13065 ,p_entity_code => l_entity_code
13066 ,p_event_class_code => l_event_class_code);
13067 --
13068 -- set accounting class
13069 --
13070 xla_ae_lines_pkg.SetAcctClass(
13071 p_accounting_class_code => 'REQ_PA_BURDENED'
13072 , p_ae_header_id => l_ae_header_id
13073 );
13074
13075 --
13076 -- set rounding class
13077 --
13078 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
13079 'REQ_PA_BURDENED';
13080
13081 --
13082 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
13083 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
13084 --
13085 -- bulk performance
13086 --
13087 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
13088
13089 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
13090 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
13091
13092 -- 4955764
13093 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13094 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
13095
13096 -- 4458381 Public Sector Enh
13097 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1000;
13098 --
13099 -- set accounting attributes for the line type
13100 --
13101 l_entered_amt_idx := 27;
13102 l_accted_amt_idx := 29;
13103 l_bflow_applied_to_amt_idx := NULL; -- 5132302
13104 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
13105 l_rec_acct_attrs.array_char_value(1) := p_source_16;
13106 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
13107 l_rec_acct_attrs.array_num_value(2) := p_source_17;
13108 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
13109 l_rec_acct_attrs.array_char_value(3) := p_source_18;
13110 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
13111 l_rec_acct_attrs.array_char_value(4) := p_source_19;
13112 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
13113 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
13114 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
13115 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
13116 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
13117 l_rec_acct_attrs.array_num_value(7) := p_source_41;
13118 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
13119 l_rec_acct_attrs.array_char_value(8) := p_source_42;
13120 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
13121 l_rec_acct_attrs.array_char_value(9) := p_source_43;
13122 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
13123 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_44);
13124 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
13125 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_45);
13126 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
13127 l_rec_acct_attrs.array_char_value(12) := p_source_46;
13128 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
13129 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_29);
13130 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
13131 l_rec_acct_attrs.array_char_value(14) := p_source_6;
13132 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
13133 l_rec_acct_attrs.array_char_value(15) := p_source_30;
13134 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
13135 l_rec_acct_attrs.array_char_value(16) := p_source_31;
13136 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
13137 l_rec_acct_attrs.array_num_value(17) := p_source_32;
13138 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
13139 l_rec_acct_attrs.array_num_value(18) := p_source_33;
13140 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
13141 l_rec_acct_attrs.array_char_value(19) := p_source_34;
13142 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
13143 l_rec_acct_attrs.array_num_value(20) := p_source_35;
13144 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
13145 l_rec_acct_attrs.array_char_value(21) := p_source_36;
13146 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
13147 l_rec_acct_attrs.array_num_value(22) := p_source_37;
13148 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
13149 l_rec_acct_attrs.array_num_value(23) := p_source_33;
13150 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
13151 l_rec_acct_attrs.array_char_value(24) := p_source_34;
13152 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
13153 l_rec_acct_attrs.array_num_value(25) := p_source_35;
13154 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
13155 l_rec_acct_attrs.array_char_value(26) := p_source_38;
13156 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
13157 l_rec_acct_attrs.array_num_value(27) := p_source_33;
13158 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
13159 l_rec_acct_attrs.array_char_value(28) := p_source_34;
13160 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
13161 l_rec_acct_attrs.array_num_value(29) := p_source_35;
13162 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
13163 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_29);
13164 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
13165 l_rec_acct_attrs.array_char_value(31) := p_source_6;
13166 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
13167 l_rec_acct_attrs.array_char_value(32) := p_source_30;
13168 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
13169 l_rec_acct_attrs.array_num_value(33) := p_source_39;
13170 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
13171 l_rec_acct_attrs.array_num_value(34) := p_source_40;
13172
13173 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
13174 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
13175
13176 ---------------------------------------------------------------------------------------------------------------
13177 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
13178 ---------------------------------------------------------------------------------------------------------------
13179 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
13180
13181 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13182 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13183
13184 IF xla_accounting_cache_pkg.GetValueChar
13185 (p_source_code => 'LEDGER_CATEGORY_CODE'
13186 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
13187 AND l_bflow_method_code = 'PRIOR_ENTRY'
13188 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
13189 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
13190 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
13191 )
13192 THEN
13193 xla_ae_lines_pkg.BflowUpgEntry
13194 (p_business_method_code => l_bflow_method_code
13195 ,p_business_class_code => l_bflow_class_code
13196 ,p_balance_type => l_balance_type_code);
13197 ELSE
13198 NULL;
13199 -- No business flow processing for business flow method of NONE.
13200 END IF;
13201
13202 --
13203 -- call analytical criteria
13204 --
13205
13206 --
13207 -- call description
13208 --
13209
13210 xla_ae_lines_pkg.SetLineDescription(
13211 p_ae_header_id => l_ae_header_id
13212 ,p_description => Description_2 (
13213 p_application_id => p_application_id
13214 , p_ae_header_id => l_ae_header_id
13215 , p_source_3 => p_source_3
13216 , p_source_4 => p_source_4
13217 , p_source_5 => p_source_5
13218 , p_source_6 => p_source_6
13219 )
13220 );
13221
13222
13223 --
13224 -- call ADRs
13225 -- Bug 4922099
13226 --
13227 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13228 (NVL(l_actual_upg_option, 'N') = 'O') OR
13229 (NVL(l_enc_upg_option, 'N') = 'O')
13230 )
13231 THEN
13232 NULL;
13233 --
13234 --
13235
13236 l_ccid := AcctDerRule_6(
13237 p_application_id => p_application_id
13238 , p_ae_header_id => l_ae_header_id
13239 , p_source_11 => p_source_11
13240 , x_transaction_coa_id => l_adr_transaction_coa_id
13241 , x_accounting_coa_id => l_adr_accounting_coa_id
13242 , x_value_type_code => l_adr_value_type_code
13243 , p_side => 'NA'
13244 );
13245
13246 xla_ae_lines_pkg.set_ccid(
13247 p_code_combination_id => l_ccid
13248 , p_value_type_code => l_adr_value_type_code
13249 , p_transaction_coa_id => l_adr_transaction_coa_id
13250 , p_accounting_coa_id => l_adr_accounting_coa_id
13251 , p_adr_code => 'PROJ_BURDENED_ENC_ACCT_RULE'
13252 , p_adr_type_code => 'S'
13253 , p_component_type => l_component_type
13254 , p_component_code => l_component_code
13255 , p_component_type_code => l_component_type_code
13256 , p_component_appl_id => l_component_appl_id
13257 , p_amb_context_code => l_amb_context_code
13258 , p_side => 'NA'
13259 );
13260
13261
13262 --
13263 --
13264 END IF;
13265 --
13266 -- Bug 4922099
13267 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
13268 (NVL(l_enc_upg_option, 'N') = 'O')
13269 ) AND
13270 (l_bflow_method_code = 'PRIOR_ENTRY')
13271 )
13272 THEN
13273 IF
13274 --
13275 1 = 2
13276 --
13277 THEN
13278 xla_accounting_err_pkg.build_message
13279 (p_appli_s_name => 'XLA'
13280 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13281 ,p_token_1 => 'LINE_NUMBER'
13282 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
13283 ,p_token_2 => 'LINE_TYPE_NAME'
13284 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
13285 l_component_type
13286 ,l_component_code
13287 ,l_component_type_code
13288 ,l_component_appl_id
13289 ,l_amb_context_code
13290 ,l_entity_code
13291 ,l_event_class_code
13292 )
13293 ,p_token_3 => 'OWNER'
13294 ,p_value_3 => xla_lookups_pkg.get_meaning(
13295 p_lookup_type => 'XLA_OWNER_TYPE'
13296 ,p_lookup_code => l_component_type_code
13297 )
13298 ,p_token_4 => 'PRODUCT_NAME'
13299 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
13300 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13301 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
13302 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
13303 ,p_ae_header_id => NULL
13304 );
13305
13306 IF (C_LEVEL_ERROR>= g_log_level) THEN
13307 trace
13308 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13309 ,p_level => C_LEVEL_ERROR
13310 ,p_module => l_log_module);
13311 END IF;
13312 END IF;
13313 END IF;
13314 --
13315 --
13316 ------------------------------------------------------------------------------------------------
13317 -- 4219869 Business Flow
13318 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
13319 -- Prior Entry. Currently, the following code is always generated.
13320 ------------------------------------------------------------------------------------------------
13321 XLA_AE_LINES_PKG.ValidateCurrentLine;
13322
13323 ------------------------------------------------------------------------------------
13324 -- 4219869 Business Flow
13325 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
13326 ------------------------------------------------------------------------------------
13327 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13328
13329 ----------------------------------------------------------------------------------
13330 -- 4219869 Business Flow
13331 -- Update journal entry status -- Need to generate this within IF <condition>
13332 ----------------------------------------------------------------------------------
13333 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13334 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
13335 ,p_balance_type_code => l_balance_type_code
13336 );
13337
13338 -------------------------------------------------------------------------------------------
13339 -- 4262811 - Generate the Accrual Reversal lines
13340 -------------------------------------------------------------------------------------------
13341 BEGIN
13342 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
13343 (g_array_event(p_event_id).array_value_num('header_index'));
13344 IF l_acc_rev_flag IS NULL THEN
13345 l_acc_rev_flag := 'N';
13346 END IF;
13347 EXCEPTION
13348 WHEN OTHERS THEN
13349 l_acc_rev_flag := 'N';
13350 END;
13351 --
13352 IF (l_acc_rev_flag = 'Y') THEN
13353
13354 -- 4645092 ------------------------------------------------------------------------------
13355 -- To allow MPA report to determine if it should generate report process
13356 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
13357 ------------------------------------------------------------------------------------------
13358
13359 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
13360 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
13361
13362 --
13363 -- Update the line information that should be overwritten
13364 --
13365 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
13366 p_header_num => 1);
13367 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
13368
13369 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
13370
13371 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
13372 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
13373 END IF;
13374
13375 --
13376 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
13377 --
13378 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
13379 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
13380 ELSE
13381 ---------------------------------------------------------------------------------------------------
13382 -- 4262811a Switch Sign
13383 ---------------------------------------------------------------------------------------------------
13384 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
13385 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13386 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13387 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13388 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13389 -- 5132302
13390 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
13391 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13392
13393 END IF;
13394
13395 -- 4955764
13396 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13397 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
13398
13399
13400 XLA_AE_LINES_PKG.ValidateCurrentLine;
13401 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13402
13403 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13404 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
13405 ,p_balance_type_code => l_balance_type_code);
13406
13407 END IF;
13408
13409 -----------------------------------------------------------------------------------------
13410 -- 4262811 Multiperiod Accounting
13411 -----------------------------------------------------------------------------------------
13412 -- No MPA option is assigned.
13413
13414
13415 END IF;
13416 END IF;
13417 --
13418
13419 --
13420 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13421 trace
13422 (p_msg => 'END of AcctLineType_28'
13423 ,p_level => C_LEVEL_PROCEDURE
13424 ,p_module => l_log_module);
13425 END IF;
13426 --
13427 EXCEPTION
13428 WHEN xla_exceptions_pkg.application_exception THEN
13429 RAISE;
13430 WHEN OTHERS THEN
13431 xla_exceptions_pkg.raise_message
13432 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_28');
13433 END AcctLineType_28;
13434 --
13435
13436 ---------------------------------------
13437 --
13438 -- PRIVATE FUNCTION
13439 -- AcctLineType_29
13440 --
13441 ---------------------------------------
13442 PROCEDURE AcctLineType_29 (
13443 p_application_id IN NUMBER
13444 ,p_event_id IN NUMBER
13445 ,p_calculate_acctd_flag IN VARCHAR2
13446 ,p_calculate_g_l_flag IN VARCHAR2
13447 ,p_actual_flag IN OUT VARCHAR2
13448 ,p_balance_type_code OUT VARCHAR2
13449 ,p_gain_or_loss_ref OUT VARCHAR2
13450
13451 --Project Name
13452 , p_source_3 IN VARCHAR2
13453 --Task Name
13454 , p_source_4 IN VARCHAR2
13455 --Project Expenditure Organization Identifier
13456 , p_source_5 IN NUMBER
13457 --Expenditure Type
13458 , p_source_6 IN VARCHAR2
13459 --Document Type
13460 , p_source_9 IN VARCHAR2
13461 --Main Or Backing Code
13462 , p_source_13 IN VARCHAR2
13463 --Burden Record Identifier
13464 , p_source_14 IN VARCHAR2
13465 , p_source_14_meaning IN VARCHAR2
13466 --Burden Amount Display Method
13467 , p_source_15 IN VARCHAR2
13468 --Accounting Reversal Flag
13469 , p_source_16 IN VARCHAR2
13470 --Allocated to Application Identifier
13471 , p_source_17 IN NUMBER
13472 --Allocated to Distribution Type
13473 , p_source_18 IN VARCHAR2
13474 --Allocated to Entity Code
13475 , p_source_19 IN VARCHAR2
13476 --Allocated to First Distribution Identifier
13477 , p_source_20 IN NUMBER
13478 --Allocated to First System Transaction Identifier
13479 , p_source_21 IN NUMBER
13480 --PO Distribution Identifier
13481 , p_source_29 IN NUMBER
13482 --Line Type Name
13483 , p_source_30 IN VARCHAR2
13484 --Encumbrance Upgrade Credit Accounting Class
13485 , p_source_31 IN VARCHAR2
13486 --Encumbrance Upgrade Credit Account
13487 , p_source_32 IN NUMBER
13488 --Entered Amount
13489 , p_source_33 IN NUMBER
13490 --Currency Code
13491 , p_source_34 IN VARCHAR2
13492 --Accounted Amount
13493 , p_source_35 IN NUMBER
13494 --Encumbrance Upgrade Debit Accounting Class
13495 , p_source_36 IN VARCHAR2
13496 --Encumbrance Upgrade Debit Account
13497 , p_source_37 IN NUMBER
13498 --Use Encumbrances Upgrade Attributes Flag
13499 , p_source_38 IN VARCHAR2
13500 --Encumbrance Upgrade Credit Encumbrance Type
13501 , p_source_39 IN NUMBER
13502 --Encumbrance Upgrade Debit Encumbrance Type
13503 , p_source_40 IN NUMBER
13504 --Requisition Burden Applied to Application Identifier
13505 , p_source_41 IN NUMBER
13506 --Requisition Distribution Type
13507 , p_source_42 IN VARCHAR2
13508 --Requisition Burden Applied to Entity Code
13509 , p_source_43 IN VARCHAR2
13510 --Requisition Burden Applied to First Distribution Identifier
13511 , p_source_44 IN NUMBER
13512 --Requisition Burden Applied to First System Transaction Identifier
13513 , p_source_45 IN NUMBER
13514 --Requisition Burden Applied to Second Distribution Identifier
13515 , p_source_46 IN VARCHAR2
13516 --Backing Requisition Prevent Encumbrance Flag Flipped
13517 , p_source_67 IN VARCHAR2
13518 )
13519 IS
13520
13521 l_component_type VARCHAR2(80);
13522 l_component_code VARCHAR2(30);
13523 l_component_type_code VARCHAR2(1);
13524 l_component_appl_id INTEGER;
13525 l_amb_context_code VARCHAR2(30);
13526 l_entity_code VARCHAR2(30);
13527 l_event_class_code VARCHAR2(30);
13528 l_ae_header_id NUMBER;
13529 l_event_type_code VARCHAR2(30);
13530 l_line_definition_code VARCHAR2(30);
13531 l_line_definition_owner_code VARCHAR2(1);
13532 --
13533 -- adr variables
13534 l_segment VARCHAR2(30);
13535 l_ccid NUMBER;
13536 l_adr_transaction_coa_id NUMBER;
13537 l_adr_accounting_coa_id NUMBER;
13538 l_adr_flexfield_segment_code VARCHAR2(30);
13539 l_adr_flex_value_set_id NUMBER;
13540 l_adr_value_type_code VARCHAR2(30);
13541 l_adr_value_combination_id NUMBER;
13542 l_adr_value_segment_code VARCHAR2(30);
13543
13544 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
13545 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
13546 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
13547 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
13548
13549 -- 4262811 Variables ------------------------------------------------------------------------------------------
13550 l_entered_amt_idx NUMBER;
13551 l_accted_amt_idx NUMBER;
13552 l_acc_rev_flag VARCHAR2(1);
13553 l_accrual_line_num NUMBER;
13554 l_tmp_amt NUMBER;
13555 l_acc_rev_natural_side_code VARCHAR2(1);
13556
13557 l_num_entries NUMBER;
13558 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
13559 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
13560 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
13561 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
13562 l_recog_line_1 NUMBER;
13563 l_recog_line_2 NUMBER;
13564
13565 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
13566 l_bflow_applied_to_amt NUMBER; -- 5132302
13567 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
13568
13569 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
13570
13571 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
13572 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
13573
13574 ---------------------------------------------------------------------------------------------------------------
13575
13576
13577 --
13578 -- bulk performance
13579 --
13580 l_balance_type_code VARCHAR2(1);
13581 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
13582 l_log_module VARCHAR2(240);
13583
13584 --
13585 -- Upgrade strategy
13586 --
13587 l_actual_upg_option VARCHAR2(1);
13588 l_enc_upg_option VARCHAR2(1);
13589
13590 --
13591 BEGIN
13592 --
13593 IF g_log_enabled THEN
13594 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_29';
13595 END IF;
13596 --
13597 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13598
13599 trace
13600 (p_msg => 'BEGIN of AcctLineType_29'
13601 ,p_level => C_LEVEL_PROCEDURE
13602 ,p_module => l_log_module);
13603
13604 END IF;
13605 --
13606 l_component_type := 'AMB_JLT';
13607 l_component_code := 'REINST_REQ_BURDEND_ENCFORPO_DR';
13608 l_component_type_code := 'S';
13609 l_component_appl_id := 201;
13610 l_amb_context_code := 'DEFAULT';
13611 l_entity_code := 'PURCHASE_ORDER';
13612 l_event_class_code := 'PO_BURDEN';
13613 l_event_type_code := 'PO_BURDEN_ALL';
13614 l_line_definition_owner_code := 'S';
13615 l_line_definition_code := 'PO_BURDEN_ENC_ALL';
13616 --
13617 l_balance_type_code := 'E';
13618 l_segment := NULL;
13619 l_ccid := NULL;
13620 l_adr_transaction_coa_id := NULL;
13621 l_adr_accounting_coa_id := NULL;
13622 l_adr_flexfield_segment_code := NULL;
13623 l_adr_flex_value_set_id := NULL;
13624 l_adr_value_type_code := NULL;
13625 l_adr_value_combination_id := NULL;
13626 l_adr_value_segment_code := NULL;
13627
13628 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
13629 l_bflow_class_code := 'REQ_PA_BURDENED_ENC'; -- 4219869 Business Flow
13630 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
13631 l_budgetary_control_flag := 'Y';
13632
13633 l_bflow_applied_to_amt_idx := NULL; -- 5132302
13634 l_bflow_applied_to_amt := NULL; -- 5132302
13635 l_entered_amt_idx := NULL; -- 4262811
13636 l_accted_amt_idx := NULL; -- 4262811
13637 l_acc_rev_flag := NULL; -- 4262811
13638 l_accrual_line_num := NULL; -- 4262811
13639 l_tmp_amt := NULL; -- 4262811
13640 --
13641
13642 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
13643 l_balance_type_code <> 'B' THEN
13644 IF (NVL(
13645 xla_ae_sources_pkg.GetSystemSourceChar(
13646 p_source_code => 'XLA_EVENT_TYPE_CODE'
13647 , p_source_type_code => 'Y'
13648 , p_source_application_id => 602
13649 ),'
13650 ') = 'PO_BURDEN_UNRESERVED' OR
13651 NVL(
13652 xla_ae_sources_pkg.GetSystemSourceChar(
13653 p_source_code => 'XLA_EVENT_TYPE_CODE'
13654 , p_source_type_code => 'Y'
13655 , p_source_application_id => 602
13656 ),'
13657 ') = 'PO_BURDEN_INV_CANCELLED' OR
13658 NVL(
13659 xla_ae_sources_pkg.GetSystemSourceChar(
13660 p_source_code => 'XLA_EVENT_TYPE_CODE'
13661 , p_source_type_code => 'Y'
13662 , p_source_application_id => 602
13663 ),'
13664 ') = 'PO_BURDEN_REJECTED') AND
13665 NVL(p_source_13,'
13666 ') = 'B_REQ' AND
13667 (NVL(p_source_14,'
13668 ') = 'N' OR
13669 NVL(p_source_14,'
13670 ') = 'O') AND
13671 NVL(p_source_9,'
13672 ') = 'REQ' AND
13673 NVL(p_source_15,'
13674 ') = 'S' AND
13675 NVL(p_source_67,'
13676 ') <> 'Y'
13677 THEN
13678
13679 --
13680 XLA_AE_LINES_PKG.SetNewLine;
13681
13682 p_balance_type_code := l_balance_type_code;
13683 -- set the flag so later we will know whether the gain loss line needs to be created
13684
13685 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
13686 p_actual_flag :='A';
13687 END IF;
13688
13689 --
13690 -- bulk performance
13691 --
13692 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
13693 p_header_num => 0); -- 4262811
13694 --
13695 -- set accounting line options
13696 --
13697 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
13698 p_natural_side_code => 'D'
13699 , p_gain_or_loss_flag => 'N'
13700 , p_gl_transfer_mode_code => 'S'
13701 , p_acct_entry_type_code => 'E'
13702 , p_switch_side_flag => 'N'
13703 , p_merge_duplicate_code => 'N'
13704 );
13705 --
13706 l_acc_rev_natural_side_code := 'C'; -- 4262811
13707 --
13708 --
13709 -- set accounting line type info
13710 --
13711 xla_ae_lines_pkg.SetAcctLineType
13712 (p_component_type => l_component_type
13713 ,p_event_type_code => l_event_type_code
13714 ,p_line_definition_owner_code => l_line_definition_owner_code
13715 ,p_line_definition_code => l_line_definition_code
13716 ,p_accounting_line_code => l_component_code
13717 ,p_accounting_line_type_code => l_component_type_code
13718 ,p_accounting_line_appl_id => l_component_appl_id
13719 ,p_amb_context_code => l_amb_context_code
13720 ,p_entity_code => l_entity_code
13721 ,p_event_class_code => l_event_class_code);
13722 --
13723 -- set accounting class
13724 --
13725 xla_ae_lines_pkg.SetAcctClass(
13726 p_accounting_class_code => 'REQ_PA_BURDENED'
13727 , p_ae_header_id => l_ae_header_id
13728 );
13729
13730 --
13731 -- set rounding class
13732 --
13733 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
13734 'REQ_PA_BURDENED';
13735
13736 --
13737 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
13738 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
13739 --
13740 -- bulk performance
13741 --
13742 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
13743
13744 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
13745 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
13746
13747 -- 4955764
13748 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13749 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
13750
13751 -- 4458381 Public Sector Enh
13752
13753 --
13754 -- set accounting attributes for the line type
13755 --
13756 l_entered_amt_idx := 27;
13757 l_accted_amt_idx := 29;
13758 l_bflow_applied_to_amt_idx := NULL; -- 5132302
13759 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
13760 l_rec_acct_attrs.array_char_value(1) := p_source_16;
13761 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
13762 l_rec_acct_attrs.array_num_value(2) := p_source_17;
13763 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
13764 l_rec_acct_attrs.array_char_value(3) := p_source_18;
13765 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
13766 l_rec_acct_attrs.array_char_value(4) := p_source_19;
13767 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
13768 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
13769 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
13770 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
13771 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
13772 l_rec_acct_attrs.array_num_value(7) := p_source_41;
13773 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
13774 l_rec_acct_attrs.array_char_value(8) := p_source_42;
13775 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
13776 l_rec_acct_attrs.array_char_value(9) := p_source_43;
13777 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
13778 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_44);
13779 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
13780 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_45);
13781 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
13782 l_rec_acct_attrs.array_char_value(12) := p_source_46;
13783 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
13784 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_29);
13785 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
13786 l_rec_acct_attrs.array_char_value(14) := p_source_6;
13787 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
13788 l_rec_acct_attrs.array_char_value(15) := p_source_30;
13789 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
13790 l_rec_acct_attrs.array_char_value(16) := p_source_31;
13791 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
13792 l_rec_acct_attrs.array_num_value(17) := p_source_32;
13793 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
13794 l_rec_acct_attrs.array_num_value(18) := p_source_33;
13795 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
13796 l_rec_acct_attrs.array_char_value(19) := p_source_34;
13797 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
13798 l_rec_acct_attrs.array_num_value(20) := p_source_35;
13799 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
13800 l_rec_acct_attrs.array_char_value(21) := p_source_36;
13801 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
13802 l_rec_acct_attrs.array_num_value(22) := p_source_37;
13803 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
13804 l_rec_acct_attrs.array_num_value(23) := p_source_33;
13805 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
13806 l_rec_acct_attrs.array_char_value(24) := p_source_34;
13807 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
13808 l_rec_acct_attrs.array_num_value(25) := p_source_35;
13809 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
13810 l_rec_acct_attrs.array_char_value(26) := p_source_38;
13811 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
13812 l_rec_acct_attrs.array_num_value(27) := p_source_33;
13813 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
13814 l_rec_acct_attrs.array_char_value(28) := p_source_34;
13815 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
13816 l_rec_acct_attrs.array_num_value(29) := p_source_35;
13817 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
13818 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_29);
13819 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
13820 l_rec_acct_attrs.array_char_value(31) := p_source_6;
13821 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
13822 l_rec_acct_attrs.array_char_value(32) := p_source_30;
13823 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
13824 l_rec_acct_attrs.array_num_value(33) := p_source_39;
13825 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
13826 l_rec_acct_attrs.array_num_value(34) := p_source_40;
13827
13828 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
13829 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
13830
13831 ---------------------------------------------------------------------------------------------------------------
13832 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
13833 ---------------------------------------------------------------------------------------------------------------
13834 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
13835
13836 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13837 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13838
13839 IF xla_accounting_cache_pkg.GetValueChar
13840 (p_source_code => 'LEDGER_CATEGORY_CODE'
13841 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
13842 AND l_bflow_method_code = 'PRIOR_ENTRY'
13843 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
13844 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
13845 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
13846 )
13847 THEN
13848 xla_ae_lines_pkg.BflowUpgEntry
13849 (p_business_method_code => l_bflow_method_code
13850 ,p_business_class_code => l_bflow_class_code
13851 ,p_balance_type => l_balance_type_code);
13852 ELSE
13853 NULL;
13854 XLA_AE_LINES_PKG.business_flow_validation(
13855 p_business_method_code => l_bflow_method_code
13856 ,p_business_class_code => l_bflow_class_code
13857 ,p_inherit_description_flag => l_inherit_desc_flag);
13858 END IF;
13859
13860 --
13861 -- call analytical criteria
13862 --
13863 -- Inherited Analytical Criteria for business flow method of Prior Entry.
13864 --
13865 -- call description
13866 --
13867
13868 xla_ae_lines_pkg.SetLineDescription(
13869 p_ae_header_id => l_ae_header_id
13870 ,p_description => Description_2 (
13871 p_application_id => p_application_id
13872 , p_ae_header_id => l_ae_header_id
13873 , p_source_3 => p_source_3
13874 , p_source_4 => p_source_4
13875 , p_source_5 => p_source_5
13876 , p_source_6 => p_source_6
13877 )
13878 );
13879
13880
13881 --
13882 -- call ADRs
13883 -- Bug 4922099
13884 --
13885 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13886 (NVL(l_actual_upg_option, 'N') = 'O') OR
13887 (NVL(l_enc_upg_option, 'N') = 'O')
13888 )
13889 THEN
13890 NULL;
13891 --
13892 --
13893
13894 --
13895 --
13896 END IF;
13897 --
13898 -- Bug 4922099
13899 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
13900 (NVL(l_enc_upg_option, 'N') = 'O')
13901 ) AND
13902 (l_bflow_method_code = 'PRIOR_ENTRY')
13903 )
13904 THEN
13905 IF
13906 --
13907 1 = 1
13908 --
13909 THEN
13910 xla_accounting_err_pkg.build_message
13911 (p_appli_s_name => 'XLA'
13912 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13913 ,p_token_1 => 'LINE_NUMBER'
13914 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
13915 ,p_token_2 => 'LINE_TYPE_NAME'
13916 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
13917 l_component_type
13918 ,l_component_code
13919 ,l_component_type_code
13920 ,l_component_appl_id
13921 ,l_amb_context_code
13922 ,l_entity_code
13923 ,l_event_class_code
13924 )
13925 ,p_token_3 => 'OWNER'
13926 ,p_value_3 => xla_lookups_pkg.get_meaning(
13927 p_lookup_type => 'XLA_OWNER_TYPE'
13928 ,p_lookup_code => l_component_type_code
13929 )
13930 ,p_token_4 => 'PRODUCT_NAME'
13931 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
13932 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13933 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
13934 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
13935 ,p_ae_header_id => NULL
13936 );
13937
13938 IF (C_LEVEL_ERROR>= g_log_level) THEN
13939 trace
13940 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13941 ,p_level => C_LEVEL_ERROR
13942 ,p_module => l_log_module);
13943 END IF;
13944 END IF;
13945 END IF;
13946 --
13947 --
13948 ------------------------------------------------------------------------------------------------
13949 -- 4219869 Business Flow
13950 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
13951 -- Prior Entry. Currently, the following code is always generated.
13952 ------------------------------------------------------------------------------------------------
13953 -- No ValidateCurrentLine for business flow method of Prior Entry
13954
13955 ------------------------------------------------------------------------------------
13956 -- 4219869 Business Flow
13957 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
13958 ------------------------------------------------------------------------------------
13959 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13960
13961 ----------------------------------------------------------------------------------
13962 -- 4219869 Business Flow
13963 -- Update journal entry status -- Need to generate this within IF <condition>
13964 ----------------------------------------------------------------------------------
13965 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13966 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
13967 ,p_balance_type_code => l_balance_type_code
13968 );
13969
13970 -------------------------------------------------------------------------------------------
13971 -- 4262811 - Generate the Accrual Reversal lines
13972 -------------------------------------------------------------------------------------------
13973 BEGIN
13974 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
13975 (g_array_event(p_event_id).array_value_num('header_index'));
13976 IF l_acc_rev_flag IS NULL THEN
13977 l_acc_rev_flag := 'N';
13978 END IF;
13979 EXCEPTION
13980 WHEN OTHERS THEN
13981 l_acc_rev_flag := 'N';
13982 END;
13983 --
13984 IF (l_acc_rev_flag = 'Y') THEN
13985
13986 -- 4645092 ------------------------------------------------------------------------------
13987 -- To allow MPA report to determine if it should generate report process
13988 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
13989 ------------------------------------------------------------------------------------------
13990
13991 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
13992 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
13993
13994 --
13995 -- Update the line information that should be overwritten
13996 --
13997 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
13998 p_header_num => 1);
13999 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
14000
14001 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
14002
14003 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
14004 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
14005 END IF;
14006
14007 --
14008 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
14009 --
14010 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
14011 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
14012 ELSE
14013 ---------------------------------------------------------------------------------------------------
14014 -- 4262811a Switch Sign
14015 ---------------------------------------------------------------------------------------------------
14016 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
14017 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14018 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14019 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14020 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14021 -- 5132302
14022 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
14023 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14024
14025 END IF;
14026
14027 -- 4955764
14028 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14029 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
14030
14031
14032 XLA_AE_LINES_PKG.ValidateCurrentLine;
14033 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14034
14035 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14036 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
14037 ,p_balance_type_code => l_balance_type_code);
14038
14039 END IF;
14040
14041 -----------------------------------------------------------------------------------------
14042 -- 4262811 Multiperiod Accounting
14043 -----------------------------------------------------------------------------------------
14044 -- No MPA option is assigned.
14045
14046
14047 END IF;
14048 END IF;
14049 --
14050
14051 --
14052 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14053 trace
14054 (p_msg => 'END of AcctLineType_29'
14055 ,p_level => C_LEVEL_PROCEDURE
14056 ,p_module => l_log_module);
14057 END IF;
14058 --
14059 EXCEPTION
14060 WHEN xla_exceptions_pkg.application_exception THEN
14061 RAISE;
14062 WHEN OTHERS THEN
14063 xla_exceptions_pkg.raise_message
14064 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_29');
14065 END AcctLineType_29;
14066 --
14067
14068 ---------------------------------------
14069 --
14070 -- PRIVATE FUNCTION
14071 -- AcctLineType_30
14072 --
14073 ---------------------------------------
14074 PROCEDURE AcctLineType_30 (
14075 p_application_id IN NUMBER
14076 ,p_event_id IN NUMBER
14077 ,p_calculate_acctd_flag IN VARCHAR2
14078 ,p_calculate_g_l_flag IN VARCHAR2
14079 ,p_actual_flag IN OUT VARCHAR2
14080 ,p_balance_type_code OUT VARCHAR2
14081 ,p_gain_or_loss_ref OUT VARCHAR2
14082
14083 --Project Name
14084 , p_source_3 IN VARCHAR2
14085 --Task Name
14086 , p_source_4 IN VARCHAR2
14087 --Project Expenditure Organization Identifier
14088 , p_source_5 IN NUMBER
14089 --Expenditure Type
14090 , p_source_6 IN VARCHAR2
14091 --Document Type
14092 , p_source_9 IN VARCHAR2
14093 --Main Or Backing Code
14094 , p_source_13 IN VARCHAR2
14095 --Burden Record Identifier
14096 , p_source_14 IN VARCHAR2
14097 , p_source_14_meaning IN VARCHAR2
14098 --Burden Amount Display Method
14099 , p_source_15 IN VARCHAR2
14100 --Accounting Reversal Flag
14101 , p_source_16 IN VARCHAR2
14102 --Allocated to Application Identifier
14103 , p_source_17 IN NUMBER
14104 --Allocated to Distribution Type
14105 , p_source_18 IN VARCHAR2
14106 --Allocated to Entity Code
14107 , p_source_19 IN VARCHAR2
14108 --Allocated to First Distribution Identifier
14109 , p_source_20 IN NUMBER
14110 --Allocated to First System Transaction Identifier
14111 , p_source_21 IN NUMBER
14112 --Allocated to Second Distribution Identifier
14113 , p_source_22 IN VARCHAR2
14114 --PO Distribution Identifier
14115 , p_source_29 IN NUMBER
14116 --Line Type Name
14117 , p_source_30 IN VARCHAR2
14118 --Encumbrance Upgrade Credit Accounting Class
14119 , p_source_31 IN VARCHAR2
14120 --Encumbrance Upgrade Credit Account
14121 , p_source_32 IN NUMBER
14122 --Entered Amount
14123 , p_source_33 IN NUMBER
14124 --Currency Code
14125 , p_source_34 IN VARCHAR2
14126 --Accounted Amount
14127 , p_source_35 IN NUMBER
14128 --Encumbrance Upgrade Debit Accounting Class
14129 , p_source_36 IN VARCHAR2
14130 --Encumbrance Upgrade Debit Account
14131 , p_source_37 IN NUMBER
14132 --Use Encumbrances Upgrade Attributes Flag
14133 , p_source_38 IN VARCHAR2
14134 --Encumbrance Upgrade Credit Encumbrance Type
14135 , p_source_39 IN NUMBER
14136 --Encumbrance Upgrade Debit Encumbrance Type
14137 , p_source_40 IN NUMBER
14138 --Requisition Burden Applied to Application Identifier
14139 , p_source_41 IN NUMBER
14140 --Requisition Distribution Type
14141 , p_source_42 IN VARCHAR2
14142 --Requisition Burden Applied to Entity Code
14143 , p_source_43 IN VARCHAR2
14144 --Requisition Burden Applied to First Distribution Identifier
14145 , p_source_44 IN NUMBER
14146 --Requisition Burden Applied to First System Transaction Identifier
14147 , p_source_45 IN NUMBER
14148 --Requisition Burden Applied to Second Distribution Identifier
14149 , p_source_46 IN VARCHAR2
14150 )
14151 IS
14152
14153 l_component_type VARCHAR2(80);
14154 l_component_code VARCHAR2(30);
14155 l_component_type_code VARCHAR2(1);
14156 l_component_appl_id INTEGER;
14157 l_amb_context_code VARCHAR2(30);
14158 l_entity_code VARCHAR2(30);
14159 l_event_class_code VARCHAR2(30);
14160 l_ae_header_id NUMBER;
14161 l_event_type_code VARCHAR2(30);
14162 l_line_definition_code VARCHAR2(30);
14163 l_line_definition_owner_code VARCHAR2(1);
14164 --
14165 -- adr variables
14166 l_segment VARCHAR2(30);
14167 l_ccid NUMBER;
14168 l_adr_transaction_coa_id NUMBER;
14169 l_adr_accounting_coa_id NUMBER;
14170 l_adr_flexfield_segment_code VARCHAR2(30);
14171 l_adr_flex_value_set_id NUMBER;
14172 l_adr_value_type_code VARCHAR2(30);
14173 l_adr_value_combination_id NUMBER;
14174 l_adr_value_segment_code VARCHAR2(30);
14175
14176 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
14177 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
14178 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
14179 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
14180
14181 -- 4262811 Variables ------------------------------------------------------------------------------------------
14182 l_entered_amt_idx NUMBER;
14183 l_accted_amt_idx NUMBER;
14184 l_acc_rev_flag VARCHAR2(1);
14185 l_accrual_line_num NUMBER;
14186 l_tmp_amt NUMBER;
14187 l_acc_rev_natural_side_code VARCHAR2(1);
14188
14189 l_num_entries NUMBER;
14190 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
14191 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
14192 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
14193 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
14194 l_recog_line_1 NUMBER;
14195 l_recog_line_2 NUMBER;
14196
14197 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
14198 l_bflow_applied_to_amt NUMBER; -- 5132302
14199 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
14200
14201 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
14202
14203 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
14204 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
14205
14206 ---------------------------------------------------------------------------------------------------------------
14207
14208
14209 --
14210 -- bulk performance
14211 --
14212 l_balance_type_code VARCHAR2(1);
14213 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
14214 l_log_module VARCHAR2(240);
14215
14216 --
14217 -- Upgrade strategy
14218 --
14219 l_actual_upg_option VARCHAR2(1);
14220 l_enc_upg_option VARCHAR2(1);
14221
14222 --
14223 BEGIN
14224 --
14225 IF g_log_enabled THEN
14226 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_30';
14227 END IF;
14228 --
14229 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14230
14231 trace
14232 (p_msg => 'BEGIN of AcctLineType_30'
14233 ,p_level => C_LEVEL_PROCEDURE
14234 ,p_module => l_log_module);
14235
14236 END IF;
14237 --
14238 l_component_type := 'AMB_JLT';
14239 l_component_code := 'REINST_REQ_BURDEND_ENCFORRELCR';
14240 l_component_type_code := 'S';
14241 l_component_appl_id := 201;
14242 l_amb_context_code := 'DEFAULT';
14243 l_entity_code := 'RELEASE';
14244 l_event_class_code := 'RELEASE_BURDEN';
14245 l_event_type_code := 'RELEASE_BURDEN_ALL';
14246 l_line_definition_owner_code := 'S';
14247 l_line_definition_code := 'REL_BURDEN_ENC_ALL';
14248 --
14249 l_balance_type_code := 'E';
14250 l_segment := NULL;
14251 l_ccid := NULL;
14252 l_adr_transaction_coa_id := NULL;
14253 l_adr_accounting_coa_id := NULL;
14254 l_adr_flexfield_segment_code := NULL;
14255 l_adr_flex_value_set_id := NULL;
14256 l_adr_value_type_code := NULL;
14257 l_adr_value_combination_id := NULL;
14258 l_adr_value_segment_code := NULL;
14259
14260 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
14261 l_bflow_class_code := 'REQ_PA_BURDENED_ENC'; -- 4219869 Business Flow
14262 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
14263 l_budgetary_control_flag := 'Y';
14264
14265 l_bflow_applied_to_amt_idx := NULL; -- 5132302
14266 l_bflow_applied_to_amt := NULL; -- 5132302
14267 l_entered_amt_idx := NULL; -- 4262811
14268 l_accted_amt_idx := NULL; -- 4262811
14269 l_acc_rev_flag := NULL; -- 4262811
14270 l_accrual_line_num := NULL; -- 4262811
14271 l_tmp_amt := NULL; -- 4262811
14272 --
14273
14274 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
14275 l_balance_type_code <> 'B' THEN
14276 IF (NVL(
14277 xla_ae_sources_pkg.GetSystemSourceChar(
14278 p_source_code => 'XLA_EVENT_TYPE_CODE'
14279 , p_source_type_code => 'Y'
14280 , p_source_application_id => 602
14281 ),'
14282 ') = 'REL_BURDEN_CANCELLED' OR
14283 NVL(
14284 xla_ae_sources_pkg.GetSystemSourceChar(
14285 p_source_code => 'XLA_EVENT_TYPE_CODE'
14286 , p_source_type_code => 'Y'
14287 , p_source_application_id => 602
14288 ),'
14289 ') = 'REL_BURDEN_CR_MEMO_CANCELLED') AND
14290 NVL(p_source_13,'
14291 ') = 'B_REQ' AND
14292 (NVL(p_source_14,'
14293 ') = 'N' OR
14294 NVL(p_source_14,'
14295 ') = 'O') AND
14296 NVL(p_source_9,'
14297 ') = 'REQ' AND
14298 NVL(p_source_15,'
14299 ') = 'S'
14300 THEN
14301
14302 --
14303 XLA_AE_LINES_PKG.SetNewLine;
14304
14305 p_balance_type_code := l_balance_type_code;
14306 -- set the flag so later we will know whether the gain loss line needs to be created
14307
14308 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
14309 p_actual_flag :='A';
14310 END IF;
14311
14312 --
14313 -- bulk performance
14314 --
14315 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
14316 p_header_num => 0); -- 4262811
14317 --
14318 -- set accounting line options
14319 --
14320 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
14321 p_natural_side_code => 'C'
14322 , p_gain_or_loss_flag => 'N'
14323 , p_gl_transfer_mode_code => 'S'
14324 , p_acct_entry_type_code => 'E'
14325 , p_switch_side_flag => 'N'
14326 , p_merge_duplicate_code => 'N'
14327 );
14328 --
14329 l_acc_rev_natural_side_code := 'D'; -- 4262811
14330 --
14331 --
14332 -- set accounting line type info
14333 --
14334 xla_ae_lines_pkg.SetAcctLineType
14335 (p_component_type => l_component_type
14336 ,p_event_type_code => l_event_type_code
14337 ,p_line_definition_owner_code => l_line_definition_owner_code
14338 ,p_line_definition_code => l_line_definition_code
14339 ,p_accounting_line_code => l_component_code
14340 ,p_accounting_line_type_code => l_component_type_code
14341 ,p_accounting_line_appl_id => l_component_appl_id
14342 ,p_amb_context_code => l_amb_context_code
14343 ,p_entity_code => l_entity_code
14344 ,p_event_class_code => l_event_class_code);
14345 --
14346 -- set accounting class
14347 --
14348 xla_ae_lines_pkg.SetAcctClass(
14349 p_accounting_class_code => 'REQ_PA_BURDENED'
14350 , p_ae_header_id => l_ae_header_id
14351 );
14352
14353 --
14354 -- set rounding class
14355 --
14356 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
14357 'REQ_PA_BURDENED';
14358
14359 --
14360 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
14361 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
14362 --
14363 -- bulk performance
14364 --
14365 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
14366
14367 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
14368 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
14369
14370 -- 4955764
14371 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14372 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
14373
14374 -- 4458381 Public Sector Enh
14375
14376 --
14377 -- set accounting attributes for the line type
14378 --
14379 l_entered_amt_idx := 28;
14380 l_accted_amt_idx := 30;
14381 l_bflow_applied_to_amt_idx := NULL; -- 5132302
14382 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
14383 l_rec_acct_attrs.array_char_value(1) := p_source_16;
14384 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
14385 l_rec_acct_attrs.array_num_value(2) := p_source_17;
14386 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
14387 l_rec_acct_attrs.array_char_value(3) := p_source_18;
14388 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
14389 l_rec_acct_attrs.array_char_value(4) := p_source_19;
14390 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
14391 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
14392 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
14393 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
14394 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
14395 l_rec_acct_attrs.array_char_value(7) := p_source_22;
14396 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
14397 l_rec_acct_attrs.array_num_value(8) := p_source_41;
14398 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
14399 l_rec_acct_attrs.array_char_value(9) := p_source_42;
14400 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
14401 l_rec_acct_attrs.array_char_value(10) := p_source_43;
14402 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
14403 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_44);
14404 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
14405 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_45);
14406 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
14407 l_rec_acct_attrs.array_char_value(13) := p_source_46;
14408 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
14409 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_29);
14410 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
14411 l_rec_acct_attrs.array_char_value(15) := p_source_6;
14412 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
14413 l_rec_acct_attrs.array_char_value(16) := p_source_30;
14414 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
14415 l_rec_acct_attrs.array_char_value(17) := p_source_31;
14416 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
14417 l_rec_acct_attrs.array_num_value(18) := p_source_32;
14418 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
14419 l_rec_acct_attrs.array_num_value(19) := p_source_33;
14420 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
14421 l_rec_acct_attrs.array_char_value(20) := p_source_34;
14422 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
14423 l_rec_acct_attrs.array_num_value(21) := p_source_35;
14424 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
14425 l_rec_acct_attrs.array_char_value(22) := p_source_36;
14426 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
14427 l_rec_acct_attrs.array_num_value(23) := p_source_37;
14428 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
14429 l_rec_acct_attrs.array_num_value(24) := p_source_33;
14430 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
14431 l_rec_acct_attrs.array_char_value(25) := p_source_34;
14432 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
14433 l_rec_acct_attrs.array_num_value(26) := p_source_35;
14434 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
14435 l_rec_acct_attrs.array_char_value(27) := p_source_38;
14436 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
14437 l_rec_acct_attrs.array_num_value(28) := p_source_33;
14438 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
14439 l_rec_acct_attrs.array_char_value(29) := p_source_34;
14440 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
14441 l_rec_acct_attrs.array_num_value(30) := p_source_35;
14442 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
14443 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_29);
14444 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
14445 l_rec_acct_attrs.array_char_value(32) := p_source_6;
14446 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
14447 l_rec_acct_attrs.array_char_value(33) := p_source_30;
14448 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
14449 l_rec_acct_attrs.array_num_value(34) := p_source_39;
14450 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
14451 l_rec_acct_attrs.array_num_value(35) := p_source_40;
14452
14453 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
14454 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
14455
14456 ---------------------------------------------------------------------------------------------------------------
14457 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
14458 ---------------------------------------------------------------------------------------------------------------
14459 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
14460
14461 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14462 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14463
14464 IF xla_accounting_cache_pkg.GetValueChar
14465 (p_source_code => 'LEDGER_CATEGORY_CODE'
14466 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
14467 AND l_bflow_method_code = 'PRIOR_ENTRY'
14468 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
14469 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
14470 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
14471 )
14472 THEN
14473 xla_ae_lines_pkg.BflowUpgEntry
14474 (p_business_method_code => l_bflow_method_code
14475 ,p_business_class_code => l_bflow_class_code
14476 ,p_balance_type => l_balance_type_code);
14477 ELSE
14478 NULL;
14479 XLA_AE_LINES_PKG.business_flow_validation(
14480 p_business_method_code => l_bflow_method_code
14481 ,p_business_class_code => l_bflow_class_code
14482 ,p_inherit_description_flag => l_inherit_desc_flag);
14483 END IF;
14484
14485 --
14486 -- call analytical criteria
14487 --
14488 -- Inherited Analytical Criteria for business flow method of Prior Entry.
14489 --
14490 -- call description
14491 --
14492
14493 xla_ae_lines_pkg.SetLineDescription(
14494 p_ae_header_id => l_ae_header_id
14495 ,p_description => Description_2 (
14496 p_application_id => p_application_id
14497 , p_ae_header_id => l_ae_header_id
14498 , p_source_3 => p_source_3
14499 , p_source_4 => p_source_4
14500 , p_source_5 => p_source_5
14501 , p_source_6 => p_source_6
14502 )
14503 );
14504
14505
14506 --
14507 -- call ADRs
14508 -- Bug 4922099
14509 --
14510 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14511 (NVL(l_actual_upg_option, 'N') = 'O') OR
14512 (NVL(l_enc_upg_option, 'N') = 'O')
14513 )
14514 THEN
14515 NULL;
14516 --
14517 --
14518
14519 --
14520 --
14521 END IF;
14522 --
14523 -- Bug 4922099
14524 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
14525 (NVL(l_enc_upg_option, 'N') = 'O')
14526 ) AND
14527 (l_bflow_method_code = 'PRIOR_ENTRY')
14528 )
14529 THEN
14530 IF
14531 --
14532 1 = 1
14533 --
14534 THEN
14535 xla_accounting_err_pkg.build_message
14536 (p_appli_s_name => 'XLA'
14537 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14538 ,p_token_1 => 'LINE_NUMBER'
14539 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
14540 ,p_token_2 => 'LINE_TYPE_NAME'
14541 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
14542 l_component_type
14543 ,l_component_code
14544 ,l_component_type_code
14545 ,l_component_appl_id
14546 ,l_amb_context_code
14547 ,l_entity_code
14548 ,l_event_class_code
14549 )
14550 ,p_token_3 => 'OWNER'
14551 ,p_value_3 => xla_lookups_pkg.get_meaning(
14552 p_lookup_type => 'XLA_OWNER_TYPE'
14553 ,p_lookup_code => l_component_type_code
14554 )
14555 ,p_token_4 => 'PRODUCT_NAME'
14556 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
14557 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
14558 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
14559 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
14560 ,p_ae_header_id => NULL
14561 );
14562
14563 IF (C_LEVEL_ERROR>= g_log_level) THEN
14564 trace
14565 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14566 ,p_level => C_LEVEL_ERROR
14567 ,p_module => l_log_module);
14568 END IF;
14569 END IF;
14570 END IF;
14571 --
14572 --
14573 ------------------------------------------------------------------------------------------------
14574 -- 4219869 Business Flow
14575 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
14576 -- Prior Entry. Currently, the following code is always generated.
14577 ------------------------------------------------------------------------------------------------
14578 -- No ValidateCurrentLine for business flow method of Prior Entry
14579
14580 ------------------------------------------------------------------------------------
14581 -- 4219869 Business Flow
14582 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
14583 ------------------------------------------------------------------------------------
14584 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14585
14586 ----------------------------------------------------------------------------------
14587 -- 4219869 Business Flow
14588 -- Update journal entry status -- Need to generate this within IF <condition>
14589 ----------------------------------------------------------------------------------
14590 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14591 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
14592 ,p_balance_type_code => l_balance_type_code
14593 );
14594
14595 -------------------------------------------------------------------------------------------
14596 -- 4262811 - Generate the Accrual Reversal lines
14597 -------------------------------------------------------------------------------------------
14598 BEGIN
14599 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
14600 (g_array_event(p_event_id).array_value_num('header_index'));
14601 IF l_acc_rev_flag IS NULL THEN
14602 l_acc_rev_flag := 'N';
14603 END IF;
14604 EXCEPTION
14605 WHEN OTHERS THEN
14606 l_acc_rev_flag := 'N';
14607 END;
14608 --
14609 IF (l_acc_rev_flag = 'Y') THEN
14610
14611 -- 4645092 ------------------------------------------------------------------------------
14612 -- To allow MPA report to determine if it should generate report process
14613 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
14614 ------------------------------------------------------------------------------------------
14615
14616 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
14617 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
14618
14619 --
14620 -- Update the line information that should be overwritten
14621 --
14622 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
14623 p_header_num => 1);
14624 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
14625
14626 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
14627
14628 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
14629 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
14630 END IF;
14631
14632 --
14633 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
14634 --
14635 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
14636 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
14637 ELSE
14638 ---------------------------------------------------------------------------------------------------
14639 -- 4262811a Switch Sign
14640 ---------------------------------------------------------------------------------------------------
14641 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
14642 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14643 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14644 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14645 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14646 -- 5132302
14647 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
14648 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14649
14650 END IF;
14651
14652 -- 4955764
14653 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14654 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
14655
14656
14657 XLA_AE_LINES_PKG.ValidateCurrentLine;
14658 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14659
14660 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14661 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
14662 ,p_balance_type_code => l_balance_type_code);
14663
14664 END IF;
14665
14666 -----------------------------------------------------------------------------------------
14667 -- 4262811 Multiperiod Accounting
14668 -----------------------------------------------------------------------------------------
14669 -- No MPA option is assigned.
14670
14671
14672 END IF;
14673 END IF;
14674 --
14675
14676 --
14677 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14678 trace
14679 (p_msg => 'END of AcctLineType_30'
14680 ,p_level => C_LEVEL_PROCEDURE
14681 ,p_module => l_log_module);
14682 END IF;
14683 --
14684 EXCEPTION
14685 WHEN xla_exceptions_pkg.application_exception THEN
14686 RAISE;
14687 WHEN OTHERS THEN
14688 xla_exceptions_pkg.raise_message
14689 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_30');
14690 END AcctLineType_30;
14691 --
14692
14693 ---------------------------------------
14694 --
14695 -- PRIVATE FUNCTION
14696 -- AcctLineType_31
14697 --
14698 ---------------------------------------
14699 PROCEDURE AcctLineType_31 (
14700 p_application_id IN NUMBER
14701 ,p_event_id IN NUMBER
14702 ,p_calculate_acctd_flag IN VARCHAR2
14703 ,p_calculate_g_l_flag IN VARCHAR2
14704 ,p_actual_flag IN OUT VARCHAR2
14705 ,p_balance_type_code OUT VARCHAR2
14706 ,p_gain_or_loss_ref OUT VARCHAR2
14707
14708 --Project Name
14709 , p_source_3 IN VARCHAR2
14710 --Task Name
14711 , p_source_4 IN VARCHAR2
14712 --Project Expenditure Organization Identifier
14713 , p_source_5 IN NUMBER
14714 --Expenditure Type
14715 , p_source_6 IN VARCHAR2
14716 --Document Type
14717 , p_source_9 IN VARCHAR2
14718 --Main Or Backing Code
14719 , p_source_13 IN VARCHAR2
14720 --Burden Record Identifier
14721 , p_source_14 IN VARCHAR2
14722 , p_source_14_meaning IN VARCHAR2
14723 --Burden Amount Display Method
14724 , p_source_15 IN VARCHAR2
14725 --Accounting Reversal Flag
14726 , p_source_16 IN VARCHAR2
14727 --Allocated to Application Identifier
14728 , p_source_17 IN NUMBER
14729 --Allocated to Distribution Type
14730 , p_source_18 IN VARCHAR2
14731 --Allocated to Entity Code
14732 , p_source_19 IN VARCHAR2
14733 --Allocated to First Distribution Identifier
14734 , p_source_20 IN NUMBER
14735 --Allocated to First System Transaction Identifier
14736 , p_source_21 IN NUMBER
14737 --Allocated to Second Distribution Identifier
14738 , p_source_22 IN VARCHAR2
14739 --PO Distribution Identifier
14740 , p_source_29 IN NUMBER
14741 --Line Type Name
14742 , p_source_30 IN VARCHAR2
14743 --Encumbrance Upgrade Credit Accounting Class
14744 , p_source_31 IN VARCHAR2
14745 --Encumbrance Upgrade Credit Account
14746 , p_source_32 IN NUMBER
14747 --Entered Amount
14748 , p_source_33 IN NUMBER
14749 --Currency Code
14750 , p_source_34 IN VARCHAR2
14751 --Accounted Amount
14752 , p_source_35 IN NUMBER
14753 --Encumbrance Upgrade Debit Accounting Class
14754 , p_source_36 IN VARCHAR2
14755 --Encumbrance Upgrade Debit Account
14756 , p_source_37 IN NUMBER
14757 --Use Encumbrances Upgrade Attributes Flag
14758 , p_source_38 IN VARCHAR2
14759 --Encumbrance Upgrade Credit Encumbrance Type
14760 , p_source_39 IN NUMBER
14761 --Encumbrance Upgrade Debit Encumbrance Type
14762 , p_source_40 IN NUMBER
14763 --Requisition Burden Applied to Application Identifier
14764 , p_source_41 IN NUMBER
14765 --Requisition Distribution Type
14766 , p_source_42 IN VARCHAR2
14767 --Requisition Burden Applied to Entity Code
14768 , p_source_43 IN VARCHAR2
14769 --Requisition Burden Applied to First Distribution Identifier
14770 , p_source_44 IN NUMBER
14771 --Requisition Burden Applied to First System Transaction Identifier
14772 , p_source_45 IN NUMBER
14773 --Requisition Burden Applied to Second Distribution Identifier
14774 , p_source_46 IN VARCHAR2
14775 )
14776 IS
14777
14778 l_component_type VARCHAR2(80);
14779 l_component_code VARCHAR2(30);
14780 l_component_type_code VARCHAR2(1);
14781 l_component_appl_id INTEGER;
14782 l_amb_context_code VARCHAR2(30);
14783 l_entity_code VARCHAR2(30);
14784 l_event_class_code VARCHAR2(30);
14785 l_ae_header_id NUMBER;
14786 l_event_type_code VARCHAR2(30);
14787 l_line_definition_code VARCHAR2(30);
14788 l_line_definition_owner_code VARCHAR2(1);
14789 --
14790 -- adr variables
14791 l_segment VARCHAR2(30);
14792 l_ccid NUMBER;
14793 l_adr_transaction_coa_id NUMBER;
14794 l_adr_accounting_coa_id NUMBER;
14795 l_adr_flexfield_segment_code VARCHAR2(30);
14796 l_adr_flex_value_set_id NUMBER;
14797 l_adr_value_type_code VARCHAR2(30);
14798 l_adr_value_combination_id NUMBER;
14799 l_adr_value_segment_code VARCHAR2(30);
14800
14801 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
14802 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
14803 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
14804 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
14805
14806 -- 4262811 Variables ------------------------------------------------------------------------------------------
14807 l_entered_amt_idx NUMBER;
14808 l_accted_amt_idx NUMBER;
14809 l_acc_rev_flag VARCHAR2(1);
14810 l_accrual_line_num NUMBER;
14811 l_tmp_amt NUMBER;
14812 l_acc_rev_natural_side_code VARCHAR2(1);
14813
14814 l_num_entries NUMBER;
14815 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
14816 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
14817 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
14818 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
14819 l_recog_line_1 NUMBER;
14820 l_recog_line_2 NUMBER;
14821
14822 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
14823 l_bflow_applied_to_amt NUMBER; -- 5132302
14824 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
14825
14826 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
14827
14828 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
14829 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
14830
14831 ---------------------------------------------------------------------------------------------------------------
14832
14833
14834 --
14835 -- bulk performance
14836 --
14837 l_balance_type_code VARCHAR2(1);
14838 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
14839 l_log_module VARCHAR2(240);
14840
14841 --
14842 -- Upgrade strategy
14843 --
14844 l_actual_upg_option VARCHAR2(1);
14845 l_enc_upg_option VARCHAR2(1);
14846
14847 --
14848 BEGIN
14849 --
14850 IF g_log_enabled THEN
14851 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_31';
14852 END IF;
14853 --
14854 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14855
14856 trace
14857 (p_msg => 'BEGIN of AcctLineType_31'
14858 ,p_level => C_LEVEL_PROCEDURE
14859 ,p_module => l_log_module);
14860
14861 END IF;
14862 --
14863 l_component_type := 'AMB_JLT';
14864 l_component_code := 'REINST_REQ_BURDEND_ENCFORRELDR';
14865 l_component_type_code := 'S';
14866 l_component_appl_id := 201;
14867 l_amb_context_code := 'DEFAULT';
14868 l_entity_code := 'RELEASE';
14869 l_event_class_code := 'RELEASE_BURDEN';
14870 l_event_type_code := 'RELEASE_BURDEN_ALL';
14871 l_line_definition_owner_code := 'S';
14872 l_line_definition_code := 'REL_BURDEN_ENC_ALL';
14873 --
14874 l_balance_type_code := 'E';
14875 l_segment := NULL;
14876 l_ccid := NULL;
14877 l_adr_transaction_coa_id := NULL;
14878 l_adr_accounting_coa_id := NULL;
14879 l_adr_flexfield_segment_code := NULL;
14880 l_adr_flex_value_set_id := NULL;
14881 l_adr_value_type_code := NULL;
14882 l_adr_value_combination_id := NULL;
14883 l_adr_value_segment_code := NULL;
14884
14885 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
14886 l_bflow_class_code := 'REQ_PA_BURDENED_ENC'; -- 4219869 Business Flow
14887 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
14888 l_budgetary_control_flag := 'Y';
14889
14890 l_bflow_applied_to_amt_idx := NULL; -- 5132302
14891 l_bflow_applied_to_amt := NULL; -- 5132302
14892 l_entered_amt_idx := NULL; -- 4262811
14893 l_accted_amt_idx := NULL; -- 4262811
14894 l_acc_rev_flag := NULL; -- 4262811
14895 l_accrual_line_num := NULL; -- 4262811
14896 l_tmp_amt := NULL; -- 4262811
14897 --
14898
14899 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
14900 l_balance_type_code <> 'B' THEN
14901 IF (NVL(
14902 xla_ae_sources_pkg.GetSystemSourceChar(
14903 p_source_code => 'XLA_EVENT_TYPE_CODE'
14904 , p_source_type_code => 'Y'
14905 , p_source_application_id => 602
14906 ),'
14907 ') = 'REL_BURDEN_UNRESERVED' OR
14908 NVL(
14909 xla_ae_sources_pkg.GetSystemSourceChar(
14910 p_source_code => 'XLA_EVENT_TYPE_CODE'
14911 , p_source_type_code => 'Y'
14912 , p_source_application_id => 602
14913 ),'
14914 ') = 'REL_BURDEN_INV_CANCELLED' OR
14915 NVL(
14916 xla_ae_sources_pkg.GetSystemSourceChar(
14917 p_source_code => 'XLA_EVENT_TYPE_CODE'
14918 , p_source_type_code => 'Y'
14919 , p_source_application_id => 602
14920 ),'
14921 ') = 'REL_BURDEN_REJECTED') AND
14922 NVL(p_source_13,'
14923 ') = 'B_REQ' AND
14924 (NVL(p_source_14,'
14925 ') = 'N' OR
14926 NVL(p_source_14,'
14927 ') = 'O') AND
14928 NVL(p_source_9,'
14929 ') = 'REQ' AND
14930 NVL(p_source_15,'
14931 ') = 'S'
14932 THEN
14933
14934 --
14935 XLA_AE_LINES_PKG.SetNewLine;
14936
14937 p_balance_type_code := l_balance_type_code;
14938 -- set the flag so later we will know whether the gain loss line needs to be created
14939
14940 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
14941 p_actual_flag :='A';
14942 END IF;
14943
14944 --
14945 -- bulk performance
14946 --
14947 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
14948 p_header_num => 0); -- 4262811
14949 --
14950 -- set accounting line options
14951 --
14952 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
14953 p_natural_side_code => 'D'
14954 , p_gain_or_loss_flag => 'N'
14955 , p_gl_transfer_mode_code => 'S'
14956 , p_acct_entry_type_code => 'E'
14957 , p_switch_side_flag => 'N'
14958 , p_merge_duplicate_code => 'N'
14959 );
14960 --
14961 l_acc_rev_natural_side_code := 'C'; -- 4262811
14962 --
14963 --
14964 -- set accounting line type info
14965 --
14966 xla_ae_lines_pkg.SetAcctLineType
14967 (p_component_type => l_component_type
14968 ,p_event_type_code => l_event_type_code
14969 ,p_line_definition_owner_code => l_line_definition_owner_code
14970 ,p_line_definition_code => l_line_definition_code
14971 ,p_accounting_line_code => l_component_code
14972 ,p_accounting_line_type_code => l_component_type_code
14973 ,p_accounting_line_appl_id => l_component_appl_id
14974 ,p_amb_context_code => l_amb_context_code
14975 ,p_entity_code => l_entity_code
14976 ,p_event_class_code => l_event_class_code);
14977 --
14978 -- set accounting class
14979 --
14980 xla_ae_lines_pkg.SetAcctClass(
14981 p_accounting_class_code => 'REQ_PA_BURDENED'
14982 , p_ae_header_id => l_ae_header_id
14983 );
14984
14985 --
14986 -- set rounding class
14987 --
14988 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
14989 'REQ_PA_BURDENED';
14990
14991 --
14992 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
14993 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
14994 --
14995 -- bulk performance
14996 --
14997 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
14998
14999 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
15000 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
15001
15002 -- 4955764
15003 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15004 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
15005
15006 -- 4458381 Public Sector Enh
15007
15008 --
15009 -- set accounting attributes for the line type
15010 --
15011 l_entered_amt_idx := 28;
15012 l_accted_amt_idx := 30;
15013 l_bflow_applied_to_amt_idx := NULL; -- 5132302
15014 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
15015 l_rec_acct_attrs.array_char_value(1) := p_source_16;
15016 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
15017 l_rec_acct_attrs.array_num_value(2) := p_source_17;
15018 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
15019 l_rec_acct_attrs.array_char_value(3) := p_source_18;
15020 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
15021 l_rec_acct_attrs.array_char_value(4) := p_source_19;
15022 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
15023 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
15024 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
15025 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
15026 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
15027 l_rec_acct_attrs.array_char_value(7) := p_source_22;
15028 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
15029 l_rec_acct_attrs.array_num_value(8) := p_source_41;
15030 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
15031 l_rec_acct_attrs.array_char_value(9) := p_source_42;
15032 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
15033 l_rec_acct_attrs.array_char_value(10) := p_source_43;
15034 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
15035 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_44);
15036 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
15037 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_45);
15038 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
15039 l_rec_acct_attrs.array_char_value(13) := p_source_46;
15040 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
15041 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_29);
15042 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
15043 l_rec_acct_attrs.array_char_value(15) := p_source_6;
15044 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
15045 l_rec_acct_attrs.array_char_value(16) := p_source_30;
15046 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
15047 l_rec_acct_attrs.array_char_value(17) := p_source_31;
15048 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
15049 l_rec_acct_attrs.array_num_value(18) := p_source_32;
15050 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
15051 l_rec_acct_attrs.array_num_value(19) := p_source_33;
15052 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
15053 l_rec_acct_attrs.array_char_value(20) := p_source_34;
15054 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
15055 l_rec_acct_attrs.array_num_value(21) := p_source_35;
15056 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
15057 l_rec_acct_attrs.array_char_value(22) := p_source_36;
15058 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
15059 l_rec_acct_attrs.array_num_value(23) := p_source_37;
15060 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
15061 l_rec_acct_attrs.array_num_value(24) := p_source_33;
15062 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
15063 l_rec_acct_attrs.array_char_value(25) := p_source_34;
15064 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
15065 l_rec_acct_attrs.array_num_value(26) := p_source_35;
15066 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
15067 l_rec_acct_attrs.array_char_value(27) := p_source_38;
15068 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
15069 l_rec_acct_attrs.array_num_value(28) := p_source_33;
15070 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
15071 l_rec_acct_attrs.array_char_value(29) := p_source_34;
15072 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
15073 l_rec_acct_attrs.array_num_value(30) := p_source_35;
15074 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
15075 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_29);
15076 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
15077 l_rec_acct_attrs.array_char_value(32) := p_source_6;
15078 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
15079 l_rec_acct_attrs.array_char_value(33) := p_source_30;
15080 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
15081 l_rec_acct_attrs.array_num_value(34) := p_source_39;
15082 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
15083 l_rec_acct_attrs.array_num_value(35) := p_source_40;
15084
15085 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
15086 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
15087
15088 ---------------------------------------------------------------------------------------------------------------
15089 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
15090 ---------------------------------------------------------------------------------------------------------------
15091 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
15092
15093 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15094 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15095
15096 IF xla_accounting_cache_pkg.GetValueChar
15097 (p_source_code => 'LEDGER_CATEGORY_CODE'
15098 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
15099 AND l_bflow_method_code = 'PRIOR_ENTRY'
15100 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
15101 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
15102 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
15103 )
15104 THEN
15105 xla_ae_lines_pkg.BflowUpgEntry
15106 (p_business_method_code => l_bflow_method_code
15107 ,p_business_class_code => l_bflow_class_code
15108 ,p_balance_type => l_balance_type_code);
15109 ELSE
15110 NULL;
15111 XLA_AE_LINES_PKG.business_flow_validation(
15112 p_business_method_code => l_bflow_method_code
15113 ,p_business_class_code => l_bflow_class_code
15114 ,p_inherit_description_flag => l_inherit_desc_flag);
15115 END IF;
15116
15117 --
15118 -- call analytical criteria
15119 --
15120 -- Inherited Analytical Criteria for business flow method of Prior Entry.
15121 --
15122 -- call description
15123 --
15124
15125 xla_ae_lines_pkg.SetLineDescription(
15126 p_ae_header_id => l_ae_header_id
15127 ,p_description => Description_2 (
15128 p_application_id => p_application_id
15129 , p_ae_header_id => l_ae_header_id
15130 , p_source_3 => p_source_3
15131 , p_source_4 => p_source_4
15132 , p_source_5 => p_source_5
15133 , p_source_6 => p_source_6
15134 )
15135 );
15136
15137
15138 --
15139 -- call ADRs
15140 -- Bug 4922099
15141 --
15142 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15143 (NVL(l_actual_upg_option, 'N') = 'O') OR
15144 (NVL(l_enc_upg_option, 'N') = 'O')
15145 )
15146 THEN
15147 NULL;
15148 --
15149 --
15150
15151 --
15152 --
15153 END IF;
15154 --
15155 -- Bug 4922099
15156 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
15157 (NVL(l_enc_upg_option, 'N') = 'O')
15158 ) AND
15159 (l_bflow_method_code = 'PRIOR_ENTRY')
15160 )
15161 THEN
15162 IF
15163 --
15164 1 = 1
15165 --
15166 THEN
15167 xla_accounting_err_pkg.build_message
15168 (p_appli_s_name => 'XLA'
15169 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15170 ,p_token_1 => 'LINE_NUMBER'
15171 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
15172 ,p_token_2 => 'LINE_TYPE_NAME'
15173 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
15174 l_component_type
15175 ,l_component_code
15176 ,l_component_type_code
15177 ,l_component_appl_id
15178 ,l_amb_context_code
15179 ,l_entity_code
15180 ,l_event_class_code
15181 )
15182 ,p_token_3 => 'OWNER'
15183 ,p_value_3 => xla_lookups_pkg.get_meaning(
15184 p_lookup_type => 'XLA_OWNER_TYPE'
15185 ,p_lookup_code => l_component_type_code
15186 )
15187 ,p_token_4 => 'PRODUCT_NAME'
15188 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
15189 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
15190 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
15191 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
15192 ,p_ae_header_id => NULL
15193 );
15194
15195 IF (C_LEVEL_ERROR>= g_log_level) THEN
15196 trace
15197 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15198 ,p_level => C_LEVEL_ERROR
15199 ,p_module => l_log_module);
15200 END IF;
15201 END IF;
15202 END IF;
15203 --
15204 --
15205 ------------------------------------------------------------------------------------------------
15206 -- 4219869 Business Flow
15207 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
15208 -- Prior Entry. Currently, the following code is always generated.
15209 ------------------------------------------------------------------------------------------------
15210 -- No ValidateCurrentLine for business flow method of Prior Entry
15211
15212 ------------------------------------------------------------------------------------
15213 -- 4219869 Business Flow
15214 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
15215 ------------------------------------------------------------------------------------
15216 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15217
15218 ----------------------------------------------------------------------------------
15219 -- 4219869 Business Flow
15220 -- Update journal entry status -- Need to generate this within IF <condition>
15221 ----------------------------------------------------------------------------------
15222 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15223 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
15224 ,p_balance_type_code => l_balance_type_code
15225 );
15226
15227 -------------------------------------------------------------------------------------------
15228 -- 4262811 - Generate the Accrual Reversal lines
15229 -------------------------------------------------------------------------------------------
15230 BEGIN
15231 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
15232 (g_array_event(p_event_id).array_value_num('header_index'));
15233 IF l_acc_rev_flag IS NULL THEN
15234 l_acc_rev_flag := 'N';
15235 END IF;
15236 EXCEPTION
15237 WHEN OTHERS THEN
15238 l_acc_rev_flag := 'N';
15239 END;
15240 --
15241 IF (l_acc_rev_flag = 'Y') THEN
15242
15243 -- 4645092 ------------------------------------------------------------------------------
15244 -- To allow MPA report to determine if it should generate report process
15245 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
15246 ------------------------------------------------------------------------------------------
15247
15248 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
15249 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
15250
15251 --
15252 -- Update the line information that should be overwritten
15253 --
15254 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
15255 p_header_num => 1);
15256 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
15257
15258 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
15259
15260 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
15261 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
15262 END IF;
15263
15264 --
15265 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
15266 --
15267 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
15268 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
15269 ELSE
15270 ---------------------------------------------------------------------------------------------------
15271 -- 4262811a Switch Sign
15272 ---------------------------------------------------------------------------------------------------
15273 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
15274 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15275 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15276 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15277 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15278 -- 5132302
15279 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
15280 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15281
15282 END IF;
15283
15284 -- 4955764
15285 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15286 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
15287
15288
15289 XLA_AE_LINES_PKG.ValidateCurrentLine;
15290 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15291
15292 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15293 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
15294 ,p_balance_type_code => l_balance_type_code);
15295
15296 END IF;
15297
15298 -----------------------------------------------------------------------------------------
15299 -- 4262811 Multiperiod Accounting
15300 -----------------------------------------------------------------------------------------
15301 -- No MPA option is assigned.
15302
15303
15304 END IF;
15305 END IF;
15306 --
15307
15308 --
15309 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15310 trace
15311 (p_msg => 'END of AcctLineType_31'
15312 ,p_level => C_LEVEL_PROCEDURE
15313 ,p_module => l_log_module);
15314 END IF;
15315 --
15316 EXCEPTION
15317 WHEN xla_exceptions_pkg.application_exception THEN
15318 RAISE;
15319 WHEN OTHERS THEN
15320 xla_exceptions_pkg.raise_message
15321 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_31');
15322 END AcctLineType_31;
15323 --
15324
15325 ---------------------------------------
15326 --
15327 -- PRIVATE FUNCTION
15328 -- AcctLineType_32
15329 --
15330 ---------------------------------------
15331 PROCEDURE AcctLineType_32 (
15332 p_application_id IN NUMBER
15333 ,p_event_id IN NUMBER
15334 ,p_calculate_acctd_flag IN VARCHAR2
15335 ,p_calculate_g_l_flag IN VARCHAR2
15336 ,p_actual_flag IN OUT VARCHAR2
15337 ,p_balance_type_code OUT VARCHAR2
15338 ,p_gain_or_loss_ref OUT VARCHAR2
15339
15340 --Project Name
15341 , p_source_3 IN VARCHAR2
15342 --Task Name
15343 , p_source_4 IN VARCHAR2
15344 --Project Expenditure Organization Identifier
15345 , p_source_5 IN NUMBER
15346 --Expenditure Type
15347 , p_source_6 IN VARCHAR2
15348 --Document Type
15349 , p_source_9 IN VARCHAR2
15350 --Main Or Backing Code
15351 , p_source_13 IN VARCHAR2
15352 --Burden Record Identifier
15353 , p_source_14 IN VARCHAR2
15354 , p_source_14_meaning IN VARCHAR2
15355 --Burden Amount Display Method
15356 , p_source_15 IN VARCHAR2
15357 --Accounting Reversal Flag
15358 , p_source_16 IN VARCHAR2
15359 --Allocated to Application Identifier
15360 , p_source_17 IN NUMBER
15361 --Allocated to Distribution Type
15362 , p_source_18 IN VARCHAR2
15363 --Allocated to Entity Code
15364 , p_source_19 IN VARCHAR2
15365 --Allocated to First Distribution Identifier
15366 , p_source_20 IN NUMBER
15367 --Allocated to First System Transaction Identifier
15368 , p_source_21 IN NUMBER
15369 --Allocated to Second Distribution Identifier
15370 , p_source_22 IN VARCHAR2
15371 --PO Distribution Identifier
15372 , p_source_29 IN NUMBER
15373 --Line Type Name
15374 , p_source_30 IN VARCHAR2
15375 --Encumbrance Upgrade Credit Accounting Class
15376 , p_source_31 IN VARCHAR2
15377 --Encumbrance Upgrade Credit Account
15378 , p_source_32 IN NUMBER
15379 --Entered Amount
15380 , p_source_33 IN NUMBER
15381 --Currency Code
15382 , p_source_34 IN VARCHAR2
15383 --Accounted Amount
15384 , p_source_35 IN NUMBER
15385 --Encumbrance Upgrade Debit Accounting Class
15386 , p_source_36 IN VARCHAR2
15387 --Encumbrance Upgrade Debit Account
15388 , p_source_37 IN NUMBER
15389 --Use Encumbrances Upgrade Attributes Flag
15390 , p_source_38 IN VARCHAR2
15391 --Encumbrance Upgrade Credit Encumbrance Type
15392 , p_source_39 IN NUMBER
15393 --Encumbrance Upgrade Debit Encumbrance Type
15394 , p_source_40 IN NUMBER
15395 --Requisition Burden Applied to Application Identifier
15396 , p_source_41 IN NUMBER
15397 --Requisition Distribution Type
15398 , p_source_42 IN VARCHAR2
15399 --Requisition Burden Applied to Entity Code
15400 , p_source_43 IN VARCHAR2
15401 --Requisition Burden Applied to First Distribution Identifier
15402 , p_source_44 IN NUMBER
15403 --Requisition Burden Applied to First System Transaction Identifier
15404 , p_source_45 IN NUMBER
15405 --Requisition Burden Applied to Second Distribution Identifier
15406 , p_source_46 IN VARCHAR2
15407 )
15408 IS
15409
15410 l_component_type VARCHAR2(80);
15411 l_component_code VARCHAR2(30);
15412 l_component_type_code VARCHAR2(1);
15413 l_component_appl_id INTEGER;
15414 l_amb_context_code VARCHAR2(30);
15415 l_entity_code VARCHAR2(30);
15416 l_event_class_code VARCHAR2(30);
15417 l_ae_header_id NUMBER;
15418 l_event_type_code VARCHAR2(30);
15419 l_line_definition_code VARCHAR2(30);
15420 l_line_definition_owner_code VARCHAR2(1);
15421 --
15422 -- adr variables
15423 l_segment VARCHAR2(30);
15424 l_ccid NUMBER;
15425 l_adr_transaction_coa_id NUMBER;
15426 l_adr_accounting_coa_id NUMBER;
15427 l_adr_flexfield_segment_code VARCHAR2(30);
15428 l_adr_flex_value_set_id NUMBER;
15429 l_adr_value_type_code VARCHAR2(30);
15430 l_adr_value_combination_id NUMBER;
15431 l_adr_value_segment_code VARCHAR2(30);
15432
15433 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
15434 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
15435 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
15436 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
15437
15438 -- 4262811 Variables ------------------------------------------------------------------------------------------
15439 l_entered_amt_idx NUMBER;
15440 l_accted_amt_idx NUMBER;
15441 l_acc_rev_flag VARCHAR2(1);
15442 l_accrual_line_num NUMBER;
15443 l_tmp_amt NUMBER;
15444 l_acc_rev_natural_side_code VARCHAR2(1);
15445
15446 l_num_entries NUMBER;
15447 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
15448 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
15449 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
15450 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
15451 l_recog_line_1 NUMBER;
15452 l_recog_line_2 NUMBER;
15453
15454 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
15455 l_bflow_applied_to_amt NUMBER; -- 5132302
15456 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
15457
15458 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
15459
15460 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
15461 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
15462
15463 ---------------------------------------------------------------------------------------------------------------
15464
15465
15466 --
15467 -- bulk performance
15468 --
15469 l_balance_type_code VARCHAR2(1);
15470 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
15471 l_log_module VARCHAR2(240);
15472
15473 --
15474 -- Upgrade strategy
15475 --
15476 l_actual_upg_option VARCHAR2(1);
15477 l_enc_upg_option VARCHAR2(1);
15478
15479 --
15480 BEGIN
15481 --
15482 IF g_log_enabled THEN
15483 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_32';
15484 END IF;
15485 --
15486 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15487
15488 trace
15489 (p_msg => 'BEGIN of AcctLineType_32'
15490 ,p_level => C_LEVEL_PROCEDURE
15491 ,p_module => l_log_module);
15492
15493 END IF;
15494 --
15495 l_component_type := 'AMB_JLT';
15496 l_component_code := 'REINST_REQ_BURDEN_ENCFORRELCR';
15497 l_component_type_code := 'S';
15498 l_component_appl_id := 201;
15499 l_amb_context_code := 'DEFAULT';
15500 l_entity_code := 'RELEASE';
15501 l_event_class_code := 'RELEASE_BURDEN';
15502 l_event_type_code := 'RELEASE_BURDEN_ALL';
15503 l_line_definition_owner_code := 'S';
15504 l_line_definition_code := 'REL_BURDEN_ENC_ALL';
15505 --
15506 l_balance_type_code := 'E';
15507 l_segment := NULL;
15508 l_ccid := NULL;
15509 l_adr_transaction_coa_id := NULL;
15510 l_adr_accounting_coa_id := NULL;
15511 l_adr_flexfield_segment_code := NULL;
15512 l_adr_flex_value_set_id := NULL;
15513 l_adr_value_type_code := NULL;
15514 l_adr_value_combination_id := NULL;
15515 l_adr_value_segment_code := NULL;
15516
15517 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
15518 l_bflow_class_code := 'REQ_PA_BURDEN_ENC'; -- 4219869 Business Flow
15519 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
15520 l_budgetary_control_flag := 'Y';
15521
15522 l_bflow_applied_to_amt_idx := NULL; -- 5132302
15523 l_bflow_applied_to_amt := NULL; -- 5132302
15524 l_entered_amt_idx := NULL; -- 4262811
15525 l_accted_amt_idx := NULL; -- 4262811
15526 l_acc_rev_flag := NULL; -- 4262811
15527 l_accrual_line_num := NULL; -- 4262811
15528 l_tmp_amt := NULL; -- 4262811
15529 --
15530
15531 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
15532 l_balance_type_code <> 'B' THEN
15533 IF (NVL(
15534 xla_ae_sources_pkg.GetSystemSourceChar(
15535 p_source_code => 'XLA_EVENT_TYPE_CODE'
15536 , p_source_type_code => 'Y'
15537 , p_source_application_id => 602
15538 ),'
15539 ') = 'REL_BURDEN_CANCELLED' OR
15540 NVL(
15541 xla_ae_sources_pkg.GetSystemSourceChar(
15542 p_source_code => 'XLA_EVENT_TYPE_CODE'
15543 , p_source_type_code => 'Y'
15544 , p_source_application_id => 602
15545 ),'
15546 ') = 'REL_BURDEN_CR_MEMO_CANCELLED') AND
15547 NVL(p_source_13,'
15548 ') = 'B_REQ' AND
15549 NVL(p_source_14,'
15550 ') = 'O' AND
15551 NVL(p_source_9,'
15552 ') = 'REQ' AND
15553 NVL(p_source_15,'
15554 ') = 'D'
15555 THEN
15556
15557 --
15558 XLA_AE_LINES_PKG.SetNewLine;
15559
15560 p_balance_type_code := l_balance_type_code;
15561 -- set the flag so later we will know whether the gain loss line needs to be created
15562
15563 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
15564 p_actual_flag :='A';
15565 END IF;
15566
15567 --
15568 -- bulk performance
15569 --
15570 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
15571 p_header_num => 0); -- 4262811
15572 --
15573 -- set accounting line options
15574 --
15575 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
15576 p_natural_side_code => 'C'
15577 , p_gain_or_loss_flag => 'N'
15578 , p_gl_transfer_mode_code => 'S'
15579 , p_acct_entry_type_code => 'E'
15580 , p_switch_side_flag => 'N'
15581 , p_merge_duplicate_code => 'N'
15582 );
15583 --
15584 l_acc_rev_natural_side_code := 'D'; -- 4262811
15585 --
15586 --
15587 -- set accounting line type info
15588 --
15589 xla_ae_lines_pkg.SetAcctLineType
15590 (p_component_type => l_component_type
15591 ,p_event_type_code => l_event_type_code
15592 ,p_line_definition_owner_code => l_line_definition_owner_code
15593 ,p_line_definition_code => l_line_definition_code
15594 ,p_accounting_line_code => l_component_code
15595 ,p_accounting_line_type_code => l_component_type_code
15596 ,p_accounting_line_appl_id => l_component_appl_id
15597 ,p_amb_context_code => l_amb_context_code
15598 ,p_entity_code => l_entity_code
15599 ,p_event_class_code => l_event_class_code);
15600 --
15601 -- set accounting class
15602 --
15603 xla_ae_lines_pkg.SetAcctClass(
15604 p_accounting_class_code => 'REQ_PA_BURDEN'
15605 , p_ae_header_id => l_ae_header_id
15606 );
15607
15608 --
15609 -- set rounding class
15610 --
15611 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
15612 'REQ_PA_BURDEN';
15613
15614 --
15615 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
15616 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
15617 --
15618 -- bulk performance
15619 --
15620 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
15621
15622 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
15623 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
15624
15625 -- 4955764
15626 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15627 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
15628
15629 -- 4458381 Public Sector Enh
15630
15631 --
15632 -- set accounting attributes for the line type
15633 --
15634 l_entered_amt_idx := 28;
15635 l_accted_amt_idx := 30;
15636 l_bflow_applied_to_amt_idx := NULL; -- 5132302
15637 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
15638 l_rec_acct_attrs.array_char_value(1) := p_source_16;
15639 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
15640 l_rec_acct_attrs.array_num_value(2) := p_source_17;
15641 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
15642 l_rec_acct_attrs.array_char_value(3) := p_source_18;
15643 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
15644 l_rec_acct_attrs.array_char_value(4) := p_source_19;
15645 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
15646 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
15647 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
15648 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
15649 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
15650 l_rec_acct_attrs.array_char_value(7) := p_source_22;
15651 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
15652 l_rec_acct_attrs.array_num_value(8) := p_source_41;
15653 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
15654 l_rec_acct_attrs.array_char_value(9) := p_source_42;
15655 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
15656 l_rec_acct_attrs.array_char_value(10) := p_source_43;
15657 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
15658 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_44);
15659 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
15660 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_45);
15661 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
15662 l_rec_acct_attrs.array_char_value(13) := p_source_46;
15663 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
15664 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_29);
15665 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
15666 l_rec_acct_attrs.array_char_value(15) := p_source_6;
15667 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
15668 l_rec_acct_attrs.array_char_value(16) := p_source_30;
15669 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
15670 l_rec_acct_attrs.array_char_value(17) := p_source_31;
15671 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
15672 l_rec_acct_attrs.array_num_value(18) := p_source_32;
15673 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
15674 l_rec_acct_attrs.array_num_value(19) := p_source_33;
15675 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
15676 l_rec_acct_attrs.array_char_value(20) := p_source_34;
15677 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
15678 l_rec_acct_attrs.array_num_value(21) := p_source_35;
15679 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
15680 l_rec_acct_attrs.array_char_value(22) := p_source_36;
15681 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
15682 l_rec_acct_attrs.array_num_value(23) := p_source_37;
15683 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
15684 l_rec_acct_attrs.array_num_value(24) := p_source_33;
15685 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
15686 l_rec_acct_attrs.array_char_value(25) := p_source_34;
15687 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
15688 l_rec_acct_attrs.array_num_value(26) := p_source_35;
15689 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
15690 l_rec_acct_attrs.array_char_value(27) := p_source_38;
15691 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
15692 l_rec_acct_attrs.array_num_value(28) := p_source_33;
15693 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
15694 l_rec_acct_attrs.array_char_value(29) := p_source_34;
15695 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
15696 l_rec_acct_attrs.array_num_value(30) := p_source_35;
15697 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
15698 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_29);
15699 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
15700 l_rec_acct_attrs.array_char_value(32) := p_source_6;
15701 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
15702 l_rec_acct_attrs.array_char_value(33) := p_source_30;
15703 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
15704 l_rec_acct_attrs.array_num_value(34) := p_source_39;
15705 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
15706 l_rec_acct_attrs.array_num_value(35) := p_source_40;
15707
15708 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
15709 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
15710
15711 ---------------------------------------------------------------------------------------------------------------
15712 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
15713 ---------------------------------------------------------------------------------------------------------------
15714 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
15715
15716 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15717 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15718
15719 IF xla_accounting_cache_pkg.GetValueChar
15720 (p_source_code => 'LEDGER_CATEGORY_CODE'
15721 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
15722 AND l_bflow_method_code = 'PRIOR_ENTRY'
15723 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
15724 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
15725 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
15726 )
15727 THEN
15728 xla_ae_lines_pkg.BflowUpgEntry
15729 (p_business_method_code => l_bflow_method_code
15730 ,p_business_class_code => l_bflow_class_code
15731 ,p_balance_type => l_balance_type_code);
15732 ELSE
15733 NULL;
15734 XLA_AE_LINES_PKG.business_flow_validation(
15735 p_business_method_code => l_bflow_method_code
15736 ,p_business_class_code => l_bflow_class_code
15737 ,p_inherit_description_flag => l_inherit_desc_flag);
15738 END IF;
15739
15740 --
15741 -- call analytical criteria
15742 --
15743 -- Inherited Analytical Criteria for business flow method of Prior Entry.
15744 --
15745 -- call description
15746 --
15747
15748 xla_ae_lines_pkg.SetLineDescription(
15749 p_ae_header_id => l_ae_header_id
15750 ,p_description => Description_2 (
15751 p_application_id => p_application_id
15752 , p_ae_header_id => l_ae_header_id
15753 , p_source_3 => p_source_3
15754 , p_source_4 => p_source_4
15755 , p_source_5 => p_source_5
15756 , p_source_6 => p_source_6
15757 )
15758 );
15759
15760
15761 --
15762 -- call ADRs
15763 -- Bug 4922099
15764 --
15765 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15766 (NVL(l_actual_upg_option, 'N') = 'O') OR
15767 (NVL(l_enc_upg_option, 'N') = 'O')
15768 )
15769 THEN
15770 NULL;
15771 --
15772 --
15773
15774 --
15775 --
15776 END IF;
15777 --
15778 -- Bug 4922099
15779 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
15780 (NVL(l_enc_upg_option, 'N') = 'O')
15781 ) AND
15782 (l_bflow_method_code = 'PRIOR_ENTRY')
15783 )
15784 THEN
15785 IF
15786 --
15787 1 = 1
15788 --
15789 THEN
15790 xla_accounting_err_pkg.build_message
15791 (p_appli_s_name => 'XLA'
15792 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15793 ,p_token_1 => 'LINE_NUMBER'
15794 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
15795 ,p_token_2 => 'LINE_TYPE_NAME'
15796 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
15797 l_component_type
15798 ,l_component_code
15799 ,l_component_type_code
15800 ,l_component_appl_id
15801 ,l_amb_context_code
15802 ,l_entity_code
15803 ,l_event_class_code
15804 )
15805 ,p_token_3 => 'OWNER'
15806 ,p_value_3 => xla_lookups_pkg.get_meaning(
15807 p_lookup_type => 'XLA_OWNER_TYPE'
15808 ,p_lookup_code => l_component_type_code
15809 )
15810 ,p_token_4 => 'PRODUCT_NAME'
15811 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
15812 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
15813 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
15814 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
15815 ,p_ae_header_id => NULL
15816 );
15817
15818 IF (C_LEVEL_ERROR>= g_log_level) THEN
15819 trace
15820 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15821 ,p_level => C_LEVEL_ERROR
15822 ,p_module => l_log_module);
15823 END IF;
15824 END IF;
15825 END IF;
15826 --
15827 --
15828 ------------------------------------------------------------------------------------------------
15829 -- 4219869 Business Flow
15830 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
15831 -- Prior Entry. Currently, the following code is always generated.
15832 ------------------------------------------------------------------------------------------------
15833 -- No ValidateCurrentLine for business flow method of Prior Entry
15834
15835 ------------------------------------------------------------------------------------
15836 -- 4219869 Business Flow
15837 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
15838 ------------------------------------------------------------------------------------
15839 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15840
15841 ----------------------------------------------------------------------------------
15842 -- 4219869 Business Flow
15843 -- Update journal entry status -- Need to generate this within IF <condition>
15844 ----------------------------------------------------------------------------------
15845 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15846 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
15847 ,p_balance_type_code => l_balance_type_code
15848 );
15849
15850 -------------------------------------------------------------------------------------------
15851 -- 4262811 - Generate the Accrual Reversal lines
15852 -------------------------------------------------------------------------------------------
15853 BEGIN
15854 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
15855 (g_array_event(p_event_id).array_value_num('header_index'));
15856 IF l_acc_rev_flag IS NULL THEN
15857 l_acc_rev_flag := 'N';
15858 END IF;
15859 EXCEPTION
15860 WHEN OTHERS THEN
15861 l_acc_rev_flag := 'N';
15862 END;
15863 --
15864 IF (l_acc_rev_flag = 'Y') THEN
15865
15866 -- 4645092 ------------------------------------------------------------------------------
15867 -- To allow MPA report to determine if it should generate report process
15868 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
15869 ------------------------------------------------------------------------------------------
15870
15871 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
15872 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
15873
15874 --
15875 -- Update the line information that should be overwritten
15876 --
15877 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
15878 p_header_num => 1);
15879 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
15880
15881 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
15882
15883 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
15884 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
15885 END IF;
15886
15887 --
15888 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
15889 --
15890 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
15891 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
15892 ELSE
15893 ---------------------------------------------------------------------------------------------------
15894 -- 4262811a Switch Sign
15895 ---------------------------------------------------------------------------------------------------
15896 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
15897 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15898 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15899 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15900 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15901 -- 5132302
15902 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
15903 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15904
15905 END IF;
15906
15907 -- 4955764
15908 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15909 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
15910
15911
15912 XLA_AE_LINES_PKG.ValidateCurrentLine;
15913 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15914
15915 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15916 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
15917 ,p_balance_type_code => l_balance_type_code);
15918
15919 END IF;
15920
15921 -----------------------------------------------------------------------------------------
15922 -- 4262811 Multiperiod Accounting
15923 -----------------------------------------------------------------------------------------
15924 -- No MPA option is assigned.
15925
15926
15927 END IF;
15928 END IF;
15929 --
15930
15931 --
15932 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15933 trace
15934 (p_msg => 'END of AcctLineType_32'
15935 ,p_level => C_LEVEL_PROCEDURE
15936 ,p_module => l_log_module);
15937 END IF;
15938 --
15939 EXCEPTION
15940 WHEN xla_exceptions_pkg.application_exception THEN
15941 RAISE;
15942 WHEN OTHERS THEN
15943 xla_exceptions_pkg.raise_message
15944 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_32');
15945 END AcctLineType_32;
15946 --
15947
15948 ---------------------------------------
15949 --
15950 -- PRIVATE FUNCTION
15951 -- AcctLineType_33
15952 --
15953 ---------------------------------------
15954 PROCEDURE AcctLineType_33 (
15955 p_application_id IN NUMBER
15956 ,p_event_id IN NUMBER
15957 ,p_calculate_acctd_flag IN VARCHAR2
15958 ,p_calculate_g_l_flag IN VARCHAR2
15959 ,p_actual_flag IN OUT VARCHAR2
15960 ,p_balance_type_code OUT VARCHAR2
15961 ,p_gain_or_loss_ref OUT VARCHAR2
15962
15963 --Project Name
15964 , p_source_3 IN VARCHAR2
15965 --Task Name
15966 , p_source_4 IN VARCHAR2
15967 --Project Expenditure Organization Identifier
15968 , p_source_5 IN NUMBER
15969 --Expenditure Type
15970 , p_source_6 IN VARCHAR2
15971 --Document Type
15972 , p_source_9 IN VARCHAR2
15973 --Main Or Backing Code
15974 , p_source_13 IN VARCHAR2
15975 --Burden Record Identifier
15976 , p_source_14 IN VARCHAR2
15977 , p_source_14_meaning IN VARCHAR2
15978 --Burden Amount Display Method
15979 , p_source_15 IN VARCHAR2
15980 --Accounting Reversal Flag
15981 , p_source_16 IN VARCHAR2
15982 --Allocated to Application Identifier
15983 , p_source_17 IN NUMBER
15984 --Allocated to Distribution Type
15985 , p_source_18 IN VARCHAR2
15986 --Allocated to Entity Code
15987 , p_source_19 IN VARCHAR2
15988 --Allocated to First Distribution Identifier
15989 , p_source_20 IN NUMBER
15990 --Allocated to First System Transaction Identifier
15991 , p_source_21 IN NUMBER
15992 --Allocated to Second Distribution Identifier
15993 , p_source_22 IN VARCHAR2
15994 --PO Distribution Identifier
15995 , p_source_29 IN NUMBER
15996 --Line Type Name
15997 , p_source_30 IN VARCHAR2
15998 --Encumbrance Upgrade Credit Accounting Class
15999 , p_source_31 IN VARCHAR2
16000 --Encumbrance Upgrade Credit Account
16001 , p_source_32 IN NUMBER
16002 --Entered Amount
16003 , p_source_33 IN NUMBER
16004 --Currency Code
16005 , p_source_34 IN VARCHAR2
16006 --Accounted Amount
16007 , p_source_35 IN NUMBER
16008 --Encumbrance Upgrade Debit Accounting Class
16009 , p_source_36 IN VARCHAR2
16010 --Encumbrance Upgrade Debit Account
16011 , p_source_37 IN NUMBER
16012 --Use Encumbrances Upgrade Attributes Flag
16013 , p_source_38 IN VARCHAR2
16014 --Encumbrance Upgrade Credit Encumbrance Type
16015 , p_source_39 IN NUMBER
16016 --Encumbrance Upgrade Debit Encumbrance Type
16017 , p_source_40 IN NUMBER
16018 --Requisition Burden Applied to Application Identifier
16019 , p_source_41 IN NUMBER
16020 --Requisition Distribution Type
16021 , p_source_42 IN VARCHAR2
16022 --Requisition Burden Applied to Entity Code
16023 , p_source_43 IN VARCHAR2
16024 --Requisition Burden Applied to First Distribution Identifier
16025 , p_source_44 IN NUMBER
16026 --Requisition Burden Applied to First System Transaction Identifier
16027 , p_source_45 IN NUMBER
16028 --Requisition Burden Applied to Second Distribution Identifier
16029 , p_source_46 IN VARCHAR2
16030 )
16031 IS
16032
16033 l_component_type VARCHAR2(80);
16034 l_component_code VARCHAR2(30);
16035 l_component_type_code VARCHAR2(1);
16036 l_component_appl_id INTEGER;
16037 l_amb_context_code VARCHAR2(30);
16038 l_entity_code VARCHAR2(30);
16039 l_event_class_code VARCHAR2(30);
16040 l_ae_header_id NUMBER;
16041 l_event_type_code VARCHAR2(30);
16042 l_line_definition_code VARCHAR2(30);
16043 l_line_definition_owner_code VARCHAR2(1);
16044 --
16045 -- adr variables
16046 l_segment VARCHAR2(30);
16047 l_ccid NUMBER;
16048 l_adr_transaction_coa_id NUMBER;
16049 l_adr_accounting_coa_id NUMBER;
16050 l_adr_flexfield_segment_code VARCHAR2(30);
16051 l_adr_flex_value_set_id NUMBER;
16052 l_adr_value_type_code VARCHAR2(30);
16053 l_adr_value_combination_id NUMBER;
16054 l_adr_value_segment_code VARCHAR2(30);
16055
16056 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
16057 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
16058 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
16059 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
16060
16061 -- 4262811 Variables ------------------------------------------------------------------------------------------
16062 l_entered_amt_idx NUMBER;
16063 l_accted_amt_idx NUMBER;
16064 l_acc_rev_flag VARCHAR2(1);
16065 l_accrual_line_num NUMBER;
16066 l_tmp_amt NUMBER;
16067 l_acc_rev_natural_side_code VARCHAR2(1);
16068
16069 l_num_entries NUMBER;
16070 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
16071 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
16072 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
16073 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
16074 l_recog_line_1 NUMBER;
16075 l_recog_line_2 NUMBER;
16076
16077 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
16078 l_bflow_applied_to_amt NUMBER; -- 5132302
16079 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
16080
16081 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
16082
16083 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
16084 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
16085
16086 ---------------------------------------------------------------------------------------------------------------
16087
16088
16089 --
16090 -- bulk performance
16091 --
16092 l_balance_type_code VARCHAR2(1);
16093 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
16094 l_log_module VARCHAR2(240);
16095
16096 --
16097 -- Upgrade strategy
16098 --
16099 l_actual_upg_option VARCHAR2(1);
16100 l_enc_upg_option VARCHAR2(1);
16101
16102 --
16103 BEGIN
16104 --
16105 IF g_log_enabled THEN
16106 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_33';
16107 END IF;
16108 --
16109 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16110
16111 trace
16112 (p_msg => 'BEGIN of AcctLineType_33'
16113 ,p_level => C_LEVEL_PROCEDURE
16114 ,p_module => l_log_module);
16115
16116 END IF;
16117 --
16118 l_component_type := 'AMB_JLT';
16119 l_component_code := 'REINST_REQ_BURDEN_ENCFORRELDR';
16120 l_component_type_code := 'S';
16121 l_component_appl_id := 201;
16122 l_amb_context_code := 'DEFAULT';
16123 l_entity_code := 'RELEASE';
16124 l_event_class_code := 'RELEASE_BURDEN';
16125 l_event_type_code := 'RELEASE_BURDEN_ALL';
16126 l_line_definition_owner_code := 'S';
16127 l_line_definition_code := 'REL_BURDEN_ENC_ALL';
16128 --
16129 l_balance_type_code := 'E';
16130 l_segment := NULL;
16131 l_ccid := NULL;
16132 l_adr_transaction_coa_id := NULL;
16133 l_adr_accounting_coa_id := NULL;
16134 l_adr_flexfield_segment_code := NULL;
16135 l_adr_flex_value_set_id := NULL;
16136 l_adr_value_type_code := NULL;
16137 l_adr_value_combination_id := NULL;
16138 l_adr_value_segment_code := NULL;
16139
16140 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
16141 l_bflow_class_code := 'REQ_PA_BURDEN_ENC'; -- 4219869 Business Flow
16142 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
16143 l_budgetary_control_flag := 'Y';
16144
16145 l_bflow_applied_to_amt_idx := NULL; -- 5132302
16146 l_bflow_applied_to_amt := NULL; -- 5132302
16147 l_entered_amt_idx := NULL; -- 4262811
16148 l_accted_amt_idx := NULL; -- 4262811
16149 l_acc_rev_flag := NULL; -- 4262811
16150 l_accrual_line_num := NULL; -- 4262811
16151 l_tmp_amt := NULL; -- 4262811
16152 --
16153
16154 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
16155 l_balance_type_code <> 'B' THEN
16156 IF (NVL(
16157 xla_ae_sources_pkg.GetSystemSourceChar(
16158 p_source_code => 'XLA_EVENT_TYPE_CODE'
16159 , p_source_type_code => 'Y'
16160 , p_source_application_id => 602
16161 ),'
16162 ') = 'REL_BURDEN_UNRESERVED' OR
16163 NVL(
16164 xla_ae_sources_pkg.GetSystemSourceChar(
16165 p_source_code => 'XLA_EVENT_TYPE_CODE'
16166 , p_source_type_code => 'Y'
16167 , p_source_application_id => 602
16168 ),'
16169 ') = 'REL_BURDEN_INV_CANCELLED' OR
16170 NVL(
16171 xla_ae_sources_pkg.GetSystemSourceChar(
16172 p_source_code => 'XLA_EVENT_TYPE_CODE'
16173 , p_source_type_code => 'Y'
16174 , p_source_application_id => 602
16175 ),'
16176 ') = 'REL_BURDEN_REJECTED') AND
16177 NVL(p_source_13,'
16178 ') = 'B_REQ' AND
16179 NVL(p_source_14,'
16180 ') = 'O' AND
16181 NVL(p_source_9,'
16182 ') = 'REQ' AND
16183 NVL(p_source_15,'
16184 ') = 'D'
16185 THEN
16186
16187 --
16188 XLA_AE_LINES_PKG.SetNewLine;
16189
16190 p_balance_type_code := l_balance_type_code;
16191 -- set the flag so later we will know whether the gain loss line needs to be created
16192
16193 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
16194 p_actual_flag :='A';
16195 END IF;
16196
16197 --
16198 -- bulk performance
16199 --
16200 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
16201 p_header_num => 0); -- 4262811
16202 --
16203 -- set accounting line options
16204 --
16205 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
16206 p_natural_side_code => 'D'
16207 , p_gain_or_loss_flag => 'N'
16208 , p_gl_transfer_mode_code => 'S'
16209 , p_acct_entry_type_code => 'E'
16210 , p_switch_side_flag => 'N'
16211 , p_merge_duplicate_code => 'N'
16212 );
16213 --
16214 l_acc_rev_natural_side_code := 'C'; -- 4262811
16215 --
16216 --
16217 -- set accounting line type info
16218 --
16219 xla_ae_lines_pkg.SetAcctLineType
16220 (p_component_type => l_component_type
16221 ,p_event_type_code => l_event_type_code
16222 ,p_line_definition_owner_code => l_line_definition_owner_code
16223 ,p_line_definition_code => l_line_definition_code
16224 ,p_accounting_line_code => l_component_code
16225 ,p_accounting_line_type_code => l_component_type_code
16226 ,p_accounting_line_appl_id => l_component_appl_id
16227 ,p_amb_context_code => l_amb_context_code
16228 ,p_entity_code => l_entity_code
16229 ,p_event_class_code => l_event_class_code);
16230 --
16231 -- set accounting class
16232 --
16233 xla_ae_lines_pkg.SetAcctClass(
16234 p_accounting_class_code => 'REQ_PA_BURDEN'
16235 , p_ae_header_id => l_ae_header_id
16236 );
16237
16238 --
16239 -- set rounding class
16240 --
16241 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
16242 'REQ_PA_BURDEN';
16243
16244 --
16245 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
16246 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
16247 --
16248 -- bulk performance
16249 --
16250 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
16251
16252 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
16253 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
16254
16255 -- 4955764
16256 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16257 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
16258
16259 -- 4458381 Public Sector Enh
16260
16261 --
16262 -- set accounting attributes for the line type
16263 --
16264 l_entered_amt_idx := 28;
16265 l_accted_amt_idx := 30;
16266 l_bflow_applied_to_amt_idx := NULL; -- 5132302
16267 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
16268 l_rec_acct_attrs.array_char_value(1) := p_source_16;
16269 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
16270 l_rec_acct_attrs.array_num_value(2) := p_source_17;
16271 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
16272 l_rec_acct_attrs.array_char_value(3) := p_source_18;
16273 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
16274 l_rec_acct_attrs.array_char_value(4) := p_source_19;
16275 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
16276 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
16277 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
16278 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
16279 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
16280 l_rec_acct_attrs.array_char_value(7) := p_source_22;
16281 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
16282 l_rec_acct_attrs.array_num_value(8) := p_source_41;
16283 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
16284 l_rec_acct_attrs.array_char_value(9) := p_source_42;
16285 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
16286 l_rec_acct_attrs.array_char_value(10) := p_source_43;
16287 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
16288 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_44);
16289 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
16290 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_45);
16291 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
16292 l_rec_acct_attrs.array_char_value(13) := p_source_46;
16293 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
16294 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_29);
16295 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
16296 l_rec_acct_attrs.array_char_value(15) := p_source_6;
16297 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
16298 l_rec_acct_attrs.array_char_value(16) := p_source_30;
16299 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
16300 l_rec_acct_attrs.array_char_value(17) := p_source_31;
16301 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
16302 l_rec_acct_attrs.array_num_value(18) := p_source_32;
16303 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
16304 l_rec_acct_attrs.array_num_value(19) := p_source_33;
16305 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
16306 l_rec_acct_attrs.array_char_value(20) := p_source_34;
16307 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
16308 l_rec_acct_attrs.array_num_value(21) := p_source_35;
16309 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
16310 l_rec_acct_attrs.array_char_value(22) := p_source_36;
16311 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
16312 l_rec_acct_attrs.array_num_value(23) := p_source_37;
16313 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
16314 l_rec_acct_attrs.array_num_value(24) := p_source_33;
16315 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
16316 l_rec_acct_attrs.array_char_value(25) := p_source_34;
16317 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
16318 l_rec_acct_attrs.array_num_value(26) := p_source_35;
16319 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
16320 l_rec_acct_attrs.array_char_value(27) := p_source_38;
16321 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
16322 l_rec_acct_attrs.array_num_value(28) := p_source_33;
16323 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
16324 l_rec_acct_attrs.array_char_value(29) := p_source_34;
16325 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
16326 l_rec_acct_attrs.array_num_value(30) := p_source_35;
16327 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
16328 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_29);
16329 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
16330 l_rec_acct_attrs.array_char_value(32) := p_source_6;
16331 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
16332 l_rec_acct_attrs.array_char_value(33) := p_source_30;
16333 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
16334 l_rec_acct_attrs.array_num_value(34) := p_source_39;
16335 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
16336 l_rec_acct_attrs.array_num_value(35) := p_source_40;
16337
16338 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
16339 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
16340
16341 ---------------------------------------------------------------------------------------------------------------
16342 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
16343 ---------------------------------------------------------------------------------------------------------------
16344 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
16345
16346 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16347 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16348
16349 IF xla_accounting_cache_pkg.GetValueChar
16350 (p_source_code => 'LEDGER_CATEGORY_CODE'
16351 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
16352 AND l_bflow_method_code = 'PRIOR_ENTRY'
16353 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
16354 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
16355 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
16356 )
16357 THEN
16358 xla_ae_lines_pkg.BflowUpgEntry
16359 (p_business_method_code => l_bflow_method_code
16360 ,p_business_class_code => l_bflow_class_code
16361 ,p_balance_type => l_balance_type_code);
16362 ELSE
16363 NULL;
16364 XLA_AE_LINES_PKG.business_flow_validation(
16365 p_business_method_code => l_bflow_method_code
16366 ,p_business_class_code => l_bflow_class_code
16367 ,p_inherit_description_flag => l_inherit_desc_flag);
16368 END IF;
16369
16370 --
16371 -- call analytical criteria
16372 --
16373 -- Inherited Analytical Criteria for business flow method of Prior Entry.
16374 --
16375 -- call description
16376 --
16377
16378 xla_ae_lines_pkg.SetLineDescription(
16379 p_ae_header_id => l_ae_header_id
16380 ,p_description => Description_2 (
16381 p_application_id => p_application_id
16382 , p_ae_header_id => l_ae_header_id
16383 , p_source_3 => p_source_3
16384 , p_source_4 => p_source_4
16385 , p_source_5 => p_source_5
16386 , p_source_6 => p_source_6
16387 )
16388 );
16389
16390
16391 --
16392 -- call ADRs
16393 -- Bug 4922099
16394 --
16395 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16396 (NVL(l_actual_upg_option, 'N') = 'O') OR
16397 (NVL(l_enc_upg_option, 'N') = 'O')
16398 )
16399 THEN
16400 NULL;
16401 --
16402 --
16403
16404 --
16405 --
16406 END IF;
16407 --
16408 -- Bug 4922099
16409 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
16410 (NVL(l_enc_upg_option, 'N') = 'O')
16411 ) AND
16412 (l_bflow_method_code = 'PRIOR_ENTRY')
16413 )
16414 THEN
16415 IF
16416 --
16417 1 = 1
16418 --
16419 THEN
16420 xla_accounting_err_pkg.build_message
16421 (p_appli_s_name => 'XLA'
16422 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16423 ,p_token_1 => 'LINE_NUMBER'
16424 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
16425 ,p_token_2 => 'LINE_TYPE_NAME'
16426 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
16427 l_component_type
16428 ,l_component_code
16429 ,l_component_type_code
16430 ,l_component_appl_id
16431 ,l_amb_context_code
16432 ,l_entity_code
16433 ,l_event_class_code
16434 )
16435 ,p_token_3 => 'OWNER'
16436 ,p_value_3 => xla_lookups_pkg.get_meaning(
16437 p_lookup_type => 'XLA_OWNER_TYPE'
16438 ,p_lookup_code => l_component_type_code
16439 )
16440 ,p_token_4 => 'PRODUCT_NAME'
16441 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
16442 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
16443 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
16444 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
16445 ,p_ae_header_id => NULL
16446 );
16447
16448 IF (C_LEVEL_ERROR>= g_log_level) THEN
16449 trace
16450 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16451 ,p_level => C_LEVEL_ERROR
16452 ,p_module => l_log_module);
16453 END IF;
16454 END IF;
16455 END IF;
16456 --
16457 --
16458 ------------------------------------------------------------------------------------------------
16459 -- 4219869 Business Flow
16460 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
16461 -- Prior Entry. Currently, the following code is always generated.
16462 ------------------------------------------------------------------------------------------------
16463 -- No ValidateCurrentLine for business flow method of Prior Entry
16464
16465 ------------------------------------------------------------------------------------
16466 -- 4219869 Business Flow
16467 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
16468 ------------------------------------------------------------------------------------
16469 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16470
16471 ----------------------------------------------------------------------------------
16472 -- 4219869 Business Flow
16473 -- Update journal entry status -- Need to generate this within IF <condition>
16474 ----------------------------------------------------------------------------------
16475 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16476 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
16477 ,p_balance_type_code => l_balance_type_code
16478 );
16479
16480 -------------------------------------------------------------------------------------------
16481 -- 4262811 - Generate the Accrual Reversal lines
16482 -------------------------------------------------------------------------------------------
16483 BEGIN
16484 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
16485 (g_array_event(p_event_id).array_value_num('header_index'));
16486 IF l_acc_rev_flag IS NULL THEN
16487 l_acc_rev_flag := 'N';
16488 END IF;
16489 EXCEPTION
16490 WHEN OTHERS THEN
16491 l_acc_rev_flag := 'N';
16492 END;
16493 --
16494 IF (l_acc_rev_flag = 'Y') THEN
16495
16496 -- 4645092 ------------------------------------------------------------------------------
16497 -- To allow MPA report to determine if it should generate report process
16498 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
16499 ------------------------------------------------------------------------------------------
16500
16501 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
16502 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
16503
16504 --
16505 -- Update the line information that should be overwritten
16506 --
16507 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
16508 p_header_num => 1);
16509 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
16510
16511 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
16512
16513 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
16514 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
16515 END IF;
16516
16517 --
16518 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
16519 --
16520 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
16521 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
16522 ELSE
16523 ---------------------------------------------------------------------------------------------------
16524 -- 4262811a Switch Sign
16525 ---------------------------------------------------------------------------------------------------
16526 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
16527 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16528 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16529 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16530 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16531 -- 5132302
16532 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
16533 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16534
16535 END IF;
16536
16537 -- 4955764
16538 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16539 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
16540
16541
16542 XLA_AE_LINES_PKG.ValidateCurrentLine;
16543 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16544
16545 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16546 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
16547 ,p_balance_type_code => l_balance_type_code);
16548
16549 END IF;
16550
16551 -----------------------------------------------------------------------------------------
16552 -- 4262811 Multiperiod Accounting
16553 -----------------------------------------------------------------------------------------
16554 -- No MPA option is assigned.
16555
16556
16557 END IF;
16558 END IF;
16559 --
16560
16561 --
16562 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16563 trace
16564 (p_msg => 'END of AcctLineType_33'
16565 ,p_level => C_LEVEL_PROCEDURE
16566 ,p_module => l_log_module);
16567 END IF;
16568 --
16569 EXCEPTION
16570 WHEN xla_exceptions_pkg.application_exception THEN
16571 RAISE;
16572 WHEN OTHERS THEN
16573 xla_exceptions_pkg.raise_message
16574 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_33');
16575 END AcctLineType_33;
16576 --
16577
16578 ---------------------------------------
16579 --
16580 -- PRIVATE FUNCTION
16581 -- AcctLineType_34
16582 --
16583 ---------------------------------------
16584 PROCEDURE AcctLineType_34 (
16585 p_application_id IN NUMBER
16586 ,p_event_id IN NUMBER
16587 ,p_calculate_acctd_flag IN VARCHAR2
16588 ,p_calculate_g_l_flag IN VARCHAR2
16589 ,p_actual_flag IN OUT VARCHAR2
16590 ,p_balance_type_code OUT VARCHAR2
16591 ,p_gain_or_loss_ref OUT VARCHAR2
16592
16593 --Project Name
16594 , p_source_3 IN VARCHAR2
16595 --Task Name
16596 , p_source_4 IN VARCHAR2
16597 --Project Expenditure Organization Identifier
16598 , p_source_5 IN NUMBER
16599 --Expenditure Type
16600 , p_source_6 IN VARCHAR2
16601 --Document Type
16602 , p_source_9 IN VARCHAR2
16603 --Budget Account
16604 , p_source_11 IN NUMBER
16605 --Main Or Backing Code
16606 , p_source_13 IN VARCHAR2
16607 --Burden Record Identifier
16608 , p_source_14 IN VARCHAR2
16609 , p_source_14_meaning IN VARCHAR2
16610 --Burden Amount Display Method
16611 , p_source_15 IN VARCHAR2
16612 --Accounting Reversal Flag
16613 , p_source_16 IN VARCHAR2
16614 --Allocated to Application Identifier
16615 , p_source_17 IN NUMBER
16616 --Allocated to Distribution Type
16617 , p_source_18 IN VARCHAR2
16618 --Allocated to Entity Code
16619 , p_source_19 IN VARCHAR2
16620 --Allocated to First Distribution Identifier
16621 , p_source_20 IN NUMBER
16622 --Allocated to First System Transaction Identifier
16623 , p_source_21 IN NUMBER
16624 --PO Distribution Identifier
16625 , p_source_29 IN NUMBER
16626 --Line Type Name
16627 , p_source_30 IN VARCHAR2
16628 --Encumbrance Upgrade Credit Accounting Class
16629 , p_source_31 IN VARCHAR2
16630 --Encumbrance Upgrade Credit Account
16631 , p_source_32 IN NUMBER
16632 --Entered Amount
16633 , p_source_33 IN NUMBER
16634 --Currency Code
16635 , p_source_34 IN VARCHAR2
16636 --Accounted Amount
16637 , p_source_35 IN NUMBER
16638 --Encumbrance Upgrade Debit Accounting Class
16639 , p_source_36 IN VARCHAR2
16640 --Encumbrance Upgrade Debit Account
16641 , p_source_37 IN NUMBER
16642 --Use Encumbrances Upgrade Attributes Flag
16643 , p_source_38 IN VARCHAR2
16644 --Encumbrance Upgrade Credit Encumbrance Type
16645 , p_source_39 IN NUMBER
16646 --Encumbrance Upgrade Debit Encumbrance Type
16647 , p_source_40 IN NUMBER
16648 --Requisition Burden Applied to Application Identifier
16649 , p_source_41 IN NUMBER
16650 --Requisition Distribution Type
16651 , p_source_42 IN VARCHAR2
16652 --Requisition Burden Applied to Entity Code
16653 , p_source_43 IN VARCHAR2
16654 --Requisition Burden Applied to First Distribution Identifier
16655 , p_source_44 IN NUMBER
16656 --Requisition Burden Applied to First System Transaction Identifier
16657 , p_source_45 IN NUMBER
16658 --Requisition Burden Applied to Second Distribution Identifier
16659 , p_source_46 IN VARCHAR2
16660 )
16661 IS
16662
16663 l_component_type VARCHAR2(80);
16664 l_component_code VARCHAR2(30);
16665 l_component_type_code VARCHAR2(1);
16666 l_component_appl_id INTEGER;
16667 l_amb_context_code VARCHAR2(30);
16668 l_entity_code VARCHAR2(30);
16669 l_event_class_code VARCHAR2(30);
16670 l_ae_header_id NUMBER;
16671 l_event_type_code VARCHAR2(30);
16672 l_line_definition_code VARCHAR2(30);
16673 l_line_definition_owner_code VARCHAR2(1);
16674 --
16675 -- adr variables
16676 l_segment VARCHAR2(30);
16677 l_ccid NUMBER;
16678 l_adr_transaction_coa_id NUMBER;
16679 l_adr_accounting_coa_id NUMBER;
16680 l_adr_flexfield_segment_code VARCHAR2(30);
16681 l_adr_flex_value_set_id NUMBER;
16682 l_adr_value_type_code VARCHAR2(30);
16683 l_adr_value_combination_id NUMBER;
16684 l_adr_value_segment_code VARCHAR2(30);
16685
16686 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
16687 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
16688 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
16689 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
16690
16691 -- 4262811 Variables ------------------------------------------------------------------------------------------
16692 l_entered_amt_idx NUMBER;
16693 l_accted_amt_idx NUMBER;
16694 l_acc_rev_flag VARCHAR2(1);
16695 l_accrual_line_num NUMBER;
16696 l_tmp_amt NUMBER;
16697 l_acc_rev_natural_side_code VARCHAR2(1);
16698
16699 l_num_entries NUMBER;
16700 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
16701 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
16702 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
16703 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
16704 l_recog_line_1 NUMBER;
16705 l_recog_line_2 NUMBER;
16706
16707 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
16708 l_bflow_applied_to_amt NUMBER; -- 5132302
16709 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
16710
16711 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
16712
16713 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
16714 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
16715
16716 ---------------------------------------------------------------------------------------------------------------
16717
16718
16719 --
16720 -- bulk performance
16721 --
16722 l_balance_type_code VARCHAR2(1);
16723 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
16724 l_log_module VARCHAR2(240);
16725
16726 --
16727 -- Upgrade strategy
16728 --
16729 l_actual_upg_option VARCHAR2(1);
16730 l_enc_upg_option VARCHAR2(1);
16731
16732 --
16733 BEGIN
16734 --
16735 IF g_log_enabled THEN
16736 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_34';
16737 END IF;
16738 --
16739 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16740
16741 trace
16742 (p_msg => 'BEGIN of AcctLineType_34'
16743 ,p_level => C_LEVEL_PROCEDURE
16744 ,p_module => l_log_module);
16745
16746 END IF;
16747 --
16748 l_component_type := 'AMB_JLT';
16749 l_component_code := 'REINST_REQ_BURDEN_ENC_FORPO_CR';
16750 l_component_type_code := 'S';
16751 l_component_appl_id := 201;
16752 l_amb_context_code := 'DEFAULT';
16753 l_entity_code := 'PURCHASE_ORDER';
16754 l_event_class_code := 'PO_BURDEN';
16755 l_event_type_code := 'PO_BURDEN_ALL';
16756 l_line_definition_owner_code := 'S';
16757 l_line_definition_code := 'PO_BURDEN_ENC_ALL';
16758 --
16759 l_balance_type_code := 'E';
16760 l_segment := NULL;
16761 l_ccid := NULL;
16762 l_adr_transaction_coa_id := NULL;
16763 l_adr_accounting_coa_id := NULL;
16764 l_adr_flexfield_segment_code := NULL;
16765 l_adr_flex_value_set_id := NULL;
16766 l_adr_value_type_code := NULL;
16767 l_adr_value_combination_id := NULL;
16768 l_adr_value_segment_code := NULL;
16769
16770 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
16771 l_bflow_class_code := ''; -- 4219869 Business Flow
16772 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
16773 l_budgetary_control_flag := 'Y';
16774
16775 l_bflow_applied_to_amt_idx := NULL; -- 5132302
16776 l_bflow_applied_to_amt := NULL; -- 5132302
16777 l_entered_amt_idx := NULL; -- 4262811
16778 l_accted_amt_idx := NULL; -- 4262811
16779 l_acc_rev_flag := NULL; -- 4262811
16780 l_accrual_line_num := NULL; -- 4262811
16781 l_tmp_amt := NULL; -- 4262811
16782 --
16783
16784 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
16785 l_balance_type_code <> 'B' THEN
16786 IF (NVL(
16787 xla_ae_sources_pkg.GetSystemSourceChar(
16788 p_source_code => 'XLA_EVENT_TYPE_CODE'
16789 , p_source_type_code => 'Y'
16790 , p_source_application_id => 602
16791 ),'
16792 ') = 'PO_BURDEN_CANCELLED' OR
16793 NVL(
16794 xla_ae_sources_pkg.GetSystemSourceChar(
16795 p_source_code => 'XLA_EVENT_TYPE_CODE'
16796 , p_source_type_code => 'Y'
16797 , p_source_application_id => 602
16798 ),'
16799 ') = 'PO_BURDEN_CR_MEMO_CANCELLED') AND
16800 NVL(p_source_13,'
16801 ') = 'B_REQ' AND
16802 NVL(p_source_14,'
16803 ') = 'O' AND
16804 NVL(p_source_9,'
16805 ') = 'REQ' AND
16806 NVL(p_source_15,'
16807 ') = 'D'
16808 THEN
16809
16810 --
16811 XLA_AE_LINES_PKG.SetNewLine;
16812
16813 p_balance_type_code := l_balance_type_code;
16814 -- set the flag so later we will know whether the gain loss line needs to be created
16815
16816 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
16817 p_actual_flag :='A';
16818 END IF;
16819
16820 --
16821 -- bulk performance
16822 --
16823 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
16824 p_header_num => 0); -- 4262811
16825 --
16826 -- set accounting line options
16827 --
16828 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
16829 p_natural_side_code => 'C'
16830 , p_gain_or_loss_flag => 'N'
16831 , p_gl_transfer_mode_code => 'S'
16832 , p_acct_entry_type_code => 'E'
16833 , p_switch_side_flag => 'N'
16834 , p_merge_duplicate_code => 'N'
16835 );
16836 --
16837 l_acc_rev_natural_side_code := 'D'; -- 4262811
16838 --
16839 --
16840 -- set accounting line type info
16841 --
16842 xla_ae_lines_pkg.SetAcctLineType
16843 (p_component_type => l_component_type
16844 ,p_event_type_code => l_event_type_code
16845 ,p_line_definition_owner_code => l_line_definition_owner_code
16846 ,p_line_definition_code => l_line_definition_code
16847 ,p_accounting_line_code => l_component_code
16848 ,p_accounting_line_type_code => l_component_type_code
16849 ,p_accounting_line_appl_id => l_component_appl_id
16850 ,p_amb_context_code => l_amb_context_code
16851 ,p_entity_code => l_entity_code
16852 ,p_event_class_code => l_event_class_code);
16853 --
16854 -- set accounting class
16855 --
16856 xla_ae_lines_pkg.SetAcctClass(
16857 p_accounting_class_code => 'REQ_PA_BURDEN'
16858 , p_ae_header_id => l_ae_header_id
16859 );
16860
16861 --
16862 -- set rounding class
16863 --
16864 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
16865 'REQ_PA_BURDEN';
16866
16867 --
16868 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
16869 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
16870 --
16871 -- bulk performance
16872 --
16873 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
16874
16875 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
16876 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
16877
16878 -- 4955764
16879 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16880 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
16881
16882 -- 4458381 Public Sector Enh
16883 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1000;
16884 --
16885 -- set accounting attributes for the line type
16886 --
16887 l_entered_amt_idx := 27;
16888 l_accted_amt_idx := 29;
16889 l_bflow_applied_to_amt_idx := NULL; -- 5132302
16890 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
16891 l_rec_acct_attrs.array_char_value(1) := p_source_16;
16892 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
16893 l_rec_acct_attrs.array_num_value(2) := p_source_17;
16894 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
16895 l_rec_acct_attrs.array_char_value(3) := p_source_18;
16896 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
16897 l_rec_acct_attrs.array_char_value(4) := p_source_19;
16898 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
16899 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
16900 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
16901 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
16902 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
16903 l_rec_acct_attrs.array_num_value(7) := p_source_41;
16904 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
16905 l_rec_acct_attrs.array_char_value(8) := p_source_42;
16906 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
16907 l_rec_acct_attrs.array_char_value(9) := p_source_43;
16908 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
16909 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_44);
16910 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
16911 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_45);
16912 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
16913 l_rec_acct_attrs.array_char_value(12) := p_source_46;
16914 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
16915 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_29);
16916 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
16917 l_rec_acct_attrs.array_char_value(14) := p_source_6;
16918 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
16919 l_rec_acct_attrs.array_char_value(15) := p_source_30;
16920 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
16921 l_rec_acct_attrs.array_char_value(16) := p_source_31;
16922 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
16923 l_rec_acct_attrs.array_num_value(17) := p_source_32;
16924 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
16925 l_rec_acct_attrs.array_num_value(18) := p_source_33;
16926 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
16927 l_rec_acct_attrs.array_char_value(19) := p_source_34;
16928 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
16929 l_rec_acct_attrs.array_num_value(20) := p_source_35;
16930 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
16931 l_rec_acct_attrs.array_char_value(21) := p_source_36;
16932 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
16933 l_rec_acct_attrs.array_num_value(22) := p_source_37;
16934 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
16935 l_rec_acct_attrs.array_num_value(23) := p_source_33;
16936 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
16937 l_rec_acct_attrs.array_char_value(24) := p_source_34;
16938 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
16939 l_rec_acct_attrs.array_num_value(25) := p_source_35;
16940 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
16941 l_rec_acct_attrs.array_char_value(26) := p_source_38;
16942 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
16943 l_rec_acct_attrs.array_num_value(27) := p_source_33;
16944 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
16945 l_rec_acct_attrs.array_char_value(28) := p_source_34;
16946 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
16947 l_rec_acct_attrs.array_num_value(29) := p_source_35;
16948 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
16949 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_29);
16950 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
16951 l_rec_acct_attrs.array_char_value(31) := p_source_6;
16952 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
16953 l_rec_acct_attrs.array_char_value(32) := p_source_30;
16954 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
16955 l_rec_acct_attrs.array_num_value(33) := p_source_39;
16956 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
16957 l_rec_acct_attrs.array_num_value(34) := p_source_40;
16958
16959 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
16960 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
16961
16962 ---------------------------------------------------------------------------------------------------------------
16963 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
16964 ---------------------------------------------------------------------------------------------------------------
16965 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
16966
16967 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16968 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16969
16970 IF xla_accounting_cache_pkg.GetValueChar
16971 (p_source_code => 'LEDGER_CATEGORY_CODE'
16972 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
16973 AND l_bflow_method_code = 'PRIOR_ENTRY'
16974 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
16975 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
16976 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
16977 )
16978 THEN
16979 xla_ae_lines_pkg.BflowUpgEntry
16980 (p_business_method_code => l_bflow_method_code
16981 ,p_business_class_code => l_bflow_class_code
16982 ,p_balance_type => l_balance_type_code);
16983 ELSE
16984 NULL;
16985 -- No business flow processing for business flow method of NONE.
16986 END IF;
16987
16988 --
16989 -- call analytical criteria
16990 --
16991
16992 --
16993 -- call description
16994 --
16995
16996 xla_ae_lines_pkg.SetLineDescription(
16997 p_ae_header_id => l_ae_header_id
16998 ,p_description => Description_2 (
16999 p_application_id => p_application_id
17000 , p_ae_header_id => l_ae_header_id
17001 , p_source_3 => p_source_3
17002 , p_source_4 => p_source_4
17003 , p_source_5 => p_source_5
17004 , p_source_6 => p_source_6
17005 )
17006 );
17007
17008
17009 --
17010 -- call ADRs
17011 -- Bug 4922099
17012 --
17013 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17014 (NVL(l_actual_upg_option, 'N') = 'O') OR
17015 (NVL(l_enc_upg_option, 'N') = 'O')
17016 )
17017 THEN
17018 NULL;
17019 --
17020 --
17021
17022 l_ccid := AcctDerRule_7(
17023 p_application_id => p_application_id
17024 , p_ae_header_id => l_ae_header_id
17025 , p_source_11 => p_source_11
17026 , x_transaction_coa_id => l_adr_transaction_coa_id
17027 , x_accounting_coa_id => l_adr_accounting_coa_id
17028 , x_value_type_code => l_adr_value_type_code
17029 , p_side => 'NA'
17030 );
17031
17032 xla_ae_lines_pkg.set_ccid(
17033 p_code_combination_id => l_ccid
17034 , p_value_type_code => l_adr_value_type_code
17035 , p_transaction_coa_id => l_adr_transaction_coa_id
17036 , p_accounting_coa_id => l_adr_accounting_coa_id
17037 , p_adr_code => 'PROJ_BURDEN_ENC_ACCT_RULE'
17038 , p_adr_type_code => 'S'
17039 , p_component_type => l_component_type
17040 , p_component_code => l_component_code
17041 , p_component_type_code => l_component_type_code
17042 , p_component_appl_id => l_component_appl_id
17043 , p_amb_context_code => l_amb_context_code
17044 , p_side => 'NA'
17045 );
17046
17047
17048 --
17049 --
17050 END IF;
17051 --
17052 -- Bug 4922099
17053 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17054 (NVL(l_enc_upg_option, 'N') = 'O')
17055 ) AND
17056 (l_bflow_method_code = 'PRIOR_ENTRY')
17057 )
17058 THEN
17059 IF
17060 --
17061 1 = 2
17062 --
17063 THEN
17064 xla_accounting_err_pkg.build_message
17065 (p_appli_s_name => 'XLA'
17066 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17067 ,p_token_1 => 'LINE_NUMBER'
17068 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
17069 ,p_token_2 => 'LINE_TYPE_NAME'
17070 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
17071 l_component_type
17072 ,l_component_code
17073 ,l_component_type_code
17074 ,l_component_appl_id
17075 ,l_amb_context_code
17076 ,l_entity_code
17077 ,l_event_class_code
17078 )
17079 ,p_token_3 => 'OWNER'
17080 ,p_value_3 => xla_lookups_pkg.get_meaning(
17081 p_lookup_type => 'XLA_OWNER_TYPE'
17082 ,p_lookup_code => l_component_type_code
17083 )
17084 ,p_token_4 => 'PRODUCT_NAME'
17085 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
17086 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
17087 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
17088 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
17089 ,p_ae_header_id => NULL
17090 );
17091
17092 IF (C_LEVEL_ERROR>= g_log_level) THEN
17093 trace
17094 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17095 ,p_level => C_LEVEL_ERROR
17096 ,p_module => l_log_module);
17097 END IF;
17098 END IF;
17099 END IF;
17100 --
17101 --
17102 ------------------------------------------------------------------------------------------------
17103 -- 4219869 Business Flow
17104 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
17105 -- Prior Entry. Currently, the following code is always generated.
17106 ------------------------------------------------------------------------------------------------
17107 XLA_AE_LINES_PKG.ValidateCurrentLine;
17108
17109 ------------------------------------------------------------------------------------
17110 -- 4219869 Business Flow
17111 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
17112 ------------------------------------------------------------------------------------
17113 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17114
17115 ----------------------------------------------------------------------------------
17116 -- 4219869 Business Flow
17117 -- Update journal entry status -- Need to generate this within IF <condition>
17118 ----------------------------------------------------------------------------------
17119 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17120 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
17121 ,p_balance_type_code => l_balance_type_code
17122 );
17123
17124 -------------------------------------------------------------------------------------------
17125 -- 4262811 - Generate the Accrual Reversal lines
17126 -------------------------------------------------------------------------------------------
17127 BEGIN
17128 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
17129 (g_array_event(p_event_id).array_value_num('header_index'));
17130 IF l_acc_rev_flag IS NULL THEN
17131 l_acc_rev_flag := 'N';
17132 END IF;
17133 EXCEPTION
17134 WHEN OTHERS THEN
17135 l_acc_rev_flag := 'N';
17136 END;
17137 --
17138 IF (l_acc_rev_flag = 'Y') THEN
17139
17140 -- 4645092 ------------------------------------------------------------------------------
17141 -- To allow MPA report to determine if it should generate report process
17142 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
17143 ------------------------------------------------------------------------------------------
17144
17145 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
17146 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
17147
17148 --
17149 -- Update the line information that should be overwritten
17150 --
17151 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
17152 p_header_num => 1);
17153 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
17154
17155 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
17156
17157 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
17158 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
17159 END IF;
17160
17161 --
17162 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
17163 --
17164 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
17165 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
17166 ELSE
17167 ---------------------------------------------------------------------------------------------------
17168 -- 4262811a Switch Sign
17169 ---------------------------------------------------------------------------------------------------
17170 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
17171 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17172 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17173 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17174 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17175 -- 5132302
17176 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
17177 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17178
17179 END IF;
17180
17181 -- 4955764
17182 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17183 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
17184
17185
17186 XLA_AE_LINES_PKG.ValidateCurrentLine;
17187 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17188
17189 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17190 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
17191 ,p_balance_type_code => l_balance_type_code);
17192
17193 END IF;
17194
17195 -----------------------------------------------------------------------------------------
17196 -- 4262811 Multiperiod Accounting
17197 -----------------------------------------------------------------------------------------
17198 -- No MPA option is assigned.
17199
17200
17201 END IF;
17202 END IF;
17203 --
17204
17205 --
17206 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17207 trace
17208 (p_msg => 'END of AcctLineType_34'
17209 ,p_level => C_LEVEL_PROCEDURE
17210 ,p_module => l_log_module);
17211 END IF;
17212 --
17213 EXCEPTION
17214 WHEN xla_exceptions_pkg.application_exception THEN
17215 RAISE;
17216 WHEN OTHERS THEN
17217 xla_exceptions_pkg.raise_message
17218 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_34');
17219 END AcctLineType_34;
17220 --
17221
17222 ---------------------------------------
17223 --
17224 -- PRIVATE FUNCTION
17225 -- AcctLineType_35
17226 --
17227 ---------------------------------------
17228 PROCEDURE AcctLineType_35 (
17229 p_application_id IN NUMBER
17230 ,p_event_id IN NUMBER
17231 ,p_calculate_acctd_flag IN VARCHAR2
17232 ,p_calculate_g_l_flag IN VARCHAR2
17233 ,p_actual_flag IN OUT VARCHAR2
17234 ,p_balance_type_code OUT VARCHAR2
17235 ,p_gain_or_loss_ref OUT VARCHAR2
17236
17237 --Project Name
17238 , p_source_3 IN VARCHAR2
17239 --Task Name
17240 , p_source_4 IN VARCHAR2
17241 --Project Expenditure Organization Identifier
17242 , p_source_5 IN NUMBER
17243 --Expenditure Type
17244 , p_source_6 IN VARCHAR2
17245 --Document Type
17246 , p_source_9 IN VARCHAR2
17247 --Main Or Backing Code
17248 , p_source_13 IN VARCHAR2
17249 --Burden Record Identifier
17250 , p_source_14 IN VARCHAR2
17251 , p_source_14_meaning IN VARCHAR2
17252 --Burden Amount Display Method
17253 , p_source_15 IN VARCHAR2
17254 --Accounting Reversal Flag
17255 , p_source_16 IN VARCHAR2
17256 --Allocated to Application Identifier
17257 , p_source_17 IN NUMBER
17258 --Allocated to Distribution Type
17259 , p_source_18 IN VARCHAR2
17260 --Allocated to Entity Code
17261 , p_source_19 IN VARCHAR2
17262 --Allocated to First Distribution Identifier
17263 , p_source_20 IN NUMBER
17264 --Allocated to First System Transaction Identifier
17265 , p_source_21 IN NUMBER
17266 --PO Distribution Identifier
17267 , p_source_29 IN NUMBER
17268 --Line Type Name
17269 , p_source_30 IN VARCHAR2
17270 --Encumbrance Upgrade Credit Accounting Class
17271 , p_source_31 IN VARCHAR2
17272 --Encumbrance Upgrade Credit Account
17273 , p_source_32 IN NUMBER
17274 --Entered Amount
17275 , p_source_33 IN NUMBER
17276 --Currency Code
17277 , p_source_34 IN VARCHAR2
17278 --Accounted Amount
17279 , p_source_35 IN NUMBER
17280 --Encumbrance Upgrade Debit Accounting Class
17281 , p_source_36 IN VARCHAR2
17282 --Encumbrance Upgrade Debit Account
17283 , p_source_37 IN NUMBER
17284 --Use Encumbrances Upgrade Attributes Flag
17285 , p_source_38 IN VARCHAR2
17286 --Encumbrance Upgrade Credit Encumbrance Type
17287 , p_source_39 IN NUMBER
17288 --Encumbrance Upgrade Debit Encumbrance Type
17289 , p_source_40 IN NUMBER
17290 --Requisition Burden Applied to Application Identifier
17291 , p_source_41 IN NUMBER
17292 --Requisition Distribution Type
17293 , p_source_42 IN VARCHAR2
17294 --Requisition Burden Applied to Entity Code
17295 , p_source_43 IN VARCHAR2
17296 --Requisition Burden Applied to First Distribution Identifier
17297 , p_source_44 IN NUMBER
17298 --Requisition Burden Applied to First System Transaction Identifier
17299 , p_source_45 IN NUMBER
17300 --Requisition Burden Applied to Second Distribution Identifier
17301 , p_source_46 IN VARCHAR2
17302 --Backing Requisition Prevent Encumbrance Flag Flipped
17303 , p_source_67 IN VARCHAR2
17304 )
17305 IS
17306
17307 l_component_type VARCHAR2(80);
17308 l_component_code VARCHAR2(30);
17309 l_component_type_code VARCHAR2(1);
17310 l_component_appl_id INTEGER;
17311 l_amb_context_code VARCHAR2(30);
17312 l_entity_code VARCHAR2(30);
17313 l_event_class_code VARCHAR2(30);
17314 l_ae_header_id NUMBER;
17315 l_event_type_code VARCHAR2(30);
17316 l_line_definition_code VARCHAR2(30);
17317 l_line_definition_owner_code VARCHAR2(1);
17318 --
17319 -- adr variables
17320 l_segment VARCHAR2(30);
17321 l_ccid NUMBER;
17322 l_adr_transaction_coa_id NUMBER;
17323 l_adr_accounting_coa_id NUMBER;
17324 l_adr_flexfield_segment_code VARCHAR2(30);
17325 l_adr_flex_value_set_id NUMBER;
17326 l_adr_value_type_code VARCHAR2(30);
17327 l_adr_value_combination_id NUMBER;
17328 l_adr_value_segment_code VARCHAR2(30);
17329
17330 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
17331 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
17332 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
17333 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
17334
17335 -- 4262811 Variables ------------------------------------------------------------------------------------------
17336 l_entered_amt_idx NUMBER;
17337 l_accted_amt_idx NUMBER;
17338 l_acc_rev_flag VARCHAR2(1);
17339 l_accrual_line_num NUMBER;
17340 l_tmp_amt NUMBER;
17341 l_acc_rev_natural_side_code VARCHAR2(1);
17342
17343 l_num_entries NUMBER;
17344 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
17345 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
17346 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
17347 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
17348 l_recog_line_1 NUMBER;
17349 l_recog_line_2 NUMBER;
17350
17351 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
17352 l_bflow_applied_to_amt NUMBER; -- 5132302
17353 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
17354
17355 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
17356
17357 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
17358 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
17359
17360 ---------------------------------------------------------------------------------------------------------------
17361
17362
17363 --
17364 -- bulk performance
17365 --
17366 l_balance_type_code VARCHAR2(1);
17367 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
17368 l_log_module VARCHAR2(240);
17369
17370 --
17371 -- Upgrade strategy
17372 --
17373 l_actual_upg_option VARCHAR2(1);
17374 l_enc_upg_option VARCHAR2(1);
17375
17376 --
17377 BEGIN
17378 --
17379 IF g_log_enabled THEN
17380 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_35';
17381 END IF;
17382 --
17383 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17384
17385 trace
17386 (p_msg => 'BEGIN of AcctLineType_35'
17387 ,p_level => C_LEVEL_PROCEDURE
17388 ,p_module => l_log_module);
17389
17390 END IF;
17391 --
17392 l_component_type := 'AMB_JLT';
17393 l_component_code := 'REINST_REQ_BURDEN_ENC_FORPO_DR';
17394 l_component_type_code := 'S';
17395 l_component_appl_id := 201;
17396 l_amb_context_code := 'DEFAULT';
17397 l_entity_code := 'PURCHASE_ORDER';
17398 l_event_class_code := 'PO_BURDEN';
17399 l_event_type_code := 'PO_BURDEN_ALL';
17400 l_line_definition_owner_code := 'S';
17401 l_line_definition_code := 'PO_BURDEN_ENC_ALL';
17402 --
17403 l_balance_type_code := 'E';
17404 l_segment := NULL;
17405 l_ccid := NULL;
17406 l_adr_transaction_coa_id := NULL;
17407 l_adr_accounting_coa_id := NULL;
17408 l_adr_flexfield_segment_code := NULL;
17409 l_adr_flex_value_set_id := NULL;
17410 l_adr_value_type_code := NULL;
17411 l_adr_value_combination_id := NULL;
17412 l_adr_value_segment_code := NULL;
17413
17414 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
17415 l_bflow_class_code := 'REQ_PA_BURDEN_ENC'; -- 4219869 Business Flow
17416 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
17417 l_budgetary_control_flag := 'Y';
17418
17419 l_bflow_applied_to_amt_idx := NULL; -- 5132302
17420 l_bflow_applied_to_amt := NULL; -- 5132302
17421 l_entered_amt_idx := NULL; -- 4262811
17422 l_accted_amt_idx := NULL; -- 4262811
17423 l_acc_rev_flag := NULL; -- 4262811
17424 l_accrual_line_num := NULL; -- 4262811
17425 l_tmp_amt := NULL; -- 4262811
17426 --
17427
17428 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
17429 l_balance_type_code <> 'B' THEN
17430 IF (NVL(
17431 xla_ae_sources_pkg.GetSystemSourceChar(
17432 p_source_code => 'XLA_EVENT_TYPE_CODE'
17433 , p_source_type_code => 'Y'
17434 , p_source_application_id => 602
17435 ),'
17436 ') = 'PO_BURDEN_UNRESERVED' OR
17437 NVL(
17438 xla_ae_sources_pkg.GetSystemSourceChar(
17439 p_source_code => 'XLA_EVENT_TYPE_CODE'
17440 , p_source_type_code => 'Y'
17441 , p_source_application_id => 602
17442 ),'
17443 ') = 'PO_BURDEN_INV_CANCELLED' OR
17444 NVL(
17445 xla_ae_sources_pkg.GetSystemSourceChar(
17446 p_source_code => 'XLA_EVENT_TYPE_CODE'
17447 , p_source_type_code => 'Y'
17448 , p_source_application_id => 602
17449 ),'
17450 ') = 'PO_BURDEN_REJECTED') AND
17451 NVL(p_source_13,'
17452 ') = 'B_REQ' AND
17453 NVL(p_source_14,'
17454 ') = 'O' AND
17455 NVL(p_source_9,'
17456 ') = 'REQ' AND
17457 NVL(p_source_15,'
17458 ') = 'D' AND
17459 NVL(p_source_67,'
17460 ') <> 'Y'
17461 THEN
17462
17463 --
17464 XLA_AE_LINES_PKG.SetNewLine;
17465
17466 p_balance_type_code := l_balance_type_code;
17467 -- set the flag so later we will know whether the gain loss line needs to be created
17468
17469 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
17470 p_actual_flag :='A';
17471 END IF;
17472
17473 --
17474 -- bulk performance
17475 --
17476 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
17477 p_header_num => 0); -- 4262811
17478 --
17479 -- set accounting line options
17480 --
17481 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
17482 p_natural_side_code => 'D'
17483 , p_gain_or_loss_flag => 'N'
17484 , p_gl_transfer_mode_code => 'S'
17485 , p_acct_entry_type_code => 'E'
17486 , p_switch_side_flag => 'N'
17487 , p_merge_duplicate_code => 'N'
17488 );
17489 --
17490 l_acc_rev_natural_side_code := 'C'; -- 4262811
17491 --
17492 --
17493 -- set accounting line type info
17494 --
17495 xla_ae_lines_pkg.SetAcctLineType
17496 (p_component_type => l_component_type
17497 ,p_event_type_code => l_event_type_code
17498 ,p_line_definition_owner_code => l_line_definition_owner_code
17499 ,p_line_definition_code => l_line_definition_code
17500 ,p_accounting_line_code => l_component_code
17501 ,p_accounting_line_type_code => l_component_type_code
17502 ,p_accounting_line_appl_id => l_component_appl_id
17503 ,p_amb_context_code => l_amb_context_code
17504 ,p_entity_code => l_entity_code
17505 ,p_event_class_code => l_event_class_code);
17506 --
17507 -- set accounting class
17508 --
17509 xla_ae_lines_pkg.SetAcctClass(
17510 p_accounting_class_code => 'REQ_PA_BURDEN'
17511 , p_ae_header_id => l_ae_header_id
17512 );
17513
17514 --
17515 -- set rounding class
17516 --
17517 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
17518 'REQ_PA_BURDEN';
17519
17520 --
17521 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
17522 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
17523 --
17524 -- bulk performance
17525 --
17526 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
17527
17528 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
17529 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
17530
17531 -- 4955764
17532 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17533 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
17534
17535 -- 4458381 Public Sector Enh
17536
17537 --
17538 -- set accounting attributes for the line type
17539 --
17540 l_entered_amt_idx := 27;
17541 l_accted_amt_idx := 29;
17542 l_bflow_applied_to_amt_idx := NULL; -- 5132302
17543 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
17544 l_rec_acct_attrs.array_char_value(1) := p_source_16;
17545 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
17546 l_rec_acct_attrs.array_num_value(2) := p_source_17;
17547 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
17548 l_rec_acct_attrs.array_char_value(3) := p_source_18;
17549 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
17550 l_rec_acct_attrs.array_char_value(4) := p_source_19;
17551 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
17552 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
17553 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
17554 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
17555 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
17556 l_rec_acct_attrs.array_num_value(7) := p_source_41;
17557 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
17558 l_rec_acct_attrs.array_char_value(8) := p_source_42;
17559 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
17560 l_rec_acct_attrs.array_char_value(9) := p_source_43;
17561 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
17562 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_44);
17563 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
17564 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_45);
17565 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
17566 l_rec_acct_attrs.array_char_value(12) := p_source_46;
17567 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
17568 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_29);
17569 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
17570 l_rec_acct_attrs.array_char_value(14) := p_source_6;
17571 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
17572 l_rec_acct_attrs.array_char_value(15) := p_source_30;
17573 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
17574 l_rec_acct_attrs.array_char_value(16) := p_source_31;
17575 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
17576 l_rec_acct_attrs.array_num_value(17) := p_source_32;
17577 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
17578 l_rec_acct_attrs.array_num_value(18) := p_source_33;
17579 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
17580 l_rec_acct_attrs.array_char_value(19) := p_source_34;
17581 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
17582 l_rec_acct_attrs.array_num_value(20) := p_source_35;
17583 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
17584 l_rec_acct_attrs.array_char_value(21) := p_source_36;
17585 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
17586 l_rec_acct_attrs.array_num_value(22) := p_source_37;
17587 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
17588 l_rec_acct_attrs.array_num_value(23) := p_source_33;
17589 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
17590 l_rec_acct_attrs.array_char_value(24) := p_source_34;
17591 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
17592 l_rec_acct_attrs.array_num_value(25) := p_source_35;
17593 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
17594 l_rec_acct_attrs.array_char_value(26) := p_source_38;
17595 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
17596 l_rec_acct_attrs.array_num_value(27) := p_source_33;
17597 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
17598 l_rec_acct_attrs.array_char_value(28) := p_source_34;
17599 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
17600 l_rec_acct_attrs.array_num_value(29) := p_source_35;
17601 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
17602 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_29);
17603 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
17604 l_rec_acct_attrs.array_char_value(31) := p_source_6;
17605 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
17606 l_rec_acct_attrs.array_char_value(32) := p_source_30;
17607 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
17608 l_rec_acct_attrs.array_num_value(33) := p_source_39;
17609 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
17610 l_rec_acct_attrs.array_num_value(34) := p_source_40;
17611
17612 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
17613 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
17614
17615 ---------------------------------------------------------------------------------------------------------------
17616 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
17617 ---------------------------------------------------------------------------------------------------------------
17618 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
17619
17620 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17621 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17622
17623 IF xla_accounting_cache_pkg.GetValueChar
17624 (p_source_code => 'LEDGER_CATEGORY_CODE'
17625 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
17626 AND l_bflow_method_code = 'PRIOR_ENTRY'
17627 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
17628 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
17629 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
17630 )
17631 THEN
17632 xla_ae_lines_pkg.BflowUpgEntry
17633 (p_business_method_code => l_bflow_method_code
17634 ,p_business_class_code => l_bflow_class_code
17635 ,p_balance_type => l_balance_type_code);
17636 ELSE
17637 NULL;
17638 XLA_AE_LINES_PKG.business_flow_validation(
17639 p_business_method_code => l_bflow_method_code
17640 ,p_business_class_code => l_bflow_class_code
17641 ,p_inherit_description_flag => l_inherit_desc_flag);
17642 END IF;
17643
17644 --
17645 -- call analytical criteria
17646 --
17647 -- Inherited Analytical Criteria for business flow method of Prior Entry.
17648 --
17649 -- call description
17650 --
17651
17652 xla_ae_lines_pkg.SetLineDescription(
17653 p_ae_header_id => l_ae_header_id
17654 ,p_description => Description_2 (
17655 p_application_id => p_application_id
17656 , p_ae_header_id => l_ae_header_id
17657 , p_source_3 => p_source_3
17658 , p_source_4 => p_source_4
17659 , p_source_5 => p_source_5
17660 , p_source_6 => p_source_6
17661 )
17662 );
17663
17664
17665 --
17666 -- call ADRs
17667 -- Bug 4922099
17668 --
17669 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17670 (NVL(l_actual_upg_option, 'N') = 'O') OR
17671 (NVL(l_enc_upg_option, 'N') = 'O')
17672 )
17673 THEN
17674 NULL;
17675 --
17676 --
17677
17678 --
17679 --
17680 END IF;
17681 --
17682 -- Bug 4922099
17683 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17684 (NVL(l_enc_upg_option, 'N') = 'O')
17685 ) AND
17686 (l_bflow_method_code = 'PRIOR_ENTRY')
17687 )
17688 THEN
17689 IF
17690 --
17691 1 = 1
17692 --
17693 THEN
17694 xla_accounting_err_pkg.build_message
17695 (p_appli_s_name => 'XLA'
17696 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17697 ,p_token_1 => 'LINE_NUMBER'
17698 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
17699 ,p_token_2 => 'LINE_TYPE_NAME'
17700 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
17701 l_component_type
17702 ,l_component_code
17703 ,l_component_type_code
17704 ,l_component_appl_id
17705 ,l_amb_context_code
17706 ,l_entity_code
17707 ,l_event_class_code
17708 )
17709 ,p_token_3 => 'OWNER'
17710 ,p_value_3 => xla_lookups_pkg.get_meaning(
17711 p_lookup_type => 'XLA_OWNER_TYPE'
17712 ,p_lookup_code => l_component_type_code
17713 )
17714 ,p_token_4 => 'PRODUCT_NAME'
17715 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
17716 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
17717 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
17718 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
17719 ,p_ae_header_id => NULL
17720 );
17721
17722 IF (C_LEVEL_ERROR>= g_log_level) THEN
17723 trace
17724 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17725 ,p_level => C_LEVEL_ERROR
17726 ,p_module => l_log_module);
17727 END IF;
17728 END IF;
17729 END IF;
17730 --
17731 --
17732 ------------------------------------------------------------------------------------------------
17733 -- 4219869 Business Flow
17734 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
17735 -- Prior Entry. Currently, the following code is always generated.
17736 ------------------------------------------------------------------------------------------------
17737 -- No ValidateCurrentLine for business flow method of Prior Entry
17738
17739 ------------------------------------------------------------------------------------
17740 -- 4219869 Business Flow
17741 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
17742 ------------------------------------------------------------------------------------
17743 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17744
17745 ----------------------------------------------------------------------------------
17746 -- 4219869 Business Flow
17747 -- Update journal entry status -- Need to generate this within IF <condition>
17748 ----------------------------------------------------------------------------------
17749 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17750 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
17751 ,p_balance_type_code => l_balance_type_code
17752 );
17753
17754 -------------------------------------------------------------------------------------------
17755 -- 4262811 - Generate the Accrual Reversal lines
17756 -------------------------------------------------------------------------------------------
17757 BEGIN
17758 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
17759 (g_array_event(p_event_id).array_value_num('header_index'));
17760 IF l_acc_rev_flag IS NULL THEN
17761 l_acc_rev_flag := 'N';
17762 END IF;
17763 EXCEPTION
17764 WHEN OTHERS THEN
17765 l_acc_rev_flag := 'N';
17766 END;
17767 --
17768 IF (l_acc_rev_flag = 'Y') THEN
17769
17770 -- 4645092 ------------------------------------------------------------------------------
17771 -- To allow MPA report to determine if it should generate report process
17772 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
17773 ------------------------------------------------------------------------------------------
17774
17775 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
17776 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
17777
17778 --
17779 -- Update the line information that should be overwritten
17780 --
17781 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
17782 p_header_num => 1);
17783 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
17784
17785 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
17786
17787 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
17788 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
17789 END IF;
17790
17791 --
17792 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
17793 --
17794 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
17795 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
17796 ELSE
17797 ---------------------------------------------------------------------------------------------------
17798 -- 4262811a Switch Sign
17799 ---------------------------------------------------------------------------------------------------
17800 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
17801 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17802 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17803 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17804 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17805 -- 5132302
17806 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
17807 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17808
17809 END IF;
17810
17811 -- 4955764
17812 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17813 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
17814
17815
17816 XLA_AE_LINES_PKG.ValidateCurrentLine;
17817 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17818
17819 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17820 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
17821 ,p_balance_type_code => l_balance_type_code);
17822
17823 END IF;
17824
17825 -----------------------------------------------------------------------------------------
17826 -- 4262811 Multiperiod Accounting
17827 -----------------------------------------------------------------------------------------
17828 -- No MPA option is assigned.
17829
17830
17831 END IF;
17832 END IF;
17833 --
17834
17835 --
17836 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17837 trace
17838 (p_msg => 'END of AcctLineType_35'
17839 ,p_level => C_LEVEL_PROCEDURE
17840 ,p_module => l_log_module);
17841 END IF;
17842 --
17843 EXCEPTION
17844 WHEN xla_exceptions_pkg.application_exception THEN
17845 RAISE;
17846 WHEN OTHERS THEN
17847 xla_exceptions_pkg.raise_message
17848 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_35');
17849 END AcctLineType_35;
17850 --
17851
17852 ---------------------------------------
17853 --
17854 -- PRIVATE FUNCTION
17855 -- AcctLineType_36
17856 --
17857 ---------------------------------------
17858 PROCEDURE AcctLineType_36 (
17859 p_application_id IN NUMBER
17860 ,p_event_id IN NUMBER
17861 ,p_calculate_acctd_flag IN VARCHAR2
17862 ,p_calculate_g_l_flag IN VARCHAR2
17863 ,p_actual_flag IN OUT VARCHAR2
17864 ,p_balance_type_code OUT VARCHAR2
17865 ,p_gain_or_loss_ref OUT VARCHAR2
17866
17867 --Project Name
17868 , p_source_3 IN VARCHAR2
17869 --Task Name
17870 , p_source_4 IN VARCHAR2
17871 --Project Expenditure Organization Identifier
17872 , p_source_5 IN NUMBER
17873 --Expenditure Type
17874 , p_source_6 IN VARCHAR2
17875 --Document Type
17876 , p_source_9 IN VARCHAR2
17877 --Budget Account
17878 , p_source_11 IN NUMBER
17879 --Main Or Backing Code
17880 , p_source_13 IN VARCHAR2
17881 --Burden Record Identifier
17882 , p_source_14 IN VARCHAR2
17883 , p_source_14_meaning IN VARCHAR2
17884 --Burden Amount Display Method
17885 , p_source_15 IN VARCHAR2
17886 --Accounting Reversal Flag
17887 , p_source_16 IN VARCHAR2
17888 --Allocated to Application Identifier
17889 , p_source_17 IN NUMBER
17890 --Allocated to Distribution Type
17891 , p_source_18 IN VARCHAR2
17892 --Allocated to Entity Code
17893 , p_source_19 IN VARCHAR2
17894 --Allocated to First Distribution Identifier
17895 , p_source_20 IN NUMBER
17896 --Allocated to First System Transaction Identifier
17897 , p_source_21 IN NUMBER
17898 --Purchase Order Burden Applied to Application Identifier
17899 , p_source_23 IN NUMBER
17900 --PO Distribution Type
17901 , p_source_24 IN VARCHAR2
17902 --Purchase Order Burden Applied to Entity Code
17903 , p_source_25 IN VARCHAR2
17904 --Purchase Order Burden Applied to First Distribution Identifier
17905 , p_source_26 IN NUMBER
17906 --Purchase Order Burden Applied to First System Transaction Identifier
17907 , p_source_27 IN NUMBER
17908 --Purchase Order Burden Applied to Second Distribution Identifier
17909 , p_source_28 IN VARCHAR2
17910 --PO Distribution Identifier
17911 , p_source_29 IN NUMBER
17912 --Line Type Name
17913 , p_source_30 IN VARCHAR2
17914 --Encumbrance Upgrade Credit Accounting Class
17915 , p_source_31 IN VARCHAR2
17916 --Encumbrance Upgrade Credit Account
17917 , p_source_32 IN NUMBER
17918 --Entered Amount
17919 , p_source_33 IN NUMBER
17920 --Currency Code
17921 , p_source_34 IN VARCHAR2
17922 --Accounted Amount
17923 , p_source_35 IN NUMBER
17924 --Encumbrance Upgrade Debit Accounting Class
17925 , p_source_36 IN VARCHAR2
17926 --Encumbrance Upgrade Debit Account
17927 , p_source_37 IN NUMBER
17928 --Use Encumbrances Upgrade Attributes Flag
17929 , p_source_38 IN VARCHAR2
17930 --Encumbrance Upgrade Credit Encumbrance Type
17931 , p_source_39 IN NUMBER
17932 --Encumbrance Upgrade Debit Encumbrance Type
17933 , p_source_40 IN NUMBER
17934 --Backing Requisition Prevent Encumbrance Flag Flipped
17935 , p_source_67 IN VARCHAR2
17936 )
17937 IS
17938
17939 l_component_type VARCHAR2(80);
17940 l_component_code VARCHAR2(30);
17941 l_component_type_code VARCHAR2(1);
17942 l_component_appl_id INTEGER;
17943 l_amb_context_code VARCHAR2(30);
17944 l_entity_code VARCHAR2(30);
17945 l_event_class_code VARCHAR2(30);
17946 l_ae_header_id NUMBER;
17947 l_event_type_code VARCHAR2(30);
17948 l_line_definition_code VARCHAR2(30);
17949 l_line_definition_owner_code VARCHAR2(1);
17950 --
17951 -- adr variables
17952 l_segment VARCHAR2(30);
17953 l_ccid NUMBER;
17954 l_adr_transaction_coa_id NUMBER;
17955 l_adr_accounting_coa_id NUMBER;
17956 l_adr_flexfield_segment_code VARCHAR2(30);
17957 l_adr_flex_value_set_id NUMBER;
17958 l_adr_value_type_code VARCHAR2(30);
17959 l_adr_value_combination_id NUMBER;
17960 l_adr_value_segment_code VARCHAR2(30);
17961
17962 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
17963 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
17964 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
17965 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
17966
17967 -- 4262811 Variables ------------------------------------------------------------------------------------------
17968 l_entered_amt_idx NUMBER;
17969 l_accted_amt_idx NUMBER;
17970 l_acc_rev_flag VARCHAR2(1);
17971 l_accrual_line_num NUMBER;
17972 l_tmp_amt NUMBER;
17973 l_acc_rev_natural_side_code VARCHAR2(1);
17974
17975 l_num_entries NUMBER;
17976 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
17977 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
17978 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
17979 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
17980 l_recog_line_1 NUMBER;
17981 l_recog_line_2 NUMBER;
17982
17983 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
17984 l_bflow_applied_to_amt NUMBER; -- 5132302
17985 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
17986
17987 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
17988
17989 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
17990 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
17991
17992 ---------------------------------------------------------------------------------------------------------------
17993
17994
17995 --
17996 -- bulk performance
17997 --
17998 l_balance_type_code VARCHAR2(1);
17999 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
18000 l_log_module VARCHAR2(240);
18001
18002 --
18003 -- Upgrade strategy
18004 --
18005 l_actual_upg_option VARCHAR2(1);
18006 l_enc_upg_option VARCHAR2(1);
18007
18008 --
18009 BEGIN
18010 --
18011 IF g_log_enabled THEN
18012 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_36';
18013 END IF;
18014 --
18015 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18016
18017 trace
18018 (p_msg => 'BEGIN of AcctLineType_36'
18019 ,p_level => C_LEVEL_PROCEDURE
18020 ,p_module => l_log_module);
18021
18022 END IF;
18023 --
18024 l_component_type := 'AMB_JLT';
18025 l_component_code := 'REINST_UNENC_BURDEND_REQFORPO';
18026 l_component_type_code := 'S';
18027 l_component_appl_id := 201;
18028 l_amb_context_code := 'DEFAULT';
18029 l_entity_code := 'PURCHASE_ORDER';
18030 l_event_class_code := 'PO_BURDEN';
18031 l_event_type_code := 'PO_BURDEN_ALL';
18032 l_line_definition_owner_code := 'S';
18033 l_line_definition_code := 'PO_BURDEN_ENC_ALL';
18034 --
18035 l_balance_type_code := 'E';
18036 l_segment := NULL;
18037 l_ccid := NULL;
18038 l_adr_transaction_coa_id := NULL;
18039 l_adr_accounting_coa_id := NULL;
18040 l_adr_flexfield_segment_code := NULL;
18041 l_adr_flex_value_set_id := NULL;
18042 l_adr_value_type_code := NULL;
18043 l_adr_value_combination_id := NULL;
18044 l_adr_value_segment_code := NULL;
18045
18046 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
18047 l_bflow_class_code := ''; -- 4219869 Business Flow
18048 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
18049 l_budgetary_control_flag := 'Y';
18050
18051 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18052 l_bflow_applied_to_amt := NULL; -- 5132302
18053 l_entered_amt_idx := NULL; -- 4262811
18054 l_accted_amt_idx := NULL; -- 4262811
18055 l_acc_rev_flag := NULL; -- 4262811
18056 l_accrual_line_num := NULL; -- 4262811
18057 l_tmp_amt := NULL; -- 4262811
18058 --
18059
18060 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
18061 l_balance_type_code <> 'B' THEN
18062 IF (NVL(
18063 xla_ae_sources_pkg.GetSystemSourceChar(
18064 p_source_code => 'XLA_EVENT_TYPE_CODE'
18065 , p_source_type_code => 'Y'
18066 , p_source_application_id => 602
18067 ),'
18068 ') = 'PO_BURDEN_UNRESERVED' OR
18069 NVL(
18070 xla_ae_sources_pkg.GetSystemSourceChar(
18071 p_source_code => 'XLA_EVENT_TYPE_CODE'
18072 , p_source_type_code => 'Y'
18073 , p_source_application_id => 602
18074 ),'
18075 ') = 'PO_BURDEN_INV_CANCELLED' OR
18076 NVL(
18077 xla_ae_sources_pkg.GetSystemSourceChar(
18078 p_source_code => 'XLA_EVENT_TYPE_CODE'
18079 , p_source_type_code => 'Y'
18080 , p_source_application_id => 602
18081 ),'
18082 ') = 'PO_BURDEN_REJECTED') AND
18083 NVL(p_source_13,'
18084 ') = 'B_REQ' AND
18085 (NVL(p_source_14,'
18086 ') = 'N' OR
18087 NVL(p_source_14,'
18088 ') = 'O') AND
18089 NVL(p_source_9,'
18090 ') = 'REQ' AND
18091 NVL(p_source_15,'
18092 ') = 'S' AND
18093 NVL(p_source_67,'
18094 ') = 'Y'
18095 THEN
18096
18097 --
18098 XLA_AE_LINES_PKG.SetNewLine;
18099
18100 p_balance_type_code := l_balance_type_code;
18101 -- set the flag so later we will know whether the gain loss line needs to be created
18102
18103 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
18104 p_actual_flag :='A';
18105 END IF;
18106
18107 --
18108 -- bulk performance
18109 --
18110 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
18111 p_header_num => 0); -- 4262811
18112 --
18113 -- set accounting line options
18114 --
18115 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
18116 p_natural_side_code => 'D'
18117 , p_gain_or_loss_flag => 'N'
18118 , p_gl_transfer_mode_code => 'S'
18119 , p_acct_entry_type_code => 'E'
18120 , p_switch_side_flag => 'N'
18121 , p_merge_duplicate_code => 'N'
18122 );
18123 --
18124 l_acc_rev_natural_side_code := 'C'; -- 4262811
18125 --
18126 --
18127 -- set accounting line type info
18128 --
18129 xla_ae_lines_pkg.SetAcctLineType
18130 (p_component_type => l_component_type
18131 ,p_event_type_code => l_event_type_code
18132 ,p_line_definition_owner_code => l_line_definition_owner_code
18133 ,p_line_definition_code => l_line_definition_code
18134 ,p_accounting_line_code => l_component_code
18135 ,p_accounting_line_type_code => l_component_type_code
18136 ,p_accounting_line_appl_id => l_component_appl_id
18137 ,p_amb_context_code => l_amb_context_code
18138 ,p_entity_code => l_entity_code
18139 ,p_event_class_code => l_event_class_code);
18140 --
18141 -- set accounting class
18142 --
18143 xla_ae_lines_pkg.SetAcctClass(
18144 p_accounting_class_code => 'REQ_PA_BURDENED'
18145 , p_ae_header_id => l_ae_header_id
18146 );
18147
18148 --
18149 -- set rounding class
18150 --
18151 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
18152 'REQ_PA_BURDENED';
18153
18154 --
18155 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
18156 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
18157 --
18158 -- bulk performance
18159 --
18160 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
18161
18162 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
18163 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
18164
18165 -- 4955764
18166 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18167 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
18168
18169 -- 4458381 Public Sector Enh
18170 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1000;
18171 --
18172 -- set accounting attributes for the line type
18173 --
18174 l_entered_amt_idx := 27;
18175 l_accted_amt_idx := 29;
18176 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18177 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
18178 l_rec_acct_attrs.array_char_value(1) := p_source_16;
18179 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
18180 l_rec_acct_attrs.array_num_value(2) := p_source_17;
18181 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
18182 l_rec_acct_attrs.array_char_value(3) := p_source_18;
18183 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
18184 l_rec_acct_attrs.array_char_value(4) := p_source_19;
18185 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
18186 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
18187 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
18188 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
18189 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
18190 l_rec_acct_attrs.array_num_value(7) := p_source_23;
18191 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
18192 l_rec_acct_attrs.array_char_value(8) := p_source_24;
18193 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
18194 l_rec_acct_attrs.array_char_value(9) := p_source_25;
18195 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
18196 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_26);
18197 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
18198 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_27);
18199 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
18200 l_rec_acct_attrs.array_char_value(12) := p_source_28;
18201 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
18202 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_29);
18203 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
18204 l_rec_acct_attrs.array_char_value(14) := p_source_6;
18205 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
18206 l_rec_acct_attrs.array_char_value(15) := p_source_30;
18207 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
18208 l_rec_acct_attrs.array_char_value(16) := p_source_31;
18209 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
18210 l_rec_acct_attrs.array_num_value(17) := p_source_32;
18211 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
18212 l_rec_acct_attrs.array_num_value(18) := p_source_33;
18213 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
18214 l_rec_acct_attrs.array_char_value(19) := p_source_34;
18215 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
18216 l_rec_acct_attrs.array_num_value(20) := p_source_35;
18217 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
18218 l_rec_acct_attrs.array_char_value(21) := p_source_36;
18219 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
18220 l_rec_acct_attrs.array_num_value(22) := p_source_37;
18221 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
18222 l_rec_acct_attrs.array_num_value(23) := p_source_33;
18223 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
18224 l_rec_acct_attrs.array_char_value(24) := p_source_34;
18225 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
18226 l_rec_acct_attrs.array_num_value(25) := p_source_35;
18227 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
18228 l_rec_acct_attrs.array_char_value(26) := p_source_38;
18229 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
18230 l_rec_acct_attrs.array_num_value(27) := p_source_33;
18231 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
18232 l_rec_acct_attrs.array_char_value(28) := p_source_34;
18233 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
18234 l_rec_acct_attrs.array_num_value(29) := p_source_35;
18235 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
18236 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_29);
18237 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
18238 l_rec_acct_attrs.array_char_value(31) := p_source_6;
18239 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
18240 l_rec_acct_attrs.array_char_value(32) := p_source_30;
18241 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
18242 l_rec_acct_attrs.array_num_value(33) := p_source_39;
18243 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
18244 l_rec_acct_attrs.array_num_value(34) := p_source_40;
18245
18246 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
18247 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
18248
18249 ---------------------------------------------------------------------------------------------------------------
18250 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
18251 ---------------------------------------------------------------------------------------------------------------
18252 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
18253
18254 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18255 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18256
18257 IF xla_accounting_cache_pkg.GetValueChar
18258 (p_source_code => 'LEDGER_CATEGORY_CODE'
18259 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
18260 AND l_bflow_method_code = 'PRIOR_ENTRY'
18261 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
18262 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
18263 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
18264 )
18265 THEN
18266 xla_ae_lines_pkg.BflowUpgEntry
18267 (p_business_method_code => l_bflow_method_code
18268 ,p_business_class_code => l_bflow_class_code
18269 ,p_balance_type => l_balance_type_code);
18270 ELSE
18271 NULL;
18272 -- No business flow processing for business flow method of NONE.
18273 END IF;
18274
18275 --
18276 -- call analytical criteria
18277 --
18278
18279 --
18280 -- call description
18281 --
18282
18283 xla_ae_lines_pkg.SetLineDescription(
18284 p_ae_header_id => l_ae_header_id
18285 ,p_description => Description_2 (
18286 p_application_id => p_application_id
18287 , p_ae_header_id => l_ae_header_id
18288 , p_source_3 => p_source_3
18289 , p_source_4 => p_source_4
18290 , p_source_5 => p_source_5
18291 , p_source_6 => p_source_6
18292 )
18293 );
18294
18295
18296 --
18297 -- call ADRs
18298 -- Bug 4922099
18299 --
18300 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18301 (NVL(l_actual_upg_option, 'N') = 'O') OR
18302 (NVL(l_enc_upg_option, 'N') = 'O')
18303 )
18304 THEN
18305 NULL;
18306 --
18307 --
18308
18309 l_ccid := AcctDerRule_6(
18310 p_application_id => p_application_id
18311 , p_ae_header_id => l_ae_header_id
18312 , p_source_11 => p_source_11
18313 , x_transaction_coa_id => l_adr_transaction_coa_id
18314 , x_accounting_coa_id => l_adr_accounting_coa_id
18315 , x_value_type_code => l_adr_value_type_code
18316 , p_side => 'NA'
18317 );
18318
18319 xla_ae_lines_pkg.set_ccid(
18320 p_code_combination_id => l_ccid
18321 , p_value_type_code => l_adr_value_type_code
18322 , p_transaction_coa_id => l_adr_transaction_coa_id
18323 , p_accounting_coa_id => l_adr_accounting_coa_id
18324 , p_adr_code => 'PROJ_BURDENED_ENC_ACCT_RULE'
18325 , p_adr_type_code => 'S'
18326 , p_component_type => l_component_type
18327 , p_component_code => l_component_code
18328 , p_component_type_code => l_component_type_code
18329 , p_component_appl_id => l_component_appl_id
18330 , p_amb_context_code => l_amb_context_code
18331 , p_side => 'NA'
18332 );
18333
18334
18335 --
18336 --
18337 END IF;
18338 --
18339 -- Bug 4922099
18340 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
18341 (NVL(l_enc_upg_option, 'N') = 'O')
18342 ) AND
18343 (l_bflow_method_code = 'PRIOR_ENTRY')
18344 )
18345 THEN
18346 IF
18347 --
18348 1 = 2
18349 --
18350 THEN
18351 xla_accounting_err_pkg.build_message
18352 (p_appli_s_name => 'XLA'
18353 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18354 ,p_token_1 => 'LINE_NUMBER'
18355 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
18356 ,p_token_2 => 'LINE_TYPE_NAME'
18357 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
18358 l_component_type
18359 ,l_component_code
18360 ,l_component_type_code
18361 ,l_component_appl_id
18362 ,l_amb_context_code
18363 ,l_entity_code
18364 ,l_event_class_code
18365 )
18366 ,p_token_3 => 'OWNER'
18367 ,p_value_3 => xla_lookups_pkg.get_meaning(
18368 p_lookup_type => 'XLA_OWNER_TYPE'
18369 ,p_lookup_code => l_component_type_code
18370 )
18371 ,p_token_4 => 'PRODUCT_NAME'
18372 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
18373 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
18374 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
18375 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
18376 ,p_ae_header_id => NULL
18377 );
18378
18379 IF (C_LEVEL_ERROR>= g_log_level) THEN
18380 trace
18381 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18382 ,p_level => C_LEVEL_ERROR
18383 ,p_module => l_log_module);
18384 END IF;
18385 END IF;
18386 END IF;
18387 --
18388 --
18389 ------------------------------------------------------------------------------------------------
18390 -- 4219869 Business Flow
18391 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
18392 -- Prior Entry. Currently, the following code is always generated.
18393 ------------------------------------------------------------------------------------------------
18394 XLA_AE_LINES_PKG.ValidateCurrentLine;
18395
18396 ------------------------------------------------------------------------------------
18397 -- 4219869 Business Flow
18398 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
18399 ------------------------------------------------------------------------------------
18400 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18401
18402 ----------------------------------------------------------------------------------
18403 -- 4219869 Business Flow
18404 -- Update journal entry status -- Need to generate this within IF <condition>
18405 ----------------------------------------------------------------------------------
18406 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18407 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
18408 ,p_balance_type_code => l_balance_type_code
18409 );
18410
18411 -------------------------------------------------------------------------------------------
18412 -- 4262811 - Generate the Accrual Reversal lines
18413 -------------------------------------------------------------------------------------------
18414 BEGIN
18415 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
18416 (g_array_event(p_event_id).array_value_num('header_index'));
18417 IF l_acc_rev_flag IS NULL THEN
18418 l_acc_rev_flag := 'N';
18419 END IF;
18420 EXCEPTION
18421 WHEN OTHERS THEN
18422 l_acc_rev_flag := 'N';
18423 END;
18424 --
18425 IF (l_acc_rev_flag = 'Y') THEN
18426
18427 -- 4645092 ------------------------------------------------------------------------------
18428 -- To allow MPA report to determine if it should generate report process
18429 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
18430 ------------------------------------------------------------------------------------------
18431
18432 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
18433 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
18434
18435 --
18436 -- Update the line information that should be overwritten
18437 --
18438 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
18439 p_header_num => 1);
18440 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
18441
18442 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
18443
18444 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
18445 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
18446 END IF;
18447
18448 --
18449 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
18450 --
18451 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
18452 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
18453 ELSE
18454 ---------------------------------------------------------------------------------------------------
18455 -- 4262811a Switch Sign
18456 ---------------------------------------------------------------------------------------------------
18457 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
18458 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18459 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18460 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18461 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18462 -- 5132302
18463 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
18464 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18465
18466 END IF;
18467
18468 -- 4955764
18469 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18470 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
18471
18472
18473 XLA_AE_LINES_PKG.ValidateCurrentLine;
18474 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18475
18476 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18477 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
18478 ,p_balance_type_code => l_balance_type_code);
18479
18480 END IF;
18481
18482 -----------------------------------------------------------------------------------------
18483 -- 4262811 Multiperiod Accounting
18484 -----------------------------------------------------------------------------------------
18485 -- No MPA option is assigned.
18486
18487
18488 END IF;
18489 END IF;
18490 --
18491
18492 --
18493 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18494 trace
18495 (p_msg => 'END of AcctLineType_36'
18496 ,p_level => C_LEVEL_PROCEDURE
18497 ,p_module => l_log_module);
18498 END IF;
18499 --
18500 EXCEPTION
18501 WHEN xla_exceptions_pkg.application_exception THEN
18502 RAISE;
18503 WHEN OTHERS THEN
18504 xla_exceptions_pkg.raise_message
18505 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_36');
18506 END AcctLineType_36;
18507 --
18508
18509 ---------------------------------------
18510 --
18511 -- PRIVATE FUNCTION
18512 -- AcctLineType_37
18513 --
18514 ---------------------------------------
18515 PROCEDURE AcctLineType_37 (
18516 p_application_id IN NUMBER
18517 ,p_event_id IN NUMBER
18518 ,p_calculate_acctd_flag IN VARCHAR2
18519 ,p_calculate_g_l_flag IN VARCHAR2
18520 ,p_actual_flag IN OUT VARCHAR2
18521 ,p_balance_type_code OUT VARCHAR2
18522 ,p_gain_or_loss_ref OUT VARCHAR2
18523
18524 --Project Name
18525 , p_source_3 IN VARCHAR2
18526 --Task Name
18527 , p_source_4 IN VARCHAR2
18528 --Project Expenditure Organization Identifier
18529 , p_source_5 IN NUMBER
18530 --Expenditure Type
18531 , p_source_6 IN VARCHAR2
18532 --Document Type
18533 , p_source_9 IN VARCHAR2
18534 --Budget Account
18535 , p_source_11 IN NUMBER
18536 --Main Or Backing Code
18537 , p_source_13 IN VARCHAR2
18538 --Burden Record Identifier
18539 , p_source_14 IN VARCHAR2
18540 , p_source_14_meaning IN VARCHAR2
18541 --Burden Amount Display Method
18542 , p_source_15 IN VARCHAR2
18543 --Accounting Reversal Flag
18544 , p_source_16 IN VARCHAR2
18545 --Allocated to Application Identifier
18546 , p_source_17 IN NUMBER
18547 --Allocated to Distribution Type
18548 , p_source_18 IN VARCHAR2
18549 --Allocated to Entity Code
18550 , p_source_19 IN VARCHAR2
18551 --Allocated to First Distribution Identifier
18552 , p_source_20 IN NUMBER
18553 --Allocated to First System Transaction Identifier
18554 , p_source_21 IN NUMBER
18555 --Purchase Order Burden Applied to Application Identifier
18556 , p_source_23 IN NUMBER
18557 --PO Distribution Type
18558 , p_source_24 IN VARCHAR2
18559 --Purchase Order Burden Applied to Entity Code
18560 , p_source_25 IN VARCHAR2
18561 --Purchase Order Burden Applied to First Distribution Identifier
18562 , p_source_26 IN NUMBER
18563 --Purchase Order Burden Applied to First System Transaction Identifier
18564 , p_source_27 IN NUMBER
18565 --Purchase Order Burden Applied to Second Distribution Identifier
18566 , p_source_28 IN VARCHAR2
18567 --PO Distribution Identifier
18568 , p_source_29 IN NUMBER
18569 --Line Type Name
18570 , p_source_30 IN VARCHAR2
18571 --Encumbrance Upgrade Credit Accounting Class
18572 , p_source_31 IN VARCHAR2
18573 --Encumbrance Upgrade Credit Account
18574 , p_source_32 IN NUMBER
18575 --Entered Amount
18576 , p_source_33 IN NUMBER
18577 --Currency Code
18578 , p_source_34 IN VARCHAR2
18579 --Accounted Amount
18580 , p_source_35 IN NUMBER
18581 --Encumbrance Upgrade Debit Accounting Class
18582 , p_source_36 IN VARCHAR2
18583 --Encumbrance Upgrade Debit Account
18584 , p_source_37 IN NUMBER
18585 --Use Encumbrances Upgrade Attributes Flag
18586 , p_source_38 IN VARCHAR2
18587 --Encumbrance Upgrade Credit Encumbrance Type
18588 , p_source_39 IN NUMBER
18589 --Encumbrance Upgrade Debit Encumbrance Type
18590 , p_source_40 IN NUMBER
18591 --Backing Requisition Prevent Encumbrance Flag Flipped
18592 , p_source_67 IN VARCHAR2
18593 )
18594 IS
18595
18596 l_component_type VARCHAR2(80);
18597 l_component_code VARCHAR2(30);
18598 l_component_type_code VARCHAR2(1);
18599 l_component_appl_id INTEGER;
18600 l_amb_context_code VARCHAR2(30);
18601 l_entity_code VARCHAR2(30);
18602 l_event_class_code VARCHAR2(30);
18603 l_ae_header_id NUMBER;
18604 l_event_type_code VARCHAR2(30);
18605 l_line_definition_code VARCHAR2(30);
18606 l_line_definition_owner_code VARCHAR2(1);
18607 --
18608 -- adr variables
18609 l_segment VARCHAR2(30);
18610 l_ccid NUMBER;
18611 l_adr_transaction_coa_id NUMBER;
18612 l_adr_accounting_coa_id NUMBER;
18613 l_adr_flexfield_segment_code VARCHAR2(30);
18614 l_adr_flex_value_set_id NUMBER;
18615 l_adr_value_type_code VARCHAR2(30);
18616 l_adr_value_combination_id NUMBER;
18617 l_adr_value_segment_code VARCHAR2(30);
18618
18619 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
18620 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
18621 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
18622 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
18623
18624 -- 4262811 Variables ------------------------------------------------------------------------------------------
18625 l_entered_amt_idx NUMBER;
18626 l_accted_amt_idx NUMBER;
18627 l_acc_rev_flag VARCHAR2(1);
18628 l_accrual_line_num NUMBER;
18629 l_tmp_amt NUMBER;
18630 l_acc_rev_natural_side_code VARCHAR2(1);
18631
18632 l_num_entries NUMBER;
18633 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
18634 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
18635 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
18636 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
18637 l_recog_line_1 NUMBER;
18638 l_recog_line_2 NUMBER;
18639
18640 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
18641 l_bflow_applied_to_amt NUMBER; -- 5132302
18642 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
18643
18644 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
18645
18646 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
18647 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
18648
18649 ---------------------------------------------------------------------------------------------------------------
18650
18651
18652 --
18653 -- bulk performance
18654 --
18655 l_balance_type_code VARCHAR2(1);
18656 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
18657 l_log_module VARCHAR2(240);
18658
18659 --
18660 -- Upgrade strategy
18661 --
18662 l_actual_upg_option VARCHAR2(1);
18663 l_enc_upg_option VARCHAR2(1);
18664
18665 --
18666 BEGIN
18667 --
18668 IF g_log_enabled THEN
18669 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_37';
18670 END IF;
18671 --
18672 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18673
18674 trace
18675 (p_msg => 'BEGIN of AcctLineType_37'
18676 ,p_level => C_LEVEL_PROCEDURE
18677 ,p_module => l_log_module);
18678
18679 END IF;
18680 --
18681 l_component_type := 'AMB_JLT';
18682 l_component_code := 'REINST_UNENC_BURDEN_REQFORPO';
18683 l_component_type_code := 'S';
18684 l_component_appl_id := 201;
18685 l_amb_context_code := 'DEFAULT';
18686 l_entity_code := 'PURCHASE_ORDER';
18687 l_event_class_code := 'PO_BURDEN';
18688 l_event_type_code := 'PO_BURDEN_ALL';
18689 l_line_definition_owner_code := 'S';
18690 l_line_definition_code := 'PO_BURDEN_ENC_ALL';
18691 --
18692 l_balance_type_code := 'E';
18693 l_segment := NULL;
18694 l_ccid := NULL;
18695 l_adr_transaction_coa_id := NULL;
18696 l_adr_accounting_coa_id := NULL;
18697 l_adr_flexfield_segment_code := NULL;
18698 l_adr_flex_value_set_id := NULL;
18699 l_adr_value_type_code := NULL;
18700 l_adr_value_combination_id := NULL;
18701 l_adr_value_segment_code := NULL;
18702
18703 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
18704 l_bflow_class_code := ''; -- 4219869 Business Flow
18705 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
18706 l_budgetary_control_flag := 'Y';
18707
18708 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18709 l_bflow_applied_to_amt := NULL; -- 5132302
18710 l_entered_amt_idx := NULL; -- 4262811
18711 l_accted_amt_idx := NULL; -- 4262811
18712 l_acc_rev_flag := NULL; -- 4262811
18713 l_accrual_line_num := NULL; -- 4262811
18714 l_tmp_amt := NULL; -- 4262811
18715 --
18716
18717 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
18718 l_balance_type_code <> 'B' THEN
18719 IF (NVL(
18720 xla_ae_sources_pkg.GetSystemSourceChar(
18721 p_source_code => 'XLA_EVENT_TYPE_CODE'
18722 , p_source_type_code => 'Y'
18723 , p_source_application_id => 602
18724 ),'
18725 ') = 'PO_BURDEN_UNRESERVED' OR
18726 NVL(
18727 xla_ae_sources_pkg.GetSystemSourceChar(
18728 p_source_code => 'XLA_EVENT_TYPE_CODE'
18729 , p_source_type_code => 'Y'
18730 , p_source_application_id => 602
18731 ),'
18732 ') = 'PO_BURDEN_INV_CANCELLED' OR
18733 NVL(
18734 xla_ae_sources_pkg.GetSystemSourceChar(
18735 p_source_code => 'XLA_EVENT_TYPE_CODE'
18736 , p_source_type_code => 'Y'
18737 , p_source_application_id => 602
18738 ),'
18739 ') = 'PO_BURDEN_REJECTED') AND
18740 NVL(p_source_13,'
18741 ') = 'B_REQ' AND
18742 NVL(p_source_14,'
18743 ') = 'O' AND
18744 NVL(p_source_9,'
18745 ') = 'REQ' AND
18746 NVL(p_source_15,'
18747 ') = 'D' AND
18748 NVL(p_source_67,'
18749 ') = 'Y'
18750 THEN
18751
18752 --
18753 XLA_AE_LINES_PKG.SetNewLine;
18754
18755 p_balance_type_code := l_balance_type_code;
18756 -- set the flag so later we will know whether the gain loss line needs to be created
18757
18758 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
18759 p_actual_flag :='A';
18760 END IF;
18761
18762 --
18763 -- bulk performance
18764 --
18765 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
18766 p_header_num => 0); -- 4262811
18767 --
18768 -- set accounting line options
18769 --
18770 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
18771 p_natural_side_code => 'D'
18772 , p_gain_or_loss_flag => 'N'
18773 , p_gl_transfer_mode_code => 'S'
18774 , p_acct_entry_type_code => 'E'
18775 , p_switch_side_flag => 'N'
18776 , p_merge_duplicate_code => 'N'
18777 );
18778 --
18779 l_acc_rev_natural_side_code := 'C'; -- 4262811
18780 --
18781 --
18782 -- set accounting line type info
18783 --
18784 xla_ae_lines_pkg.SetAcctLineType
18785 (p_component_type => l_component_type
18786 ,p_event_type_code => l_event_type_code
18787 ,p_line_definition_owner_code => l_line_definition_owner_code
18788 ,p_line_definition_code => l_line_definition_code
18789 ,p_accounting_line_code => l_component_code
18790 ,p_accounting_line_type_code => l_component_type_code
18791 ,p_accounting_line_appl_id => l_component_appl_id
18792 ,p_amb_context_code => l_amb_context_code
18793 ,p_entity_code => l_entity_code
18794 ,p_event_class_code => l_event_class_code);
18795 --
18796 -- set accounting class
18797 --
18798 xla_ae_lines_pkg.SetAcctClass(
18799 p_accounting_class_code => 'REQ_PA_BURDEN'
18800 , p_ae_header_id => l_ae_header_id
18801 );
18802
18803 --
18804 -- set rounding class
18805 --
18806 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
18807 'REQ_PA_BURDEN';
18808
18809 --
18810 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
18811 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
18812 --
18813 -- bulk performance
18814 --
18815 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
18816
18817 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
18818 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
18819
18820 -- 4955764
18821 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18822 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
18823
18824 -- 4458381 Public Sector Enh
18825 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1000;
18826 --
18827 -- set accounting attributes for the line type
18828 --
18829 l_entered_amt_idx := 27;
18830 l_accted_amt_idx := 29;
18831 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18832 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
18833 l_rec_acct_attrs.array_char_value(1) := p_source_16;
18834 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
18835 l_rec_acct_attrs.array_num_value(2) := p_source_17;
18836 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
18837 l_rec_acct_attrs.array_char_value(3) := p_source_18;
18838 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
18839 l_rec_acct_attrs.array_char_value(4) := p_source_19;
18840 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
18841 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
18842 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
18843 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
18844 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
18845 l_rec_acct_attrs.array_num_value(7) := p_source_23;
18846 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
18847 l_rec_acct_attrs.array_char_value(8) := p_source_24;
18848 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
18849 l_rec_acct_attrs.array_char_value(9) := p_source_25;
18850 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
18851 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_26);
18852 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
18853 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_27);
18854 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
18855 l_rec_acct_attrs.array_char_value(12) := p_source_28;
18856 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
18857 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_29);
18858 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
18859 l_rec_acct_attrs.array_char_value(14) := p_source_6;
18860 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
18861 l_rec_acct_attrs.array_char_value(15) := p_source_30;
18862 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
18863 l_rec_acct_attrs.array_char_value(16) := p_source_31;
18864 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
18865 l_rec_acct_attrs.array_num_value(17) := p_source_32;
18866 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
18867 l_rec_acct_attrs.array_num_value(18) := p_source_33;
18868 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
18869 l_rec_acct_attrs.array_char_value(19) := p_source_34;
18870 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
18871 l_rec_acct_attrs.array_num_value(20) := p_source_35;
18872 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
18873 l_rec_acct_attrs.array_char_value(21) := p_source_36;
18874 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
18875 l_rec_acct_attrs.array_num_value(22) := p_source_37;
18876 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
18877 l_rec_acct_attrs.array_num_value(23) := p_source_33;
18878 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
18879 l_rec_acct_attrs.array_char_value(24) := p_source_34;
18880 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
18881 l_rec_acct_attrs.array_num_value(25) := p_source_35;
18882 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
18883 l_rec_acct_attrs.array_char_value(26) := p_source_38;
18884 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
18885 l_rec_acct_attrs.array_num_value(27) := p_source_33;
18886 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
18887 l_rec_acct_attrs.array_char_value(28) := p_source_34;
18888 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
18889 l_rec_acct_attrs.array_num_value(29) := p_source_35;
18890 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
18891 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_29);
18892 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
18893 l_rec_acct_attrs.array_char_value(31) := p_source_6;
18894 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
18895 l_rec_acct_attrs.array_char_value(32) := p_source_30;
18896 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
18897 l_rec_acct_attrs.array_num_value(33) := p_source_39;
18898 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
18899 l_rec_acct_attrs.array_num_value(34) := p_source_40;
18900
18901 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
18902 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
18903
18904 ---------------------------------------------------------------------------------------------------------------
18905 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
18906 ---------------------------------------------------------------------------------------------------------------
18907 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
18908
18909 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18910 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18911
18912 IF xla_accounting_cache_pkg.GetValueChar
18913 (p_source_code => 'LEDGER_CATEGORY_CODE'
18914 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
18915 AND l_bflow_method_code = 'PRIOR_ENTRY'
18916 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
18917 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
18918 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
18919 )
18920 THEN
18921 xla_ae_lines_pkg.BflowUpgEntry
18922 (p_business_method_code => l_bflow_method_code
18923 ,p_business_class_code => l_bflow_class_code
18924 ,p_balance_type => l_balance_type_code);
18925 ELSE
18926 NULL;
18927 -- No business flow processing for business flow method of NONE.
18928 END IF;
18929
18930 --
18931 -- call analytical criteria
18932 --
18933
18934 --
18935 -- call description
18936 --
18937
18938 xla_ae_lines_pkg.SetLineDescription(
18939 p_ae_header_id => l_ae_header_id
18940 ,p_description => Description_2 (
18941 p_application_id => p_application_id
18942 , p_ae_header_id => l_ae_header_id
18943 , p_source_3 => p_source_3
18944 , p_source_4 => p_source_4
18945 , p_source_5 => p_source_5
18946 , p_source_6 => p_source_6
18947 )
18948 );
18949
18950
18951 --
18952 -- call ADRs
18953 -- Bug 4922099
18954 --
18955 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18956 (NVL(l_actual_upg_option, 'N') = 'O') OR
18957 (NVL(l_enc_upg_option, 'N') = 'O')
18958 )
18959 THEN
18960 NULL;
18961 --
18962 --
18963
18964 l_ccid := AcctDerRule_7(
18965 p_application_id => p_application_id
18966 , p_ae_header_id => l_ae_header_id
18967 , p_source_11 => p_source_11
18968 , x_transaction_coa_id => l_adr_transaction_coa_id
18969 , x_accounting_coa_id => l_adr_accounting_coa_id
18970 , x_value_type_code => l_adr_value_type_code
18971 , p_side => 'NA'
18972 );
18973
18974 xla_ae_lines_pkg.set_ccid(
18975 p_code_combination_id => l_ccid
18976 , p_value_type_code => l_adr_value_type_code
18977 , p_transaction_coa_id => l_adr_transaction_coa_id
18978 , p_accounting_coa_id => l_adr_accounting_coa_id
18979 , p_adr_code => 'PROJ_BURDEN_ENC_ACCT_RULE'
18980 , p_adr_type_code => 'S'
18981 , p_component_type => l_component_type
18982 , p_component_code => l_component_code
18983 , p_component_type_code => l_component_type_code
18984 , p_component_appl_id => l_component_appl_id
18985 , p_amb_context_code => l_amb_context_code
18986 , p_side => 'NA'
18987 );
18988
18989
18990 --
18991 --
18992 END IF;
18993 --
18994 -- Bug 4922099
18995 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
18996 (NVL(l_enc_upg_option, 'N') = 'O')
18997 ) AND
18998 (l_bflow_method_code = 'PRIOR_ENTRY')
18999 )
19000 THEN
19001 IF
19002 --
19003 1 = 2
19004 --
19005 THEN
19006 xla_accounting_err_pkg.build_message
19007 (p_appli_s_name => 'XLA'
19008 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19009 ,p_token_1 => 'LINE_NUMBER'
19010 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
19011 ,p_token_2 => 'LINE_TYPE_NAME'
19012 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
19013 l_component_type
19014 ,l_component_code
19015 ,l_component_type_code
19016 ,l_component_appl_id
19017 ,l_amb_context_code
19018 ,l_entity_code
19019 ,l_event_class_code
19020 )
19021 ,p_token_3 => 'OWNER'
19022 ,p_value_3 => xla_lookups_pkg.get_meaning(
19023 p_lookup_type => 'XLA_OWNER_TYPE'
19024 ,p_lookup_code => l_component_type_code
19025 )
19026 ,p_token_4 => 'PRODUCT_NAME'
19027 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
19028 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
19029 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
19030 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
19031 ,p_ae_header_id => NULL
19032 );
19033
19034 IF (C_LEVEL_ERROR>= g_log_level) THEN
19035 trace
19036 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19037 ,p_level => C_LEVEL_ERROR
19038 ,p_module => l_log_module);
19039 END IF;
19040 END IF;
19041 END IF;
19042 --
19043 --
19044 ------------------------------------------------------------------------------------------------
19045 -- 4219869 Business Flow
19046 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
19047 -- Prior Entry. Currently, the following code is always generated.
19048 ------------------------------------------------------------------------------------------------
19049 XLA_AE_LINES_PKG.ValidateCurrentLine;
19050
19051 ------------------------------------------------------------------------------------
19052 -- 4219869 Business Flow
19053 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
19054 ------------------------------------------------------------------------------------
19055 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19056
19057 ----------------------------------------------------------------------------------
19058 -- 4219869 Business Flow
19059 -- Update journal entry status -- Need to generate this within IF <condition>
19060 ----------------------------------------------------------------------------------
19061 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19062 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
19063 ,p_balance_type_code => l_balance_type_code
19064 );
19065
19066 -------------------------------------------------------------------------------------------
19067 -- 4262811 - Generate the Accrual Reversal lines
19068 -------------------------------------------------------------------------------------------
19069 BEGIN
19070 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
19071 (g_array_event(p_event_id).array_value_num('header_index'));
19072 IF l_acc_rev_flag IS NULL THEN
19073 l_acc_rev_flag := 'N';
19074 END IF;
19075 EXCEPTION
19076 WHEN OTHERS THEN
19077 l_acc_rev_flag := 'N';
19078 END;
19079 --
19080 IF (l_acc_rev_flag = 'Y') THEN
19081
19082 -- 4645092 ------------------------------------------------------------------------------
19083 -- To allow MPA report to determine if it should generate report process
19084 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
19085 ------------------------------------------------------------------------------------------
19086
19087 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
19088 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
19089
19090 --
19091 -- Update the line information that should be overwritten
19092 --
19093 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
19094 p_header_num => 1);
19095 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
19096
19097 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
19098
19099 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
19100 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
19101 END IF;
19102
19103 --
19104 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
19105 --
19106 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
19107 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
19108 ELSE
19109 ---------------------------------------------------------------------------------------------------
19110 -- 4262811a Switch Sign
19111 ---------------------------------------------------------------------------------------------------
19112 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
19113 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19114 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19115 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19116 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19117 -- 5132302
19118 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
19119 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19120
19121 END IF;
19122
19123 -- 4955764
19124 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19125 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
19126
19127
19128 XLA_AE_LINES_PKG.ValidateCurrentLine;
19129 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19130
19131 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19132 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19133 ,p_balance_type_code => l_balance_type_code);
19134
19135 END IF;
19136
19137 -----------------------------------------------------------------------------------------
19138 -- 4262811 Multiperiod Accounting
19139 -----------------------------------------------------------------------------------------
19140 -- No MPA option is assigned.
19141
19142
19143 END IF;
19144 END IF;
19145 --
19146
19147 --
19148 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19149 trace
19150 (p_msg => 'END of AcctLineType_37'
19151 ,p_level => C_LEVEL_PROCEDURE
19152 ,p_module => l_log_module);
19153 END IF;
19154 --
19155 EXCEPTION
19156 WHEN xla_exceptions_pkg.application_exception THEN
19157 RAISE;
19158 WHEN OTHERS THEN
19159 xla_exceptions_pkg.raise_message
19160 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_37');
19161 END AcctLineType_37;
19162 --
19163
19164 ---------------------------------------
19165 --
19166 -- PRIVATE FUNCTION
19167 -- AcctLineType_38
19168 --
19169 ---------------------------------------
19170 PROCEDURE AcctLineType_38 (
19171 p_application_id IN NUMBER
19172 ,p_event_id IN NUMBER
19173 ,p_calculate_acctd_flag IN VARCHAR2
19174 ,p_calculate_g_l_flag IN VARCHAR2
19175 ,p_actual_flag IN OUT VARCHAR2
19176 ,p_balance_type_code OUT VARCHAR2
19177 ,p_gain_or_loss_ref OUT VARCHAR2
19178
19179 --Budget Account
19180 , p_source_11 IN NUMBER
19181 --Main Or Backing Code
19182 , p_source_13 IN VARCHAR2
19183 --Accounting Reversal Flag
19184 , p_source_16 IN VARCHAR2
19185 --PO Distribution Identifier
19186 , p_source_29 IN NUMBER
19187 --Entered Amount
19188 , p_source_33 IN NUMBER
19189 --Currency Code
19190 , p_source_34 IN VARCHAR2
19191 --Accounted Amount
19192 , p_source_35 IN NUMBER
19193 --Allocated to Main Document Distribution Type
19194 , p_source_49 IN VARCHAR2
19195 --Allocated to Main Document Distribution Identifier
19196 , p_source_51 IN NUMBER
19197 --PO Header Identifier
19198 , p_source_52 IN NUMBER
19199 --Applied To Application Identifier
19200 , p_source_53 IN NUMBER
19201 --Applied To Distribution Link Type
19202 , p_source_54 IN VARCHAR2
19203 --Applied To Entity Code
19204 , p_source_55 IN VARCHAR2
19205 --Applied To Distribution Identifier 1
19206 , p_source_56 IN NUMBER
19207 --Applied To Header Identifier 1
19208 , p_source_57 IN NUMBER
19209 --Distribution Link Type
19210 , p_source_58 IN VARCHAR2
19211 --PO Encumbrance Upgrade Option
19212 , p_source_59 IN VARCHAR2
19213 --JFMIP Reference
19214 , p_source_60 IN VARCHAR2
19215 --PO Upgrade Encumbrance Type Identifier
19216 , p_source_61 IN NUMBER
19217 )
19218 IS
19219
19220 l_component_type VARCHAR2(80);
19221 l_component_code VARCHAR2(30);
19222 l_component_type_code VARCHAR2(1);
19223 l_component_appl_id INTEGER;
19224 l_amb_context_code VARCHAR2(30);
19225 l_entity_code VARCHAR2(30);
19226 l_event_class_code VARCHAR2(30);
19227 l_ae_header_id NUMBER;
19228 l_event_type_code VARCHAR2(30);
19229 l_line_definition_code VARCHAR2(30);
19230 l_line_definition_owner_code VARCHAR2(1);
19231 --
19232 -- adr variables
19233 l_segment VARCHAR2(30);
19234 l_ccid NUMBER;
19235 l_adr_transaction_coa_id NUMBER;
19236 l_adr_accounting_coa_id NUMBER;
19237 l_adr_flexfield_segment_code VARCHAR2(30);
19238 l_adr_flex_value_set_id NUMBER;
19239 l_adr_value_type_code VARCHAR2(30);
19240 l_adr_value_combination_id NUMBER;
19241 l_adr_value_segment_code VARCHAR2(30);
19242
19243 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
19244 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
19245 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
19246 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
19247
19248 -- 4262811 Variables ------------------------------------------------------------------------------------------
19249 l_entered_amt_idx NUMBER;
19250 l_accted_amt_idx NUMBER;
19251 l_acc_rev_flag VARCHAR2(1);
19252 l_accrual_line_num NUMBER;
19253 l_tmp_amt NUMBER;
19254 l_acc_rev_natural_side_code VARCHAR2(1);
19255
19256 l_num_entries NUMBER;
19257 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
19258 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
19259 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
19260 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
19261 l_recog_line_1 NUMBER;
19262 l_recog_line_2 NUMBER;
19263
19264 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
19265 l_bflow_applied_to_amt NUMBER; -- 5132302
19266 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
19267
19268 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
19269
19270 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
19271 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
19272
19273 ---------------------------------------------------------------------------------------------------------------
19274
19275
19276 --
19277 -- bulk performance
19278 --
19279 l_balance_type_code VARCHAR2(1);
19280 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
19281 l_log_module VARCHAR2(240);
19282
19283 --
19284 -- Upgrade strategy
19285 --
19286 l_actual_upg_option VARCHAR2(1);
19287 l_enc_upg_option VARCHAR2(1);
19288
19289 --
19290 BEGIN
19291 --
19292 IF g_log_enabled THEN
19293 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_38';
19294 END IF;
19295 --
19296 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19297
19298 trace
19299 (p_msg => 'BEGIN of AcctLineType_38'
19300 ,p_level => C_LEVEL_PROCEDURE
19301 ,p_module => l_log_module);
19302
19303 END IF;
19304 --
19305 l_component_type := 'AMB_JLT';
19306 l_component_code := 'RELIEVE_BPA_ENC_FROM_PO';
19307 l_component_type_code := 'S';
19308 l_component_appl_id := 201;
19309 l_amb_context_code := 'DEFAULT';
19310 l_entity_code := 'PURCHASE_ORDER';
19311 l_event_class_code := 'PO_PA';
19312 l_event_type_code := 'PO_PA_ALL';
19313 l_line_definition_owner_code := 'S';
19314 l_line_definition_code := 'PO_PA_ENC_ALL';
19315 --
19316 l_balance_type_code := 'E';
19317 l_segment := NULL;
19318 l_ccid := NULL;
19319 l_adr_transaction_coa_id := NULL;
19320 l_adr_accounting_coa_id := NULL;
19321 l_adr_flexfield_segment_code := NULL;
19322 l_adr_flex_value_set_id := NULL;
19323 l_adr_value_type_code := NULL;
19324 l_adr_value_combination_id := NULL;
19325 l_adr_value_segment_code := NULL;
19326
19327 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
19328 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
19329 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
19330 l_budgetary_control_flag := 'Y';
19331
19332 l_bflow_applied_to_amt_idx := NULL; -- 5132302
19333 l_bflow_applied_to_amt := NULL; -- 5132302
19334 l_entered_amt_idx := NULL; -- 4262811
19335 l_accted_amt_idx := NULL; -- 4262811
19336 l_acc_rev_flag := NULL; -- 4262811
19337 l_accrual_line_num := NULL; -- 4262811
19338 l_tmp_amt := NULL; -- 4262811
19339 --
19340
19341 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
19342 l_balance_type_code <> 'B' THEN
19343 IF NVL(
19344 xla_ae_sources_pkg.GetSystemSourceChar(
19345 p_source_code => 'XLA_EVENT_TYPE_CODE'
19346 , p_source_type_code => 'Y'
19347 , p_source_application_id => 602
19348 ),'
19349 ') = 'PO_PA_RESERVED' AND
19350 NVL(p_source_13,'
19351 ') = 'B_PA'
19352 THEN
19353
19354 --
19355 XLA_AE_LINES_PKG.SetNewLine;
19356
19357 p_balance_type_code := l_balance_type_code;
19358 -- set the flag so later we will know whether the gain loss line needs to be created
19359
19360 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
19361 p_actual_flag :='A';
19362 END IF;
19363
19364 --
19365 -- bulk performance
19366 --
19367 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
19368 p_header_num => 0); -- 4262811
19369 --
19370 -- set accounting line options
19371 --
19372 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
19373 p_natural_side_code => 'C'
19374 , p_gain_or_loss_flag => 'N'
19375 , p_gl_transfer_mode_code => 'S'
19376 , p_acct_entry_type_code => 'E'
19377 , p_switch_side_flag => 'N'
19378 , p_merge_duplicate_code => 'N'
19379 );
19380 --
19381 l_acc_rev_natural_side_code := 'D'; -- 4262811
19382 --
19383 --
19384 -- set accounting line type info
19385 --
19386 xla_ae_lines_pkg.SetAcctLineType
19387 (p_component_type => l_component_type
19388 ,p_event_type_code => l_event_type_code
19389 ,p_line_definition_owner_code => l_line_definition_owner_code
19390 ,p_line_definition_code => l_line_definition_code
19391 ,p_accounting_line_code => l_component_code
19392 ,p_accounting_line_type_code => l_component_type_code
19393 ,p_accounting_line_appl_id => l_component_appl_id
19394 ,p_amb_context_code => l_amb_context_code
19395 ,p_entity_code => l_entity_code
19396 ,p_event_class_code => l_event_class_code);
19397 --
19398 -- set accounting class
19399 --
19400 xla_ae_lines_pkg.SetAcctClass(
19401 p_accounting_class_code => 'PURCHASE_ORDER'
19402 , p_ae_header_id => l_ae_header_id
19403 );
19404
19405 --
19406 -- set rounding class
19407 --
19408 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
19409 'PURCHASE_ORDER';
19410
19411 --
19412 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
19413 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
19414 --
19415 -- bulk performance
19416 --
19417 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
19418
19419 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
19420 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
19421
19422 -- 4955764
19423 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19424 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
19425
19426 -- 4458381 Public Sector Enh
19427
19428 --
19429 -- set accounting attributes for the line type
19430 --
19431 l_entered_amt_idx := 23;
19432 l_accted_amt_idx := 25;
19433 l_bflow_applied_to_amt_idx := NULL; -- 5132302
19434 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
19435 l_rec_acct_attrs.array_char_value(1) := p_source_16;
19436 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
19437 l_rec_acct_attrs.array_num_value(2) :=
19438 xla_ae_sources_pkg.GetSystemSourceNum(
19439 p_source_code => 'XLA_EVENT_APPL_ID'
19440 , p_source_type_code => 'Y'
19441 , p_source_application_id => 602
19442 );
19443 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
19444 l_rec_acct_attrs.array_char_value(3) := p_source_49;
19445 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
19446 l_rec_acct_attrs.array_char_value(4) :=
19447 xla_ae_sources_pkg.GetSystemSourceChar(
19448 p_source_code => 'XLA_ENTITY_CODE'
19449 , p_source_type_code => 'Y'
19450 , p_source_application_id => 602
19451 );
19452 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
19453 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_51);
19454 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
19455 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_52);
19456 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
19457 l_rec_acct_attrs.array_num_value(7) := p_source_53;
19458 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
19459 l_rec_acct_attrs.array_char_value(8) := p_source_54;
19460 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
19461 l_rec_acct_attrs.array_char_value(9) := p_source_55;
19462 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
19463 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_56);
19464 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
19465 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_57);
19466 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
19467 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_29);
19468 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
19469 l_rec_acct_attrs.array_char_value(13) := p_source_58;
19470 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
19471 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_11);
19472 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
19473 l_rec_acct_attrs.array_num_value(15) := p_source_33;
19474 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
19475 l_rec_acct_attrs.array_char_value(16) := p_source_34;
19476 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
19477 l_rec_acct_attrs.array_num_value(17) := p_source_35;
19478 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
19479 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_11);
19480 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
19481 l_rec_acct_attrs.array_num_value(19) := p_source_33;
19482 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
19483 l_rec_acct_attrs.array_char_value(20) := p_source_34;
19484 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
19485 l_rec_acct_attrs.array_num_value(21) := p_source_35;
19486 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
19487 l_rec_acct_attrs.array_char_value(22) := p_source_59;
19488 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
19489 l_rec_acct_attrs.array_num_value(23) := p_source_33;
19490 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
19491 l_rec_acct_attrs.array_char_value(24) := p_source_34;
19492 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
19493 l_rec_acct_attrs.array_num_value(25) := p_source_35;
19494 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
19495 l_rec_acct_attrs.array_char_value(26) := p_source_60;
19496 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
19497 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_56);
19498 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
19499 l_rec_acct_attrs.array_char_value(28) := p_source_54;
19500 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
19501 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_29);
19502 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
19503 l_rec_acct_attrs.array_num_value(30) := p_source_61;
19504 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
19505 l_rec_acct_attrs.array_num_value(31) := p_source_61;
19506
19507 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
19508 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
19509
19510 ---------------------------------------------------------------------------------------------------------------
19511 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
19512 ---------------------------------------------------------------------------------------------------------------
19513 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
19514
19515 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19516 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19517
19518 IF xla_accounting_cache_pkg.GetValueChar
19519 (p_source_code => 'LEDGER_CATEGORY_CODE'
19520 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
19521 AND l_bflow_method_code = 'PRIOR_ENTRY'
19522 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
19523 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
19524 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
19525 )
19526 THEN
19527 xla_ae_lines_pkg.BflowUpgEntry
19528 (p_business_method_code => l_bflow_method_code
19529 ,p_business_class_code => l_bflow_class_code
19530 ,p_balance_type => l_balance_type_code);
19531 ELSE
19532 NULL;
19533 XLA_AE_LINES_PKG.business_flow_validation(
19534 p_business_method_code => l_bflow_method_code
19535 ,p_business_class_code => l_bflow_class_code
19536 ,p_inherit_description_flag => l_inherit_desc_flag);
19537 END IF;
19538
19539 --
19540 -- call analytical criteria
19541 --
19542 -- Inherited Analytical Criteria for business flow method of Prior Entry.
19543 --
19544 -- call description
19545 --
19546 -- No description or it is inherited.
19547 --
19548 -- call ADRs
19549 -- Bug 4922099
19550 --
19551 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19552 (NVL(l_actual_upg_option, 'N') = 'O') OR
19553 (NVL(l_enc_upg_option, 'N') = 'O')
19554 )
19555 THEN
19556 NULL;
19557 --
19558 --
19559
19560 --
19561 --
19562 END IF;
19563 --
19564 -- Bug 4922099
19565 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
19566 (NVL(l_enc_upg_option, 'N') = 'O')
19567 ) AND
19568 (l_bflow_method_code = 'PRIOR_ENTRY')
19569 )
19570 THEN
19571 IF
19572 --
19573 1 = 1
19574 --
19575 THEN
19576 xla_accounting_err_pkg.build_message
19577 (p_appli_s_name => 'XLA'
19578 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19579 ,p_token_1 => 'LINE_NUMBER'
19580 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
19581 ,p_token_2 => 'LINE_TYPE_NAME'
19582 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
19583 l_component_type
19584 ,l_component_code
19585 ,l_component_type_code
19586 ,l_component_appl_id
19587 ,l_amb_context_code
19588 ,l_entity_code
19589 ,l_event_class_code
19590 )
19591 ,p_token_3 => 'OWNER'
19592 ,p_value_3 => xla_lookups_pkg.get_meaning(
19593 p_lookup_type => 'XLA_OWNER_TYPE'
19594 ,p_lookup_code => l_component_type_code
19595 )
19596 ,p_token_4 => 'PRODUCT_NAME'
19597 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
19598 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
19599 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
19600 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
19601 ,p_ae_header_id => NULL
19602 );
19603
19604 IF (C_LEVEL_ERROR>= g_log_level) THEN
19605 trace
19606 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19607 ,p_level => C_LEVEL_ERROR
19608 ,p_module => l_log_module);
19609 END IF;
19610 END IF;
19611 END IF;
19612 --
19613 --
19614 ------------------------------------------------------------------------------------------------
19615 -- 4219869 Business Flow
19616 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
19617 -- Prior Entry. Currently, the following code is always generated.
19618 ------------------------------------------------------------------------------------------------
19619 -- No ValidateCurrentLine for business flow method of Prior Entry
19620
19621 ------------------------------------------------------------------------------------
19622 -- 4219869 Business Flow
19623 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
19624 ------------------------------------------------------------------------------------
19625 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19626
19627 ----------------------------------------------------------------------------------
19628 -- 4219869 Business Flow
19629 -- Update journal entry status -- Need to generate this within IF <condition>
19630 ----------------------------------------------------------------------------------
19631 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19632 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
19633 ,p_balance_type_code => l_balance_type_code
19634 );
19635
19636 -------------------------------------------------------------------------------------------
19637 -- 4262811 - Generate the Accrual Reversal lines
19638 -------------------------------------------------------------------------------------------
19639 BEGIN
19640 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
19641 (g_array_event(p_event_id).array_value_num('header_index'));
19642 IF l_acc_rev_flag IS NULL THEN
19643 l_acc_rev_flag := 'N';
19644 END IF;
19645 EXCEPTION
19646 WHEN OTHERS THEN
19647 l_acc_rev_flag := 'N';
19648 END;
19649 --
19650 IF (l_acc_rev_flag = 'Y') THEN
19651
19652 -- 4645092 ------------------------------------------------------------------------------
19653 -- To allow MPA report to determine if it should generate report process
19654 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
19655 ------------------------------------------------------------------------------------------
19656
19657 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
19658 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
19659
19660 --
19661 -- Update the line information that should be overwritten
19662 --
19663 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
19664 p_header_num => 1);
19665 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
19666
19667 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
19668
19669 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
19670 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
19671 END IF;
19672
19673 --
19674 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
19675 --
19676 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
19677 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
19678 ELSE
19679 ---------------------------------------------------------------------------------------------------
19680 -- 4262811a Switch Sign
19681 ---------------------------------------------------------------------------------------------------
19682 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
19683 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19684 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19685 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19686 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19687 -- 5132302
19688 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
19689 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19690
19691 END IF;
19692
19693 -- 4955764
19694 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19695 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
19696
19697
19698 XLA_AE_LINES_PKG.ValidateCurrentLine;
19699 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19700
19701 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19702 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19703 ,p_balance_type_code => l_balance_type_code);
19704
19705 END IF;
19706
19707 -----------------------------------------------------------------------------------------
19708 -- 4262811 Multiperiod Accounting
19709 -----------------------------------------------------------------------------------------
19710 -- No MPA option is assigned.
19711
19712
19713 END IF;
19714 END IF;
19715 --
19716
19717 --
19718 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19719 trace
19720 (p_msg => 'END of AcctLineType_38'
19721 ,p_level => C_LEVEL_PROCEDURE
19722 ,p_module => l_log_module);
19723 END IF;
19724 --
19725 EXCEPTION
19726 WHEN xla_exceptions_pkg.application_exception THEN
19727 RAISE;
19728 WHEN OTHERS THEN
19729 xla_exceptions_pkg.raise_message
19730 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_38');
19731 END AcctLineType_38;
19732 --
19733
19734 ---------------------------------------
19735 --
19736 -- PRIVATE FUNCTION
19737 -- AcctLineType_39
19738 --
19739 ---------------------------------------
19740 PROCEDURE AcctLineType_39 (
19741 p_application_id IN NUMBER
19742 ,p_event_id IN NUMBER
19743 ,p_calculate_acctd_flag IN VARCHAR2
19744 ,p_calculate_g_l_flag IN VARCHAR2
19745 ,p_actual_flag IN OUT VARCHAR2
19746 ,p_balance_type_code OUT VARCHAR2
19747 ,p_gain_or_loss_ref OUT VARCHAR2
19748
19749 --Project Name
19750 , p_source_3 IN VARCHAR2
19751 --Task Name
19752 , p_source_4 IN VARCHAR2
19753 --Project Expenditure Organization Identifier
19754 , p_source_5 IN NUMBER
19755 --Expenditure Type
19756 , p_source_6 IN VARCHAR2
19757 --Document Type
19758 , p_source_9 IN VARCHAR2
19759 --Main Or Backing Code
19760 , p_source_13 IN VARCHAR2
19761 --Burden Record Identifier
19762 , p_source_14 IN VARCHAR2
19763 , p_source_14_meaning IN VARCHAR2
19764 --Burden Amount Display Method
19765 , p_source_15 IN VARCHAR2
19766 --Accounting Reversal Flag
19767 , p_source_16 IN VARCHAR2
19768 --Allocated to Application Identifier
19769 , p_source_17 IN NUMBER
19770 --Allocated to Distribution Type
19771 , p_source_18 IN VARCHAR2
19772 --Allocated to Entity Code
19773 , p_source_19 IN VARCHAR2
19774 --Allocated to First Distribution Identifier
19775 , p_source_20 IN NUMBER
19776 --Allocated to First System Transaction Identifier
19777 , p_source_21 IN NUMBER
19778 --Allocated to Second Distribution Identifier
19779 , p_source_22 IN VARCHAR2
19780 --Purchase Order Burden Applied to Application Identifier
19781 , p_source_23 IN NUMBER
19782 --PO Distribution Type
19783 , p_source_24 IN VARCHAR2
19784 --Purchase Order Burden Applied to Entity Code
19785 , p_source_25 IN VARCHAR2
19786 --Purchase Order Burden Applied to First Distribution Identifier
19787 , p_source_26 IN NUMBER
19788 --Purchase Order Burden Applied to First System Transaction Identifier
19789 , p_source_27 IN NUMBER
19790 --Purchase Order Burden Applied to Second Distribution Identifier
19791 , p_source_28 IN VARCHAR2
19792 --PO Distribution Identifier
19793 , p_source_29 IN NUMBER
19794 --Line Type Name
19795 , p_source_30 IN VARCHAR2
19796 --Encumbrance Upgrade Credit Accounting Class
19797 , p_source_31 IN VARCHAR2
19798 --Encumbrance Upgrade Credit Account
19799 , p_source_32 IN NUMBER
19800 --Entered Amount
19801 , p_source_33 IN NUMBER
19802 --Currency Code
19803 , p_source_34 IN VARCHAR2
19804 --Accounted Amount
19805 , p_source_35 IN NUMBER
19806 --Encumbrance Upgrade Debit Accounting Class
19807 , p_source_36 IN VARCHAR2
19808 --Encumbrance Upgrade Debit Account
19809 , p_source_37 IN NUMBER
19810 --Use Encumbrances Upgrade Attributes Flag
19811 , p_source_38 IN VARCHAR2
19812 --Encumbrance Upgrade Credit Encumbrance Type
19813 , p_source_39 IN NUMBER
19814 --Encumbrance Upgrade Debit Encumbrance Type
19815 , p_source_40 IN NUMBER
19816 )
19817 IS
19818
19819 l_component_type VARCHAR2(80);
19820 l_component_code VARCHAR2(30);
19821 l_component_type_code VARCHAR2(1);
19822 l_component_appl_id INTEGER;
19823 l_amb_context_code VARCHAR2(30);
19824 l_entity_code VARCHAR2(30);
19825 l_event_class_code VARCHAR2(30);
19826 l_ae_header_id NUMBER;
19827 l_event_type_code VARCHAR2(30);
19828 l_line_definition_code VARCHAR2(30);
19829 l_line_definition_owner_code VARCHAR2(1);
19830 --
19831 -- adr variables
19832 l_segment VARCHAR2(30);
19833 l_ccid NUMBER;
19834 l_adr_transaction_coa_id NUMBER;
19835 l_adr_accounting_coa_id NUMBER;
19836 l_adr_flexfield_segment_code VARCHAR2(30);
19837 l_adr_flex_value_set_id NUMBER;
19838 l_adr_value_type_code VARCHAR2(30);
19839 l_adr_value_combination_id NUMBER;
19840 l_adr_value_segment_code VARCHAR2(30);
19841
19842 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
19843 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
19844 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
19845 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
19846
19847 -- 4262811 Variables ------------------------------------------------------------------------------------------
19848 l_entered_amt_idx NUMBER;
19849 l_accted_amt_idx NUMBER;
19850 l_acc_rev_flag VARCHAR2(1);
19851 l_accrual_line_num NUMBER;
19852 l_tmp_amt NUMBER;
19853 l_acc_rev_natural_side_code VARCHAR2(1);
19854
19855 l_num_entries NUMBER;
19856 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
19857 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
19858 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
19859 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
19860 l_recog_line_1 NUMBER;
19861 l_recog_line_2 NUMBER;
19862
19863 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
19864 l_bflow_applied_to_amt NUMBER; -- 5132302
19865 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
19866
19867 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
19868
19869 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
19870 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
19871
19872 ---------------------------------------------------------------------------------------------------------------
19873
19874
19875 --
19876 -- bulk performance
19877 --
19878 l_balance_type_code VARCHAR2(1);
19879 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
19880 l_log_module VARCHAR2(240);
19881
19882 --
19883 -- Upgrade strategy
19884 --
19885 l_actual_upg_option VARCHAR2(1);
19886 l_enc_upg_option VARCHAR2(1);
19887
19888 --
19889 BEGIN
19890 --
19891 IF g_log_enabled THEN
19892 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_39';
19893 END IF;
19894 --
19895 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19896
19897 trace
19898 (p_msg => 'BEGIN of AcctLineType_39'
19899 ,p_level => C_LEVEL_PROCEDURE
19900 ,p_module => l_log_module);
19901
19902 END IF;
19903 --
19904 l_component_type := 'AMB_JLT';
19905 l_component_code := 'RELIEVE_BURDENED_POENC_FORREL';
19906 l_component_type_code := 'S';
19907 l_component_appl_id := 201;
19908 l_amb_context_code := 'DEFAULT';
19909 l_entity_code := 'RELEASE';
19910 l_event_class_code := 'RELEASE_BURDEN';
19911 l_event_type_code := 'RELEASE_BURDEN_ALL';
19912 l_line_definition_owner_code := 'S';
19913 l_line_definition_code := 'REL_BURDEN_ENC_ALL';
19914 --
19915 l_balance_type_code := 'E';
19916 l_segment := NULL;
19917 l_ccid := NULL;
19918 l_adr_transaction_coa_id := NULL;
19919 l_adr_accounting_coa_id := NULL;
19920 l_adr_flexfield_segment_code := NULL;
19921 l_adr_flex_value_set_id := NULL;
19922 l_adr_value_type_code := NULL;
19923 l_adr_value_combination_id := NULL;
19924 l_adr_value_segment_code := NULL;
19925
19926 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
19927 l_bflow_class_code := 'PO_PA_BURDENED_ENC'; -- 4219869 Business Flow
19928 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
19929 l_budgetary_control_flag := 'Y';
19930
19931 l_bflow_applied_to_amt_idx := NULL; -- 5132302
19932 l_bflow_applied_to_amt := NULL; -- 5132302
19933 l_entered_amt_idx := NULL; -- 4262811
19934 l_accted_amt_idx := NULL; -- 4262811
19935 l_acc_rev_flag := NULL; -- 4262811
19936 l_accrual_line_num := NULL; -- 4262811
19937 l_tmp_amt := NULL; -- 4262811
19938 --
19939
19940 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
19941 l_balance_type_code <> 'B' THEN
19942 IF NVL(
19943 xla_ae_sources_pkg.GetSystemSourceChar(
19944 p_source_code => 'XLA_EVENT_TYPE_CODE'
19945 , p_source_type_code => 'Y'
19946 , p_source_application_id => 602
19947 ),'
19948 ') = 'REL_BURDEN_RESERVED' AND
19949 (NVL(p_source_13,'
19950 ') = 'B_PO' OR
19951 NVL(p_source_13,'
19952 ') = 'B_PA') AND
19953 (NVL(p_source_14,'
19954 ') = 'N' OR
19955 NVL(p_source_14,'
19956 ') = 'O') AND
19957 NVL(p_source_9,'
19958 ') = 'PO' AND
19959 NVL(p_source_15,'
19960 ') = 'S'
19961 THEN
19962
19963 --
19964 XLA_AE_LINES_PKG.SetNewLine;
19965
19966 p_balance_type_code := l_balance_type_code;
19967 -- set the flag so later we will know whether the gain loss line needs to be created
19968
19969 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
19970 p_actual_flag :='A';
19971 END IF;
19972
19973 --
19974 -- bulk performance
19975 --
19976 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
19977 p_header_num => 0); -- 4262811
19978 --
19979 -- set accounting line options
19980 --
19981 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
19982 p_natural_side_code => 'C'
19983 , p_gain_or_loss_flag => 'N'
19984 , p_gl_transfer_mode_code => 'S'
19985 , p_acct_entry_type_code => 'E'
19986 , p_switch_side_flag => 'N'
19987 , p_merge_duplicate_code => 'N'
19988 );
19989 --
19990 l_acc_rev_natural_side_code := 'D'; -- 4262811
19991 --
19992 --
19993 -- set accounting line type info
19994 --
19995 xla_ae_lines_pkg.SetAcctLineType
19996 (p_component_type => l_component_type
19997 ,p_event_type_code => l_event_type_code
19998 ,p_line_definition_owner_code => l_line_definition_owner_code
19999 ,p_line_definition_code => l_line_definition_code
20000 ,p_accounting_line_code => l_component_code
20001 ,p_accounting_line_type_code => l_component_type_code
20002 ,p_accounting_line_appl_id => l_component_appl_id
20003 ,p_amb_context_code => l_amb_context_code
20004 ,p_entity_code => l_entity_code
20005 ,p_event_class_code => l_event_class_code);
20006 --
20007 -- set accounting class
20008 --
20009 xla_ae_lines_pkg.SetAcctClass(
20010 p_accounting_class_code => 'PO_PA_BURDENED'
20011 , p_ae_header_id => l_ae_header_id
20012 );
20013
20014 --
20015 -- set rounding class
20016 --
20017 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
20018 'PO_PA_BURDENED';
20019
20020 --
20021 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
20022 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
20023 --
20024 -- bulk performance
20025 --
20026 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
20027
20028 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
20029 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
20030
20031 -- 4955764
20032 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20033 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
20034
20035 -- 4458381 Public Sector Enh
20036
20037 --
20038 -- set accounting attributes for the line type
20039 --
20040 l_entered_amt_idx := 28;
20041 l_accted_amt_idx := 30;
20042 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20043 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
20044 l_rec_acct_attrs.array_char_value(1) := p_source_16;
20045 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
20046 l_rec_acct_attrs.array_num_value(2) := p_source_17;
20047 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
20048 l_rec_acct_attrs.array_char_value(3) := p_source_18;
20049 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
20050 l_rec_acct_attrs.array_char_value(4) := p_source_19;
20051 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
20052 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
20053 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
20054 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
20055 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
20056 l_rec_acct_attrs.array_char_value(7) := p_source_22;
20057 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
20058 l_rec_acct_attrs.array_num_value(8) := p_source_23;
20059 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
20060 l_rec_acct_attrs.array_char_value(9) := p_source_24;
20061 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
20062 l_rec_acct_attrs.array_char_value(10) := p_source_25;
20063 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
20064 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_26);
20065 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
20066 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_27);
20067 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
20068 l_rec_acct_attrs.array_char_value(13) := p_source_28;
20069 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
20070 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_29);
20071 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
20072 l_rec_acct_attrs.array_char_value(15) := p_source_6;
20073 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
20074 l_rec_acct_attrs.array_char_value(16) := p_source_30;
20075 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
20076 l_rec_acct_attrs.array_char_value(17) := p_source_31;
20077 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
20078 l_rec_acct_attrs.array_num_value(18) := p_source_32;
20079 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
20080 l_rec_acct_attrs.array_num_value(19) := p_source_33;
20081 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
20082 l_rec_acct_attrs.array_char_value(20) := p_source_34;
20083 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
20084 l_rec_acct_attrs.array_num_value(21) := p_source_35;
20085 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
20086 l_rec_acct_attrs.array_char_value(22) := p_source_36;
20087 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
20088 l_rec_acct_attrs.array_num_value(23) := p_source_37;
20089 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
20090 l_rec_acct_attrs.array_num_value(24) := p_source_33;
20091 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
20092 l_rec_acct_attrs.array_char_value(25) := p_source_34;
20093 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
20094 l_rec_acct_attrs.array_num_value(26) := p_source_35;
20095 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
20096 l_rec_acct_attrs.array_char_value(27) := p_source_38;
20097 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
20098 l_rec_acct_attrs.array_num_value(28) := p_source_33;
20099 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
20100 l_rec_acct_attrs.array_char_value(29) := p_source_34;
20101 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
20102 l_rec_acct_attrs.array_num_value(30) := p_source_35;
20103 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
20104 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_29);
20105 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
20106 l_rec_acct_attrs.array_char_value(32) := p_source_6;
20107 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
20108 l_rec_acct_attrs.array_char_value(33) := p_source_30;
20109 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
20110 l_rec_acct_attrs.array_num_value(34) := p_source_39;
20111 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
20112 l_rec_acct_attrs.array_num_value(35) := p_source_40;
20113
20114 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20115 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20116
20117 ---------------------------------------------------------------------------------------------------------------
20118 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20119 ---------------------------------------------------------------------------------------------------------------
20120 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20121
20122 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20123 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20124
20125 IF xla_accounting_cache_pkg.GetValueChar
20126 (p_source_code => 'LEDGER_CATEGORY_CODE'
20127 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20128 AND l_bflow_method_code = 'PRIOR_ENTRY'
20129 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20130 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20131 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20132 )
20133 THEN
20134 xla_ae_lines_pkg.BflowUpgEntry
20135 (p_business_method_code => l_bflow_method_code
20136 ,p_business_class_code => l_bflow_class_code
20137 ,p_balance_type => l_balance_type_code);
20138 ELSE
20139 NULL;
20140 XLA_AE_LINES_PKG.business_flow_validation(
20141 p_business_method_code => l_bflow_method_code
20142 ,p_business_class_code => l_bflow_class_code
20143 ,p_inherit_description_flag => l_inherit_desc_flag);
20144 END IF;
20145
20146 --
20147 -- call analytical criteria
20148 --
20149 -- Inherited Analytical Criteria for business flow method of Prior Entry.
20150 --
20151 -- call description
20152 --
20153
20154 xla_ae_lines_pkg.SetLineDescription(
20155 p_ae_header_id => l_ae_header_id
20156 ,p_description => Description_2 (
20157 p_application_id => p_application_id
20158 , p_ae_header_id => l_ae_header_id
20159 , p_source_3 => p_source_3
20160 , p_source_4 => p_source_4
20161 , p_source_5 => p_source_5
20162 , p_source_6 => p_source_6
20163 )
20164 );
20165
20166
20167 --
20168 -- call ADRs
20169 -- Bug 4922099
20170 --
20171 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20172 (NVL(l_actual_upg_option, 'N') = 'O') OR
20173 (NVL(l_enc_upg_option, 'N') = 'O')
20174 )
20175 THEN
20176 NULL;
20177 --
20178 --
20179
20180 --
20181 --
20182 END IF;
20183 --
20184 -- Bug 4922099
20185 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20186 (NVL(l_enc_upg_option, 'N') = 'O')
20187 ) AND
20188 (l_bflow_method_code = 'PRIOR_ENTRY')
20189 )
20190 THEN
20191 IF
20192 --
20193 1 = 1
20194 --
20195 THEN
20196 xla_accounting_err_pkg.build_message
20197 (p_appli_s_name => 'XLA'
20198 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20199 ,p_token_1 => 'LINE_NUMBER'
20200 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
20201 ,p_token_2 => 'LINE_TYPE_NAME'
20202 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
20203 l_component_type
20204 ,l_component_code
20205 ,l_component_type_code
20206 ,l_component_appl_id
20207 ,l_amb_context_code
20208 ,l_entity_code
20209 ,l_event_class_code
20210 )
20211 ,p_token_3 => 'OWNER'
20212 ,p_value_3 => xla_lookups_pkg.get_meaning(
20213 p_lookup_type => 'XLA_OWNER_TYPE'
20214 ,p_lookup_code => l_component_type_code
20215 )
20216 ,p_token_4 => 'PRODUCT_NAME'
20217 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
20218 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
20219 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
20220 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
20221 ,p_ae_header_id => NULL
20222 );
20223
20224 IF (C_LEVEL_ERROR>= g_log_level) THEN
20225 trace
20226 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20227 ,p_level => C_LEVEL_ERROR
20228 ,p_module => l_log_module);
20229 END IF;
20230 END IF;
20231 END IF;
20232 --
20233 --
20234 ------------------------------------------------------------------------------------------------
20235 -- 4219869 Business Flow
20236 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
20237 -- Prior Entry. Currently, the following code is always generated.
20238 ------------------------------------------------------------------------------------------------
20239 -- No ValidateCurrentLine for business flow method of Prior Entry
20240
20241 ------------------------------------------------------------------------------------
20242 -- 4219869 Business Flow
20243 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
20244 ------------------------------------------------------------------------------------
20245 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20246
20247 ----------------------------------------------------------------------------------
20248 -- 4219869 Business Flow
20249 -- Update journal entry status -- Need to generate this within IF <condition>
20250 ----------------------------------------------------------------------------------
20251 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20252 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
20253 ,p_balance_type_code => l_balance_type_code
20254 );
20255
20256 -------------------------------------------------------------------------------------------
20257 -- 4262811 - Generate the Accrual Reversal lines
20258 -------------------------------------------------------------------------------------------
20259 BEGIN
20260 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
20261 (g_array_event(p_event_id).array_value_num('header_index'));
20262 IF l_acc_rev_flag IS NULL THEN
20263 l_acc_rev_flag := 'N';
20264 END IF;
20265 EXCEPTION
20266 WHEN OTHERS THEN
20267 l_acc_rev_flag := 'N';
20268 END;
20269 --
20270 IF (l_acc_rev_flag = 'Y') THEN
20271
20272 -- 4645092 ------------------------------------------------------------------------------
20273 -- To allow MPA report to determine if it should generate report process
20274 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
20275 ------------------------------------------------------------------------------------------
20276
20277 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
20278 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
20279
20280 --
20281 -- Update the line information that should be overwritten
20282 --
20283 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
20284 p_header_num => 1);
20285 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
20286
20287 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
20288
20289 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
20290 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
20291 END IF;
20292
20293 --
20294 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
20295 --
20296 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
20297 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
20298 ELSE
20299 ---------------------------------------------------------------------------------------------------
20300 -- 4262811a Switch Sign
20301 ---------------------------------------------------------------------------------------------------
20302 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
20303 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20304 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20305 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20306 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20307 -- 5132302
20308 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
20309 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20310
20311 END IF;
20312
20313 -- 4955764
20314 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20315 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
20316
20317
20318 XLA_AE_LINES_PKG.ValidateCurrentLine;
20319 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20320
20321 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20322 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
20323 ,p_balance_type_code => l_balance_type_code);
20324
20325 END IF;
20326
20327 -----------------------------------------------------------------------------------------
20328 -- 4262811 Multiperiod Accounting
20329 -----------------------------------------------------------------------------------------
20330 -- No MPA option is assigned.
20331
20332
20333 END IF;
20334 END IF;
20335 --
20336
20337 --
20338 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20339 trace
20340 (p_msg => 'END of AcctLineType_39'
20341 ,p_level => C_LEVEL_PROCEDURE
20342 ,p_module => l_log_module);
20343 END IF;
20344 --
20345 EXCEPTION
20346 WHEN xla_exceptions_pkg.application_exception THEN
20347 RAISE;
20348 WHEN OTHERS THEN
20349 xla_exceptions_pkg.raise_message
20350 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_39');
20351 END AcctLineType_39;
20352 --
20353
20354 ---------------------------------------
20355 --
20356 -- PRIVATE FUNCTION
20357 -- AcctLineType_40
20358 --
20359 ---------------------------------------
20360 PROCEDURE AcctLineType_40 (
20361 p_application_id IN NUMBER
20362 ,p_event_id IN NUMBER
20363 ,p_calculate_acctd_flag IN VARCHAR2
20364 ,p_calculate_g_l_flag IN VARCHAR2
20365 ,p_actual_flag IN OUT VARCHAR2
20366 ,p_balance_type_code OUT VARCHAR2
20367 ,p_gain_or_loss_ref OUT VARCHAR2
20368
20369 --Project Name
20370 , p_source_3 IN VARCHAR2
20371 --Task Name
20372 , p_source_4 IN VARCHAR2
20373 --Project Expenditure Organization Identifier
20374 , p_source_5 IN NUMBER
20375 --Expenditure Type
20376 , p_source_6 IN VARCHAR2
20377 --Document Type
20378 , p_source_9 IN VARCHAR2
20379 --Main Or Backing Code
20380 , p_source_13 IN VARCHAR2
20381 --Burden Record Identifier
20382 , p_source_14 IN VARCHAR2
20383 , p_source_14_meaning IN VARCHAR2
20384 --Burden Amount Display Method
20385 , p_source_15 IN VARCHAR2
20386 --Accounting Reversal Flag
20387 , p_source_16 IN VARCHAR2
20388 --Allocated to Application Identifier
20389 , p_source_17 IN NUMBER
20390 --Allocated to Distribution Type
20391 , p_source_18 IN VARCHAR2
20392 --Allocated to Entity Code
20393 , p_source_19 IN VARCHAR2
20394 --Allocated to First Distribution Identifier
20395 , p_source_20 IN NUMBER
20396 --Allocated to First System Transaction Identifier
20397 , p_source_21 IN NUMBER
20398 --PO Distribution Identifier
20399 , p_source_29 IN NUMBER
20400 --Line Type Name
20401 , p_source_30 IN VARCHAR2
20402 --Encumbrance Upgrade Credit Accounting Class
20403 , p_source_31 IN VARCHAR2
20404 --Encumbrance Upgrade Credit Account
20405 , p_source_32 IN NUMBER
20406 --Entered Amount
20407 , p_source_33 IN NUMBER
20408 --Currency Code
20409 , p_source_34 IN VARCHAR2
20410 --Accounted Amount
20411 , p_source_35 IN NUMBER
20412 --Encumbrance Upgrade Debit Accounting Class
20413 , p_source_36 IN VARCHAR2
20414 --Encumbrance Upgrade Debit Account
20415 , p_source_37 IN NUMBER
20416 --Use Encumbrances Upgrade Attributes Flag
20417 , p_source_38 IN VARCHAR2
20418 --Encumbrance Upgrade Credit Encumbrance Type
20419 , p_source_39 IN NUMBER
20420 --Encumbrance Upgrade Debit Encumbrance Type
20421 , p_source_40 IN NUMBER
20422 --Requisition Burden Applied to Application Identifier
20423 , p_source_41 IN NUMBER
20424 --Requisition Distribution Type
20425 , p_source_42 IN VARCHAR2
20426 --Requisition Burden Applied to Entity Code
20427 , p_source_43 IN VARCHAR2
20428 --Requisition Burden Applied to First Distribution Identifier
20429 , p_source_44 IN NUMBER
20430 --Requisition Burden Applied to First System Transaction Identifier
20431 , p_source_45 IN NUMBER
20432 --Requisition Burden Applied to Second Distribution Identifier
20433 , p_source_46 IN VARCHAR2
20434 --Backing Requisition Prevent Encumbrance Flag Flipped
20435 , p_source_67 IN VARCHAR2
20436 )
20437 IS
20438
20439 l_component_type VARCHAR2(80);
20440 l_component_code VARCHAR2(30);
20441 l_component_type_code VARCHAR2(1);
20442 l_component_appl_id INTEGER;
20443 l_amb_context_code VARCHAR2(30);
20444 l_entity_code VARCHAR2(30);
20445 l_event_class_code VARCHAR2(30);
20446 l_ae_header_id NUMBER;
20447 l_event_type_code VARCHAR2(30);
20448 l_line_definition_code VARCHAR2(30);
20449 l_line_definition_owner_code VARCHAR2(1);
20450 --
20451 -- adr variables
20452 l_segment VARCHAR2(30);
20453 l_ccid NUMBER;
20454 l_adr_transaction_coa_id NUMBER;
20455 l_adr_accounting_coa_id NUMBER;
20456 l_adr_flexfield_segment_code VARCHAR2(30);
20457 l_adr_flex_value_set_id NUMBER;
20458 l_adr_value_type_code VARCHAR2(30);
20459 l_adr_value_combination_id NUMBER;
20460 l_adr_value_segment_code VARCHAR2(30);
20461
20462 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
20463 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
20464 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
20465 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
20466
20467 -- 4262811 Variables ------------------------------------------------------------------------------------------
20468 l_entered_amt_idx NUMBER;
20469 l_accted_amt_idx NUMBER;
20470 l_acc_rev_flag VARCHAR2(1);
20471 l_accrual_line_num NUMBER;
20472 l_tmp_amt NUMBER;
20473 l_acc_rev_natural_side_code VARCHAR2(1);
20474
20475 l_num_entries NUMBER;
20476 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
20477 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
20478 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
20479 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
20480 l_recog_line_1 NUMBER;
20481 l_recog_line_2 NUMBER;
20482
20483 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
20484 l_bflow_applied_to_amt NUMBER; -- 5132302
20485 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
20486
20487 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
20488
20489 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
20490 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
20491
20492 ---------------------------------------------------------------------------------------------------------------
20493
20494
20495 --
20496 -- bulk performance
20497 --
20498 l_balance_type_code VARCHAR2(1);
20499 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
20500 l_log_module VARCHAR2(240);
20501
20502 --
20503 -- Upgrade strategy
20504 --
20505 l_actual_upg_option VARCHAR2(1);
20506 l_enc_upg_option VARCHAR2(1);
20507
20508 --
20509 BEGIN
20510 --
20511 IF g_log_enabled THEN
20512 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_40';
20513 END IF;
20514 --
20515 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20516
20517 trace
20518 (p_msg => 'BEGIN of AcctLineType_40'
20519 ,p_level => C_LEVEL_PROCEDURE
20520 ,p_module => l_log_module);
20521
20522 END IF;
20523 --
20524 l_component_type := 'AMB_JLT';
20525 l_component_code := 'RELIEVE_BURDENED_REQENC_FORPO';
20526 l_component_type_code := 'S';
20527 l_component_appl_id := 201;
20528 l_amb_context_code := 'DEFAULT';
20529 l_entity_code := 'PURCHASE_ORDER';
20530 l_event_class_code := 'PO_BURDEN';
20531 l_event_type_code := 'PO_BURDEN_ALL';
20532 l_line_definition_owner_code := 'S';
20533 l_line_definition_code := 'PO_BURDEN_ENC_ALL';
20534 --
20535 l_balance_type_code := 'E';
20536 l_segment := NULL;
20537 l_ccid := NULL;
20538 l_adr_transaction_coa_id := NULL;
20539 l_adr_accounting_coa_id := NULL;
20540 l_adr_flexfield_segment_code := NULL;
20541 l_adr_flex_value_set_id := NULL;
20542 l_adr_value_type_code := NULL;
20543 l_adr_value_combination_id := NULL;
20544 l_adr_value_segment_code := NULL;
20545
20546 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
20547 l_bflow_class_code := 'REQ_PA_BURDENED_ENC'; -- 4219869 Business Flow
20548 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
20549 l_budgetary_control_flag := 'Y';
20550
20551 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20552 l_bflow_applied_to_amt := NULL; -- 5132302
20553 l_entered_amt_idx := NULL; -- 4262811
20554 l_accted_amt_idx := NULL; -- 4262811
20555 l_acc_rev_flag := NULL; -- 4262811
20556 l_accrual_line_num := NULL; -- 4262811
20557 l_tmp_amt := NULL; -- 4262811
20558 --
20559
20560 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
20561 l_balance_type_code <> 'B' THEN
20562 IF NVL(
20563 xla_ae_sources_pkg.GetSystemSourceChar(
20564 p_source_code => 'XLA_EVENT_TYPE_CODE'
20565 , p_source_type_code => 'Y'
20566 , p_source_application_id => 602
20567 ),'
20568 ') = 'PO_BURDEN_RESERVED' AND
20569 NVL(p_source_13,'
20570 ') = 'B_REQ' AND
20571 (NVL(p_source_14,'
20572 ') = 'N' OR
20573 NVL(p_source_14,'
20574 ') = 'O') AND
20575 NVL(p_source_9,'
20576 ') = 'REQ' AND
20577 NVL(p_source_15,'
20578 ') = 'S' AND
20579 NVL(p_source_67,'
20580 ') <> 'Y'
20581 THEN
20582
20583 --
20584 XLA_AE_LINES_PKG.SetNewLine;
20585
20586 p_balance_type_code := l_balance_type_code;
20587 -- set the flag so later we will know whether the gain loss line needs to be created
20588
20589 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
20590 p_actual_flag :='A';
20591 END IF;
20592
20593 --
20594 -- bulk performance
20595 --
20596 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
20597 p_header_num => 0); -- 4262811
20598 --
20599 -- set accounting line options
20600 --
20601 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
20602 p_natural_side_code => 'C'
20603 , p_gain_or_loss_flag => 'N'
20604 , p_gl_transfer_mode_code => 'S'
20605 , p_acct_entry_type_code => 'E'
20606 , p_switch_side_flag => 'N'
20607 , p_merge_duplicate_code => 'N'
20608 );
20609 --
20610 l_acc_rev_natural_side_code := 'D'; -- 4262811
20611 --
20612 --
20613 -- set accounting line type info
20614 --
20615 xla_ae_lines_pkg.SetAcctLineType
20616 (p_component_type => l_component_type
20617 ,p_event_type_code => l_event_type_code
20618 ,p_line_definition_owner_code => l_line_definition_owner_code
20619 ,p_line_definition_code => l_line_definition_code
20620 ,p_accounting_line_code => l_component_code
20621 ,p_accounting_line_type_code => l_component_type_code
20622 ,p_accounting_line_appl_id => l_component_appl_id
20623 ,p_amb_context_code => l_amb_context_code
20624 ,p_entity_code => l_entity_code
20625 ,p_event_class_code => l_event_class_code);
20626 --
20627 -- set accounting class
20628 --
20629 xla_ae_lines_pkg.SetAcctClass(
20630 p_accounting_class_code => 'REQ_PA_BURDENED'
20631 , p_ae_header_id => l_ae_header_id
20632 );
20633
20634 --
20635 -- set rounding class
20636 --
20637 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
20638 'REQ_PA_BURDENED';
20639
20640 --
20641 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
20642 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
20643 --
20644 -- bulk performance
20645 --
20646 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
20647
20648 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
20649 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
20650
20651 -- 4955764
20652 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20653 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
20654
20655 -- 4458381 Public Sector Enh
20656
20657 --
20658 -- set accounting attributes for the line type
20659 --
20660 l_entered_amt_idx := 27;
20661 l_accted_amt_idx := 29;
20662 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20663 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
20664 l_rec_acct_attrs.array_char_value(1) := p_source_16;
20665 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
20666 l_rec_acct_attrs.array_num_value(2) := p_source_17;
20667 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
20668 l_rec_acct_attrs.array_char_value(3) := p_source_18;
20669 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
20670 l_rec_acct_attrs.array_char_value(4) := p_source_19;
20671 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
20672 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
20673 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
20674 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
20675 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
20676 l_rec_acct_attrs.array_num_value(7) := p_source_41;
20677 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
20678 l_rec_acct_attrs.array_char_value(8) := p_source_42;
20679 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
20680 l_rec_acct_attrs.array_char_value(9) := p_source_43;
20681 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
20682 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_44);
20683 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
20684 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_45);
20685 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
20686 l_rec_acct_attrs.array_char_value(12) := p_source_46;
20687 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
20688 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_29);
20689 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
20690 l_rec_acct_attrs.array_char_value(14) := p_source_6;
20691 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
20692 l_rec_acct_attrs.array_char_value(15) := p_source_30;
20693 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
20694 l_rec_acct_attrs.array_char_value(16) := p_source_31;
20695 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
20696 l_rec_acct_attrs.array_num_value(17) := p_source_32;
20697 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
20698 l_rec_acct_attrs.array_num_value(18) := p_source_33;
20699 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
20700 l_rec_acct_attrs.array_char_value(19) := p_source_34;
20701 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
20702 l_rec_acct_attrs.array_num_value(20) := p_source_35;
20703 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
20704 l_rec_acct_attrs.array_char_value(21) := p_source_36;
20705 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
20706 l_rec_acct_attrs.array_num_value(22) := p_source_37;
20707 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
20708 l_rec_acct_attrs.array_num_value(23) := p_source_33;
20709 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
20710 l_rec_acct_attrs.array_char_value(24) := p_source_34;
20711 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
20712 l_rec_acct_attrs.array_num_value(25) := p_source_35;
20713 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
20714 l_rec_acct_attrs.array_char_value(26) := p_source_38;
20715 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
20716 l_rec_acct_attrs.array_num_value(27) := p_source_33;
20717 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
20718 l_rec_acct_attrs.array_char_value(28) := p_source_34;
20719 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
20720 l_rec_acct_attrs.array_num_value(29) := p_source_35;
20721 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
20722 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_29);
20723 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
20724 l_rec_acct_attrs.array_char_value(31) := p_source_6;
20725 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
20726 l_rec_acct_attrs.array_char_value(32) := p_source_30;
20727 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
20728 l_rec_acct_attrs.array_num_value(33) := p_source_39;
20729 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
20730 l_rec_acct_attrs.array_num_value(34) := p_source_40;
20731
20732 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20733 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20734
20735 ---------------------------------------------------------------------------------------------------------------
20736 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20737 ---------------------------------------------------------------------------------------------------------------
20738 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20739
20740 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20741 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20742
20743 IF xla_accounting_cache_pkg.GetValueChar
20744 (p_source_code => 'LEDGER_CATEGORY_CODE'
20745 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20746 AND l_bflow_method_code = 'PRIOR_ENTRY'
20747 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20748 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20749 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20750 )
20751 THEN
20752 xla_ae_lines_pkg.BflowUpgEntry
20753 (p_business_method_code => l_bflow_method_code
20754 ,p_business_class_code => l_bflow_class_code
20755 ,p_balance_type => l_balance_type_code);
20756 ELSE
20757 NULL;
20758 XLA_AE_LINES_PKG.business_flow_validation(
20759 p_business_method_code => l_bflow_method_code
20760 ,p_business_class_code => l_bflow_class_code
20761 ,p_inherit_description_flag => l_inherit_desc_flag);
20762 END IF;
20763
20764 --
20765 -- call analytical criteria
20766 --
20767 -- Inherited Analytical Criteria for business flow method of Prior Entry.
20768 --
20769 -- call description
20770 --
20771
20772 xla_ae_lines_pkg.SetLineDescription(
20773 p_ae_header_id => l_ae_header_id
20774 ,p_description => Description_2 (
20775 p_application_id => p_application_id
20776 , p_ae_header_id => l_ae_header_id
20777 , p_source_3 => p_source_3
20778 , p_source_4 => p_source_4
20779 , p_source_5 => p_source_5
20780 , p_source_6 => p_source_6
20781 )
20782 );
20783
20784
20785 --
20786 -- call ADRs
20787 -- Bug 4922099
20788 --
20789 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20790 (NVL(l_actual_upg_option, 'N') = 'O') OR
20791 (NVL(l_enc_upg_option, 'N') = 'O')
20792 )
20793 THEN
20794 NULL;
20795 --
20796 --
20797
20798 --
20799 --
20800 END IF;
20801 --
20802 -- Bug 4922099
20803 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20804 (NVL(l_enc_upg_option, 'N') = 'O')
20805 ) AND
20806 (l_bflow_method_code = 'PRIOR_ENTRY')
20807 )
20808 THEN
20809 IF
20810 --
20811 1 = 1
20812 --
20813 THEN
20814 xla_accounting_err_pkg.build_message
20815 (p_appli_s_name => 'XLA'
20816 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20817 ,p_token_1 => 'LINE_NUMBER'
20818 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
20819 ,p_token_2 => 'LINE_TYPE_NAME'
20820 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
20821 l_component_type
20822 ,l_component_code
20823 ,l_component_type_code
20824 ,l_component_appl_id
20825 ,l_amb_context_code
20826 ,l_entity_code
20827 ,l_event_class_code
20828 )
20829 ,p_token_3 => 'OWNER'
20830 ,p_value_3 => xla_lookups_pkg.get_meaning(
20831 p_lookup_type => 'XLA_OWNER_TYPE'
20832 ,p_lookup_code => l_component_type_code
20833 )
20834 ,p_token_4 => 'PRODUCT_NAME'
20835 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
20836 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
20837 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
20838 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
20839 ,p_ae_header_id => NULL
20840 );
20841
20842 IF (C_LEVEL_ERROR>= g_log_level) THEN
20843 trace
20844 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20845 ,p_level => C_LEVEL_ERROR
20846 ,p_module => l_log_module);
20847 END IF;
20848 END IF;
20849 END IF;
20850 --
20851 --
20852 ------------------------------------------------------------------------------------------------
20853 -- 4219869 Business Flow
20854 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
20855 -- Prior Entry. Currently, the following code is always generated.
20856 ------------------------------------------------------------------------------------------------
20857 -- No ValidateCurrentLine for business flow method of Prior Entry
20858
20859 ------------------------------------------------------------------------------------
20860 -- 4219869 Business Flow
20861 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
20862 ------------------------------------------------------------------------------------
20863 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20864
20865 ----------------------------------------------------------------------------------
20866 -- 4219869 Business Flow
20867 -- Update journal entry status -- Need to generate this within IF <condition>
20868 ----------------------------------------------------------------------------------
20869 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20870 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
20871 ,p_balance_type_code => l_balance_type_code
20872 );
20873
20874 -------------------------------------------------------------------------------------------
20875 -- 4262811 - Generate the Accrual Reversal lines
20876 -------------------------------------------------------------------------------------------
20877 BEGIN
20878 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
20879 (g_array_event(p_event_id).array_value_num('header_index'));
20880 IF l_acc_rev_flag IS NULL THEN
20881 l_acc_rev_flag := 'N';
20882 END IF;
20883 EXCEPTION
20884 WHEN OTHERS THEN
20885 l_acc_rev_flag := 'N';
20886 END;
20887 --
20888 IF (l_acc_rev_flag = 'Y') THEN
20889
20890 -- 4645092 ------------------------------------------------------------------------------
20891 -- To allow MPA report to determine if it should generate report process
20892 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
20893 ------------------------------------------------------------------------------------------
20894
20895 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
20896 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
20897
20898 --
20899 -- Update the line information that should be overwritten
20900 --
20901 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
20902 p_header_num => 1);
20903 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
20904
20905 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
20906
20907 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
20908 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
20909 END IF;
20910
20911 --
20912 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
20913 --
20914 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
20915 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
20916 ELSE
20917 ---------------------------------------------------------------------------------------------------
20918 -- 4262811a Switch Sign
20919 ---------------------------------------------------------------------------------------------------
20920 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
20921 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20922 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20923 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20924 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20925 -- 5132302
20926 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
20927 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20928
20929 END IF;
20930
20931 -- 4955764
20932 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20933 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
20934
20935
20936 XLA_AE_LINES_PKG.ValidateCurrentLine;
20937 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20938
20939 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20940 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
20941 ,p_balance_type_code => l_balance_type_code);
20942
20943 END IF;
20944
20945 -----------------------------------------------------------------------------------------
20946 -- 4262811 Multiperiod Accounting
20947 -----------------------------------------------------------------------------------------
20948 -- No MPA option is assigned.
20949
20950
20951 END IF;
20952 END IF;
20953 --
20954
20955 --
20956 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20957 trace
20958 (p_msg => 'END of AcctLineType_40'
20959 ,p_level => C_LEVEL_PROCEDURE
20960 ,p_module => l_log_module);
20961 END IF;
20962 --
20963 EXCEPTION
20964 WHEN xla_exceptions_pkg.application_exception THEN
20965 RAISE;
20966 WHEN OTHERS THEN
20967 xla_exceptions_pkg.raise_message
20968 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_40');
20969 END AcctLineType_40;
20970 --
20971
20972 ---------------------------------------
20973 --
20974 -- PRIVATE FUNCTION
20975 -- AcctLineType_41
20976 --
20977 ---------------------------------------
20978 PROCEDURE AcctLineType_41 (
20979 p_application_id IN NUMBER
20980 ,p_event_id IN NUMBER
20981 ,p_calculate_acctd_flag IN VARCHAR2
20982 ,p_calculate_g_l_flag IN VARCHAR2
20983 ,p_actual_flag IN OUT VARCHAR2
20984 ,p_balance_type_code OUT VARCHAR2
20985 ,p_gain_or_loss_ref OUT VARCHAR2
20986
20987 --Project Name
20988 , p_source_3 IN VARCHAR2
20989 --Task Name
20990 , p_source_4 IN VARCHAR2
20991 --Project Expenditure Organization Identifier
20992 , p_source_5 IN NUMBER
20993 --Expenditure Type
20994 , p_source_6 IN VARCHAR2
20995 --Document Type
20996 , p_source_9 IN VARCHAR2
20997 --Main Or Backing Code
20998 , p_source_13 IN VARCHAR2
20999 --Burden Record Identifier
21000 , p_source_14 IN VARCHAR2
21001 , p_source_14_meaning IN VARCHAR2
21002 --Burden Amount Display Method
21003 , p_source_15 IN VARCHAR2
21004 --Accounting Reversal Flag
21005 , p_source_16 IN VARCHAR2
21006 --Allocated to Application Identifier
21007 , p_source_17 IN NUMBER
21008 --Allocated to Distribution Type
21009 , p_source_18 IN VARCHAR2
21010 --Allocated to Entity Code
21011 , p_source_19 IN VARCHAR2
21012 --Allocated to First Distribution Identifier
21013 , p_source_20 IN NUMBER
21014 --Allocated to First System Transaction Identifier
21015 , p_source_21 IN NUMBER
21016 --Allocated to Second Distribution Identifier
21017 , p_source_22 IN VARCHAR2
21018 --PO Distribution Identifier
21019 , p_source_29 IN NUMBER
21020 --Line Type Name
21021 , p_source_30 IN VARCHAR2
21022 --Encumbrance Upgrade Credit Accounting Class
21023 , p_source_31 IN VARCHAR2
21024 --Encumbrance Upgrade Credit Account
21025 , p_source_32 IN NUMBER
21026 --Entered Amount
21027 , p_source_33 IN NUMBER
21028 --Currency Code
21029 , p_source_34 IN VARCHAR2
21030 --Accounted Amount
21031 , p_source_35 IN NUMBER
21032 --Encumbrance Upgrade Debit Accounting Class
21033 , p_source_36 IN VARCHAR2
21034 --Encumbrance Upgrade Debit Account
21035 , p_source_37 IN NUMBER
21036 --Use Encumbrances Upgrade Attributes Flag
21037 , p_source_38 IN VARCHAR2
21038 --Encumbrance Upgrade Credit Encumbrance Type
21039 , p_source_39 IN NUMBER
21040 --Encumbrance Upgrade Debit Encumbrance Type
21041 , p_source_40 IN NUMBER
21042 --Requisition Burden Applied to Application Identifier
21043 , p_source_41 IN NUMBER
21044 --Requisition Distribution Type
21045 , p_source_42 IN VARCHAR2
21046 --Requisition Burden Applied to Entity Code
21047 , p_source_43 IN VARCHAR2
21048 --Requisition Burden Applied to First Distribution Identifier
21049 , p_source_44 IN NUMBER
21050 --Requisition Burden Applied to First System Transaction Identifier
21051 , p_source_45 IN NUMBER
21052 --Requisition Burden Applied to Second Distribution Identifier
21053 , p_source_46 IN VARCHAR2
21054 )
21055 IS
21056
21057 l_component_type VARCHAR2(80);
21058 l_component_code VARCHAR2(30);
21059 l_component_type_code VARCHAR2(1);
21060 l_component_appl_id INTEGER;
21061 l_amb_context_code VARCHAR2(30);
21062 l_entity_code VARCHAR2(30);
21063 l_event_class_code VARCHAR2(30);
21064 l_ae_header_id NUMBER;
21065 l_event_type_code VARCHAR2(30);
21066 l_line_definition_code VARCHAR2(30);
21067 l_line_definition_owner_code VARCHAR2(1);
21068 --
21069 -- adr variables
21070 l_segment VARCHAR2(30);
21071 l_ccid NUMBER;
21072 l_adr_transaction_coa_id NUMBER;
21073 l_adr_accounting_coa_id NUMBER;
21074 l_adr_flexfield_segment_code VARCHAR2(30);
21075 l_adr_flex_value_set_id NUMBER;
21076 l_adr_value_type_code VARCHAR2(30);
21077 l_adr_value_combination_id NUMBER;
21078 l_adr_value_segment_code VARCHAR2(30);
21079
21080 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
21081 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
21082 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
21083 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
21084
21085 -- 4262811 Variables ------------------------------------------------------------------------------------------
21086 l_entered_amt_idx NUMBER;
21087 l_accted_amt_idx NUMBER;
21088 l_acc_rev_flag VARCHAR2(1);
21089 l_accrual_line_num NUMBER;
21090 l_tmp_amt NUMBER;
21091 l_acc_rev_natural_side_code VARCHAR2(1);
21092
21093 l_num_entries NUMBER;
21094 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
21095 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
21096 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
21097 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
21098 l_recog_line_1 NUMBER;
21099 l_recog_line_2 NUMBER;
21100
21101 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
21102 l_bflow_applied_to_amt NUMBER; -- 5132302
21103 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
21104
21105 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21106
21107 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
21108 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
21109
21110 ---------------------------------------------------------------------------------------------------------------
21111
21112
21113 --
21114 -- bulk performance
21115 --
21116 l_balance_type_code VARCHAR2(1);
21117 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
21118 l_log_module VARCHAR2(240);
21119
21120 --
21121 -- Upgrade strategy
21122 --
21123 l_actual_upg_option VARCHAR2(1);
21124 l_enc_upg_option VARCHAR2(1);
21125
21126 --
21127 BEGIN
21128 --
21129 IF g_log_enabled THEN
21130 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_41';
21131 END IF;
21132 --
21133 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21134
21135 trace
21136 (p_msg => 'BEGIN of AcctLineType_41'
21137 ,p_level => C_LEVEL_PROCEDURE
21138 ,p_module => l_log_module);
21139
21140 END IF;
21141 --
21142 l_component_type := 'AMB_JLT';
21143 l_component_code := 'RELIEVE_BURDENED_REQENC_FORREL';
21144 l_component_type_code := 'S';
21145 l_component_appl_id := 201;
21146 l_amb_context_code := 'DEFAULT';
21147 l_entity_code := 'RELEASE';
21148 l_event_class_code := 'RELEASE_BURDEN';
21149 l_event_type_code := 'RELEASE_BURDEN_ALL';
21150 l_line_definition_owner_code := 'S';
21151 l_line_definition_code := 'REL_BURDEN_ENC_ALL';
21152 --
21153 l_balance_type_code := 'E';
21154 l_segment := NULL;
21155 l_ccid := NULL;
21156 l_adr_transaction_coa_id := NULL;
21157 l_adr_accounting_coa_id := NULL;
21158 l_adr_flexfield_segment_code := NULL;
21159 l_adr_flex_value_set_id := NULL;
21160 l_adr_value_type_code := NULL;
21161 l_adr_value_combination_id := NULL;
21162 l_adr_value_segment_code := NULL;
21163
21164 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
21165 l_bflow_class_code := 'REQ_PA_BURDENED_ENC'; -- 4219869 Business Flow
21166 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
21167 l_budgetary_control_flag := 'Y';
21168
21169 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21170 l_bflow_applied_to_amt := NULL; -- 5132302
21171 l_entered_amt_idx := NULL; -- 4262811
21172 l_accted_amt_idx := NULL; -- 4262811
21173 l_acc_rev_flag := NULL; -- 4262811
21174 l_accrual_line_num := NULL; -- 4262811
21175 l_tmp_amt := NULL; -- 4262811
21176 --
21177
21178 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21179 l_balance_type_code <> 'B' THEN
21180 IF NVL(
21181 xla_ae_sources_pkg.GetSystemSourceChar(
21182 p_source_code => 'XLA_EVENT_TYPE_CODE'
21183 , p_source_type_code => 'Y'
21184 , p_source_application_id => 602
21185 ),'
21186 ') = 'REL_BURDEN_RESERVED' AND
21187 NVL(p_source_13,'
21188 ') = 'B_REQ' AND
21189 (NVL(p_source_14,'
21190 ') = 'N' OR
21191 NVL(p_source_14,'
21192 ') = 'O') AND
21193 NVL(p_source_9,'
21194 ') = 'REQ' AND
21195 NVL(p_source_15,'
21196 ') = 'S'
21197 THEN
21198
21199 --
21200 XLA_AE_LINES_PKG.SetNewLine;
21201
21202 p_balance_type_code := l_balance_type_code;
21203 -- set the flag so later we will know whether the gain loss line needs to be created
21204
21205 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21206 p_actual_flag :='A';
21207 END IF;
21208
21209 --
21210 -- bulk performance
21211 --
21212 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21213 p_header_num => 0); -- 4262811
21214 --
21215 -- set accounting line options
21216 --
21217 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21218 p_natural_side_code => 'C'
21219 , p_gain_or_loss_flag => 'N'
21220 , p_gl_transfer_mode_code => 'S'
21221 , p_acct_entry_type_code => 'E'
21222 , p_switch_side_flag => 'N'
21223 , p_merge_duplicate_code => 'N'
21224 );
21225 --
21226 l_acc_rev_natural_side_code := 'D'; -- 4262811
21227 --
21228 --
21229 -- set accounting line type info
21230 --
21231 xla_ae_lines_pkg.SetAcctLineType
21232 (p_component_type => l_component_type
21233 ,p_event_type_code => l_event_type_code
21234 ,p_line_definition_owner_code => l_line_definition_owner_code
21235 ,p_line_definition_code => l_line_definition_code
21236 ,p_accounting_line_code => l_component_code
21237 ,p_accounting_line_type_code => l_component_type_code
21238 ,p_accounting_line_appl_id => l_component_appl_id
21239 ,p_amb_context_code => l_amb_context_code
21240 ,p_entity_code => l_entity_code
21241 ,p_event_class_code => l_event_class_code);
21242 --
21243 -- set accounting class
21244 --
21245 xla_ae_lines_pkg.SetAcctClass(
21246 p_accounting_class_code => 'REQ_PA_BURDENED'
21247 , p_ae_header_id => l_ae_header_id
21248 );
21249
21250 --
21251 -- set rounding class
21252 --
21253 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
21254 'REQ_PA_BURDENED';
21255
21256 --
21257 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
21258 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
21259 --
21260 -- bulk performance
21261 --
21262 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
21263
21264 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
21265 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
21266
21267 -- 4955764
21268 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21269 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
21270
21271 -- 4458381 Public Sector Enh
21272
21273 --
21274 -- set accounting attributes for the line type
21275 --
21276 l_entered_amt_idx := 28;
21277 l_accted_amt_idx := 30;
21278 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21279 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
21280 l_rec_acct_attrs.array_char_value(1) := p_source_16;
21281 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
21282 l_rec_acct_attrs.array_num_value(2) := p_source_17;
21283 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
21284 l_rec_acct_attrs.array_char_value(3) := p_source_18;
21285 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
21286 l_rec_acct_attrs.array_char_value(4) := p_source_19;
21287 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
21288 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
21289 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
21290 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
21291 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
21292 l_rec_acct_attrs.array_char_value(7) := p_source_22;
21293 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
21294 l_rec_acct_attrs.array_num_value(8) := p_source_41;
21295 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
21296 l_rec_acct_attrs.array_char_value(9) := p_source_42;
21297 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
21298 l_rec_acct_attrs.array_char_value(10) := p_source_43;
21299 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
21300 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_44);
21301 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
21302 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_45);
21303 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
21304 l_rec_acct_attrs.array_char_value(13) := p_source_46;
21305 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
21306 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_29);
21307 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
21308 l_rec_acct_attrs.array_char_value(15) := p_source_6;
21309 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
21310 l_rec_acct_attrs.array_char_value(16) := p_source_30;
21311 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
21312 l_rec_acct_attrs.array_char_value(17) := p_source_31;
21313 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
21314 l_rec_acct_attrs.array_num_value(18) := p_source_32;
21315 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
21316 l_rec_acct_attrs.array_num_value(19) := p_source_33;
21317 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
21318 l_rec_acct_attrs.array_char_value(20) := p_source_34;
21319 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
21320 l_rec_acct_attrs.array_num_value(21) := p_source_35;
21321 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
21322 l_rec_acct_attrs.array_char_value(22) := p_source_36;
21323 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
21324 l_rec_acct_attrs.array_num_value(23) := p_source_37;
21325 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
21326 l_rec_acct_attrs.array_num_value(24) := p_source_33;
21327 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
21328 l_rec_acct_attrs.array_char_value(25) := p_source_34;
21329 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
21330 l_rec_acct_attrs.array_num_value(26) := p_source_35;
21331 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
21332 l_rec_acct_attrs.array_char_value(27) := p_source_38;
21333 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
21334 l_rec_acct_attrs.array_num_value(28) := p_source_33;
21335 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
21336 l_rec_acct_attrs.array_char_value(29) := p_source_34;
21337 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
21338 l_rec_acct_attrs.array_num_value(30) := p_source_35;
21339 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
21340 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_29);
21341 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
21342 l_rec_acct_attrs.array_char_value(32) := p_source_6;
21343 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
21344 l_rec_acct_attrs.array_char_value(33) := p_source_30;
21345 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
21346 l_rec_acct_attrs.array_num_value(34) := p_source_39;
21347 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
21348 l_rec_acct_attrs.array_num_value(35) := p_source_40;
21349
21350 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
21351 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
21352
21353 ---------------------------------------------------------------------------------------------------------------
21354 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
21355 ---------------------------------------------------------------------------------------------------------------
21356 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
21357
21358 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21359 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21360
21361 IF xla_accounting_cache_pkg.GetValueChar
21362 (p_source_code => 'LEDGER_CATEGORY_CODE'
21363 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
21364 AND l_bflow_method_code = 'PRIOR_ENTRY'
21365 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
21366 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
21367 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
21368 )
21369 THEN
21370 xla_ae_lines_pkg.BflowUpgEntry
21371 (p_business_method_code => l_bflow_method_code
21372 ,p_business_class_code => l_bflow_class_code
21373 ,p_balance_type => l_balance_type_code);
21374 ELSE
21375 NULL;
21376 XLA_AE_LINES_PKG.business_flow_validation(
21377 p_business_method_code => l_bflow_method_code
21378 ,p_business_class_code => l_bflow_class_code
21379 ,p_inherit_description_flag => l_inherit_desc_flag);
21380 END IF;
21381
21382 --
21383 -- call analytical criteria
21384 --
21385 -- Inherited Analytical Criteria for business flow method of Prior Entry.
21386 --
21387 -- call description
21388 --
21389
21390 xla_ae_lines_pkg.SetLineDescription(
21391 p_ae_header_id => l_ae_header_id
21392 ,p_description => Description_2 (
21393 p_application_id => p_application_id
21394 , p_ae_header_id => l_ae_header_id
21395 , p_source_3 => p_source_3
21396 , p_source_4 => p_source_4
21397 , p_source_5 => p_source_5
21398 , p_source_6 => p_source_6
21399 )
21400 );
21401
21402
21403 --
21404 -- call ADRs
21405 -- Bug 4922099
21406 --
21407 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21408 (NVL(l_actual_upg_option, 'N') = 'O') OR
21409 (NVL(l_enc_upg_option, 'N') = 'O')
21410 )
21411 THEN
21412 NULL;
21413 --
21414 --
21415
21416 --
21417 --
21418 END IF;
21419 --
21420 -- Bug 4922099
21421 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
21422 (NVL(l_enc_upg_option, 'N') = 'O')
21423 ) AND
21424 (l_bflow_method_code = 'PRIOR_ENTRY')
21425 )
21426 THEN
21427 IF
21428 --
21429 1 = 1
21430 --
21431 THEN
21432 xla_accounting_err_pkg.build_message
21433 (p_appli_s_name => 'XLA'
21434 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21435 ,p_token_1 => 'LINE_NUMBER'
21436 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
21437 ,p_token_2 => 'LINE_TYPE_NAME'
21438 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
21439 l_component_type
21440 ,l_component_code
21441 ,l_component_type_code
21442 ,l_component_appl_id
21443 ,l_amb_context_code
21444 ,l_entity_code
21445 ,l_event_class_code
21446 )
21447 ,p_token_3 => 'OWNER'
21448 ,p_value_3 => xla_lookups_pkg.get_meaning(
21449 p_lookup_type => 'XLA_OWNER_TYPE'
21450 ,p_lookup_code => l_component_type_code
21451 )
21452 ,p_token_4 => 'PRODUCT_NAME'
21453 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
21454 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
21455 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
21456 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
21457 ,p_ae_header_id => NULL
21458 );
21459
21460 IF (C_LEVEL_ERROR>= g_log_level) THEN
21461 trace
21462 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21463 ,p_level => C_LEVEL_ERROR
21464 ,p_module => l_log_module);
21465 END IF;
21466 END IF;
21467 END IF;
21468 --
21469 --
21470 ------------------------------------------------------------------------------------------------
21471 -- 4219869 Business Flow
21472 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
21473 -- Prior Entry. Currently, the following code is always generated.
21474 ------------------------------------------------------------------------------------------------
21475 -- No ValidateCurrentLine for business flow method of Prior Entry
21476
21477 ------------------------------------------------------------------------------------
21478 -- 4219869 Business Flow
21479 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
21480 ------------------------------------------------------------------------------------
21481 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21482
21483 ----------------------------------------------------------------------------------
21484 -- 4219869 Business Flow
21485 -- Update journal entry status -- Need to generate this within IF <condition>
21486 ----------------------------------------------------------------------------------
21487 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21488 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
21489 ,p_balance_type_code => l_balance_type_code
21490 );
21491
21492 -------------------------------------------------------------------------------------------
21493 -- 4262811 - Generate the Accrual Reversal lines
21494 -------------------------------------------------------------------------------------------
21495 BEGIN
21496 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
21497 (g_array_event(p_event_id).array_value_num('header_index'));
21498 IF l_acc_rev_flag IS NULL THEN
21499 l_acc_rev_flag := 'N';
21500 END IF;
21501 EXCEPTION
21502 WHEN OTHERS THEN
21503 l_acc_rev_flag := 'N';
21504 END;
21505 --
21506 IF (l_acc_rev_flag = 'Y') THEN
21507
21508 -- 4645092 ------------------------------------------------------------------------------
21509 -- To allow MPA report to determine if it should generate report process
21510 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
21511 ------------------------------------------------------------------------------------------
21512
21513 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
21514 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
21515
21516 --
21517 -- Update the line information that should be overwritten
21518 --
21519 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
21520 p_header_num => 1);
21521 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
21522
21523 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
21524
21525 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
21526 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
21527 END IF;
21528
21529 --
21530 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
21531 --
21532 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
21533 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
21534 ELSE
21535 ---------------------------------------------------------------------------------------------------
21536 -- 4262811a Switch Sign
21537 ---------------------------------------------------------------------------------------------------
21538 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
21539 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21540 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21541 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21542 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21543 -- 5132302
21544 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
21545 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21546
21547 END IF;
21548
21549 -- 4955764
21550 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21551 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
21552
21553
21554 XLA_AE_LINES_PKG.ValidateCurrentLine;
21555 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21556
21557 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21558 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
21559 ,p_balance_type_code => l_balance_type_code);
21560
21561 END IF;
21562
21563 -----------------------------------------------------------------------------------------
21564 -- 4262811 Multiperiod Accounting
21565 -----------------------------------------------------------------------------------------
21566 -- No MPA option is assigned.
21567
21568
21569 END IF;
21570 END IF;
21571 --
21572
21573 --
21574 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21575 trace
21576 (p_msg => 'END of AcctLineType_41'
21577 ,p_level => C_LEVEL_PROCEDURE
21578 ,p_module => l_log_module);
21579 END IF;
21580 --
21581 EXCEPTION
21582 WHEN xla_exceptions_pkg.application_exception THEN
21583 RAISE;
21584 WHEN OTHERS THEN
21585 xla_exceptions_pkg.raise_message
21586 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_41');
21587 END AcctLineType_41;
21588 --
21589
21590 ---------------------------------------
21591 --
21592 -- PRIVATE FUNCTION
21593 -- AcctLineType_42
21594 --
21595 ---------------------------------------
21596 PROCEDURE AcctLineType_42 (
21597 p_application_id IN NUMBER
21598 ,p_event_id IN NUMBER
21599 ,p_calculate_acctd_flag IN VARCHAR2
21600 ,p_calculate_g_l_flag IN VARCHAR2
21601 ,p_actual_flag IN OUT VARCHAR2
21602 ,p_balance_type_code OUT VARCHAR2
21603 ,p_gain_or_loss_ref OUT VARCHAR2
21604
21605 --Project Name
21606 , p_source_3 IN VARCHAR2
21607 --Task Name
21608 , p_source_4 IN VARCHAR2
21609 --Project Expenditure Organization Identifier
21610 , p_source_5 IN NUMBER
21611 --Expenditure Type
21612 , p_source_6 IN VARCHAR2
21613 --Document Type
21614 , p_source_9 IN VARCHAR2
21615 --Main Or Backing Code
21616 , p_source_13 IN VARCHAR2
21617 --Burden Record Identifier
21618 , p_source_14 IN VARCHAR2
21619 , p_source_14_meaning IN VARCHAR2
21620 --Burden Amount Display Method
21621 , p_source_15 IN VARCHAR2
21622 --Accounting Reversal Flag
21623 , p_source_16 IN VARCHAR2
21624 --Allocated to Application Identifier
21625 , p_source_17 IN NUMBER
21626 --Allocated to Distribution Type
21627 , p_source_18 IN VARCHAR2
21628 --Allocated to Entity Code
21629 , p_source_19 IN VARCHAR2
21630 --Allocated to First Distribution Identifier
21631 , p_source_20 IN NUMBER
21632 --Allocated to First System Transaction Identifier
21633 , p_source_21 IN NUMBER
21634 --Allocated to Second Distribution Identifier
21635 , p_source_22 IN VARCHAR2
21636 --Purchase Order Burden Applied to Application Identifier
21637 , p_source_23 IN NUMBER
21638 --PO Distribution Type
21639 , p_source_24 IN VARCHAR2
21640 --Purchase Order Burden Applied to Entity Code
21641 , p_source_25 IN VARCHAR2
21642 --Purchase Order Burden Applied to First Distribution Identifier
21643 , p_source_26 IN NUMBER
21644 --Purchase Order Burden Applied to First System Transaction Identifier
21645 , p_source_27 IN NUMBER
21646 --Purchase Order Burden Applied to Second Distribution Identifier
21647 , p_source_28 IN VARCHAR2
21648 --PO Distribution Identifier
21649 , p_source_29 IN NUMBER
21650 --Line Type Name
21651 , p_source_30 IN VARCHAR2
21652 --Encumbrance Upgrade Credit Accounting Class
21653 , p_source_31 IN VARCHAR2
21654 --Encumbrance Upgrade Credit Account
21655 , p_source_32 IN NUMBER
21656 --Entered Amount
21657 , p_source_33 IN NUMBER
21658 --Currency Code
21659 , p_source_34 IN VARCHAR2
21660 --Accounted Amount
21661 , p_source_35 IN NUMBER
21662 --Encumbrance Upgrade Debit Accounting Class
21663 , p_source_36 IN VARCHAR2
21664 --Encumbrance Upgrade Debit Account
21665 , p_source_37 IN NUMBER
21666 --Use Encumbrances Upgrade Attributes Flag
21667 , p_source_38 IN VARCHAR2
21668 --Encumbrance Upgrade Credit Encumbrance Type
21669 , p_source_39 IN NUMBER
21670 --Encumbrance Upgrade Debit Encumbrance Type
21671 , p_source_40 IN NUMBER
21672 )
21673 IS
21674
21675 l_component_type VARCHAR2(80);
21676 l_component_code VARCHAR2(30);
21677 l_component_type_code VARCHAR2(1);
21678 l_component_appl_id INTEGER;
21679 l_amb_context_code VARCHAR2(30);
21680 l_entity_code VARCHAR2(30);
21681 l_event_class_code VARCHAR2(30);
21682 l_ae_header_id NUMBER;
21683 l_event_type_code VARCHAR2(30);
21684 l_line_definition_code VARCHAR2(30);
21685 l_line_definition_owner_code VARCHAR2(1);
21686 --
21687 -- adr variables
21688 l_segment VARCHAR2(30);
21689 l_ccid NUMBER;
21690 l_adr_transaction_coa_id NUMBER;
21691 l_adr_accounting_coa_id NUMBER;
21692 l_adr_flexfield_segment_code VARCHAR2(30);
21693 l_adr_flex_value_set_id NUMBER;
21694 l_adr_value_type_code VARCHAR2(30);
21695 l_adr_value_combination_id NUMBER;
21696 l_adr_value_segment_code VARCHAR2(30);
21697
21698 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
21699 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
21700 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
21701 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
21702
21703 -- 4262811 Variables ------------------------------------------------------------------------------------------
21704 l_entered_amt_idx NUMBER;
21705 l_accted_amt_idx NUMBER;
21706 l_acc_rev_flag VARCHAR2(1);
21707 l_accrual_line_num NUMBER;
21708 l_tmp_amt NUMBER;
21709 l_acc_rev_natural_side_code VARCHAR2(1);
21710
21711 l_num_entries NUMBER;
21712 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
21713 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
21714 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
21715 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
21716 l_recog_line_1 NUMBER;
21717 l_recog_line_2 NUMBER;
21718
21719 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
21720 l_bflow_applied_to_amt NUMBER; -- 5132302
21721 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
21722
21723 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21724
21725 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
21726 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
21727
21728 ---------------------------------------------------------------------------------------------------------------
21729
21730
21731 --
21732 -- bulk performance
21733 --
21734 l_balance_type_code VARCHAR2(1);
21735 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
21736 l_log_module VARCHAR2(240);
21737
21738 --
21739 -- Upgrade strategy
21740 --
21741 l_actual_upg_option VARCHAR2(1);
21742 l_enc_upg_option VARCHAR2(1);
21743
21744 --
21745 BEGIN
21746 --
21747 IF g_log_enabled THEN
21748 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_42';
21749 END IF;
21750 --
21751 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21752
21753 trace
21754 (p_msg => 'BEGIN of AcctLineType_42'
21755 ,p_level => C_LEVEL_PROCEDURE
21756 ,p_module => l_log_module);
21757
21758 END IF;
21759 --
21760 l_component_type := 'AMB_JLT';
21761 l_component_code := 'RELIEVE_BURDEN_PO_ENC_FOR_REL';
21762 l_component_type_code := 'S';
21763 l_component_appl_id := 201;
21764 l_amb_context_code := 'DEFAULT';
21765 l_entity_code := 'RELEASE';
21766 l_event_class_code := 'RELEASE_BURDEN';
21767 l_event_type_code := 'RELEASE_BURDEN_ALL';
21768 l_line_definition_owner_code := 'S';
21769 l_line_definition_code := 'REL_BURDEN_ENC_ALL';
21770 --
21771 l_balance_type_code := 'E';
21772 l_segment := NULL;
21773 l_ccid := NULL;
21774 l_adr_transaction_coa_id := NULL;
21775 l_adr_accounting_coa_id := NULL;
21776 l_adr_flexfield_segment_code := NULL;
21777 l_adr_flex_value_set_id := NULL;
21778 l_adr_value_type_code := NULL;
21779 l_adr_value_combination_id := NULL;
21780 l_adr_value_segment_code := NULL;
21781
21782 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
21783 l_bflow_class_code := 'PO_PA_BURDEN_ENC'; -- 4219869 Business Flow
21784 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
21785 l_budgetary_control_flag := 'Y';
21786
21787 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21788 l_bflow_applied_to_amt := NULL; -- 5132302
21789 l_entered_amt_idx := NULL; -- 4262811
21790 l_accted_amt_idx := NULL; -- 4262811
21791 l_acc_rev_flag := NULL; -- 4262811
21792 l_accrual_line_num := NULL; -- 4262811
21793 l_tmp_amt := NULL; -- 4262811
21794 --
21795
21796 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21797 l_balance_type_code <> 'B' THEN
21798 IF NVL(
21799 xla_ae_sources_pkg.GetSystemSourceChar(
21800 p_source_code => 'XLA_EVENT_TYPE_CODE'
21801 , p_source_type_code => 'Y'
21802 , p_source_application_id => 602
21803 ),'
21804 ') = 'REL_BURDEN_RESERVED' AND
21805 (NVL(p_source_13,'
21806 ') = 'B_PO' OR
21807 NVL(p_source_13,'
21808 ') = 'B_PA') AND
21809 NVL(p_source_14,'
21810 ') = 'O' AND
21811 NVL(p_source_9,'
21812 ') = 'PO' AND
21813 NVL(p_source_15,'
21814 ') = 'D'
21815 THEN
21816
21817 --
21818 XLA_AE_LINES_PKG.SetNewLine;
21819
21820 p_balance_type_code := l_balance_type_code;
21821 -- set the flag so later we will know whether the gain loss line needs to be created
21822
21823 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21824 p_actual_flag :='A';
21825 END IF;
21826
21827 --
21828 -- bulk performance
21829 --
21830 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21831 p_header_num => 0); -- 4262811
21832 --
21833 -- set accounting line options
21834 --
21835 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21836 p_natural_side_code => 'C'
21837 , p_gain_or_loss_flag => 'N'
21838 , p_gl_transfer_mode_code => 'S'
21839 , p_acct_entry_type_code => 'E'
21840 , p_switch_side_flag => 'N'
21841 , p_merge_duplicate_code => 'N'
21842 );
21843 --
21844 l_acc_rev_natural_side_code := 'D'; -- 4262811
21845 --
21846 --
21847 -- set accounting line type info
21848 --
21849 xla_ae_lines_pkg.SetAcctLineType
21850 (p_component_type => l_component_type
21851 ,p_event_type_code => l_event_type_code
21852 ,p_line_definition_owner_code => l_line_definition_owner_code
21853 ,p_line_definition_code => l_line_definition_code
21854 ,p_accounting_line_code => l_component_code
21855 ,p_accounting_line_type_code => l_component_type_code
21856 ,p_accounting_line_appl_id => l_component_appl_id
21857 ,p_amb_context_code => l_amb_context_code
21858 ,p_entity_code => l_entity_code
21859 ,p_event_class_code => l_event_class_code);
21860 --
21861 -- set accounting class
21862 --
21863 xla_ae_lines_pkg.SetAcctClass(
21864 p_accounting_class_code => 'PO_PA_BURDEN'
21865 , p_ae_header_id => l_ae_header_id
21866 );
21867
21868 --
21869 -- set rounding class
21870 --
21871 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
21872 'PO_PA_BURDEN';
21873
21874 --
21875 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
21876 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
21877 --
21878 -- bulk performance
21879 --
21880 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
21881
21882 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
21883 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
21884
21885 -- 4955764
21886 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21887 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
21888
21889 -- 4458381 Public Sector Enh
21890
21891 --
21892 -- set accounting attributes for the line type
21893 --
21894 l_entered_amt_idx := 28;
21895 l_accted_amt_idx := 30;
21896 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21897 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
21898 l_rec_acct_attrs.array_char_value(1) := p_source_16;
21899 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
21900 l_rec_acct_attrs.array_num_value(2) := p_source_17;
21901 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
21902 l_rec_acct_attrs.array_char_value(3) := p_source_18;
21903 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
21904 l_rec_acct_attrs.array_char_value(4) := p_source_19;
21905 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
21906 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
21907 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
21908 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
21909 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
21910 l_rec_acct_attrs.array_char_value(7) := p_source_22;
21911 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
21912 l_rec_acct_attrs.array_num_value(8) := p_source_23;
21913 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
21914 l_rec_acct_attrs.array_char_value(9) := p_source_24;
21915 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
21916 l_rec_acct_attrs.array_char_value(10) := p_source_25;
21917 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
21918 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_26);
21919 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
21920 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_27);
21921 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
21922 l_rec_acct_attrs.array_char_value(13) := p_source_28;
21923 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
21924 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_29);
21925 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
21926 l_rec_acct_attrs.array_char_value(15) := p_source_6;
21927 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
21928 l_rec_acct_attrs.array_char_value(16) := p_source_30;
21929 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
21930 l_rec_acct_attrs.array_char_value(17) := p_source_31;
21931 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
21932 l_rec_acct_attrs.array_num_value(18) := p_source_32;
21933 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
21934 l_rec_acct_attrs.array_num_value(19) := p_source_33;
21935 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
21936 l_rec_acct_attrs.array_char_value(20) := p_source_34;
21937 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
21938 l_rec_acct_attrs.array_num_value(21) := p_source_35;
21939 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
21940 l_rec_acct_attrs.array_char_value(22) := p_source_36;
21941 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
21942 l_rec_acct_attrs.array_num_value(23) := p_source_37;
21943 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
21944 l_rec_acct_attrs.array_num_value(24) := p_source_33;
21945 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
21946 l_rec_acct_attrs.array_char_value(25) := p_source_34;
21947 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
21948 l_rec_acct_attrs.array_num_value(26) := p_source_35;
21949 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
21950 l_rec_acct_attrs.array_char_value(27) := p_source_38;
21951 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
21952 l_rec_acct_attrs.array_num_value(28) := p_source_33;
21953 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
21954 l_rec_acct_attrs.array_char_value(29) := p_source_34;
21955 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
21956 l_rec_acct_attrs.array_num_value(30) := p_source_35;
21957 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
21958 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_29);
21959 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
21960 l_rec_acct_attrs.array_char_value(32) := p_source_6;
21961 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
21962 l_rec_acct_attrs.array_char_value(33) := p_source_30;
21963 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
21964 l_rec_acct_attrs.array_num_value(34) := p_source_39;
21965 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
21966 l_rec_acct_attrs.array_num_value(35) := p_source_40;
21967
21968 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
21969 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
21970
21971 ---------------------------------------------------------------------------------------------------------------
21972 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
21973 ---------------------------------------------------------------------------------------------------------------
21974 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
21975
21976 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21977 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21978
21979 IF xla_accounting_cache_pkg.GetValueChar
21980 (p_source_code => 'LEDGER_CATEGORY_CODE'
21981 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
21982 AND l_bflow_method_code = 'PRIOR_ENTRY'
21983 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
21984 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
21985 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
21986 )
21987 THEN
21988 xla_ae_lines_pkg.BflowUpgEntry
21989 (p_business_method_code => l_bflow_method_code
21990 ,p_business_class_code => l_bflow_class_code
21991 ,p_balance_type => l_balance_type_code);
21992 ELSE
21993 NULL;
21994 XLA_AE_LINES_PKG.business_flow_validation(
21995 p_business_method_code => l_bflow_method_code
21996 ,p_business_class_code => l_bflow_class_code
21997 ,p_inherit_description_flag => l_inherit_desc_flag);
21998 END IF;
21999
22000 --
22001 -- call analytical criteria
22002 --
22003 -- Inherited Analytical Criteria for business flow method of Prior Entry.
22004 --
22005 -- call description
22006 --
22007
22008 xla_ae_lines_pkg.SetLineDescription(
22009 p_ae_header_id => l_ae_header_id
22010 ,p_description => Description_2 (
22011 p_application_id => p_application_id
22012 , p_ae_header_id => l_ae_header_id
22013 , p_source_3 => p_source_3
22014 , p_source_4 => p_source_4
22015 , p_source_5 => p_source_5
22016 , p_source_6 => p_source_6
22017 )
22018 );
22019
22020
22021 --
22022 -- call ADRs
22023 -- Bug 4922099
22024 --
22025 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22026 (NVL(l_actual_upg_option, 'N') = 'O') OR
22027 (NVL(l_enc_upg_option, 'N') = 'O')
22028 )
22029 THEN
22030 NULL;
22031 --
22032 --
22033
22034 --
22035 --
22036 END IF;
22037 --
22038 -- Bug 4922099
22039 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
22040 (NVL(l_enc_upg_option, 'N') = 'O')
22041 ) AND
22042 (l_bflow_method_code = 'PRIOR_ENTRY')
22043 )
22044 THEN
22045 IF
22046 --
22047 1 = 1
22048 --
22049 THEN
22050 xla_accounting_err_pkg.build_message
22051 (p_appli_s_name => 'XLA'
22052 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22053 ,p_token_1 => 'LINE_NUMBER'
22054 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
22055 ,p_token_2 => 'LINE_TYPE_NAME'
22056 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
22057 l_component_type
22058 ,l_component_code
22059 ,l_component_type_code
22060 ,l_component_appl_id
22061 ,l_amb_context_code
22062 ,l_entity_code
22063 ,l_event_class_code
22064 )
22065 ,p_token_3 => 'OWNER'
22066 ,p_value_3 => xla_lookups_pkg.get_meaning(
22067 p_lookup_type => 'XLA_OWNER_TYPE'
22068 ,p_lookup_code => l_component_type_code
22069 )
22070 ,p_token_4 => 'PRODUCT_NAME'
22071 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
22072 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
22073 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
22074 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
22075 ,p_ae_header_id => NULL
22076 );
22077
22078 IF (C_LEVEL_ERROR>= g_log_level) THEN
22079 trace
22080 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22081 ,p_level => C_LEVEL_ERROR
22082 ,p_module => l_log_module);
22083 END IF;
22084 END IF;
22085 END IF;
22086 --
22087 --
22088 ------------------------------------------------------------------------------------------------
22089 -- 4219869 Business Flow
22090 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
22091 -- Prior Entry. Currently, the following code is always generated.
22092 ------------------------------------------------------------------------------------------------
22093 -- No ValidateCurrentLine for business flow method of Prior Entry
22094
22095 ------------------------------------------------------------------------------------
22096 -- 4219869 Business Flow
22097 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
22098 ------------------------------------------------------------------------------------
22099 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22100
22101 ----------------------------------------------------------------------------------
22102 -- 4219869 Business Flow
22103 -- Update journal entry status -- Need to generate this within IF <condition>
22104 ----------------------------------------------------------------------------------
22105 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22106 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
22107 ,p_balance_type_code => l_balance_type_code
22108 );
22109
22110 -------------------------------------------------------------------------------------------
22111 -- 4262811 - Generate the Accrual Reversal lines
22112 -------------------------------------------------------------------------------------------
22113 BEGIN
22114 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
22115 (g_array_event(p_event_id).array_value_num('header_index'));
22116 IF l_acc_rev_flag IS NULL THEN
22117 l_acc_rev_flag := 'N';
22118 END IF;
22119 EXCEPTION
22120 WHEN OTHERS THEN
22121 l_acc_rev_flag := 'N';
22122 END;
22123 --
22124 IF (l_acc_rev_flag = 'Y') THEN
22125
22126 -- 4645092 ------------------------------------------------------------------------------
22127 -- To allow MPA report to determine if it should generate report process
22128 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
22129 ------------------------------------------------------------------------------------------
22130
22131 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
22132 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
22133
22134 --
22135 -- Update the line information that should be overwritten
22136 --
22137 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
22138 p_header_num => 1);
22139 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
22140
22141 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
22142
22143 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
22144 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
22145 END IF;
22146
22147 --
22148 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
22149 --
22150 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
22151 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
22152 ELSE
22153 ---------------------------------------------------------------------------------------------------
22154 -- 4262811a Switch Sign
22155 ---------------------------------------------------------------------------------------------------
22156 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
22157 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22158 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22159 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22160 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22161 -- 5132302
22162 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
22163 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22164
22165 END IF;
22166
22167 -- 4955764
22168 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22169 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
22170
22171
22172 XLA_AE_LINES_PKG.ValidateCurrentLine;
22173 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22174
22175 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22176 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
22177 ,p_balance_type_code => l_balance_type_code);
22178
22179 END IF;
22180
22181 -----------------------------------------------------------------------------------------
22182 -- 4262811 Multiperiod Accounting
22183 -----------------------------------------------------------------------------------------
22184 -- No MPA option is assigned.
22185
22186
22187 END IF;
22188 END IF;
22189 --
22190
22191 --
22192 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22193 trace
22194 (p_msg => 'END of AcctLineType_42'
22195 ,p_level => C_LEVEL_PROCEDURE
22196 ,p_module => l_log_module);
22197 END IF;
22198 --
22199 EXCEPTION
22200 WHEN xla_exceptions_pkg.application_exception THEN
22201 RAISE;
22202 WHEN OTHERS THEN
22203 xla_exceptions_pkg.raise_message
22204 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_42');
22205 END AcctLineType_42;
22206 --
22207
22208 ---------------------------------------
22209 --
22210 -- PRIVATE FUNCTION
22211 -- AcctLineType_43
22212 --
22213 ---------------------------------------
22214 PROCEDURE AcctLineType_43 (
22215 p_application_id IN NUMBER
22216 ,p_event_id IN NUMBER
22217 ,p_calculate_acctd_flag IN VARCHAR2
22218 ,p_calculate_g_l_flag IN VARCHAR2
22219 ,p_actual_flag IN OUT VARCHAR2
22220 ,p_balance_type_code OUT VARCHAR2
22221 ,p_gain_or_loss_ref OUT VARCHAR2
22222
22223 --Project Name
22224 , p_source_3 IN VARCHAR2
22225 --Task Name
22226 , p_source_4 IN VARCHAR2
22227 --Project Expenditure Organization Identifier
22228 , p_source_5 IN NUMBER
22229 --Expenditure Type
22230 , p_source_6 IN VARCHAR2
22231 --Document Type
22232 , p_source_9 IN VARCHAR2
22233 --Main Or Backing Code
22234 , p_source_13 IN VARCHAR2
22235 --Burden Record Identifier
22236 , p_source_14 IN VARCHAR2
22237 , p_source_14_meaning IN VARCHAR2
22238 --Burden Amount Display Method
22239 , p_source_15 IN VARCHAR2
22240 --Accounting Reversal Flag
22241 , p_source_16 IN VARCHAR2
22242 --Allocated to Application Identifier
22243 , p_source_17 IN NUMBER
22244 --Allocated to Distribution Type
22245 , p_source_18 IN VARCHAR2
22246 --Allocated to Entity Code
22247 , p_source_19 IN VARCHAR2
22248 --Allocated to First Distribution Identifier
22249 , p_source_20 IN NUMBER
22250 --Allocated to First System Transaction Identifier
22251 , p_source_21 IN NUMBER
22252 --PO Distribution Identifier
22253 , p_source_29 IN NUMBER
22254 --Line Type Name
22255 , p_source_30 IN VARCHAR2
22256 --Encumbrance Upgrade Credit Accounting Class
22257 , p_source_31 IN VARCHAR2
22258 --Encumbrance Upgrade Credit Account
22259 , p_source_32 IN NUMBER
22260 --Entered Amount
22261 , p_source_33 IN NUMBER
22262 --Currency Code
22263 , p_source_34 IN VARCHAR2
22264 --Accounted Amount
22265 , p_source_35 IN NUMBER
22266 --Encumbrance Upgrade Debit Accounting Class
22267 , p_source_36 IN VARCHAR2
22268 --Encumbrance Upgrade Debit Account
22269 , p_source_37 IN NUMBER
22270 --Use Encumbrances Upgrade Attributes Flag
22271 , p_source_38 IN VARCHAR2
22272 --Encumbrance Upgrade Credit Encumbrance Type
22273 , p_source_39 IN NUMBER
22274 --Encumbrance Upgrade Debit Encumbrance Type
22275 , p_source_40 IN NUMBER
22276 --Requisition Burden Applied to Application Identifier
22277 , p_source_41 IN NUMBER
22278 --Requisition Distribution Type
22279 , p_source_42 IN VARCHAR2
22280 --Requisition Burden Applied to Entity Code
22281 , p_source_43 IN VARCHAR2
22282 --Requisition Burden Applied to First Distribution Identifier
22283 , p_source_44 IN NUMBER
22284 --Requisition Burden Applied to First System Transaction Identifier
22285 , p_source_45 IN NUMBER
22286 --Requisition Burden Applied to Second Distribution Identifier
22287 , p_source_46 IN VARCHAR2
22288 --Backing Requisition Prevent Encumbrance Flag Flipped
22289 , p_source_67 IN VARCHAR2
22290 )
22291 IS
22292
22293 l_component_type VARCHAR2(80);
22294 l_component_code VARCHAR2(30);
22295 l_component_type_code VARCHAR2(1);
22296 l_component_appl_id INTEGER;
22297 l_amb_context_code VARCHAR2(30);
22298 l_entity_code VARCHAR2(30);
22299 l_event_class_code VARCHAR2(30);
22300 l_ae_header_id NUMBER;
22301 l_event_type_code VARCHAR2(30);
22302 l_line_definition_code VARCHAR2(30);
22303 l_line_definition_owner_code VARCHAR2(1);
22304 --
22305 -- adr variables
22306 l_segment VARCHAR2(30);
22307 l_ccid NUMBER;
22308 l_adr_transaction_coa_id NUMBER;
22309 l_adr_accounting_coa_id NUMBER;
22310 l_adr_flexfield_segment_code VARCHAR2(30);
22311 l_adr_flex_value_set_id NUMBER;
22312 l_adr_value_type_code VARCHAR2(30);
22313 l_adr_value_combination_id NUMBER;
22314 l_adr_value_segment_code VARCHAR2(30);
22315
22316 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
22317 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
22318 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
22319 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
22320
22321 -- 4262811 Variables ------------------------------------------------------------------------------------------
22322 l_entered_amt_idx NUMBER;
22323 l_accted_amt_idx NUMBER;
22324 l_acc_rev_flag VARCHAR2(1);
22325 l_accrual_line_num NUMBER;
22326 l_tmp_amt NUMBER;
22327 l_acc_rev_natural_side_code VARCHAR2(1);
22328
22329 l_num_entries NUMBER;
22330 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
22331 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
22332 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
22333 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
22334 l_recog_line_1 NUMBER;
22335 l_recog_line_2 NUMBER;
22336
22337 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
22338 l_bflow_applied_to_amt NUMBER; -- 5132302
22339 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
22340
22341 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
22342
22343 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
22344 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
22345
22346 ---------------------------------------------------------------------------------------------------------------
22347
22348
22349 --
22350 -- bulk performance
22351 --
22352 l_balance_type_code VARCHAR2(1);
22353 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
22354 l_log_module VARCHAR2(240);
22355
22356 --
22357 -- Upgrade strategy
22358 --
22359 l_actual_upg_option VARCHAR2(1);
22360 l_enc_upg_option VARCHAR2(1);
22361
22362 --
22363 BEGIN
22364 --
22365 IF g_log_enabled THEN
22366 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_43';
22367 END IF;
22368 --
22369 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22370
22371 trace
22372 (p_msg => 'BEGIN of AcctLineType_43'
22373 ,p_level => C_LEVEL_PROCEDURE
22374 ,p_module => l_log_module);
22375
22376 END IF;
22377 --
22378 l_component_type := 'AMB_JLT';
22379 l_component_code := 'RELIEVE_BURDEN_REQENC_FORPO';
22380 l_component_type_code := 'S';
22381 l_component_appl_id := 201;
22382 l_amb_context_code := 'DEFAULT';
22383 l_entity_code := 'PURCHASE_ORDER';
22384 l_event_class_code := 'PO_BURDEN';
22385 l_event_type_code := 'PO_BURDEN_ALL';
22386 l_line_definition_owner_code := 'S';
22387 l_line_definition_code := 'PO_BURDEN_ENC_ALL';
22388 --
22389 l_balance_type_code := 'E';
22390 l_segment := NULL;
22391 l_ccid := NULL;
22392 l_adr_transaction_coa_id := NULL;
22393 l_adr_accounting_coa_id := NULL;
22394 l_adr_flexfield_segment_code := NULL;
22395 l_adr_flex_value_set_id := NULL;
22396 l_adr_value_type_code := NULL;
22397 l_adr_value_combination_id := NULL;
22398 l_adr_value_segment_code := NULL;
22399
22400 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
22401 l_bflow_class_code := 'REQ_PA_BURDEN_ENC'; -- 4219869 Business Flow
22402 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
22403 l_budgetary_control_flag := 'Y';
22404
22405 l_bflow_applied_to_amt_idx := NULL; -- 5132302
22406 l_bflow_applied_to_amt := NULL; -- 5132302
22407 l_entered_amt_idx := NULL; -- 4262811
22408 l_accted_amt_idx := NULL; -- 4262811
22409 l_acc_rev_flag := NULL; -- 4262811
22410 l_accrual_line_num := NULL; -- 4262811
22411 l_tmp_amt := NULL; -- 4262811
22412 --
22413
22414 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
22415 l_balance_type_code <> 'B' THEN
22416 IF NVL(
22417 xla_ae_sources_pkg.GetSystemSourceChar(
22418 p_source_code => 'XLA_EVENT_TYPE_CODE'
22419 , p_source_type_code => 'Y'
22420 , p_source_application_id => 602
22421 ),'
22422 ') = 'PO_BURDEN_RESERVED' AND
22423 NVL(p_source_13,'
22424 ') = 'B_REQ' AND
22425 NVL(p_source_14,'
22426 ') = 'O' AND
22427 NVL(p_source_9,'
22428 ') = 'REQ' AND
22429 NVL(p_source_15,'
22430 ') = 'D' AND
22431 NVL(p_source_67,'
22432 ') <> 'Y'
22433 THEN
22434
22435 --
22436 XLA_AE_LINES_PKG.SetNewLine;
22437
22438 p_balance_type_code := l_balance_type_code;
22439 -- set the flag so later we will know whether the gain loss line needs to be created
22440
22441 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
22442 p_actual_flag :='A';
22443 END IF;
22444
22445 --
22446 -- bulk performance
22447 --
22448 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
22449 p_header_num => 0); -- 4262811
22450 --
22451 -- set accounting line options
22452 --
22453 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
22454 p_natural_side_code => 'C'
22455 , p_gain_or_loss_flag => 'N'
22456 , p_gl_transfer_mode_code => 'S'
22457 , p_acct_entry_type_code => 'E'
22458 , p_switch_side_flag => 'N'
22459 , p_merge_duplicate_code => 'N'
22460 );
22461 --
22462 l_acc_rev_natural_side_code := 'D'; -- 4262811
22463 --
22464 --
22465 -- set accounting line type info
22466 --
22467 xla_ae_lines_pkg.SetAcctLineType
22468 (p_component_type => l_component_type
22469 ,p_event_type_code => l_event_type_code
22470 ,p_line_definition_owner_code => l_line_definition_owner_code
22471 ,p_line_definition_code => l_line_definition_code
22472 ,p_accounting_line_code => l_component_code
22473 ,p_accounting_line_type_code => l_component_type_code
22474 ,p_accounting_line_appl_id => l_component_appl_id
22475 ,p_amb_context_code => l_amb_context_code
22476 ,p_entity_code => l_entity_code
22477 ,p_event_class_code => l_event_class_code);
22478 --
22479 -- set accounting class
22480 --
22481 xla_ae_lines_pkg.SetAcctClass(
22482 p_accounting_class_code => 'REQ_PA_BURDEN'
22483 , p_ae_header_id => l_ae_header_id
22484 );
22485
22486 --
22487 -- set rounding class
22488 --
22489 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
22490 'REQ_PA_BURDEN';
22491
22492 --
22493 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
22494 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
22495 --
22496 -- bulk performance
22497 --
22498 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
22499
22500 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
22501 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
22502
22503 -- 4955764
22504 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22505 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
22506
22507 -- 4458381 Public Sector Enh
22508
22509 --
22510 -- set accounting attributes for the line type
22511 --
22512 l_entered_amt_idx := 27;
22513 l_accted_amt_idx := 29;
22514 l_bflow_applied_to_amt_idx := NULL; -- 5132302
22515 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
22516 l_rec_acct_attrs.array_char_value(1) := p_source_16;
22517 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
22518 l_rec_acct_attrs.array_num_value(2) := p_source_17;
22519 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
22520 l_rec_acct_attrs.array_char_value(3) := p_source_18;
22521 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
22522 l_rec_acct_attrs.array_char_value(4) := p_source_19;
22523 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
22524 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
22525 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
22526 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
22527 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
22528 l_rec_acct_attrs.array_num_value(7) := p_source_41;
22529 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
22530 l_rec_acct_attrs.array_char_value(8) := p_source_42;
22531 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
22532 l_rec_acct_attrs.array_char_value(9) := p_source_43;
22533 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
22534 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_44);
22535 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
22536 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_45);
22537 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
22538 l_rec_acct_attrs.array_char_value(12) := p_source_46;
22539 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
22540 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_29);
22541 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
22542 l_rec_acct_attrs.array_char_value(14) := p_source_6;
22543 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
22544 l_rec_acct_attrs.array_char_value(15) := p_source_30;
22545 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
22546 l_rec_acct_attrs.array_char_value(16) := p_source_31;
22547 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
22548 l_rec_acct_attrs.array_num_value(17) := p_source_32;
22549 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
22550 l_rec_acct_attrs.array_num_value(18) := p_source_33;
22551 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
22552 l_rec_acct_attrs.array_char_value(19) := p_source_34;
22553 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
22554 l_rec_acct_attrs.array_num_value(20) := p_source_35;
22555 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
22556 l_rec_acct_attrs.array_char_value(21) := p_source_36;
22557 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
22558 l_rec_acct_attrs.array_num_value(22) := p_source_37;
22559 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
22560 l_rec_acct_attrs.array_num_value(23) := p_source_33;
22561 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
22562 l_rec_acct_attrs.array_char_value(24) := p_source_34;
22563 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
22564 l_rec_acct_attrs.array_num_value(25) := p_source_35;
22565 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
22566 l_rec_acct_attrs.array_char_value(26) := p_source_38;
22567 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
22568 l_rec_acct_attrs.array_num_value(27) := p_source_33;
22569 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
22570 l_rec_acct_attrs.array_char_value(28) := p_source_34;
22571 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
22572 l_rec_acct_attrs.array_num_value(29) := p_source_35;
22573 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
22574 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_29);
22575 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
22576 l_rec_acct_attrs.array_char_value(31) := p_source_6;
22577 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
22578 l_rec_acct_attrs.array_char_value(32) := p_source_30;
22579 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
22580 l_rec_acct_attrs.array_num_value(33) := p_source_39;
22581 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
22582 l_rec_acct_attrs.array_num_value(34) := p_source_40;
22583
22584 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
22585 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
22586
22587 ---------------------------------------------------------------------------------------------------------------
22588 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
22589 ---------------------------------------------------------------------------------------------------------------
22590 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
22591
22592 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22593 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22594
22595 IF xla_accounting_cache_pkg.GetValueChar
22596 (p_source_code => 'LEDGER_CATEGORY_CODE'
22597 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
22598 AND l_bflow_method_code = 'PRIOR_ENTRY'
22599 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
22600 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
22601 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
22602 )
22603 THEN
22604 xla_ae_lines_pkg.BflowUpgEntry
22605 (p_business_method_code => l_bflow_method_code
22606 ,p_business_class_code => l_bflow_class_code
22607 ,p_balance_type => l_balance_type_code);
22608 ELSE
22609 NULL;
22610 XLA_AE_LINES_PKG.business_flow_validation(
22611 p_business_method_code => l_bflow_method_code
22612 ,p_business_class_code => l_bflow_class_code
22613 ,p_inherit_description_flag => l_inherit_desc_flag);
22614 END IF;
22615
22616 --
22617 -- call analytical criteria
22618 --
22619 -- Inherited Analytical Criteria for business flow method of Prior Entry.
22620 --
22621 -- call description
22622 --
22623
22624 xla_ae_lines_pkg.SetLineDescription(
22625 p_ae_header_id => l_ae_header_id
22626 ,p_description => Description_2 (
22627 p_application_id => p_application_id
22628 , p_ae_header_id => l_ae_header_id
22629 , p_source_3 => p_source_3
22630 , p_source_4 => p_source_4
22631 , p_source_5 => p_source_5
22632 , p_source_6 => p_source_6
22633 )
22634 );
22635
22636
22637 --
22638 -- call ADRs
22639 -- Bug 4922099
22640 --
22641 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22642 (NVL(l_actual_upg_option, 'N') = 'O') OR
22643 (NVL(l_enc_upg_option, 'N') = 'O')
22644 )
22645 THEN
22646 NULL;
22647 --
22648 --
22649
22650 --
22651 --
22652 END IF;
22653 --
22654 -- Bug 4922099
22655 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
22656 (NVL(l_enc_upg_option, 'N') = 'O')
22657 ) AND
22658 (l_bflow_method_code = 'PRIOR_ENTRY')
22659 )
22660 THEN
22661 IF
22662 --
22663 1 = 1
22664 --
22665 THEN
22666 xla_accounting_err_pkg.build_message
22667 (p_appli_s_name => 'XLA'
22668 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22669 ,p_token_1 => 'LINE_NUMBER'
22670 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
22671 ,p_token_2 => 'LINE_TYPE_NAME'
22672 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
22673 l_component_type
22674 ,l_component_code
22675 ,l_component_type_code
22676 ,l_component_appl_id
22677 ,l_amb_context_code
22678 ,l_entity_code
22679 ,l_event_class_code
22680 )
22681 ,p_token_3 => 'OWNER'
22682 ,p_value_3 => xla_lookups_pkg.get_meaning(
22683 p_lookup_type => 'XLA_OWNER_TYPE'
22684 ,p_lookup_code => l_component_type_code
22685 )
22686 ,p_token_4 => 'PRODUCT_NAME'
22687 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
22688 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
22689 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
22690 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
22691 ,p_ae_header_id => NULL
22692 );
22693
22694 IF (C_LEVEL_ERROR>= g_log_level) THEN
22695 trace
22696 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22697 ,p_level => C_LEVEL_ERROR
22698 ,p_module => l_log_module);
22699 END IF;
22700 END IF;
22701 END IF;
22702 --
22703 --
22704 ------------------------------------------------------------------------------------------------
22705 -- 4219869 Business Flow
22706 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
22707 -- Prior Entry. Currently, the following code is always generated.
22708 ------------------------------------------------------------------------------------------------
22709 -- No ValidateCurrentLine for business flow method of Prior Entry
22710
22711 ------------------------------------------------------------------------------------
22712 -- 4219869 Business Flow
22713 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
22714 ------------------------------------------------------------------------------------
22715 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22716
22717 ----------------------------------------------------------------------------------
22718 -- 4219869 Business Flow
22719 -- Update journal entry status -- Need to generate this within IF <condition>
22720 ----------------------------------------------------------------------------------
22721 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22722 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
22723 ,p_balance_type_code => l_balance_type_code
22724 );
22725
22726 -------------------------------------------------------------------------------------------
22727 -- 4262811 - Generate the Accrual Reversal lines
22728 -------------------------------------------------------------------------------------------
22729 BEGIN
22730 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
22731 (g_array_event(p_event_id).array_value_num('header_index'));
22732 IF l_acc_rev_flag IS NULL THEN
22733 l_acc_rev_flag := 'N';
22734 END IF;
22735 EXCEPTION
22736 WHEN OTHERS THEN
22737 l_acc_rev_flag := 'N';
22738 END;
22739 --
22740 IF (l_acc_rev_flag = 'Y') THEN
22741
22742 -- 4645092 ------------------------------------------------------------------------------
22743 -- To allow MPA report to determine if it should generate report process
22744 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
22745 ------------------------------------------------------------------------------------------
22746
22747 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
22748 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
22749
22750 --
22751 -- Update the line information that should be overwritten
22752 --
22753 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
22754 p_header_num => 1);
22755 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
22756
22757 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
22758
22759 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
22760 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
22761 END IF;
22762
22763 --
22764 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
22765 --
22766 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
22767 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
22768 ELSE
22769 ---------------------------------------------------------------------------------------------------
22770 -- 4262811a Switch Sign
22771 ---------------------------------------------------------------------------------------------------
22772 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
22773 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22774 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22775 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22776 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22777 -- 5132302
22778 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
22779 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22780
22781 END IF;
22782
22783 -- 4955764
22784 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22785 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
22786
22787
22788 XLA_AE_LINES_PKG.ValidateCurrentLine;
22789 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22790
22791 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22792 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
22793 ,p_balance_type_code => l_balance_type_code);
22794
22795 END IF;
22796
22797 -----------------------------------------------------------------------------------------
22798 -- 4262811 Multiperiod Accounting
22799 -----------------------------------------------------------------------------------------
22800 -- No MPA option is assigned.
22801
22802
22803 END IF;
22804 END IF;
22805 --
22806
22807 --
22808 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22809 trace
22810 (p_msg => 'END of AcctLineType_43'
22811 ,p_level => C_LEVEL_PROCEDURE
22812 ,p_module => l_log_module);
22813 END IF;
22814 --
22815 EXCEPTION
22816 WHEN xla_exceptions_pkg.application_exception THEN
22817 RAISE;
22818 WHEN OTHERS THEN
22819 xla_exceptions_pkg.raise_message
22820 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_43');
22821 END AcctLineType_43;
22822 --
22823
22824 ---------------------------------------
22825 --
22826 -- PRIVATE FUNCTION
22827 -- AcctLineType_44
22828 --
22829 ---------------------------------------
22830 PROCEDURE AcctLineType_44 (
22831 p_application_id IN NUMBER
22832 ,p_event_id IN NUMBER
22833 ,p_calculate_acctd_flag IN VARCHAR2
22834 ,p_calculate_g_l_flag IN VARCHAR2
22835 ,p_actual_flag IN OUT VARCHAR2
22836 ,p_balance_type_code OUT VARCHAR2
22837 ,p_gain_or_loss_ref OUT VARCHAR2
22838
22839 --Project Name
22840 , p_source_3 IN VARCHAR2
22841 --Task Name
22842 , p_source_4 IN VARCHAR2
22843 --Project Expenditure Organization Identifier
22844 , p_source_5 IN NUMBER
22845 --Expenditure Type
22846 , p_source_6 IN VARCHAR2
22847 --Document Type
22848 , p_source_9 IN VARCHAR2
22849 --Main Or Backing Code
22850 , p_source_13 IN VARCHAR2
22851 --Burden Record Identifier
22852 , p_source_14 IN VARCHAR2
22853 , p_source_14_meaning IN VARCHAR2
22854 --Burden Amount Display Method
22855 , p_source_15 IN VARCHAR2
22856 --Accounting Reversal Flag
22857 , p_source_16 IN VARCHAR2
22858 --Allocated to Application Identifier
22859 , p_source_17 IN NUMBER
22860 --Allocated to Distribution Type
22861 , p_source_18 IN VARCHAR2
22862 --Allocated to Entity Code
22863 , p_source_19 IN VARCHAR2
22864 --Allocated to First Distribution Identifier
22865 , p_source_20 IN NUMBER
22866 --Allocated to First System Transaction Identifier
22867 , p_source_21 IN NUMBER
22868 --Allocated to Second Distribution Identifier
22869 , p_source_22 IN VARCHAR2
22870 --PO Distribution Identifier
22871 , p_source_29 IN NUMBER
22872 --Line Type Name
22873 , p_source_30 IN VARCHAR2
22874 --Encumbrance Upgrade Credit Accounting Class
22875 , p_source_31 IN VARCHAR2
22876 --Encumbrance Upgrade Credit Account
22877 , p_source_32 IN NUMBER
22878 --Entered Amount
22879 , p_source_33 IN NUMBER
22880 --Currency Code
22881 , p_source_34 IN VARCHAR2
22882 --Accounted Amount
22883 , p_source_35 IN NUMBER
22884 --Encumbrance Upgrade Debit Accounting Class
22885 , p_source_36 IN VARCHAR2
22886 --Encumbrance Upgrade Debit Account
22887 , p_source_37 IN NUMBER
22888 --Use Encumbrances Upgrade Attributes Flag
22889 , p_source_38 IN VARCHAR2
22890 --Encumbrance Upgrade Credit Encumbrance Type
22891 , p_source_39 IN NUMBER
22892 --Encumbrance Upgrade Debit Encumbrance Type
22893 , p_source_40 IN NUMBER
22894 --Requisition Burden Applied to Application Identifier
22895 , p_source_41 IN NUMBER
22896 --Requisition Distribution Type
22897 , p_source_42 IN VARCHAR2
22898 --Requisition Burden Applied to Entity Code
22899 , p_source_43 IN VARCHAR2
22900 --Requisition Burden Applied to First Distribution Identifier
22901 , p_source_44 IN NUMBER
22902 --Requisition Burden Applied to First System Transaction Identifier
22903 , p_source_45 IN NUMBER
22904 --Requisition Burden Applied to Second Distribution Identifier
22905 , p_source_46 IN VARCHAR2
22906 )
22907 IS
22908
22909 l_component_type VARCHAR2(80);
22910 l_component_code VARCHAR2(30);
22911 l_component_type_code VARCHAR2(1);
22912 l_component_appl_id INTEGER;
22913 l_amb_context_code VARCHAR2(30);
22914 l_entity_code VARCHAR2(30);
22915 l_event_class_code VARCHAR2(30);
22916 l_ae_header_id NUMBER;
22917 l_event_type_code VARCHAR2(30);
22918 l_line_definition_code VARCHAR2(30);
22919 l_line_definition_owner_code VARCHAR2(1);
22920 --
22921 -- adr variables
22922 l_segment VARCHAR2(30);
22923 l_ccid NUMBER;
22924 l_adr_transaction_coa_id NUMBER;
22925 l_adr_accounting_coa_id NUMBER;
22926 l_adr_flexfield_segment_code VARCHAR2(30);
22927 l_adr_flex_value_set_id NUMBER;
22928 l_adr_value_type_code VARCHAR2(30);
22929 l_adr_value_combination_id NUMBER;
22930 l_adr_value_segment_code VARCHAR2(30);
22931
22932 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
22933 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
22934 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
22935 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
22936
22937 -- 4262811 Variables ------------------------------------------------------------------------------------------
22938 l_entered_amt_idx NUMBER;
22939 l_accted_amt_idx NUMBER;
22940 l_acc_rev_flag VARCHAR2(1);
22941 l_accrual_line_num NUMBER;
22942 l_tmp_amt NUMBER;
22943 l_acc_rev_natural_side_code VARCHAR2(1);
22944
22945 l_num_entries NUMBER;
22946 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
22947 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
22948 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
22949 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
22950 l_recog_line_1 NUMBER;
22951 l_recog_line_2 NUMBER;
22952
22953 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
22954 l_bflow_applied_to_amt NUMBER; -- 5132302
22955 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
22956
22957 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
22958
22959 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
22960 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
22961
22962 ---------------------------------------------------------------------------------------------------------------
22963
22964
22965 --
22966 -- bulk performance
22967 --
22968 l_balance_type_code VARCHAR2(1);
22969 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
22970 l_log_module VARCHAR2(240);
22971
22972 --
22973 -- Upgrade strategy
22974 --
22975 l_actual_upg_option VARCHAR2(1);
22976 l_enc_upg_option VARCHAR2(1);
22977
22978 --
22979 BEGIN
22980 --
22981 IF g_log_enabled THEN
22982 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_44';
22983 END IF;
22984 --
22985 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22986
22987 trace
22988 (p_msg => 'BEGIN of AcctLineType_44'
22989 ,p_level => C_LEVEL_PROCEDURE
22990 ,p_module => l_log_module);
22991
22992 END IF;
22993 --
22994 l_component_type := 'AMB_JLT';
22995 l_component_code := 'RELIEVE_BURDEN_REQ_ENC_FOR_REL';
22996 l_component_type_code := 'S';
22997 l_component_appl_id := 201;
22998 l_amb_context_code := 'DEFAULT';
22999 l_entity_code := 'RELEASE';
23000 l_event_class_code := 'RELEASE_BURDEN';
23001 l_event_type_code := 'RELEASE_BURDEN_ALL';
23002 l_line_definition_owner_code := 'S';
23003 l_line_definition_code := 'REL_BURDEN_ENC_ALL';
23004 --
23005 l_balance_type_code := 'E';
23006 l_segment := NULL;
23007 l_ccid := NULL;
23008 l_adr_transaction_coa_id := NULL;
23009 l_adr_accounting_coa_id := NULL;
23010 l_adr_flexfield_segment_code := NULL;
23011 l_adr_flex_value_set_id := NULL;
23012 l_adr_value_type_code := NULL;
23013 l_adr_value_combination_id := NULL;
23014 l_adr_value_segment_code := NULL;
23015
23016 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
23017 l_bflow_class_code := 'REQ_PA_BURDEN_ENC'; -- 4219869 Business Flow
23018 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
23019 l_budgetary_control_flag := 'Y';
23020
23021 l_bflow_applied_to_amt_idx := NULL; -- 5132302
23022 l_bflow_applied_to_amt := NULL; -- 5132302
23023 l_entered_amt_idx := NULL; -- 4262811
23024 l_accted_amt_idx := NULL; -- 4262811
23025 l_acc_rev_flag := NULL; -- 4262811
23026 l_accrual_line_num := NULL; -- 4262811
23027 l_tmp_amt := NULL; -- 4262811
23028 --
23029
23030 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
23031 l_balance_type_code <> 'B' THEN
23032 IF NVL(
23033 xla_ae_sources_pkg.GetSystemSourceChar(
23034 p_source_code => 'XLA_EVENT_TYPE_CODE'
23035 , p_source_type_code => 'Y'
23036 , p_source_application_id => 602
23037 ),'
23038 ') = 'REL_BURDEN_RESERVED' AND
23039 NVL(p_source_13,'
23040 ') = 'B_REQ' AND
23041 NVL(p_source_14,'
23042 ') = 'O' AND
23043 NVL(p_source_9,'
23044 ') = 'REQ' AND
23045 NVL(p_source_15,'
23046 ') = 'D'
23047 THEN
23048
23049 --
23050 XLA_AE_LINES_PKG.SetNewLine;
23051
23052 p_balance_type_code := l_balance_type_code;
23053 -- set the flag so later we will know whether the gain loss line needs to be created
23054
23055 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
23056 p_actual_flag :='A';
23057 END IF;
23058
23059 --
23060 -- bulk performance
23061 --
23062 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
23063 p_header_num => 0); -- 4262811
23064 --
23065 -- set accounting line options
23066 --
23067 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
23068 p_natural_side_code => 'C'
23069 , p_gain_or_loss_flag => 'N'
23070 , p_gl_transfer_mode_code => 'S'
23071 , p_acct_entry_type_code => 'E'
23072 , p_switch_side_flag => 'N'
23073 , p_merge_duplicate_code => 'N'
23074 );
23075 --
23076 l_acc_rev_natural_side_code := 'D'; -- 4262811
23077 --
23078 --
23079 -- set accounting line type info
23080 --
23081 xla_ae_lines_pkg.SetAcctLineType
23082 (p_component_type => l_component_type
23083 ,p_event_type_code => l_event_type_code
23084 ,p_line_definition_owner_code => l_line_definition_owner_code
23085 ,p_line_definition_code => l_line_definition_code
23086 ,p_accounting_line_code => l_component_code
23087 ,p_accounting_line_type_code => l_component_type_code
23088 ,p_accounting_line_appl_id => l_component_appl_id
23089 ,p_amb_context_code => l_amb_context_code
23090 ,p_entity_code => l_entity_code
23091 ,p_event_class_code => l_event_class_code);
23092 --
23093 -- set accounting class
23094 --
23095 xla_ae_lines_pkg.SetAcctClass(
23096 p_accounting_class_code => 'REQ_PA_BURDEN'
23097 , p_ae_header_id => l_ae_header_id
23098 );
23099
23100 --
23101 -- set rounding class
23102 --
23103 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
23104 'REQ_PA_BURDEN';
23105
23106 --
23107 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
23108 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
23109 --
23110 -- bulk performance
23111 --
23112 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
23113
23114 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
23115 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
23116
23117 -- 4955764
23118 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23119 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
23120
23121 -- 4458381 Public Sector Enh
23122
23123 --
23124 -- set accounting attributes for the line type
23125 --
23126 l_entered_amt_idx := 28;
23127 l_accted_amt_idx := 30;
23128 l_bflow_applied_to_amt_idx := NULL; -- 5132302
23129 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
23130 l_rec_acct_attrs.array_char_value(1) := p_source_16;
23131 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
23132 l_rec_acct_attrs.array_num_value(2) := p_source_17;
23133 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
23134 l_rec_acct_attrs.array_char_value(3) := p_source_18;
23135 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
23136 l_rec_acct_attrs.array_char_value(4) := p_source_19;
23137 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
23138 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
23139 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
23140 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
23141 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
23142 l_rec_acct_attrs.array_char_value(7) := p_source_22;
23143 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
23144 l_rec_acct_attrs.array_num_value(8) := p_source_41;
23145 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
23146 l_rec_acct_attrs.array_char_value(9) := p_source_42;
23147 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
23148 l_rec_acct_attrs.array_char_value(10) := p_source_43;
23149 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
23150 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_44);
23151 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
23152 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_45);
23153 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
23154 l_rec_acct_attrs.array_char_value(13) := p_source_46;
23155 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
23156 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_29);
23157 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
23158 l_rec_acct_attrs.array_char_value(15) := p_source_6;
23159 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
23160 l_rec_acct_attrs.array_char_value(16) := p_source_30;
23161 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
23162 l_rec_acct_attrs.array_char_value(17) := p_source_31;
23163 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
23164 l_rec_acct_attrs.array_num_value(18) := p_source_32;
23165 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
23166 l_rec_acct_attrs.array_num_value(19) := p_source_33;
23167 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
23168 l_rec_acct_attrs.array_char_value(20) := p_source_34;
23169 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
23170 l_rec_acct_attrs.array_num_value(21) := p_source_35;
23171 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
23172 l_rec_acct_attrs.array_char_value(22) := p_source_36;
23173 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
23174 l_rec_acct_attrs.array_num_value(23) := p_source_37;
23175 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
23176 l_rec_acct_attrs.array_num_value(24) := p_source_33;
23177 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
23178 l_rec_acct_attrs.array_char_value(25) := p_source_34;
23179 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
23180 l_rec_acct_attrs.array_num_value(26) := p_source_35;
23181 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
23182 l_rec_acct_attrs.array_char_value(27) := p_source_38;
23183 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
23184 l_rec_acct_attrs.array_num_value(28) := p_source_33;
23185 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
23186 l_rec_acct_attrs.array_char_value(29) := p_source_34;
23187 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
23188 l_rec_acct_attrs.array_num_value(30) := p_source_35;
23189 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
23190 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_29);
23191 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
23192 l_rec_acct_attrs.array_char_value(32) := p_source_6;
23193 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
23194 l_rec_acct_attrs.array_char_value(33) := p_source_30;
23195 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
23196 l_rec_acct_attrs.array_num_value(34) := p_source_39;
23197 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
23198 l_rec_acct_attrs.array_num_value(35) := p_source_40;
23199
23200 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
23201 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
23202
23203 ---------------------------------------------------------------------------------------------------------------
23204 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
23205 ---------------------------------------------------------------------------------------------------------------
23206 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
23207
23208 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23209 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23210
23211 IF xla_accounting_cache_pkg.GetValueChar
23212 (p_source_code => 'LEDGER_CATEGORY_CODE'
23213 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
23214 AND l_bflow_method_code = 'PRIOR_ENTRY'
23215 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
23216 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
23217 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
23218 )
23219 THEN
23220 xla_ae_lines_pkg.BflowUpgEntry
23221 (p_business_method_code => l_bflow_method_code
23222 ,p_business_class_code => l_bflow_class_code
23223 ,p_balance_type => l_balance_type_code);
23224 ELSE
23225 NULL;
23226 XLA_AE_LINES_PKG.business_flow_validation(
23227 p_business_method_code => l_bflow_method_code
23228 ,p_business_class_code => l_bflow_class_code
23229 ,p_inherit_description_flag => l_inherit_desc_flag);
23230 END IF;
23231
23232 --
23233 -- call analytical criteria
23234 --
23235 -- Inherited Analytical Criteria for business flow method of Prior Entry.
23236 --
23237 -- call description
23238 --
23239
23240 xla_ae_lines_pkg.SetLineDescription(
23241 p_ae_header_id => l_ae_header_id
23242 ,p_description => Description_2 (
23243 p_application_id => p_application_id
23244 , p_ae_header_id => l_ae_header_id
23245 , p_source_3 => p_source_3
23246 , p_source_4 => p_source_4
23247 , p_source_5 => p_source_5
23248 , p_source_6 => p_source_6
23249 )
23250 );
23251
23252
23253 --
23254 -- call ADRs
23255 -- Bug 4922099
23256 --
23257 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23258 (NVL(l_actual_upg_option, 'N') = 'O') OR
23259 (NVL(l_enc_upg_option, 'N') = 'O')
23260 )
23261 THEN
23262 NULL;
23263 --
23264 --
23265
23266 --
23267 --
23268 END IF;
23269 --
23270 -- Bug 4922099
23271 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
23272 (NVL(l_enc_upg_option, 'N') = 'O')
23273 ) AND
23274 (l_bflow_method_code = 'PRIOR_ENTRY')
23275 )
23276 THEN
23277 IF
23278 --
23279 1 = 1
23280 --
23281 THEN
23282 xla_accounting_err_pkg.build_message
23283 (p_appli_s_name => 'XLA'
23284 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23285 ,p_token_1 => 'LINE_NUMBER'
23286 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
23287 ,p_token_2 => 'LINE_TYPE_NAME'
23288 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
23289 l_component_type
23290 ,l_component_code
23291 ,l_component_type_code
23292 ,l_component_appl_id
23293 ,l_amb_context_code
23294 ,l_entity_code
23295 ,l_event_class_code
23296 )
23297 ,p_token_3 => 'OWNER'
23298 ,p_value_3 => xla_lookups_pkg.get_meaning(
23299 p_lookup_type => 'XLA_OWNER_TYPE'
23300 ,p_lookup_code => l_component_type_code
23301 )
23302 ,p_token_4 => 'PRODUCT_NAME'
23303 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
23304 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
23305 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
23306 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
23307 ,p_ae_header_id => NULL
23308 );
23309
23310 IF (C_LEVEL_ERROR>= g_log_level) THEN
23311 trace
23312 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23313 ,p_level => C_LEVEL_ERROR
23314 ,p_module => l_log_module);
23315 END IF;
23316 END IF;
23317 END IF;
23318 --
23319 --
23320 ------------------------------------------------------------------------------------------------
23321 -- 4219869 Business Flow
23322 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
23323 -- Prior Entry. Currently, the following code is always generated.
23324 ------------------------------------------------------------------------------------------------
23325 -- No ValidateCurrentLine for business flow method of Prior Entry
23326
23327 ------------------------------------------------------------------------------------
23328 -- 4219869 Business Flow
23329 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
23330 ------------------------------------------------------------------------------------
23331 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23332
23333 ----------------------------------------------------------------------------------
23334 -- 4219869 Business Flow
23335 -- Update journal entry status -- Need to generate this within IF <condition>
23336 ----------------------------------------------------------------------------------
23337 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23338 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
23339 ,p_balance_type_code => l_balance_type_code
23340 );
23341
23342 -------------------------------------------------------------------------------------------
23343 -- 4262811 - Generate the Accrual Reversal lines
23344 -------------------------------------------------------------------------------------------
23345 BEGIN
23346 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
23347 (g_array_event(p_event_id).array_value_num('header_index'));
23348 IF l_acc_rev_flag IS NULL THEN
23349 l_acc_rev_flag := 'N';
23350 END IF;
23351 EXCEPTION
23352 WHEN OTHERS THEN
23353 l_acc_rev_flag := 'N';
23354 END;
23355 --
23356 IF (l_acc_rev_flag = 'Y') THEN
23357
23358 -- 4645092 ------------------------------------------------------------------------------
23359 -- To allow MPA report to determine if it should generate report process
23360 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
23361 ------------------------------------------------------------------------------------------
23362
23363 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
23364 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
23365
23366 --
23367 -- Update the line information that should be overwritten
23368 --
23369 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
23370 p_header_num => 1);
23371 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
23372
23373 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
23374
23375 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
23376 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
23377 END IF;
23378
23379 --
23380 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
23381 --
23382 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
23383 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
23384 ELSE
23385 ---------------------------------------------------------------------------------------------------
23386 -- 4262811a Switch Sign
23387 ---------------------------------------------------------------------------------------------------
23388 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
23389 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23390 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23391 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23392 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23393 -- 5132302
23394 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
23395 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23396
23397 END IF;
23398
23399 -- 4955764
23400 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23401 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
23402
23403
23404 XLA_AE_LINES_PKG.ValidateCurrentLine;
23405 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23406
23407 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23408 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
23409 ,p_balance_type_code => l_balance_type_code);
23410
23411 END IF;
23412
23413 -----------------------------------------------------------------------------------------
23414 -- 4262811 Multiperiod Accounting
23415 -----------------------------------------------------------------------------------------
23416 -- No MPA option is assigned.
23417
23418
23419 END IF;
23420 END IF;
23421 --
23422
23423 --
23424 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23425 trace
23426 (p_msg => 'END of AcctLineType_44'
23427 ,p_level => C_LEVEL_PROCEDURE
23428 ,p_module => l_log_module);
23429 END IF;
23430 --
23431 EXCEPTION
23432 WHEN xla_exceptions_pkg.application_exception THEN
23433 RAISE;
23434 WHEN OTHERS THEN
23435 xla_exceptions_pkg.raise_message
23436 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_44');
23437 END AcctLineType_44;
23438 --
23439
23440 ---------------------------------------
23441 --
23442 -- PRIVATE FUNCTION
23443 -- AcctLineType_45
23444 --
23445 ---------------------------------------
23446 PROCEDURE AcctLineType_45 (
23447 p_application_id IN NUMBER
23448 ,p_event_id IN NUMBER
23449 ,p_calculate_acctd_flag IN VARCHAR2
23450 ,p_calculate_g_l_flag IN VARCHAR2
23451 ,p_actual_flag IN OUT VARCHAR2
23452 ,p_balance_type_code OUT VARCHAR2
23453 ,p_gain_or_loss_ref OUT VARCHAR2
23454
23455 --Budget Account
23456 , p_source_11 IN NUMBER
23457 --Main Or Backing Code
23458 , p_source_13 IN VARCHAR2
23459 --Accounting Reversal Flag
23460 , p_source_16 IN VARCHAR2
23461 --PO Distribution Identifier
23462 , p_source_29 IN NUMBER
23463 --Entered Amount
23464 , p_source_33 IN NUMBER
23465 --Currency Code
23466 , p_source_34 IN VARCHAR2
23467 --Accounted Amount
23468 , p_source_35 IN NUMBER
23469 --Allocated to Main Document Distribution Type
23470 , p_source_49 IN VARCHAR2
23471 --Allocated to Main Document Distribution Identifier
23472 , p_source_51 IN NUMBER
23473 --Applied To Application Identifier
23474 , p_source_53 IN NUMBER
23475 --Applied To Distribution Link Type
23476 , p_source_54 IN VARCHAR2
23477 --Applied To Entity Code
23478 , p_source_55 IN VARCHAR2
23479 --Applied To Distribution Identifier 1
23480 , p_source_56 IN NUMBER
23481 --Applied To Header Identifier 1
23482 , p_source_57 IN NUMBER
23483 --Distribution Link Type
23484 , p_source_58 IN VARCHAR2
23485 --PO Encumbrance Upgrade Option
23486 , p_source_59 IN VARCHAR2
23487 --JFMIP Reference
23488 , p_source_60 IN VARCHAR2
23489 --PO Upgrade Encumbrance Type Identifier
23490 , p_source_61 IN NUMBER
23491 --PO Release Identifier
23492 , p_source_66 IN NUMBER
23493 )
23494 IS
23495
23496 l_component_type VARCHAR2(80);
23497 l_component_code VARCHAR2(30);
23498 l_component_type_code VARCHAR2(1);
23499 l_component_appl_id INTEGER;
23500 l_amb_context_code VARCHAR2(30);
23501 l_entity_code VARCHAR2(30);
23502 l_event_class_code VARCHAR2(30);
23503 l_ae_header_id NUMBER;
23504 l_event_type_code VARCHAR2(30);
23505 l_line_definition_code VARCHAR2(30);
23506 l_line_definition_owner_code VARCHAR2(1);
23507 --
23508 -- adr variables
23509 l_segment VARCHAR2(30);
23510 l_ccid NUMBER;
23511 l_adr_transaction_coa_id NUMBER;
23512 l_adr_accounting_coa_id NUMBER;
23513 l_adr_flexfield_segment_code VARCHAR2(30);
23514 l_adr_flex_value_set_id NUMBER;
23515 l_adr_value_type_code VARCHAR2(30);
23516 l_adr_value_combination_id NUMBER;
23517 l_adr_value_segment_code VARCHAR2(30);
23518
23519 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
23520 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
23521 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
23522 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
23523
23524 -- 4262811 Variables ------------------------------------------------------------------------------------------
23525 l_entered_amt_idx NUMBER;
23526 l_accted_amt_idx NUMBER;
23527 l_acc_rev_flag VARCHAR2(1);
23528 l_accrual_line_num NUMBER;
23529 l_tmp_amt NUMBER;
23530 l_acc_rev_natural_side_code VARCHAR2(1);
23531
23532 l_num_entries NUMBER;
23533 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
23534 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
23535 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
23536 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
23537 l_recog_line_1 NUMBER;
23538 l_recog_line_2 NUMBER;
23539
23540 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
23541 l_bflow_applied_to_amt NUMBER; -- 5132302
23542 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
23543
23544 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
23545
23546 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
23547 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
23548
23549 ---------------------------------------------------------------------------------------------------------------
23550
23551
23552 --
23553 -- bulk performance
23554 --
23555 l_balance_type_code VARCHAR2(1);
23556 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
23557 l_log_module VARCHAR2(240);
23558
23559 --
23560 -- Upgrade strategy
23561 --
23562 l_actual_upg_option VARCHAR2(1);
23563 l_enc_upg_option VARCHAR2(1);
23564
23565 --
23566 BEGIN
23567 --
23568 IF g_log_enabled THEN
23569 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_45';
23570 END IF;
23571 --
23572 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23573
23574 trace
23575 (p_msg => 'BEGIN of AcctLineType_45'
23576 ,p_level => C_LEVEL_PROCEDURE
23577 ,p_module => l_log_module);
23578
23579 END IF;
23580 --
23581 l_component_type := 'AMB_JLT';
23582 l_component_code := 'RELIEVE_PO_PA_ENC_FROM_RELEASE';
23583 l_component_type_code := 'S';
23584 l_component_appl_id := 201;
23585 l_amb_context_code := 'DEFAULT';
23586 l_entity_code := 'RELEASE';
23587 l_event_class_code := 'RELEASE';
23588 l_event_type_code := 'RELEASE_ALL';
23589 l_line_definition_owner_code := 'S';
23590 l_line_definition_code := 'RELEASE_ENC_ALL';
23591 --
23592 l_balance_type_code := 'E';
23593 l_segment := NULL;
23594 l_ccid := NULL;
23595 l_adr_transaction_coa_id := NULL;
23596 l_adr_accounting_coa_id := NULL;
23597 l_adr_flexfield_segment_code := NULL;
23598 l_adr_flex_value_set_id := NULL;
23599 l_adr_value_type_code := NULL;
23600 l_adr_value_combination_id := NULL;
23601 l_adr_value_segment_code := NULL;
23602
23603 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
23604 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
23605 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
23606 l_budgetary_control_flag := 'Y';
23607
23608 l_bflow_applied_to_amt_idx := NULL; -- 5132302
23609 l_bflow_applied_to_amt := NULL; -- 5132302
23610 l_entered_amt_idx := NULL; -- 4262811
23611 l_accted_amt_idx := NULL; -- 4262811
23612 l_acc_rev_flag := NULL; -- 4262811
23613 l_accrual_line_num := NULL; -- 4262811
23614 l_tmp_amt := NULL; -- 4262811
23615 --
23616
23617 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
23618 l_balance_type_code <> 'B' THEN
23619 IF NVL(
23620 xla_ae_sources_pkg.GetSystemSourceChar(
23621 p_source_code => 'XLA_EVENT_TYPE_CODE'
23622 , p_source_type_code => 'Y'
23623 , p_source_application_id => 602
23624 ),'
23625 ') = 'RELEASE_RESERVED' AND
23626 (NVL(p_source_13,'
23627 ') = 'B_PO' OR
23628 NVL(p_source_13,'
23629 ') = 'B_PA')
23630 THEN
23631
23632 --
23633 XLA_AE_LINES_PKG.SetNewLine;
23634
23635 p_balance_type_code := l_balance_type_code;
23636 -- set the flag so later we will know whether the gain loss line needs to be created
23637
23638 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
23639 p_actual_flag :='A';
23640 END IF;
23641
23642 --
23643 -- bulk performance
23644 --
23645 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
23646 p_header_num => 0); -- 4262811
23647 --
23648 -- set accounting line options
23649 --
23650 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
23651 p_natural_side_code => 'C'
23652 , p_gain_or_loss_flag => 'N'
23653 , p_gl_transfer_mode_code => 'S'
23654 , p_acct_entry_type_code => 'E'
23655 , p_switch_side_flag => 'N'
23656 , p_merge_duplicate_code => 'N'
23657 );
23658 --
23659 l_acc_rev_natural_side_code := 'D'; -- 4262811
23660 --
23661 --
23662 -- set accounting line type info
23663 --
23664 xla_ae_lines_pkg.SetAcctLineType
23665 (p_component_type => l_component_type
23666 ,p_event_type_code => l_event_type_code
23667 ,p_line_definition_owner_code => l_line_definition_owner_code
23668 ,p_line_definition_code => l_line_definition_code
23669 ,p_accounting_line_code => l_component_code
23670 ,p_accounting_line_type_code => l_component_type_code
23671 ,p_accounting_line_appl_id => l_component_appl_id
23672 ,p_amb_context_code => l_amb_context_code
23673 ,p_entity_code => l_entity_code
23674 ,p_event_class_code => l_event_class_code);
23675 --
23676 -- set accounting class
23677 --
23678 xla_ae_lines_pkg.SetAcctClass(
23679 p_accounting_class_code => 'PURCHASE_ORDER'
23680 , p_ae_header_id => l_ae_header_id
23681 );
23682
23683 --
23684 -- set rounding class
23685 --
23686 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
23687 'PURCHASE_ORDER';
23688
23689 --
23690 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
23691 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
23692 --
23693 -- bulk performance
23694 --
23695 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
23696
23697 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
23698 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
23699
23700 -- 4955764
23701 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23702 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
23703
23704 -- 4458381 Public Sector Enh
23705
23706 --
23707 -- set accounting attributes for the line type
23708 --
23709 l_entered_amt_idx := 23;
23710 l_accted_amt_idx := 25;
23711 l_bflow_applied_to_amt_idx := NULL; -- 5132302
23712 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
23713 l_rec_acct_attrs.array_char_value(1) := p_source_16;
23714 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
23715 l_rec_acct_attrs.array_num_value(2) :=
23716 xla_ae_sources_pkg.GetSystemSourceNum(
23717 p_source_code => 'XLA_EVENT_APPL_ID'
23718 , p_source_type_code => 'Y'
23719 , p_source_application_id => 602
23720 );
23721 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
23722 l_rec_acct_attrs.array_char_value(3) := p_source_49;
23723 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
23724 l_rec_acct_attrs.array_char_value(4) :=
23725 xla_ae_sources_pkg.GetSystemSourceChar(
23726 p_source_code => 'XLA_ENTITY_CODE'
23727 , p_source_type_code => 'Y'
23728 , p_source_application_id => 602
23729 );
23730 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
23731 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_51);
23732 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
23733 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_66);
23734 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
23735 l_rec_acct_attrs.array_num_value(7) := p_source_53;
23736 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
23737 l_rec_acct_attrs.array_char_value(8) := p_source_54;
23738 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
23739 l_rec_acct_attrs.array_char_value(9) := p_source_55;
23740 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
23741 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_56);
23742 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
23743 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_57);
23744 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
23745 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_29);
23746 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
23747 l_rec_acct_attrs.array_char_value(13) := p_source_58;
23748 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
23749 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_11);
23750 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
23751 l_rec_acct_attrs.array_num_value(15) := p_source_33;
23752 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
23753 l_rec_acct_attrs.array_char_value(16) := p_source_34;
23754 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
23755 l_rec_acct_attrs.array_num_value(17) := p_source_35;
23756 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
23757 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_11);
23758 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
23759 l_rec_acct_attrs.array_num_value(19) := p_source_33;
23760 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
23761 l_rec_acct_attrs.array_char_value(20) := p_source_34;
23762 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
23763 l_rec_acct_attrs.array_num_value(21) := p_source_35;
23764 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
23765 l_rec_acct_attrs.array_char_value(22) := p_source_59;
23766 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
23767 l_rec_acct_attrs.array_num_value(23) := p_source_33;
23768 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
23769 l_rec_acct_attrs.array_char_value(24) := p_source_34;
23770 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
23771 l_rec_acct_attrs.array_num_value(25) := p_source_35;
23772 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
23773 l_rec_acct_attrs.array_char_value(26) := p_source_60;
23774 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
23775 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_56);
23776 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
23777 l_rec_acct_attrs.array_char_value(28) := p_source_54;
23778 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
23779 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_66);
23780 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
23781 l_rec_acct_attrs.array_num_value(30) := p_source_61;
23782 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
23783 l_rec_acct_attrs.array_num_value(31) := p_source_61;
23784
23785 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
23786 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
23787
23788 ---------------------------------------------------------------------------------------------------------------
23789 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
23790 ---------------------------------------------------------------------------------------------------------------
23791 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
23792
23793 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23794 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23795
23796 IF xla_accounting_cache_pkg.GetValueChar
23797 (p_source_code => 'LEDGER_CATEGORY_CODE'
23798 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
23799 AND l_bflow_method_code = 'PRIOR_ENTRY'
23800 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
23801 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
23802 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
23803 )
23804 THEN
23805 xla_ae_lines_pkg.BflowUpgEntry
23806 (p_business_method_code => l_bflow_method_code
23807 ,p_business_class_code => l_bflow_class_code
23808 ,p_balance_type => l_balance_type_code);
23809 ELSE
23810 NULL;
23811 XLA_AE_LINES_PKG.business_flow_validation(
23812 p_business_method_code => l_bflow_method_code
23813 ,p_business_class_code => l_bflow_class_code
23814 ,p_inherit_description_flag => l_inherit_desc_flag);
23815 END IF;
23816
23817 --
23818 -- call analytical criteria
23819 --
23820 -- Inherited Analytical Criteria for business flow method of Prior Entry.
23821 --
23822 -- call description
23823 --
23824 -- No description or it is inherited.
23825 --
23826 -- call ADRs
23827 -- Bug 4922099
23828 --
23829 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23830 (NVL(l_actual_upg_option, 'N') = 'O') OR
23831 (NVL(l_enc_upg_option, 'N') = 'O')
23832 )
23833 THEN
23834 NULL;
23835 --
23836 --
23837
23838 --
23839 --
23840 END IF;
23841 --
23842 -- Bug 4922099
23843 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
23844 (NVL(l_enc_upg_option, 'N') = 'O')
23845 ) AND
23846 (l_bflow_method_code = 'PRIOR_ENTRY')
23847 )
23848 THEN
23849 IF
23850 --
23851 1 = 1
23852 --
23853 THEN
23854 xla_accounting_err_pkg.build_message
23855 (p_appli_s_name => 'XLA'
23856 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23857 ,p_token_1 => 'LINE_NUMBER'
23858 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
23859 ,p_token_2 => 'LINE_TYPE_NAME'
23860 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
23861 l_component_type
23862 ,l_component_code
23863 ,l_component_type_code
23864 ,l_component_appl_id
23865 ,l_amb_context_code
23866 ,l_entity_code
23867 ,l_event_class_code
23868 )
23869 ,p_token_3 => 'OWNER'
23870 ,p_value_3 => xla_lookups_pkg.get_meaning(
23871 p_lookup_type => 'XLA_OWNER_TYPE'
23872 ,p_lookup_code => l_component_type_code
23873 )
23874 ,p_token_4 => 'PRODUCT_NAME'
23875 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
23876 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
23877 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
23878 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
23879 ,p_ae_header_id => NULL
23880 );
23881
23882 IF (C_LEVEL_ERROR>= g_log_level) THEN
23883 trace
23884 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23885 ,p_level => C_LEVEL_ERROR
23886 ,p_module => l_log_module);
23887 END IF;
23888 END IF;
23889 END IF;
23890 --
23891 --
23892 ------------------------------------------------------------------------------------------------
23893 -- 4219869 Business Flow
23894 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
23895 -- Prior Entry. Currently, the following code is always generated.
23896 ------------------------------------------------------------------------------------------------
23897 -- No ValidateCurrentLine for business flow method of Prior Entry
23898
23899 ------------------------------------------------------------------------------------
23900 -- 4219869 Business Flow
23901 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
23902 ------------------------------------------------------------------------------------
23903 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23904
23905 ----------------------------------------------------------------------------------
23906 -- 4219869 Business Flow
23907 -- Update journal entry status -- Need to generate this within IF <condition>
23908 ----------------------------------------------------------------------------------
23909 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23910 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
23911 ,p_balance_type_code => l_balance_type_code
23912 );
23913
23914 -------------------------------------------------------------------------------------------
23915 -- 4262811 - Generate the Accrual Reversal lines
23916 -------------------------------------------------------------------------------------------
23917 BEGIN
23918 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
23919 (g_array_event(p_event_id).array_value_num('header_index'));
23920 IF l_acc_rev_flag IS NULL THEN
23921 l_acc_rev_flag := 'N';
23922 END IF;
23923 EXCEPTION
23924 WHEN OTHERS THEN
23925 l_acc_rev_flag := 'N';
23926 END;
23927 --
23928 IF (l_acc_rev_flag = 'Y') THEN
23929
23930 -- 4645092 ------------------------------------------------------------------------------
23931 -- To allow MPA report to determine if it should generate report process
23932 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
23933 ------------------------------------------------------------------------------------------
23934
23935 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
23936 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
23937
23938 --
23939 -- Update the line information that should be overwritten
23940 --
23941 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
23942 p_header_num => 1);
23943 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
23944
23945 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
23946
23947 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
23948 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
23949 END IF;
23950
23951 --
23952 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
23953 --
23954 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
23955 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
23956 ELSE
23957 ---------------------------------------------------------------------------------------------------
23958 -- 4262811a Switch Sign
23959 ---------------------------------------------------------------------------------------------------
23960 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
23961 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23962 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23963 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23964 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23965 -- 5132302
23966 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
23967 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23968
23969 END IF;
23970
23971 -- 4955764
23972 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23973 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
23974
23975
23976 XLA_AE_LINES_PKG.ValidateCurrentLine;
23977 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23978
23979 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23980 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
23981 ,p_balance_type_code => l_balance_type_code);
23982
23983 END IF;
23984
23985 -----------------------------------------------------------------------------------------
23986 -- 4262811 Multiperiod Accounting
23987 -----------------------------------------------------------------------------------------
23988 -- No MPA option is assigned.
23989
23990
23991 END IF;
23992 END IF;
23993 --
23994
23995 --
23996 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23997 trace
23998 (p_msg => 'END of AcctLineType_45'
23999 ,p_level => C_LEVEL_PROCEDURE
24000 ,p_module => l_log_module);
24001 END IF;
24002 --
24003 EXCEPTION
24004 WHEN xla_exceptions_pkg.application_exception THEN
24005 RAISE;
24006 WHEN OTHERS THEN
24007 xla_exceptions_pkg.raise_message
24008 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_45');
24009 END AcctLineType_45;
24010 --
24011
24012 ---------------------------------------
24013 --
24014 -- PRIVATE FUNCTION
24015 -- AcctLineType_46
24016 --
24017 ---------------------------------------
24018 PROCEDURE AcctLineType_46 (
24019 p_application_id IN NUMBER
24020 ,p_event_id IN NUMBER
24021 ,p_calculate_acctd_flag IN VARCHAR2
24022 ,p_calculate_g_l_flag IN VARCHAR2
24023 ,p_actual_flag IN OUT VARCHAR2
24024 ,p_balance_type_code OUT VARCHAR2
24025 ,p_gain_or_loss_ref OUT VARCHAR2
24026
24027 --Project Name
24028 , p_source_3 IN VARCHAR2
24029 --Task Name
24030 , p_source_4 IN VARCHAR2
24031 --Project Expenditure Organization Identifier
24032 , p_source_5 IN NUMBER
24033 --Expenditure Type
24034 , p_source_6 IN VARCHAR2
24035 --Main Or Backing Code
24036 , p_source_13 IN VARCHAR2
24037 --Accounting Reversal Flag
24038 , p_source_16 IN VARCHAR2
24039 --Allocated to Application Identifier
24040 , p_source_17 IN NUMBER
24041 --Allocated to Distribution Type
24042 , p_source_18 IN VARCHAR2
24043 --Allocated to Entity Code
24044 , p_source_19 IN VARCHAR2
24045 --Allocated to First Distribution Identifier
24046 , p_source_20 IN NUMBER
24047 --Allocated to First System Transaction Identifier
24048 , p_source_21 IN NUMBER
24049 --Allocated to Second Distribution Identifier
24050 , p_source_22 IN VARCHAR2
24051 --PO Distribution Identifier
24052 , p_source_29 IN NUMBER
24053 --Line Type Name
24054 , p_source_30 IN VARCHAR2
24055 --Encumbrance Upgrade Credit Accounting Class
24056 , p_source_31 IN VARCHAR2
24057 --Encumbrance Upgrade Credit Account
24058 , p_source_32 IN NUMBER
24059 --Entered Amount
24060 , p_source_33 IN NUMBER
24061 --Currency Code
24062 , p_source_34 IN VARCHAR2
24063 --Accounted Amount
24064 , p_source_35 IN NUMBER
24065 --Encumbrance Upgrade Debit Accounting Class
24066 , p_source_36 IN VARCHAR2
24067 --Encumbrance Upgrade Debit Account
24068 , p_source_37 IN NUMBER
24069 --Use Encumbrances Upgrade Attributes Flag
24070 , p_source_38 IN VARCHAR2
24071 --Encumbrance Upgrade Credit Encumbrance Type
24072 , p_source_39 IN NUMBER
24073 --Encumbrance Upgrade Debit Encumbrance Type
24074 , p_source_40 IN NUMBER
24075 --Project Encumbrance Applied to Application Identifier
24076 , p_source_68 IN NUMBER
24077 --Project Encumbrance Applied to Distribution Type
24078 , p_source_69 IN VARCHAR2
24079 --Project Encumbrance Applied to Entity Code
24080 , p_source_70 IN VARCHAR2
24081 --Project Encumbrance Applied to First Distribution Identifier
24082 , p_source_71 IN NUMBER
24083 --Project Encumbrance Applied to First System Transaction Identifier
24084 , p_source_72 IN NUMBER
24085 --Project Encumbrance Applied to Second Distribution Identifier
24086 , p_source_73 IN VARCHAR2
24087 )
24088 IS
24089
24090 l_component_type VARCHAR2(80);
24091 l_component_code VARCHAR2(30);
24092 l_component_type_code VARCHAR2(1);
24093 l_component_appl_id INTEGER;
24094 l_amb_context_code VARCHAR2(30);
24095 l_entity_code VARCHAR2(30);
24096 l_event_class_code VARCHAR2(30);
24097 l_ae_header_id NUMBER;
24098 l_event_type_code VARCHAR2(30);
24099 l_line_definition_code VARCHAR2(30);
24100 l_line_definition_owner_code VARCHAR2(1);
24101 --
24102 -- adr variables
24103 l_segment VARCHAR2(30);
24104 l_ccid NUMBER;
24105 l_adr_transaction_coa_id NUMBER;
24106 l_adr_accounting_coa_id NUMBER;
24107 l_adr_flexfield_segment_code VARCHAR2(30);
24108 l_adr_flex_value_set_id NUMBER;
24109 l_adr_value_type_code VARCHAR2(30);
24110 l_adr_value_combination_id NUMBER;
24111 l_adr_value_segment_code VARCHAR2(30);
24112
24113 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
24114 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
24115 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
24116 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
24117
24118 -- 4262811 Variables ------------------------------------------------------------------------------------------
24119 l_entered_amt_idx NUMBER;
24120 l_accted_amt_idx NUMBER;
24121 l_acc_rev_flag VARCHAR2(1);
24122 l_accrual_line_num NUMBER;
24123 l_tmp_amt NUMBER;
24124 l_acc_rev_natural_side_code VARCHAR2(1);
24125
24126 l_num_entries NUMBER;
24127 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
24128 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
24129 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
24130 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
24131 l_recog_line_1 NUMBER;
24132 l_recog_line_2 NUMBER;
24133
24134 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
24135 l_bflow_applied_to_amt NUMBER; -- 5132302
24136 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
24137
24138 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
24139
24140 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
24141 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
24142
24143 ---------------------------------------------------------------------------------------------------------------
24144
24145
24146 --
24147 -- bulk performance
24148 --
24149 l_balance_type_code VARCHAR2(1);
24150 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
24151 l_log_module VARCHAR2(240);
24152
24153 --
24154 -- Upgrade strategy
24155 --
24156 l_actual_upg_option VARCHAR2(1);
24157 l_enc_upg_option VARCHAR2(1);
24158
24159 --
24160 BEGIN
24161 --
24162 IF g_log_enabled THEN
24163 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_46';
24164 END IF;
24165 --
24166 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24167
24168 trace
24169 (p_msg => 'BEGIN of AcctLineType_46'
24170 ,p_level => C_LEVEL_PROCEDURE
24171 ,p_module => l_log_module);
24172
24173 END IF;
24174 --
24175 l_component_type := 'AMB_JLT';
24176 l_component_code := 'RELIEVE_PROJ_ENC';
24177 l_component_type_code := 'S';
24178 l_component_appl_id := 201;
24179 l_amb_context_code := 'DEFAULT';
24180 l_entity_code := 'RELEASE';
24181 l_event_class_code := 'RELEASE_BURDEN';
24182 l_event_type_code := 'RELEASE_BURDEN_ALL';
24183 l_line_definition_owner_code := 'S';
24184 l_line_definition_code := 'REL_BURDEN_ENC_ALL';
24185 --
24186 l_balance_type_code := 'E';
24187 l_segment := NULL;
24188 l_ccid := NULL;
24189 l_adr_transaction_coa_id := NULL;
24190 l_adr_accounting_coa_id := NULL;
24191 l_adr_flexfield_segment_code := NULL;
24192 l_adr_flex_value_set_id := NULL;
24193 l_adr_value_type_code := NULL;
24194 l_adr_value_combination_id := NULL;
24195 l_adr_value_segment_code := NULL;
24196
24197 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
24198 l_bflow_class_code := 'PA_BUDGET_ENC'; -- 4219869 Business Flow
24199 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
24200 l_budgetary_control_flag := 'Y';
24201
24202 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24203 l_bflow_applied_to_amt := NULL; -- 5132302
24204 l_entered_amt_idx := NULL; -- 4262811
24205 l_accted_amt_idx := NULL; -- 4262811
24206 l_acc_rev_flag := NULL; -- 4262811
24207 l_accrual_line_num := NULL; -- 4262811
24208 l_tmp_amt := NULL; -- 4262811
24209 --
24210
24211 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
24212 l_balance_type_code <> 'B' THEN
24213 IF ((NVL(
24214 xla_ae_sources_pkg.GetSystemSourceChar(
24215 p_source_code => 'XLA_EVENT_TYPE_CODE'
24216 , p_source_type_code => 'Y'
24217 , p_source_application_id => 602
24218 ),'
24219 ') = 'REL_BURDEN_CANCELLED' OR
24220 NVL(
24221 xla_ae_sources_pkg.GetSystemSourceChar(
24222 p_source_code => 'XLA_EVENT_TYPE_CODE'
24223 , p_source_type_code => 'Y'
24224 , p_source_application_id => 602
24225 ),'
24226 ') = 'REL_BURDEN_CR_MEMO_CANCELLED' OR
24227 NVL(
24228 xla_ae_sources_pkg.GetSystemSourceChar(
24229 p_source_code => 'XLA_EVENT_TYPE_CODE'
24230 , p_source_type_code => 'Y'
24231 , p_source_application_id => 602
24232 ),'
24233 ') = 'REL_BURDEN_RESERVED' OR
24234 NVL(
24235 xla_ae_sources_pkg.GetSystemSourceChar(
24236 p_source_code => 'XLA_EVENT_TYPE_CODE'
24237 , p_source_type_code => 'Y'
24238 , p_source_application_id => 602
24239 ),'
24240 ') = 'REL_BURDEN_REOPEN_FINAL_CLOSED') AND
24241 NVL(p_source_13,'
24242 ') = 'M'
24243 ) OR ((NVL(
24244 xla_ae_sources_pkg.GetSystemSourceChar(
24245 p_source_code => 'XLA_EVENT_TYPE_CODE'
24246 , p_source_type_code => 'Y'
24247 , p_source_application_id => 602
24248 ),'
24249 ') = 'REL_BURDEN_UNRESERVED' OR
24250 NVL(
24251 xla_ae_sources_pkg.GetSystemSourceChar(
24252 p_source_code => 'XLA_EVENT_TYPE_CODE'
24253 , p_source_type_code => 'Y'
24254 , p_source_application_id => 602
24255 ),'
24256 ') = 'REL_BURDEN_INV_CANCELLED' OR
24257 NVL(
24258 xla_ae_sources_pkg.GetSystemSourceChar(
24259 p_source_code => 'XLA_EVENT_TYPE_CODE'
24260 , p_source_type_code => 'Y'
24261 , p_source_application_id => 602
24262 ),'
24263 ') = 'REL_BURDEN_REJECTED') AND
24264 (NVL(p_source_13,'
24265 ') = 'B_PO' OR
24266 NVL(p_source_13,'
24267 ') = 'B_PA' OR
24268 NVL(p_source_13,'
24269 ') = 'B_REQ')
24270 ) THEN
24271
24272 --
24273 XLA_AE_LINES_PKG.SetNewLine;
24274
24275 p_balance_type_code := l_balance_type_code;
24276 -- set the flag so later we will know whether the gain loss line needs to be created
24277
24278 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
24279 p_actual_flag :='A';
24280 END IF;
24281
24282 --
24283 -- bulk performance
24284 --
24285 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
24286 p_header_num => 0); -- 4262811
24287 --
24288 -- set accounting line options
24289 --
24290 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
24291 p_natural_side_code => 'C'
24292 , p_gain_or_loss_flag => 'N'
24293 , p_gl_transfer_mode_code => 'S'
24294 , p_acct_entry_type_code => 'E'
24295 , p_switch_side_flag => 'N'
24296 , p_merge_duplicate_code => 'N'
24297 );
24298 --
24299 l_acc_rev_natural_side_code := 'D'; -- 4262811
24300 --
24301 --
24302 -- set accounting line type info
24303 --
24304 xla_ae_lines_pkg.SetAcctLineType
24305 (p_component_type => l_component_type
24306 ,p_event_type_code => l_event_type_code
24307 ,p_line_definition_owner_code => l_line_definition_owner_code
24308 ,p_line_definition_code => l_line_definition_code
24309 ,p_accounting_line_code => l_component_code
24310 ,p_accounting_line_type_code => l_component_type_code
24311 ,p_accounting_line_appl_id => l_component_appl_id
24312 ,p_amb_context_code => l_amb_context_code
24313 ,p_entity_code => l_entity_code
24314 ,p_event_class_code => l_event_class_code);
24315 --
24316 -- set accounting class
24317 --
24318 xla_ae_lines_pkg.SetAcctClass(
24319 p_accounting_class_code => 'PA_BUDGET_ENC'
24320 , p_ae_header_id => l_ae_header_id
24321 );
24322
24323 --
24324 -- set rounding class
24325 --
24326 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
24327 'PA_BUDGET_ENC';
24328
24329 --
24330 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
24331 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
24332 --
24333 -- bulk performance
24334 --
24335 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
24336
24337 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
24338 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
24339
24340 -- 4955764
24341 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24342 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
24343
24344 -- 4458381 Public Sector Enh
24345
24346 --
24347 -- set accounting attributes for the line type
24348 --
24349 l_entered_amt_idx := 28;
24350 l_accted_amt_idx := 30;
24351 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24352 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
24353 l_rec_acct_attrs.array_char_value(1) := p_source_16;
24354 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
24355 l_rec_acct_attrs.array_num_value(2) := p_source_17;
24356 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
24357 l_rec_acct_attrs.array_char_value(3) := p_source_18;
24358 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
24359 l_rec_acct_attrs.array_char_value(4) := p_source_19;
24360 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
24361 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
24362 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
24363 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
24364 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
24365 l_rec_acct_attrs.array_char_value(7) := p_source_22;
24366 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
24367 l_rec_acct_attrs.array_num_value(8) := p_source_68;
24368 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
24369 l_rec_acct_attrs.array_char_value(9) := p_source_69;
24370 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
24371 l_rec_acct_attrs.array_char_value(10) := p_source_70;
24372 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
24373 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_71);
24374 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
24375 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_72);
24376 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
24377 l_rec_acct_attrs.array_char_value(13) := p_source_73;
24378 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
24379 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_29);
24380 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
24381 l_rec_acct_attrs.array_char_value(15) := p_source_6;
24382 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
24383 l_rec_acct_attrs.array_char_value(16) := p_source_30;
24384 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
24385 l_rec_acct_attrs.array_char_value(17) := p_source_31;
24386 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
24387 l_rec_acct_attrs.array_num_value(18) := p_source_32;
24388 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
24389 l_rec_acct_attrs.array_num_value(19) := p_source_33;
24390 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
24391 l_rec_acct_attrs.array_char_value(20) := p_source_34;
24392 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
24393 l_rec_acct_attrs.array_num_value(21) := p_source_35;
24394 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
24395 l_rec_acct_attrs.array_char_value(22) := p_source_36;
24396 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
24397 l_rec_acct_attrs.array_num_value(23) := p_source_37;
24398 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
24399 l_rec_acct_attrs.array_num_value(24) := p_source_33;
24400 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
24401 l_rec_acct_attrs.array_char_value(25) := p_source_34;
24402 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
24403 l_rec_acct_attrs.array_num_value(26) := p_source_35;
24404 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
24405 l_rec_acct_attrs.array_char_value(27) := p_source_38;
24406 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
24407 l_rec_acct_attrs.array_num_value(28) := p_source_33;
24408 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
24409 l_rec_acct_attrs.array_char_value(29) := p_source_34;
24410 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
24411 l_rec_acct_attrs.array_num_value(30) := p_source_35;
24412 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
24413 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_29);
24414 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
24415 l_rec_acct_attrs.array_char_value(32) := p_source_6;
24416 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
24417 l_rec_acct_attrs.array_char_value(33) := p_source_30;
24418 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
24419 l_rec_acct_attrs.array_num_value(34) := p_source_39;
24420 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
24421 l_rec_acct_attrs.array_num_value(35) := p_source_40;
24422
24423 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24424 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24425
24426 ---------------------------------------------------------------------------------------------------------------
24427 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24428 ---------------------------------------------------------------------------------------------------------------
24429 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24430
24431 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24432 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24433
24434 IF xla_accounting_cache_pkg.GetValueChar
24435 (p_source_code => 'LEDGER_CATEGORY_CODE'
24436 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24437 AND l_bflow_method_code = 'PRIOR_ENTRY'
24438 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24439 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24440 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24441 )
24442 THEN
24443 xla_ae_lines_pkg.BflowUpgEntry
24444 (p_business_method_code => l_bflow_method_code
24445 ,p_business_class_code => l_bflow_class_code
24446 ,p_balance_type => l_balance_type_code);
24447 ELSE
24448 NULL;
24449 XLA_AE_LINES_PKG.business_flow_validation(
24450 p_business_method_code => l_bflow_method_code
24451 ,p_business_class_code => l_bflow_class_code
24452 ,p_inherit_description_flag => l_inherit_desc_flag);
24453 END IF;
24454
24455 --
24456 -- call analytical criteria
24457 --
24458 -- Inherited Analytical Criteria for business flow method of Prior Entry.
24459 --
24460 -- call description
24461 --
24462
24463 xla_ae_lines_pkg.SetLineDescription(
24464 p_ae_header_id => l_ae_header_id
24465 ,p_description => Description_2 (
24466 p_application_id => p_application_id
24467 , p_ae_header_id => l_ae_header_id
24468 , p_source_3 => p_source_3
24469 , p_source_4 => p_source_4
24470 , p_source_5 => p_source_5
24471 , p_source_6 => p_source_6
24472 )
24473 );
24474
24475
24476 --
24477 -- call ADRs
24478 -- Bug 4922099
24479 --
24480 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24481 (NVL(l_actual_upg_option, 'N') = 'O') OR
24482 (NVL(l_enc_upg_option, 'N') = 'O')
24483 )
24484 THEN
24485 NULL;
24486 --
24487 --
24488
24489 --
24490 --
24491 END IF;
24492 --
24493 -- Bug 4922099
24494 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24495 (NVL(l_enc_upg_option, 'N') = 'O')
24496 ) AND
24497 (l_bflow_method_code = 'PRIOR_ENTRY')
24498 )
24499 THEN
24500 IF
24501 --
24502 1 = 1
24503 --
24504 THEN
24505 xla_accounting_err_pkg.build_message
24506 (p_appli_s_name => 'XLA'
24507 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24508 ,p_token_1 => 'LINE_NUMBER'
24509 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
24510 ,p_token_2 => 'LINE_TYPE_NAME'
24511 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
24512 l_component_type
24513 ,l_component_code
24514 ,l_component_type_code
24515 ,l_component_appl_id
24516 ,l_amb_context_code
24517 ,l_entity_code
24518 ,l_event_class_code
24519 )
24520 ,p_token_3 => 'OWNER'
24521 ,p_value_3 => xla_lookups_pkg.get_meaning(
24522 p_lookup_type => 'XLA_OWNER_TYPE'
24523 ,p_lookup_code => l_component_type_code
24524 )
24525 ,p_token_4 => 'PRODUCT_NAME'
24526 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
24527 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
24528 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
24529 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
24530 ,p_ae_header_id => NULL
24531 );
24532
24533 IF (C_LEVEL_ERROR>= g_log_level) THEN
24534 trace
24535 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24536 ,p_level => C_LEVEL_ERROR
24537 ,p_module => l_log_module);
24538 END IF;
24539 END IF;
24540 END IF;
24541 --
24542 --
24543 ------------------------------------------------------------------------------------------------
24544 -- 4219869 Business Flow
24545 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
24546 -- Prior Entry. Currently, the following code is always generated.
24547 ------------------------------------------------------------------------------------------------
24548 -- No ValidateCurrentLine for business flow method of Prior Entry
24549
24550 ------------------------------------------------------------------------------------
24551 -- 4219869 Business Flow
24552 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
24553 ------------------------------------------------------------------------------------
24554 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24555
24556 ----------------------------------------------------------------------------------
24557 -- 4219869 Business Flow
24558 -- Update journal entry status -- Need to generate this within IF <condition>
24559 ----------------------------------------------------------------------------------
24560 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24561 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
24562 ,p_balance_type_code => l_balance_type_code
24563 );
24564
24565 -------------------------------------------------------------------------------------------
24566 -- 4262811 - Generate the Accrual Reversal lines
24567 -------------------------------------------------------------------------------------------
24568 BEGIN
24569 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
24570 (g_array_event(p_event_id).array_value_num('header_index'));
24571 IF l_acc_rev_flag IS NULL THEN
24572 l_acc_rev_flag := 'N';
24573 END IF;
24574 EXCEPTION
24575 WHEN OTHERS THEN
24576 l_acc_rev_flag := 'N';
24577 END;
24578 --
24579 IF (l_acc_rev_flag = 'Y') THEN
24580
24581 -- 4645092 ------------------------------------------------------------------------------
24582 -- To allow MPA report to determine if it should generate report process
24583 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
24584 ------------------------------------------------------------------------------------------
24585
24586 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
24587 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
24588
24589 --
24590 -- Update the line information that should be overwritten
24591 --
24592 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
24593 p_header_num => 1);
24594 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
24595
24596 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
24597
24598 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
24599 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
24600 END IF;
24601
24602 --
24603 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
24604 --
24605 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
24606 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
24607 ELSE
24608 ---------------------------------------------------------------------------------------------------
24609 -- 4262811a Switch Sign
24610 ---------------------------------------------------------------------------------------------------
24611 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
24612 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24613 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24614 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24615 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24616 -- 5132302
24617 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
24618 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24619
24620 END IF;
24621
24622 -- 4955764
24623 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24624 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
24625
24626
24627 XLA_AE_LINES_PKG.ValidateCurrentLine;
24628 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24629
24630 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24631 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
24632 ,p_balance_type_code => l_balance_type_code);
24633
24634 END IF;
24635
24636 -----------------------------------------------------------------------------------------
24637 -- 4262811 Multiperiod Accounting
24638 -----------------------------------------------------------------------------------------
24639 -- No MPA option is assigned.
24640
24641
24642 END IF;
24643 END IF;
24644 --
24645
24646 --
24647 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24648 trace
24649 (p_msg => 'END of AcctLineType_46'
24650 ,p_level => C_LEVEL_PROCEDURE
24651 ,p_module => l_log_module);
24652 END IF;
24653 --
24654 EXCEPTION
24655 WHEN xla_exceptions_pkg.application_exception THEN
24656 RAISE;
24657 WHEN OTHERS THEN
24658 xla_exceptions_pkg.raise_message
24659 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_46');
24660 END AcctLineType_46;
24661 --
24662
24663 ---------------------------------------
24664 --
24665 -- PRIVATE FUNCTION
24666 -- AcctLineType_47
24667 --
24668 ---------------------------------------
24669 PROCEDURE AcctLineType_47 (
24670 p_application_id IN NUMBER
24671 ,p_event_id IN NUMBER
24672 ,p_calculate_acctd_flag IN VARCHAR2
24673 ,p_calculate_g_l_flag IN VARCHAR2
24674 ,p_actual_flag IN OUT VARCHAR2
24675 ,p_balance_type_code OUT VARCHAR2
24676 ,p_gain_or_loss_ref OUT VARCHAR2
24677
24678 --Project Name
24679 , p_source_3 IN VARCHAR2
24680 --Task Name
24681 , p_source_4 IN VARCHAR2
24682 --Project Expenditure Organization Identifier
24683 , p_source_5 IN NUMBER
24684 --Expenditure Type
24685 , p_source_6 IN VARCHAR2
24686 --Main Or Backing Code
24687 , p_source_13 IN VARCHAR2
24688 --Accounting Reversal Flag
24689 , p_source_16 IN VARCHAR2
24690 --Allocated to Application Identifier
24691 , p_source_17 IN NUMBER
24692 --Allocated to Distribution Type
24693 , p_source_18 IN VARCHAR2
24694 --Allocated to Entity Code
24695 , p_source_19 IN VARCHAR2
24696 --Allocated to First Distribution Identifier
24697 , p_source_20 IN NUMBER
24698 --Allocated to First System Transaction Identifier
24699 , p_source_21 IN NUMBER
24700 --Allocated to Second Distribution Identifier
24701 , p_source_22 IN VARCHAR2
24702 --Line Type Name
24703 , p_source_30 IN VARCHAR2
24704 --Encumbrance Upgrade Credit Accounting Class
24705 , p_source_31 IN VARCHAR2
24706 --Encumbrance Upgrade Credit Account
24707 , p_source_32 IN NUMBER
24708 --Entered Amount
24709 , p_source_33 IN NUMBER
24710 --Currency Code
24711 , p_source_34 IN VARCHAR2
24712 --Accounted Amount
24713 , p_source_35 IN NUMBER
24714 --Encumbrance Upgrade Debit Accounting Class
24715 , p_source_36 IN VARCHAR2
24716 --Encumbrance Upgrade Debit Account
24717 , p_source_37 IN NUMBER
24718 --Use Encumbrances Upgrade Attributes Flag
24719 , p_source_38 IN VARCHAR2
24720 --Encumbrance Upgrade Credit Encumbrance Type
24721 , p_source_39 IN NUMBER
24722 --Encumbrance Upgrade Debit Encumbrance Type
24723 , p_source_40 IN NUMBER
24724 --Requisition Distribution Identifier
24725 , p_source_47 IN NUMBER
24726 --Project Encumbrance Applied to Application Identifier
24727 , p_source_68 IN NUMBER
24728 --Project Encumbrance Applied to Distribution Type
24729 , p_source_69 IN VARCHAR2
24730 --Project Encumbrance Applied to Entity Code
24731 , p_source_70 IN VARCHAR2
24732 --Project Encumbrance Applied to First Distribution Identifier
24733 , p_source_71 IN NUMBER
24734 --Project Encumbrance Applied to First System Transaction Identifier
24735 , p_source_72 IN NUMBER
24736 --Project Encumbrance Applied to Second Distribution Identifier
24737 , p_source_73 IN VARCHAR2
24738 --Document Distribution Type
24739 , p_source_74 IN VARCHAR2
24740 )
24741 IS
24742
24743 l_component_type VARCHAR2(80);
24744 l_component_code VARCHAR2(30);
24745 l_component_type_code VARCHAR2(1);
24746 l_component_appl_id INTEGER;
24747 l_amb_context_code VARCHAR2(30);
24748 l_entity_code VARCHAR2(30);
24749 l_event_class_code VARCHAR2(30);
24750 l_ae_header_id NUMBER;
24751 l_event_type_code VARCHAR2(30);
24752 l_line_definition_code VARCHAR2(30);
24753 l_line_definition_owner_code VARCHAR2(1);
24754 --
24755 -- adr variables
24756 l_segment VARCHAR2(30);
24757 l_ccid NUMBER;
24758 l_adr_transaction_coa_id NUMBER;
24759 l_adr_accounting_coa_id NUMBER;
24760 l_adr_flexfield_segment_code VARCHAR2(30);
24761 l_adr_flex_value_set_id NUMBER;
24762 l_adr_value_type_code VARCHAR2(30);
24763 l_adr_value_combination_id NUMBER;
24764 l_adr_value_segment_code VARCHAR2(30);
24765
24766 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
24767 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
24768 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
24769 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
24770
24771 -- 4262811 Variables ------------------------------------------------------------------------------------------
24772 l_entered_amt_idx NUMBER;
24773 l_accted_amt_idx NUMBER;
24774 l_acc_rev_flag VARCHAR2(1);
24775 l_accrual_line_num NUMBER;
24776 l_tmp_amt NUMBER;
24777 l_acc_rev_natural_side_code VARCHAR2(1);
24778
24779 l_num_entries NUMBER;
24780 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
24781 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
24782 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
24783 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
24784 l_recog_line_1 NUMBER;
24785 l_recog_line_2 NUMBER;
24786
24787 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
24788 l_bflow_applied_to_amt NUMBER; -- 5132302
24789 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
24790
24791 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
24792
24793 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
24794 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
24795
24796 ---------------------------------------------------------------------------------------------------------------
24797
24798
24799 --
24800 -- bulk performance
24801 --
24802 l_balance_type_code VARCHAR2(1);
24803 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
24804 l_log_module VARCHAR2(240);
24805
24806 --
24807 -- Upgrade strategy
24808 --
24809 l_actual_upg_option VARCHAR2(1);
24810 l_enc_upg_option VARCHAR2(1);
24811
24812 --
24813 BEGIN
24814 --
24815 IF g_log_enabled THEN
24816 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_47';
24817 END IF;
24818 --
24819 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24820
24821 trace
24822 (p_msg => 'BEGIN of AcctLineType_47'
24823 ,p_level => C_LEVEL_PROCEDURE
24824 ,p_module => l_log_module);
24825
24826 END IF;
24827 --
24828 l_component_type := 'AMB_JLT';
24829 l_component_code := 'RELIEVE_PROJ_ENC';
24830 l_component_type_code := 'S';
24831 l_component_appl_id := 201;
24832 l_amb_context_code := 'DEFAULT';
24833 l_entity_code := 'REQUISITION';
24834 l_event_class_code := 'REQUISITION_BURDEN';
24835 l_event_type_code := 'REQUISITION_BURDEN_ALL';
24836 l_line_definition_owner_code := 'S';
24837 l_line_definition_code := 'REQ_BURDEN_ENC_ALL';
24838 --
24839 l_balance_type_code := 'E';
24840 l_segment := NULL;
24841 l_ccid := NULL;
24842 l_adr_transaction_coa_id := NULL;
24843 l_adr_accounting_coa_id := NULL;
24844 l_adr_flexfield_segment_code := NULL;
24845 l_adr_flex_value_set_id := NULL;
24846 l_adr_value_type_code := NULL;
24847 l_adr_value_combination_id := NULL;
24848 l_adr_value_segment_code := NULL;
24849
24850 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
24851 l_bflow_class_code := 'PA_BUDGET_ENC'; -- 4219869 Business Flow
24852 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
24853 l_budgetary_control_flag := 'Y';
24854
24855 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24856 l_bflow_applied_to_amt := NULL; -- 5132302
24857 l_entered_amt_idx := NULL; -- 4262811
24858 l_accted_amt_idx := NULL; -- 4262811
24859 l_acc_rev_flag := NULL; -- 4262811
24860 l_accrual_line_num := NULL; -- 4262811
24861 l_tmp_amt := NULL; -- 4262811
24862 --
24863
24864 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
24865 l_balance_type_code <> 'B' THEN
24866 IF (NVL(
24867 xla_ae_sources_pkg.GetSystemSourceChar(
24868 p_source_code => 'XLA_EVENT_TYPE_CODE'
24869 , p_source_type_code => 'Y'
24870 , p_source_application_id => 602
24871 ),'
24872 ') = 'REQ_BURDEN_RESERVED' OR
24873 NVL(
24874 xla_ae_sources_pkg.GetSystemSourceChar(
24875 p_source_code => 'XLA_EVENT_TYPE_CODE'
24876 , p_source_type_code => 'Y'
24877 , p_source_application_id => 602
24878 ),'
24879 ') = 'REQ_BURDEN_CANCELLED' OR
24880 (NVL(
24881 xla_ae_sources_pkg.GetSystemSourceChar(
24882 p_source_code => 'XLA_EVENT_TYPE_CODE'
24883 , p_source_type_code => 'Y'
24884 , p_source_application_id => 602
24885 ),'
24886 ') = 'REQ_BURDEN_ADJUSTED' AND
24887 NVL(p_source_74,'
24888 ') = 'REQUISITION_ADJUSTED_NEW')
24889 ) AND NVL(p_source_13,'
24890 ') = 'M'
24891 THEN
24892
24893 --
24894 XLA_AE_LINES_PKG.SetNewLine;
24895
24896 p_balance_type_code := l_balance_type_code;
24897 -- set the flag so later we will know whether the gain loss line needs to be created
24898
24899 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
24900 p_actual_flag :='A';
24901 END IF;
24902
24903 --
24904 -- bulk performance
24905 --
24906 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
24907 p_header_num => 0); -- 4262811
24908 --
24909 -- set accounting line options
24910 --
24911 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
24912 p_natural_side_code => 'C'
24913 , p_gain_or_loss_flag => 'N'
24914 , p_gl_transfer_mode_code => 'S'
24915 , p_acct_entry_type_code => 'E'
24916 , p_switch_side_flag => 'N'
24917 , p_merge_duplicate_code => 'N'
24918 );
24919 --
24920 l_acc_rev_natural_side_code := 'D'; -- 4262811
24921 --
24922 --
24923 -- set accounting line type info
24924 --
24925 xla_ae_lines_pkg.SetAcctLineType
24926 (p_component_type => l_component_type
24927 ,p_event_type_code => l_event_type_code
24928 ,p_line_definition_owner_code => l_line_definition_owner_code
24929 ,p_line_definition_code => l_line_definition_code
24930 ,p_accounting_line_code => l_component_code
24931 ,p_accounting_line_type_code => l_component_type_code
24932 ,p_accounting_line_appl_id => l_component_appl_id
24933 ,p_amb_context_code => l_amb_context_code
24934 ,p_entity_code => l_entity_code
24935 ,p_event_class_code => l_event_class_code);
24936 --
24937 -- set accounting class
24938 --
24939 xla_ae_lines_pkg.SetAcctClass(
24940 p_accounting_class_code => 'PA_BUDGET_ENC'
24941 , p_ae_header_id => l_ae_header_id
24942 );
24943
24944 --
24945 -- set rounding class
24946 --
24947 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
24948 'PA_BUDGET_ENC';
24949
24950 --
24951 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
24952 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
24953 --
24954 -- bulk performance
24955 --
24956 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
24957
24958 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
24959 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
24960
24961 -- 4955764
24962 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24963 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
24964
24965 -- 4458381 Public Sector Enh
24966
24967 --
24968 -- set accounting attributes for the line type
24969 --
24970 l_entered_amt_idx := 28;
24971 l_accted_amt_idx := 30;
24972 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24973 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
24974 l_rec_acct_attrs.array_char_value(1) := p_source_16;
24975 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
24976 l_rec_acct_attrs.array_num_value(2) := p_source_17;
24977 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
24978 l_rec_acct_attrs.array_char_value(3) := p_source_18;
24979 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
24980 l_rec_acct_attrs.array_char_value(4) := p_source_19;
24981 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
24982 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
24983 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
24984 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
24985 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
24986 l_rec_acct_attrs.array_char_value(7) := p_source_22;
24987 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
24988 l_rec_acct_attrs.array_num_value(8) := p_source_68;
24989 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
24990 l_rec_acct_attrs.array_char_value(9) := p_source_69;
24991 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
24992 l_rec_acct_attrs.array_char_value(10) := p_source_70;
24993 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
24994 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_71);
24995 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
24996 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_72);
24997 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
24998 l_rec_acct_attrs.array_char_value(13) := p_source_73;
24999 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
25000 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_47);
25001 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
25002 l_rec_acct_attrs.array_char_value(15) := p_source_6;
25003 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
25004 l_rec_acct_attrs.array_char_value(16) := p_source_30;
25005 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
25006 l_rec_acct_attrs.array_char_value(17) := p_source_31;
25007 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
25008 l_rec_acct_attrs.array_num_value(18) := p_source_32;
25009 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
25010 l_rec_acct_attrs.array_num_value(19) := p_source_33;
25011 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
25012 l_rec_acct_attrs.array_char_value(20) := p_source_34;
25013 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
25014 l_rec_acct_attrs.array_num_value(21) := p_source_35;
25015 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
25016 l_rec_acct_attrs.array_char_value(22) := p_source_36;
25017 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
25018 l_rec_acct_attrs.array_num_value(23) := p_source_37;
25019 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
25020 l_rec_acct_attrs.array_num_value(24) := p_source_33;
25021 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
25022 l_rec_acct_attrs.array_char_value(25) := p_source_34;
25023 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
25024 l_rec_acct_attrs.array_num_value(26) := p_source_35;
25025 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
25026 l_rec_acct_attrs.array_char_value(27) := p_source_38;
25027 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
25028 l_rec_acct_attrs.array_num_value(28) := p_source_33;
25029 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
25030 l_rec_acct_attrs.array_char_value(29) := p_source_34;
25031 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
25032 l_rec_acct_attrs.array_num_value(30) := p_source_35;
25033 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
25034 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_47);
25035 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
25036 l_rec_acct_attrs.array_char_value(32) := p_source_6;
25037 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
25038 l_rec_acct_attrs.array_char_value(33) := p_source_30;
25039 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
25040 l_rec_acct_attrs.array_num_value(34) := p_source_39;
25041 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
25042 l_rec_acct_attrs.array_num_value(35) := p_source_40;
25043
25044 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
25045 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
25046
25047 ---------------------------------------------------------------------------------------------------------------
25048 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
25049 ---------------------------------------------------------------------------------------------------------------
25050 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
25051
25052 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25053 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25054
25055 IF xla_accounting_cache_pkg.GetValueChar
25056 (p_source_code => 'LEDGER_CATEGORY_CODE'
25057 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
25058 AND l_bflow_method_code = 'PRIOR_ENTRY'
25059 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
25060 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
25061 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
25062 )
25063 THEN
25064 xla_ae_lines_pkg.BflowUpgEntry
25065 (p_business_method_code => l_bflow_method_code
25066 ,p_business_class_code => l_bflow_class_code
25067 ,p_balance_type => l_balance_type_code);
25068 ELSE
25069 NULL;
25070 XLA_AE_LINES_PKG.business_flow_validation(
25071 p_business_method_code => l_bflow_method_code
25072 ,p_business_class_code => l_bflow_class_code
25073 ,p_inherit_description_flag => l_inherit_desc_flag);
25074 END IF;
25075
25076 --
25077 -- call analytical criteria
25078 --
25079 -- Inherited Analytical Criteria for business flow method of Prior Entry.
25080 --
25081 -- call description
25082 --
25083
25084 xla_ae_lines_pkg.SetLineDescription(
25085 p_ae_header_id => l_ae_header_id
25086 ,p_description => Description_2 (
25087 p_application_id => p_application_id
25088 , p_ae_header_id => l_ae_header_id
25089 , p_source_3 => p_source_3
25090 , p_source_4 => p_source_4
25091 , p_source_5 => p_source_5
25092 , p_source_6 => p_source_6
25093 )
25094 );
25095
25096
25097 --
25098 -- call ADRs
25099 -- Bug 4922099
25100 --
25101 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25102 (NVL(l_actual_upg_option, 'N') = 'O') OR
25103 (NVL(l_enc_upg_option, 'N') = 'O')
25104 )
25105 THEN
25106 NULL;
25107 --
25108 --
25109
25110 --
25111 --
25112 END IF;
25113 --
25114 -- Bug 4922099
25115 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
25116 (NVL(l_enc_upg_option, 'N') = 'O')
25117 ) AND
25118 (l_bflow_method_code = 'PRIOR_ENTRY')
25119 )
25120 THEN
25121 IF
25122 --
25123 1 = 1
25124 --
25125 THEN
25126 xla_accounting_err_pkg.build_message
25127 (p_appli_s_name => 'XLA'
25128 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25129 ,p_token_1 => 'LINE_NUMBER'
25130 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
25131 ,p_token_2 => 'LINE_TYPE_NAME'
25132 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
25133 l_component_type
25134 ,l_component_code
25135 ,l_component_type_code
25136 ,l_component_appl_id
25137 ,l_amb_context_code
25138 ,l_entity_code
25139 ,l_event_class_code
25140 )
25141 ,p_token_3 => 'OWNER'
25142 ,p_value_3 => xla_lookups_pkg.get_meaning(
25143 p_lookup_type => 'XLA_OWNER_TYPE'
25144 ,p_lookup_code => l_component_type_code
25145 )
25146 ,p_token_4 => 'PRODUCT_NAME'
25147 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
25148 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
25149 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
25150 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
25151 ,p_ae_header_id => NULL
25152 );
25153
25154 IF (C_LEVEL_ERROR>= g_log_level) THEN
25155 trace
25156 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25157 ,p_level => C_LEVEL_ERROR
25158 ,p_module => l_log_module);
25159 END IF;
25160 END IF;
25161 END IF;
25162 --
25163 --
25164 ------------------------------------------------------------------------------------------------
25165 -- 4219869 Business Flow
25166 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
25167 -- Prior Entry. Currently, the following code is always generated.
25168 ------------------------------------------------------------------------------------------------
25169 -- No ValidateCurrentLine for business flow method of Prior Entry
25170
25171 ------------------------------------------------------------------------------------
25172 -- 4219869 Business Flow
25173 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
25174 ------------------------------------------------------------------------------------
25175 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25176
25177 ----------------------------------------------------------------------------------
25178 -- 4219869 Business Flow
25179 -- Update journal entry status -- Need to generate this within IF <condition>
25180 ----------------------------------------------------------------------------------
25181 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25182 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
25183 ,p_balance_type_code => l_balance_type_code
25184 );
25185
25186 -------------------------------------------------------------------------------------------
25187 -- 4262811 - Generate the Accrual Reversal lines
25188 -------------------------------------------------------------------------------------------
25189 BEGIN
25190 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
25191 (g_array_event(p_event_id).array_value_num('header_index'));
25192 IF l_acc_rev_flag IS NULL THEN
25193 l_acc_rev_flag := 'N';
25194 END IF;
25195 EXCEPTION
25196 WHEN OTHERS THEN
25197 l_acc_rev_flag := 'N';
25198 END;
25199 --
25200 IF (l_acc_rev_flag = 'Y') THEN
25201
25202 -- 4645092 ------------------------------------------------------------------------------
25203 -- To allow MPA report to determine if it should generate report process
25204 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
25205 ------------------------------------------------------------------------------------------
25206
25207 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
25208 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
25209
25210 --
25211 -- Update the line information that should be overwritten
25212 --
25213 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25214 p_header_num => 1);
25215 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
25216
25217 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25218
25219 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
25220 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25221 END IF;
25222
25223 --
25224 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25225 --
25226 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25227 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
25228 ELSE
25229 ---------------------------------------------------------------------------------------------------
25230 -- 4262811a Switch Sign
25231 ---------------------------------------------------------------------------------------------------
25232 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
25233 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25234 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25235 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25236 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25237 -- 5132302
25238 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25239 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25240
25241 END IF;
25242
25243 -- 4955764
25244 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25245 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25246
25247
25248 XLA_AE_LINES_PKG.ValidateCurrentLine;
25249 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25250
25251 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25252 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
25253 ,p_balance_type_code => l_balance_type_code);
25254
25255 END IF;
25256
25257 -----------------------------------------------------------------------------------------
25258 -- 4262811 Multiperiod Accounting
25259 -----------------------------------------------------------------------------------------
25260 -- No MPA option is assigned.
25261
25262
25263 END IF;
25264 END IF;
25265 --
25266
25267 --
25268 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25269 trace
25270 (p_msg => 'END of AcctLineType_47'
25271 ,p_level => C_LEVEL_PROCEDURE
25272 ,p_module => l_log_module);
25273 END IF;
25274 --
25275 EXCEPTION
25276 WHEN xla_exceptions_pkg.application_exception THEN
25277 RAISE;
25278 WHEN OTHERS THEN
25279 xla_exceptions_pkg.raise_message
25280 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_47');
25281 END AcctLineType_47;
25282 --
25283
25284 ---------------------------------------
25285 --
25286 -- PRIVATE FUNCTION
25287 -- AcctLineType_48
25288 --
25289 ---------------------------------------
25290 PROCEDURE AcctLineType_48 (
25291 p_application_id IN NUMBER
25292 ,p_event_id IN NUMBER
25293 ,p_calculate_acctd_flag IN VARCHAR2
25294 ,p_calculate_g_l_flag IN VARCHAR2
25295 ,p_actual_flag IN OUT VARCHAR2
25296 ,p_balance_type_code OUT VARCHAR2
25297 ,p_gain_or_loss_ref OUT VARCHAR2
25298
25299 --Project Name
25300 , p_source_3 IN VARCHAR2
25301 --Task Name
25302 , p_source_4 IN VARCHAR2
25303 --Project Expenditure Organization Identifier
25304 , p_source_5 IN NUMBER
25305 --Expenditure Type
25306 , p_source_6 IN VARCHAR2
25307 --Main Or Backing Code
25308 , p_source_13 IN VARCHAR2
25309 --Accounting Reversal Flag
25310 , p_source_16 IN VARCHAR2
25311 --Allocated to Application Identifier
25312 , p_source_17 IN NUMBER
25313 --Allocated to Distribution Type
25314 , p_source_18 IN VARCHAR2
25315 --Allocated to Entity Code
25316 , p_source_19 IN VARCHAR2
25317 --Allocated to First Distribution Identifier
25318 , p_source_20 IN NUMBER
25319 --Allocated to First System Transaction Identifier
25320 , p_source_21 IN NUMBER
25321 --PO Distribution Identifier
25322 , p_source_29 IN NUMBER
25323 --Line Type Name
25324 , p_source_30 IN VARCHAR2
25325 --Encumbrance Upgrade Credit Accounting Class
25326 , p_source_31 IN VARCHAR2
25327 --Encumbrance Upgrade Credit Account
25328 , p_source_32 IN NUMBER
25329 --Entered Amount
25330 , p_source_33 IN NUMBER
25331 --Currency Code
25332 , p_source_34 IN VARCHAR2
25333 --Accounted Amount
25334 , p_source_35 IN NUMBER
25335 --Encumbrance Upgrade Debit Accounting Class
25336 , p_source_36 IN VARCHAR2
25337 --Encumbrance Upgrade Debit Account
25338 , p_source_37 IN NUMBER
25339 --Use Encumbrances Upgrade Attributes Flag
25340 , p_source_38 IN VARCHAR2
25341 --Encumbrance Upgrade Credit Encumbrance Type
25342 , p_source_39 IN NUMBER
25343 --Encumbrance Upgrade Debit Encumbrance Type
25344 , p_source_40 IN NUMBER
25345 --Project Encumbrance Applied to Application Identifier
25346 , p_source_68 IN NUMBER
25347 --Project Encumbrance Applied to Distribution Type
25348 , p_source_69 IN VARCHAR2
25349 --Project Encumbrance Applied to Entity Code
25350 , p_source_70 IN VARCHAR2
25351 --Project Encumbrance Applied to First Distribution Identifier
25352 , p_source_71 IN NUMBER
25353 --Project Encumbrance Applied to First System Transaction Identifier
25354 , p_source_72 IN NUMBER
25355 --Project Encumbrance Applied to Second Distribution Identifier
25356 , p_source_73 IN VARCHAR2
25357 )
25358 IS
25359
25360 l_component_type VARCHAR2(80);
25361 l_component_code VARCHAR2(30);
25362 l_component_type_code VARCHAR2(1);
25363 l_component_appl_id INTEGER;
25364 l_amb_context_code VARCHAR2(30);
25365 l_entity_code VARCHAR2(30);
25366 l_event_class_code VARCHAR2(30);
25367 l_ae_header_id NUMBER;
25368 l_event_type_code VARCHAR2(30);
25369 l_line_definition_code VARCHAR2(30);
25370 l_line_definition_owner_code VARCHAR2(1);
25371 --
25372 -- adr variables
25373 l_segment VARCHAR2(30);
25374 l_ccid NUMBER;
25375 l_adr_transaction_coa_id NUMBER;
25376 l_adr_accounting_coa_id NUMBER;
25377 l_adr_flexfield_segment_code VARCHAR2(30);
25378 l_adr_flex_value_set_id NUMBER;
25379 l_adr_value_type_code VARCHAR2(30);
25380 l_adr_value_combination_id NUMBER;
25381 l_adr_value_segment_code VARCHAR2(30);
25382
25383 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
25384 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
25385 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
25386 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
25387
25388 -- 4262811 Variables ------------------------------------------------------------------------------------------
25389 l_entered_amt_idx NUMBER;
25390 l_accted_amt_idx NUMBER;
25391 l_acc_rev_flag VARCHAR2(1);
25392 l_accrual_line_num NUMBER;
25393 l_tmp_amt NUMBER;
25394 l_acc_rev_natural_side_code VARCHAR2(1);
25395
25396 l_num_entries NUMBER;
25397 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
25398 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
25399 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
25400 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
25401 l_recog_line_1 NUMBER;
25402 l_recog_line_2 NUMBER;
25403
25404 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
25405 l_bflow_applied_to_amt NUMBER; -- 5132302
25406 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
25407
25408 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
25409
25410 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
25411 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
25412
25413 ---------------------------------------------------------------------------------------------------------------
25414
25415
25416 --
25417 -- bulk performance
25418 --
25419 l_balance_type_code VARCHAR2(1);
25420 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
25421 l_log_module VARCHAR2(240);
25422
25423 --
25424 -- Upgrade strategy
25425 --
25426 l_actual_upg_option VARCHAR2(1);
25427 l_enc_upg_option VARCHAR2(1);
25428
25429 --
25430 BEGIN
25431 --
25432 IF g_log_enabled THEN
25433 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_48';
25434 END IF;
25435 --
25436 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25437
25438 trace
25439 (p_msg => 'BEGIN of AcctLineType_48'
25440 ,p_level => C_LEVEL_PROCEDURE
25441 ,p_module => l_log_module);
25442
25443 END IF;
25444 --
25445 l_component_type := 'AMB_JLT';
25446 l_component_code := 'RELIEVE_PROJ_ENC';
25447 l_component_type_code := 'S';
25448 l_component_appl_id := 201;
25449 l_amb_context_code := 'DEFAULT';
25450 l_entity_code := 'PURCHASE_ORDER';
25451 l_event_class_code := 'PO_BURDEN';
25452 l_event_type_code := 'PO_BURDEN_ALL';
25453 l_line_definition_owner_code := 'S';
25454 l_line_definition_code := 'PO_BURDEN_ENC_ALL';
25455 --
25456 l_balance_type_code := 'E';
25457 l_segment := NULL;
25458 l_ccid := NULL;
25459 l_adr_transaction_coa_id := NULL;
25460 l_adr_accounting_coa_id := NULL;
25461 l_adr_flexfield_segment_code := NULL;
25462 l_adr_flex_value_set_id := NULL;
25463 l_adr_value_type_code := NULL;
25464 l_adr_value_combination_id := NULL;
25465 l_adr_value_segment_code := NULL;
25466
25467 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
25468 l_bflow_class_code := 'PA_BUDGET_ENC'; -- 4219869 Business Flow
25469 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
25470 l_budgetary_control_flag := 'Y';
25471
25472 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25473 l_bflow_applied_to_amt := NULL; -- 5132302
25474 l_entered_amt_idx := NULL; -- 4262811
25475 l_accted_amt_idx := NULL; -- 4262811
25476 l_acc_rev_flag := NULL; -- 4262811
25477 l_accrual_line_num := NULL; -- 4262811
25478 l_tmp_amt := NULL; -- 4262811
25479 --
25480
25481 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
25482 l_balance_type_code <> 'B' THEN
25483 IF ((NVL(
25484 xla_ae_sources_pkg.GetSystemSourceChar(
25485 p_source_code => 'XLA_EVENT_TYPE_CODE'
25486 , p_source_type_code => 'Y'
25487 , p_source_application_id => 602
25488 ),'
25489 ') = 'PO_BURDEN_RESERVED' OR
25490 NVL(
25491 xla_ae_sources_pkg.GetSystemSourceChar(
25492 p_source_code => 'XLA_EVENT_TYPE_CODE'
25493 , p_source_type_code => 'Y'
25494 , p_source_application_id => 602
25495 ),'
25496 ') = 'PO_BURDEN_CANCELLED' OR
25497 NVL(
25498 xla_ae_sources_pkg.GetSystemSourceChar(
25499 p_source_code => 'XLA_EVENT_TYPE_CODE'
25500 , p_source_type_code => 'Y'
25501 , p_source_application_id => 602
25502 ),'
25503 ') = 'PO_BURDEN_CR_MEMO_CANCELLED' OR
25504 NVL(
25505 xla_ae_sources_pkg.GetSystemSourceChar(
25506 p_source_code => 'XLA_EVENT_TYPE_CODE'
25507 , p_source_type_code => 'Y'
25508 , p_source_application_id => 602
25509 ),'
25510 ') = 'PO_BURDEN_REOPEN_FINAL_MATCH') AND
25511 (NVL(p_source_13,'
25512 ') = 'M')
25513 ) OR ((NVL(
25514 xla_ae_sources_pkg.GetSystemSourceChar(
25515 p_source_code => 'XLA_EVENT_TYPE_CODE'
25516 , p_source_type_code => 'Y'
25517 , p_source_application_id => 602
25518 ),'
25519 ') = 'PO_BURDEN_UNRESERVED' OR
25520 NVL(
25521 xla_ae_sources_pkg.GetSystemSourceChar(
25522 p_source_code => 'XLA_EVENT_TYPE_CODE'
25523 , p_source_type_code => 'Y'
25524 , p_source_application_id => 602
25525 ),'
25526 ') = 'PO_BURDEN_INV_CANCELLED' OR
25527 NVL(
25528 xla_ae_sources_pkg.GetSystemSourceChar(
25529 p_source_code => 'XLA_EVENT_TYPE_CODE'
25530 , p_source_type_code => 'Y'
25531 , p_source_application_id => 602
25532 ),'
25533 ') = 'PO_BURDEN_REJECTED') AND
25534 (NVL(p_source_13,'
25535 ') = 'B_REQ')
25536 ) THEN
25537
25538 --
25539 XLA_AE_LINES_PKG.SetNewLine;
25540
25541 p_balance_type_code := l_balance_type_code;
25542 -- set the flag so later we will know whether the gain loss line needs to be created
25543
25544 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
25545 p_actual_flag :='A';
25546 END IF;
25547
25548 --
25549 -- bulk performance
25550 --
25551 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
25552 p_header_num => 0); -- 4262811
25553 --
25554 -- set accounting line options
25555 --
25556 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
25557 p_natural_side_code => 'C'
25558 , p_gain_or_loss_flag => 'N'
25559 , p_gl_transfer_mode_code => 'S'
25560 , p_acct_entry_type_code => 'E'
25561 , p_switch_side_flag => 'N'
25562 , p_merge_duplicate_code => 'N'
25563 );
25564 --
25565 l_acc_rev_natural_side_code := 'D'; -- 4262811
25566 --
25567 --
25568 -- set accounting line type info
25569 --
25570 xla_ae_lines_pkg.SetAcctLineType
25571 (p_component_type => l_component_type
25572 ,p_event_type_code => l_event_type_code
25573 ,p_line_definition_owner_code => l_line_definition_owner_code
25574 ,p_line_definition_code => l_line_definition_code
25575 ,p_accounting_line_code => l_component_code
25576 ,p_accounting_line_type_code => l_component_type_code
25577 ,p_accounting_line_appl_id => l_component_appl_id
25578 ,p_amb_context_code => l_amb_context_code
25579 ,p_entity_code => l_entity_code
25580 ,p_event_class_code => l_event_class_code);
25581 --
25582 -- set accounting class
25583 --
25584 xla_ae_lines_pkg.SetAcctClass(
25585 p_accounting_class_code => 'PA_BUDGET_ENC'
25586 , p_ae_header_id => l_ae_header_id
25587 );
25588
25589 --
25590 -- set rounding class
25591 --
25592 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
25593 'PA_BUDGET_ENC';
25594
25595 --
25596 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
25597 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
25598 --
25599 -- bulk performance
25600 --
25601 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
25602
25603 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
25604 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
25605
25606 -- 4955764
25607 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25608 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
25609
25610 -- 4458381 Public Sector Enh
25611
25612 --
25613 -- set accounting attributes for the line type
25614 --
25615 l_entered_amt_idx := 27;
25616 l_accted_amt_idx := 29;
25617 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25618 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
25619 l_rec_acct_attrs.array_char_value(1) := p_source_16;
25620 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
25621 l_rec_acct_attrs.array_num_value(2) := p_source_17;
25622 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
25623 l_rec_acct_attrs.array_char_value(3) := p_source_18;
25624 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
25625 l_rec_acct_attrs.array_char_value(4) := p_source_19;
25626 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
25627 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
25628 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
25629 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
25630 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
25631 l_rec_acct_attrs.array_num_value(7) := p_source_68;
25632 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
25633 l_rec_acct_attrs.array_char_value(8) := p_source_69;
25634 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
25635 l_rec_acct_attrs.array_char_value(9) := p_source_70;
25636 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
25637 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_71);
25638 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
25639 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_72);
25640 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
25641 l_rec_acct_attrs.array_char_value(12) := p_source_73;
25642 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
25643 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_29);
25644 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
25645 l_rec_acct_attrs.array_char_value(14) := p_source_6;
25646 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
25647 l_rec_acct_attrs.array_char_value(15) := p_source_30;
25648 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
25649 l_rec_acct_attrs.array_char_value(16) := p_source_31;
25650 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
25651 l_rec_acct_attrs.array_num_value(17) := p_source_32;
25652 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
25653 l_rec_acct_attrs.array_num_value(18) := p_source_33;
25654 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
25655 l_rec_acct_attrs.array_char_value(19) := p_source_34;
25656 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
25657 l_rec_acct_attrs.array_num_value(20) := p_source_35;
25658 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
25659 l_rec_acct_attrs.array_char_value(21) := p_source_36;
25660 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
25661 l_rec_acct_attrs.array_num_value(22) := p_source_37;
25662 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
25663 l_rec_acct_attrs.array_num_value(23) := p_source_33;
25664 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
25665 l_rec_acct_attrs.array_char_value(24) := p_source_34;
25666 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
25667 l_rec_acct_attrs.array_num_value(25) := p_source_35;
25668 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
25669 l_rec_acct_attrs.array_char_value(26) := p_source_38;
25670 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
25671 l_rec_acct_attrs.array_num_value(27) := p_source_33;
25672 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
25673 l_rec_acct_attrs.array_char_value(28) := p_source_34;
25674 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
25675 l_rec_acct_attrs.array_num_value(29) := p_source_35;
25676 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
25677 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_29);
25678 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
25679 l_rec_acct_attrs.array_char_value(31) := p_source_6;
25680 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
25681 l_rec_acct_attrs.array_char_value(32) := p_source_30;
25682 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
25683 l_rec_acct_attrs.array_num_value(33) := p_source_39;
25684 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
25685 l_rec_acct_attrs.array_num_value(34) := p_source_40;
25686
25687 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
25688 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
25689
25690 ---------------------------------------------------------------------------------------------------------------
25691 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
25692 ---------------------------------------------------------------------------------------------------------------
25693 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
25694
25695 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25696 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25697
25698 IF xla_accounting_cache_pkg.GetValueChar
25699 (p_source_code => 'LEDGER_CATEGORY_CODE'
25700 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
25701 AND l_bflow_method_code = 'PRIOR_ENTRY'
25702 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
25703 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
25704 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
25705 )
25706 THEN
25707 xla_ae_lines_pkg.BflowUpgEntry
25708 (p_business_method_code => l_bflow_method_code
25709 ,p_business_class_code => l_bflow_class_code
25710 ,p_balance_type => l_balance_type_code);
25711 ELSE
25712 NULL;
25713 XLA_AE_LINES_PKG.business_flow_validation(
25714 p_business_method_code => l_bflow_method_code
25715 ,p_business_class_code => l_bflow_class_code
25716 ,p_inherit_description_flag => l_inherit_desc_flag);
25717 END IF;
25718
25719 --
25720 -- call analytical criteria
25721 --
25722 -- Inherited Analytical Criteria for business flow method of Prior Entry.
25723 --
25724 -- call description
25725 --
25726
25727 xla_ae_lines_pkg.SetLineDescription(
25728 p_ae_header_id => l_ae_header_id
25729 ,p_description => Description_2 (
25730 p_application_id => p_application_id
25731 , p_ae_header_id => l_ae_header_id
25732 , p_source_3 => p_source_3
25733 , p_source_4 => p_source_4
25734 , p_source_5 => p_source_5
25735 , p_source_6 => p_source_6
25736 )
25737 );
25738
25739
25740 --
25741 -- call ADRs
25742 -- Bug 4922099
25743 --
25744 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25745 (NVL(l_actual_upg_option, 'N') = 'O') OR
25746 (NVL(l_enc_upg_option, 'N') = 'O')
25747 )
25748 THEN
25749 NULL;
25750 --
25751 --
25752
25753 --
25754 --
25755 END IF;
25756 --
25757 -- Bug 4922099
25758 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
25759 (NVL(l_enc_upg_option, 'N') = 'O')
25760 ) AND
25761 (l_bflow_method_code = 'PRIOR_ENTRY')
25762 )
25763 THEN
25764 IF
25765 --
25766 1 = 1
25767 --
25768 THEN
25769 xla_accounting_err_pkg.build_message
25770 (p_appli_s_name => 'XLA'
25771 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25772 ,p_token_1 => 'LINE_NUMBER'
25773 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
25774 ,p_token_2 => 'LINE_TYPE_NAME'
25775 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
25776 l_component_type
25777 ,l_component_code
25778 ,l_component_type_code
25779 ,l_component_appl_id
25780 ,l_amb_context_code
25781 ,l_entity_code
25782 ,l_event_class_code
25783 )
25784 ,p_token_3 => 'OWNER'
25785 ,p_value_3 => xla_lookups_pkg.get_meaning(
25786 p_lookup_type => 'XLA_OWNER_TYPE'
25787 ,p_lookup_code => l_component_type_code
25788 )
25789 ,p_token_4 => 'PRODUCT_NAME'
25790 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
25791 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
25792 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
25793 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
25794 ,p_ae_header_id => NULL
25795 );
25796
25797 IF (C_LEVEL_ERROR>= g_log_level) THEN
25798 trace
25799 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25800 ,p_level => C_LEVEL_ERROR
25801 ,p_module => l_log_module);
25802 END IF;
25803 END IF;
25804 END IF;
25805 --
25806 --
25807 ------------------------------------------------------------------------------------------------
25808 -- 4219869 Business Flow
25809 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
25810 -- Prior Entry. Currently, the following code is always generated.
25811 ------------------------------------------------------------------------------------------------
25812 -- No ValidateCurrentLine for business flow method of Prior Entry
25813
25814 ------------------------------------------------------------------------------------
25815 -- 4219869 Business Flow
25816 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
25817 ------------------------------------------------------------------------------------
25818 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25819
25820 ----------------------------------------------------------------------------------
25821 -- 4219869 Business Flow
25822 -- Update journal entry status -- Need to generate this within IF <condition>
25823 ----------------------------------------------------------------------------------
25824 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25825 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
25826 ,p_balance_type_code => l_balance_type_code
25827 );
25828
25829 -------------------------------------------------------------------------------------------
25830 -- 4262811 - Generate the Accrual Reversal lines
25831 -------------------------------------------------------------------------------------------
25832 BEGIN
25833 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
25834 (g_array_event(p_event_id).array_value_num('header_index'));
25835 IF l_acc_rev_flag IS NULL THEN
25836 l_acc_rev_flag := 'N';
25837 END IF;
25838 EXCEPTION
25839 WHEN OTHERS THEN
25840 l_acc_rev_flag := 'N';
25841 END;
25842 --
25843 IF (l_acc_rev_flag = 'Y') THEN
25844
25845 -- 4645092 ------------------------------------------------------------------------------
25846 -- To allow MPA report to determine if it should generate report process
25847 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
25848 ------------------------------------------------------------------------------------------
25849
25850 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
25851 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
25852
25853 --
25854 -- Update the line information that should be overwritten
25855 --
25856 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25857 p_header_num => 1);
25858 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
25859
25860 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25861
25862 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
25863 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25864 END IF;
25865
25866 --
25867 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25868 --
25869 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25870 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
25871 ELSE
25872 ---------------------------------------------------------------------------------------------------
25873 -- 4262811a Switch Sign
25874 ---------------------------------------------------------------------------------------------------
25875 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
25876 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25877 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25878 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25879 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25880 -- 5132302
25881 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25882 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25883
25884 END IF;
25885
25886 -- 4955764
25887 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25888 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25889
25890
25891 XLA_AE_LINES_PKG.ValidateCurrentLine;
25892 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25893
25894 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25895 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
25896 ,p_balance_type_code => l_balance_type_code);
25897
25898 END IF;
25899
25900 -----------------------------------------------------------------------------------------
25901 -- 4262811 Multiperiod Accounting
25902 -----------------------------------------------------------------------------------------
25903 -- No MPA option is assigned.
25904
25905
25906 END IF;
25907 END IF;
25908 --
25909
25910 --
25911 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25912 trace
25913 (p_msg => 'END of AcctLineType_48'
25914 ,p_level => C_LEVEL_PROCEDURE
25915 ,p_module => l_log_module);
25916 END IF;
25917 --
25918 EXCEPTION
25919 WHEN xla_exceptions_pkg.application_exception THEN
25920 RAISE;
25921 WHEN OTHERS THEN
25922 xla_exceptions_pkg.raise_message
25923 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_48');
25924 END AcctLineType_48;
25925 --
25926
25927 ---------------------------------------
25928 --
25929 -- PRIVATE FUNCTION
25930 -- AcctLineType_49
25931 --
25932 ---------------------------------------
25933 PROCEDURE AcctLineType_49 (
25934 p_application_id IN NUMBER
25935 ,p_event_id IN NUMBER
25936 ,p_calculate_acctd_flag IN VARCHAR2
25937 ,p_calculate_g_l_flag IN VARCHAR2
25938 ,p_actual_flag IN OUT VARCHAR2
25939 ,p_balance_type_code OUT VARCHAR2
25940 ,p_gain_or_loss_ref OUT VARCHAR2
25941
25942 --Budget Account
25943 , p_source_11 IN NUMBER
25944 --Main Or Backing Code
25945 , p_source_13 IN VARCHAR2
25946 --Accounting Reversal Flag
25947 , p_source_16 IN VARCHAR2
25948 --PO Distribution Identifier
25949 , p_source_29 IN NUMBER
25950 --Entered Amount
25951 , p_source_33 IN NUMBER
25952 --Currency Code
25953 , p_source_34 IN VARCHAR2
25954 --Accounted Amount
25955 , p_source_35 IN NUMBER
25956 --Allocated to Main Document Distribution Type
25957 , p_source_49 IN VARCHAR2
25958 --Allocated to Main Document Distribution Identifier
25959 , p_source_51 IN NUMBER
25960 --PO Header Identifier
25961 , p_source_52 IN NUMBER
25962 --Applied To Application Identifier
25963 , p_source_53 IN NUMBER
25964 --Applied To Distribution Link Type
25965 , p_source_54 IN VARCHAR2
25966 --Applied To Entity Code
25967 , p_source_55 IN VARCHAR2
25968 --Applied To Distribution Identifier 1
25969 , p_source_56 IN NUMBER
25970 --Applied To Header Identifier 1
25971 , p_source_57 IN NUMBER
25972 --Distribution Link Type
25973 , p_source_58 IN VARCHAR2
25974 --PO Encumbrance Upgrade Option
25975 , p_source_59 IN VARCHAR2
25976 --JFMIP Reference
25977 , p_source_60 IN VARCHAR2
25978 --PO Upgrade Encumbrance Type Identifier
25979 , p_source_61 IN NUMBER
25980 --Backing Requisition Prevent Encumbrance Changed Flag
25981 , p_source_65 IN VARCHAR2
25982 )
25983 IS
25984
25985 l_component_type VARCHAR2(80);
25986 l_component_code VARCHAR2(30);
25987 l_component_type_code VARCHAR2(1);
25988 l_component_appl_id INTEGER;
25989 l_amb_context_code VARCHAR2(30);
25990 l_entity_code VARCHAR2(30);
25991 l_event_class_code VARCHAR2(30);
25992 l_ae_header_id NUMBER;
25993 l_event_type_code VARCHAR2(30);
25994 l_line_definition_code VARCHAR2(30);
25995 l_line_definition_owner_code VARCHAR2(1);
25996 --
25997 -- adr variables
25998 l_segment VARCHAR2(30);
25999 l_ccid NUMBER;
26000 l_adr_transaction_coa_id NUMBER;
26001 l_adr_accounting_coa_id NUMBER;
26002 l_adr_flexfield_segment_code VARCHAR2(30);
26003 l_adr_flex_value_set_id NUMBER;
26004 l_adr_value_type_code VARCHAR2(30);
26005 l_adr_value_combination_id NUMBER;
26006 l_adr_value_segment_code VARCHAR2(30);
26007
26008 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
26009 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
26010 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
26011 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
26012
26013 -- 4262811 Variables ------------------------------------------------------------------------------------------
26014 l_entered_amt_idx NUMBER;
26015 l_accted_amt_idx NUMBER;
26016 l_acc_rev_flag VARCHAR2(1);
26017 l_accrual_line_num NUMBER;
26018 l_tmp_amt NUMBER;
26019 l_acc_rev_natural_side_code VARCHAR2(1);
26020
26021 l_num_entries NUMBER;
26022 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
26023 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
26024 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
26025 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
26026 l_recog_line_1 NUMBER;
26027 l_recog_line_2 NUMBER;
26028
26029 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
26030 l_bflow_applied_to_amt NUMBER; -- 5132302
26031 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
26032
26033 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26034
26035 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
26036 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
26037
26038 ---------------------------------------------------------------------------------------------------------------
26039
26040
26041 --
26042 -- bulk performance
26043 --
26044 l_balance_type_code VARCHAR2(1);
26045 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
26046 l_log_module VARCHAR2(240);
26047
26048 --
26049 -- Upgrade strategy
26050 --
26051 l_actual_upg_option VARCHAR2(1);
26052 l_enc_upg_option VARCHAR2(1);
26053
26054 --
26055 BEGIN
26056 --
26057 IF g_log_enabled THEN
26058 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_49';
26059 END IF;
26060 --
26061 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26062
26063 trace
26064 (p_msg => 'BEGIN of AcctLineType_49'
26065 ,p_level => C_LEVEL_PROCEDURE
26066 ,p_module => l_log_module);
26067
26068 END IF;
26069 --
26070 l_component_type := 'AMB_JLT';
26071 l_component_code := 'RELIEVE_REQ_ENC_FROM_PO';
26072 l_component_type_code := 'S';
26073 l_component_appl_id := 201;
26074 l_amb_context_code := 'DEFAULT';
26075 l_entity_code := 'PURCHASE_ORDER';
26076 l_event_class_code := 'PO_PA';
26077 l_event_type_code := 'PO_PA_ALL';
26078 l_line_definition_owner_code := 'S';
26079 l_line_definition_code := 'PO_PA_ENC_ALL';
26080 --
26081 l_balance_type_code := 'E';
26082 l_segment := NULL;
26083 l_ccid := NULL;
26084 l_adr_transaction_coa_id := NULL;
26085 l_adr_accounting_coa_id := NULL;
26086 l_adr_flexfield_segment_code := NULL;
26087 l_adr_flex_value_set_id := NULL;
26088 l_adr_value_type_code := NULL;
26089 l_adr_value_combination_id := NULL;
26090 l_adr_value_segment_code := NULL;
26091
26092 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
26093 l_bflow_class_code := 'REQ_ENCUMBRANCE'; -- 4219869 Business Flow
26094 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
26095 l_budgetary_control_flag := 'Y';
26096
26097 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26098 l_bflow_applied_to_amt := NULL; -- 5132302
26099 l_entered_amt_idx := NULL; -- 4262811
26100 l_accted_amt_idx := NULL; -- 4262811
26101 l_acc_rev_flag := NULL; -- 4262811
26102 l_accrual_line_num := NULL; -- 4262811
26103 l_tmp_amt := NULL; -- 4262811
26104 --
26105
26106 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26107 l_balance_type_code <> 'B' THEN
26108 IF NVL(
26109 xla_ae_sources_pkg.GetSystemSourceChar(
26110 p_source_code => 'XLA_EVENT_TYPE_CODE'
26111 , p_source_type_code => 'Y'
26112 , p_source_application_id => 602
26113 ),'
26114 ') = 'PO_PA_RESERVED' AND
26115 NVL(p_source_13,'
26116 ') = 'B_REQ' AND
26117 NVL(p_source_65,'
26118 ') = 'N'
26119 THEN
26120
26121 --
26122 XLA_AE_LINES_PKG.SetNewLine;
26123
26124 p_balance_type_code := l_balance_type_code;
26125 -- set the flag so later we will know whether the gain loss line needs to be created
26126
26127 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26128 p_actual_flag :='A';
26129 END IF;
26130
26131 --
26132 -- bulk performance
26133 --
26134 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26135 p_header_num => 0); -- 4262811
26136 --
26137 -- set accounting line options
26138 --
26139 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26140 p_natural_side_code => 'C'
26141 , p_gain_or_loss_flag => 'N'
26142 , p_gl_transfer_mode_code => 'S'
26143 , p_acct_entry_type_code => 'E'
26144 , p_switch_side_flag => 'N'
26145 , p_merge_duplicate_code => 'N'
26146 );
26147 --
26148 l_acc_rev_natural_side_code := 'D'; -- 4262811
26149 --
26150 --
26151 -- set accounting line type info
26152 --
26153 xla_ae_lines_pkg.SetAcctLineType
26154 (p_component_type => l_component_type
26155 ,p_event_type_code => l_event_type_code
26156 ,p_line_definition_owner_code => l_line_definition_owner_code
26157 ,p_line_definition_code => l_line_definition_code
26158 ,p_accounting_line_code => l_component_code
26159 ,p_accounting_line_type_code => l_component_type_code
26160 ,p_accounting_line_appl_id => l_component_appl_id
26161 ,p_amb_context_code => l_amb_context_code
26162 ,p_entity_code => l_entity_code
26163 ,p_event_class_code => l_event_class_code);
26164 --
26165 -- set accounting class
26166 --
26167 xla_ae_lines_pkg.SetAcctClass(
26168 p_accounting_class_code => 'REQUISITION'
26169 , p_ae_header_id => l_ae_header_id
26170 );
26171
26172 --
26173 -- set rounding class
26174 --
26175 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
26176 'REQUISITION';
26177
26178 --
26179 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
26180 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
26181 --
26182 -- bulk performance
26183 --
26184 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
26185
26186 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
26187 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
26188
26189 -- 4955764
26190 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26191 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
26192
26193 -- 4458381 Public Sector Enh
26194
26195 --
26196 -- set accounting attributes for the line type
26197 --
26198 l_entered_amt_idx := 23;
26199 l_accted_amt_idx := 25;
26200 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26201 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
26202 l_rec_acct_attrs.array_char_value(1) := p_source_16;
26203 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
26204 l_rec_acct_attrs.array_num_value(2) :=
26205 xla_ae_sources_pkg.GetSystemSourceNum(
26206 p_source_code => 'XLA_EVENT_APPL_ID'
26207 , p_source_type_code => 'Y'
26208 , p_source_application_id => 602
26209 );
26210 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
26211 l_rec_acct_attrs.array_char_value(3) := p_source_49;
26212 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
26213 l_rec_acct_attrs.array_char_value(4) :=
26214 xla_ae_sources_pkg.GetSystemSourceChar(
26215 p_source_code => 'XLA_ENTITY_CODE'
26216 , p_source_type_code => 'Y'
26217 , p_source_application_id => 602
26218 );
26219 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
26220 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_51);
26221 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
26222 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_52);
26223 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
26224 l_rec_acct_attrs.array_num_value(7) := p_source_53;
26225 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
26226 l_rec_acct_attrs.array_char_value(8) := p_source_54;
26227 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
26228 l_rec_acct_attrs.array_char_value(9) := p_source_55;
26229 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
26230 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_56);
26231 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
26232 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_57);
26233 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
26234 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_29);
26235 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
26236 l_rec_acct_attrs.array_char_value(13) := p_source_58;
26237 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
26238 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_11);
26239 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
26240 l_rec_acct_attrs.array_num_value(15) := p_source_33;
26241 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
26242 l_rec_acct_attrs.array_char_value(16) := p_source_34;
26243 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
26244 l_rec_acct_attrs.array_num_value(17) := p_source_35;
26245 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
26246 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_11);
26247 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
26248 l_rec_acct_attrs.array_num_value(19) := p_source_33;
26249 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
26250 l_rec_acct_attrs.array_char_value(20) := p_source_34;
26251 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
26252 l_rec_acct_attrs.array_num_value(21) := p_source_35;
26253 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
26254 l_rec_acct_attrs.array_char_value(22) := p_source_59;
26255 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
26256 l_rec_acct_attrs.array_num_value(23) := p_source_33;
26257 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
26258 l_rec_acct_attrs.array_char_value(24) := p_source_34;
26259 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
26260 l_rec_acct_attrs.array_num_value(25) := p_source_35;
26261 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
26262 l_rec_acct_attrs.array_char_value(26) := p_source_60;
26263 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
26264 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_56);
26265 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
26266 l_rec_acct_attrs.array_char_value(28) := p_source_54;
26267 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
26268 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_29);
26269 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
26270 l_rec_acct_attrs.array_num_value(30) := p_source_61;
26271 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
26272 l_rec_acct_attrs.array_num_value(31) := p_source_61;
26273
26274 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
26275 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
26276
26277 ---------------------------------------------------------------------------------------------------------------
26278 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
26279 ---------------------------------------------------------------------------------------------------------------
26280 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
26281
26282 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26283 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26284
26285 IF xla_accounting_cache_pkg.GetValueChar
26286 (p_source_code => 'LEDGER_CATEGORY_CODE'
26287 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
26288 AND l_bflow_method_code = 'PRIOR_ENTRY'
26289 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
26290 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
26291 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
26292 )
26293 THEN
26294 xla_ae_lines_pkg.BflowUpgEntry
26295 (p_business_method_code => l_bflow_method_code
26296 ,p_business_class_code => l_bflow_class_code
26297 ,p_balance_type => l_balance_type_code);
26298 ELSE
26299 NULL;
26300 XLA_AE_LINES_PKG.business_flow_validation(
26301 p_business_method_code => l_bflow_method_code
26302 ,p_business_class_code => l_bflow_class_code
26303 ,p_inherit_description_flag => l_inherit_desc_flag);
26304 END IF;
26305
26306 --
26307 -- call analytical criteria
26308 --
26309 -- Inherited Analytical Criteria for business flow method of Prior Entry.
26310 --
26311 -- call description
26312 --
26313 -- No description or it is inherited.
26314 --
26315 -- call ADRs
26316 -- Bug 4922099
26317 --
26318 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26319 (NVL(l_actual_upg_option, 'N') = 'O') OR
26320 (NVL(l_enc_upg_option, 'N') = 'O')
26321 )
26322 THEN
26323 NULL;
26324 --
26325 --
26326
26327 --
26328 --
26329 END IF;
26330 --
26331 -- Bug 4922099
26332 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
26333 (NVL(l_enc_upg_option, 'N') = 'O')
26334 ) AND
26335 (l_bflow_method_code = 'PRIOR_ENTRY')
26336 )
26337 THEN
26338 IF
26339 --
26340 1 = 1
26341 --
26342 THEN
26343 xla_accounting_err_pkg.build_message
26344 (p_appli_s_name => 'XLA'
26345 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26346 ,p_token_1 => 'LINE_NUMBER'
26347 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
26348 ,p_token_2 => 'LINE_TYPE_NAME'
26349 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
26350 l_component_type
26351 ,l_component_code
26352 ,l_component_type_code
26353 ,l_component_appl_id
26354 ,l_amb_context_code
26355 ,l_entity_code
26356 ,l_event_class_code
26357 )
26358 ,p_token_3 => 'OWNER'
26359 ,p_value_3 => xla_lookups_pkg.get_meaning(
26360 p_lookup_type => 'XLA_OWNER_TYPE'
26361 ,p_lookup_code => l_component_type_code
26362 )
26363 ,p_token_4 => 'PRODUCT_NAME'
26364 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
26365 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
26366 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
26367 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
26368 ,p_ae_header_id => NULL
26369 );
26370
26371 IF (C_LEVEL_ERROR>= g_log_level) THEN
26372 trace
26373 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26374 ,p_level => C_LEVEL_ERROR
26375 ,p_module => l_log_module);
26376 END IF;
26377 END IF;
26378 END IF;
26379 --
26380 --
26381 ------------------------------------------------------------------------------------------------
26382 -- 4219869 Business Flow
26383 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
26384 -- Prior Entry. Currently, the following code is always generated.
26385 ------------------------------------------------------------------------------------------------
26386 -- No ValidateCurrentLine for business flow method of Prior Entry
26387
26388 ------------------------------------------------------------------------------------
26389 -- 4219869 Business Flow
26390 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
26391 ------------------------------------------------------------------------------------
26392 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26393
26394 ----------------------------------------------------------------------------------
26395 -- 4219869 Business Flow
26396 -- Update journal entry status -- Need to generate this within IF <condition>
26397 ----------------------------------------------------------------------------------
26398 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26399 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
26400 ,p_balance_type_code => l_balance_type_code
26401 );
26402
26403 -------------------------------------------------------------------------------------------
26404 -- 4262811 - Generate the Accrual Reversal lines
26405 -------------------------------------------------------------------------------------------
26406 BEGIN
26407 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
26408 (g_array_event(p_event_id).array_value_num('header_index'));
26409 IF l_acc_rev_flag IS NULL THEN
26410 l_acc_rev_flag := 'N';
26411 END IF;
26412 EXCEPTION
26413 WHEN OTHERS THEN
26414 l_acc_rev_flag := 'N';
26415 END;
26416 --
26417 IF (l_acc_rev_flag = 'Y') THEN
26418
26419 -- 4645092 ------------------------------------------------------------------------------
26420 -- To allow MPA report to determine if it should generate report process
26421 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
26422 ------------------------------------------------------------------------------------------
26423
26424 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
26425 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
26426
26427 --
26428 -- Update the line information that should be overwritten
26429 --
26430 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
26431 p_header_num => 1);
26432 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
26433
26434 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
26435
26436 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
26437 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
26438 END IF;
26439
26440 --
26441 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
26442 --
26443 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
26444 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
26445 ELSE
26446 ---------------------------------------------------------------------------------------------------
26447 -- 4262811a Switch Sign
26448 ---------------------------------------------------------------------------------------------------
26449 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
26450 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26451 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26452 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26453 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26454 -- 5132302
26455 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
26456 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26457
26458 END IF;
26459
26460 -- 4955764
26461 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26462 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
26463
26464
26465 XLA_AE_LINES_PKG.ValidateCurrentLine;
26466 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26467
26468 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26469 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
26470 ,p_balance_type_code => l_balance_type_code);
26471
26472 END IF;
26473
26474 -----------------------------------------------------------------------------------------
26475 -- 4262811 Multiperiod Accounting
26476 -----------------------------------------------------------------------------------------
26477 -- No MPA option is assigned.
26478
26479
26480 END IF;
26481 END IF;
26482 --
26483
26484 --
26485 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26486 trace
26487 (p_msg => 'END of AcctLineType_49'
26488 ,p_level => C_LEVEL_PROCEDURE
26489 ,p_module => l_log_module);
26490 END IF;
26491 --
26492 EXCEPTION
26493 WHEN xla_exceptions_pkg.application_exception THEN
26494 RAISE;
26495 WHEN OTHERS THEN
26496 xla_exceptions_pkg.raise_message
26497 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_49');
26498 END AcctLineType_49;
26499 --
26500
26501 ---------------------------------------
26502 --
26503 -- PRIVATE FUNCTION
26504 -- AcctLineType_50
26505 --
26506 ---------------------------------------
26507 PROCEDURE AcctLineType_50 (
26508 p_application_id IN NUMBER
26509 ,p_event_id IN NUMBER
26510 ,p_calculate_acctd_flag IN VARCHAR2
26511 ,p_calculate_g_l_flag IN VARCHAR2
26512 ,p_actual_flag IN OUT VARCHAR2
26513 ,p_balance_type_code OUT VARCHAR2
26514 ,p_gain_or_loss_ref OUT VARCHAR2
26515
26516 --Budget Account
26517 , p_source_11 IN NUMBER
26518 --Main Or Backing Code
26519 , p_source_13 IN VARCHAR2
26520 --Accounting Reversal Flag
26521 , p_source_16 IN VARCHAR2
26522 --PO Distribution Identifier
26523 , p_source_29 IN NUMBER
26524 --Entered Amount
26525 , p_source_33 IN NUMBER
26526 --Currency Code
26527 , p_source_34 IN VARCHAR2
26528 --Accounted Amount
26529 , p_source_35 IN NUMBER
26530 --Allocated to Main Document Distribution Type
26531 , p_source_49 IN VARCHAR2
26532 --Allocated to Main Document Distribution Identifier
26533 , p_source_51 IN NUMBER
26534 --Applied To Application Identifier
26535 , p_source_53 IN NUMBER
26536 --Applied To Distribution Link Type
26537 , p_source_54 IN VARCHAR2
26538 --Applied To Entity Code
26539 , p_source_55 IN VARCHAR2
26540 --Applied To Distribution Identifier 1
26541 , p_source_56 IN NUMBER
26542 --Applied To Header Identifier 1
26543 , p_source_57 IN NUMBER
26544 --Distribution Link Type
26545 , p_source_58 IN VARCHAR2
26546 --PO Encumbrance Upgrade Option
26547 , p_source_59 IN VARCHAR2
26548 --JFMIP Reference
26549 , p_source_60 IN VARCHAR2
26550 --PO Upgrade Encumbrance Type Identifier
26551 , p_source_61 IN NUMBER
26552 --PO Release Identifier
26553 , p_source_66 IN NUMBER
26554 )
26555 IS
26556
26557 l_component_type VARCHAR2(80);
26558 l_component_code VARCHAR2(30);
26559 l_component_type_code VARCHAR2(1);
26560 l_component_appl_id INTEGER;
26561 l_amb_context_code VARCHAR2(30);
26562 l_entity_code VARCHAR2(30);
26563 l_event_class_code VARCHAR2(30);
26564 l_ae_header_id NUMBER;
26565 l_event_type_code VARCHAR2(30);
26566 l_line_definition_code VARCHAR2(30);
26567 l_line_definition_owner_code VARCHAR2(1);
26568 --
26569 -- adr variables
26570 l_segment VARCHAR2(30);
26571 l_ccid NUMBER;
26572 l_adr_transaction_coa_id NUMBER;
26573 l_adr_accounting_coa_id NUMBER;
26574 l_adr_flexfield_segment_code VARCHAR2(30);
26575 l_adr_flex_value_set_id NUMBER;
26576 l_adr_value_type_code VARCHAR2(30);
26577 l_adr_value_combination_id NUMBER;
26578 l_adr_value_segment_code VARCHAR2(30);
26579
26580 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
26581 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
26582 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
26583 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
26584
26585 -- 4262811 Variables ------------------------------------------------------------------------------------------
26586 l_entered_amt_idx NUMBER;
26587 l_accted_amt_idx NUMBER;
26588 l_acc_rev_flag VARCHAR2(1);
26589 l_accrual_line_num NUMBER;
26590 l_tmp_amt NUMBER;
26591 l_acc_rev_natural_side_code VARCHAR2(1);
26592
26593 l_num_entries NUMBER;
26594 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
26595 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
26596 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
26597 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
26598 l_recog_line_1 NUMBER;
26599 l_recog_line_2 NUMBER;
26600
26601 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
26602 l_bflow_applied_to_amt NUMBER; -- 5132302
26603 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
26604
26605 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26606
26607 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
26608 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
26609
26610 ---------------------------------------------------------------------------------------------------------------
26611
26612
26613 --
26614 -- bulk performance
26615 --
26616 l_balance_type_code VARCHAR2(1);
26617 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
26618 l_log_module VARCHAR2(240);
26619
26620 --
26621 -- Upgrade strategy
26622 --
26623 l_actual_upg_option VARCHAR2(1);
26624 l_enc_upg_option VARCHAR2(1);
26625
26626 --
26627 BEGIN
26628 --
26629 IF g_log_enabled THEN
26630 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_50';
26631 END IF;
26632 --
26633 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26634
26635 trace
26636 (p_msg => 'BEGIN of AcctLineType_50'
26637 ,p_level => C_LEVEL_PROCEDURE
26638 ,p_module => l_log_module);
26639
26640 END IF;
26641 --
26642 l_component_type := 'AMB_JLT';
26643 l_component_code := 'RELIEVE_REQ_ENC_FROM_RELEASE';
26644 l_component_type_code := 'S';
26645 l_component_appl_id := 201;
26646 l_amb_context_code := 'DEFAULT';
26647 l_entity_code := 'RELEASE';
26648 l_event_class_code := 'RELEASE';
26649 l_event_type_code := 'RELEASE_ALL';
26650 l_line_definition_owner_code := 'S';
26651 l_line_definition_code := 'RELEASE_ENC_ALL';
26652 --
26653 l_balance_type_code := 'E';
26654 l_segment := NULL;
26655 l_ccid := NULL;
26656 l_adr_transaction_coa_id := NULL;
26657 l_adr_accounting_coa_id := NULL;
26658 l_adr_flexfield_segment_code := NULL;
26659 l_adr_flex_value_set_id := NULL;
26660 l_adr_value_type_code := NULL;
26661 l_adr_value_combination_id := NULL;
26662 l_adr_value_segment_code := NULL;
26663
26664 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
26665 l_bflow_class_code := 'REQ_ENCUMBRANCE'; -- 4219869 Business Flow
26666 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
26667 l_budgetary_control_flag := 'Y';
26668
26669 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26670 l_bflow_applied_to_amt := NULL; -- 5132302
26671 l_entered_amt_idx := NULL; -- 4262811
26672 l_accted_amt_idx := NULL; -- 4262811
26673 l_acc_rev_flag := NULL; -- 4262811
26674 l_accrual_line_num := NULL; -- 4262811
26675 l_tmp_amt := NULL; -- 4262811
26676 --
26677
26678 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26679 l_balance_type_code <> 'B' THEN
26680 IF NVL(
26681 xla_ae_sources_pkg.GetSystemSourceChar(
26682 p_source_code => 'XLA_EVENT_TYPE_CODE'
26683 , p_source_type_code => 'Y'
26684 , p_source_application_id => 602
26685 ),'
26686 ') = 'RELEASE_RESERVED' AND
26687 NVL(p_source_13,'
26688 ') = 'B_REQ'
26689 THEN
26690
26691 --
26692 XLA_AE_LINES_PKG.SetNewLine;
26693
26694 p_balance_type_code := l_balance_type_code;
26695 -- set the flag so later we will know whether the gain loss line needs to be created
26696
26697 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26698 p_actual_flag :='A';
26699 END IF;
26700
26701 --
26702 -- bulk performance
26703 --
26704 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26705 p_header_num => 0); -- 4262811
26706 --
26707 -- set accounting line options
26708 --
26709 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26710 p_natural_side_code => 'C'
26711 , p_gain_or_loss_flag => 'N'
26712 , p_gl_transfer_mode_code => 'S'
26713 , p_acct_entry_type_code => 'E'
26714 , p_switch_side_flag => 'N'
26715 , p_merge_duplicate_code => 'N'
26716 );
26717 --
26718 l_acc_rev_natural_side_code := 'D'; -- 4262811
26719 --
26720 --
26721 -- set accounting line type info
26722 --
26723 xla_ae_lines_pkg.SetAcctLineType
26724 (p_component_type => l_component_type
26725 ,p_event_type_code => l_event_type_code
26726 ,p_line_definition_owner_code => l_line_definition_owner_code
26727 ,p_line_definition_code => l_line_definition_code
26728 ,p_accounting_line_code => l_component_code
26729 ,p_accounting_line_type_code => l_component_type_code
26730 ,p_accounting_line_appl_id => l_component_appl_id
26731 ,p_amb_context_code => l_amb_context_code
26732 ,p_entity_code => l_entity_code
26733 ,p_event_class_code => l_event_class_code);
26734 --
26735 -- set accounting class
26736 --
26737 xla_ae_lines_pkg.SetAcctClass(
26738 p_accounting_class_code => 'PURCHASE_ORDER'
26739 , p_ae_header_id => l_ae_header_id
26740 );
26741
26742 --
26743 -- set rounding class
26744 --
26745 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
26746 'PURCHASE_ORDER';
26747
26748 --
26749 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
26750 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
26751 --
26752 -- bulk performance
26753 --
26754 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
26755
26756 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
26757 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
26758
26759 -- 4955764
26760 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26761 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
26762
26763 -- 4458381 Public Sector Enh
26764
26765 --
26766 -- set accounting attributes for the line type
26767 --
26768 l_entered_amt_idx := 23;
26769 l_accted_amt_idx := 25;
26770 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26771 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
26772 l_rec_acct_attrs.array_char_value(1) := p_source_16;
26773 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
26774 l_rec_acct_attrs.array_num_value(2) :=
26775 xla_ae_sources_pkg.GetSystemSourceNum(
26776 p_source_code => 'XLA_EVENT_APPL_ID'
26777 , p_source_type_code => 'Y'
26778 , p_source_application_id => 602
26779 );
26780 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
26781 l_rec_acct_attrs.array_char_value(3) := p_source_49;
26782 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
26783 l_rec_acct_attrs.array_char_value(4) :=
26784 xla_ae_sources_pkg.GetSystemSourceChar(
26785 p_source_code => 'XLA_ENTITY_CODE'
26786 , p_source_type_code => 'Y'
26787 , p_source_application_id => 602
26788 );
26789 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
26790 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_51);
26791 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
26792 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_66);
26793 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
26794 l_rec_acct_attrs.array_num_value(7) := p_source_53;
26795 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
26796 l_rec_acct_attrs.array_char_value(8) := p_source_54;
26797 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
26798 l_rec_acct_attrs.array_char_value(9) := p_source_55;
26799 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
26800 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_56);
26801 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
26802 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_57);
26803 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
26804 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_29);
26805 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
26806 l_rec_acct_attrs.array_char_value(13) := p_source_58;
26807 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
26808 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_11);
26809 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
26810 l_rec_acct_attrs.array_num_value(15) := p_source_33;
26811 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
26812 l_rec_acct_attrs.array_char_value(16) := p_source_34;
26813 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
26814 l_rec_acct_attrs.array_num_value(17) := p_source_35;
26815 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
26816 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_11);
26817 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
26818 l_rec_acct_attrs.array_num_value(19) := p_source_33;
26819 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
26820 l_rec_acct_attrs.array_char_value(20) := p_source_34;
26821 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
26822 l_rec_acct_attrs.array_num_value(21) := p_source_35;
26823 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
26824 l_rec_acct_attrs.array_char_value(22) := p_source_59;
26825 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
26826 l_rec_acct_attrs.array_num_value(23) := p_source_33;
26827 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
26828 l_rec_acct_attrs.array_char_value(24) := p_source_34;
26829 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
26830 l_rec_acct_attrs.array_num_value(25) := p_source_35;
26831 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
26832 l_rec_acct_attrs.array_char_value(26) := p_source_60;
26833 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
26834 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_56);
26835 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
26836 l_rec_acct_attrs.array_char_value(28) := p_source_54;
26837 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
26838 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_66);
26839 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
26840 l_rec_acct_attrs.array_num_value(30) := p_source_61;
26841 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
26842 l_rec_acct_attrs.array_num_value(31) := p_source_61;
26843
26844 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
26845 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
26846
26847 ---------------------------------------------------------------------------------------------------------------
26848 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
26849 ---------------------------------------------------------------------------------------------------------------
26850 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
26851
26852 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26853 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26854
26855 IF xla_accounting_cache_pkg.GetValueChar
26856 (p_source_code => 'LEDGER_CATEGORY_CODE'
26857 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
26858 AND l_bflow_method_code = 'PRIOR_ENTRY'
26859 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
26860 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
26861 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
26862 )
26863 THEN
26864 xla_ae_lines_pkg.BflowUpgEntry
26865 (p_business_method_code => l_bflow_method_code
26866 ,p_business_class_code => l_bflow_class_code
26867 ,p_balance_type => l_balance_type_code);
26868 ELSE
26869 NULL;
26870 XLA_AE_LINES_PKG.business_flow_validation(
26871 p_business_method_code => l_bflow_method_code
26872 ,p_business_class_code => l_bflow_class_code
26873 ,p_inherit_description_flag => l_inherit_desc_flag);
26874 END IF;
26875
26876 --
26877 -- call analytical criteria
26878 --
26879 -- Inherited Analytical Criteria for business flow method of Prior Entry.
26880 --
26881 -- call description
26882 --
26883 -- No description or it is inherited.
26884 --
26885 -- call ADRs
26886 -- Bug 4922099
26887 --
26888 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26889 (NVL(l_actual_upg_option, 'N') = 'O') OR
26890 (NVL(l_enc_upg_option, 'N') = 'O')
26891 )
26892 THEN
26893 NULL;
26894 --
26895 --
26896
26897 --
26898 --
26899 END IF;
26900 --
26901 -- Bug 4922099
26902 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
26903 (NVL(l_enc_upg_option, 'N') = 'O')
26904 ) AND
26905 (l_bflow_method_code = 'PRIOR_ENTRY')
26906 )
26907 THEN
26908 IF
26909 --
26910 1 = 1
26911 --
26912 THEN
26913 xla_accounting_err_pkg.build_message
26914 (p_appli_s_name => 'XLA'
26915 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26916 ,p_token_1 => 'LINE_NUMBER'
26917 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
26918 ,p_token_2 => 'LINE_TYPE_NAME'
26919 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
26920 l_component_type
26921 ,l_component_code
26922 ,l_component_type_code
26923 ,l_component_appl_id
26924 ,l_amb_context_code
26925 ,l_entity_code
26926 ,l_event_class_code
26927 )
26928 ,p_token_3 => 'OWNER'
26929 ,p_value_3 => xla_lookups_pkg.get_meaning(
26930 p_lookup_type => 'XLA_OWNER_TYPE'
26931 ,p_lookup_code => l_component_type_code
26932 )
26933 ,p_token_4 => 'PRODUCT_NAME'
26934 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
26935 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
26936 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
26937 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
26938 ,p_ae_header_id => NULL
26939 );
26940
26941 IF (C_LEVEL_ERROR>= g_log_level) THEN
26942 trace
26943 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26944 ,p_level => C_LEVEL_ERROR
26945 ,p_module => l_log_module);
26946 END IF;
26947 END IF;
26948 END IF;
26949 --
26950 --
26951 ------------------------------------------------------------------------------------------------
26952 -- 4219869 Business Flow
26953 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
26954 -- Prior Entry. Currently, the following code is always generated.
26955 ------------------------------------------------------------------------------------------------
26956 -- No ValidateCurrentLine for business flow method of Prior Entry
26957
26958 ------------------------------------------------------------------------------------
26959 -- 4219869 Business Flow
26960 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
26961 ------------------------------------------------------------------------------------
26962 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26963
26964 ----------------------------------------------------------------------------------
26965 -- 4219869 Business Flow
26966 -- Update journal entry status -- Need to generate this within IF <condition>
26967 ----------------------------------------------------------------------------------
26968 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26969 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
26970 ,p_balance_type_code => l_balance_type_code
26971 );
26972
26973 -------------------------------------------------------------------------------------------
26974 -- 4262811 - Generate the Accrual Reversal lines
26975 -------------------------------------------------------------------------------------------
26976 BEGIN
26977 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
26978 (g_array_event(p_event_id).array_value_num('header_index'));
26979 IF l_acc_rev_flag IS NULL THEN
26980 l_acc_rev_flag := 'N';
26981 END IF;
26982 EXCEPTION
26983 WHEN OTHERS THEN
26984 l_acc_rev_flag := 'N';
26985 END;
26986 --
26987 IF (l_acc_rev_flag = 'Y') THEN
26988
26989 -- 4645092 ------------------------------------------------------------------------------
26990 -- To allow MPA report to determine if it should generate report process
26991 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
26992 ------------------------------------------------------------------------------------------
26993
26994 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
26995 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
26996
26997 --
26998 -- Update the line information that should be overwritten
26999 --
27000 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27001 p_header_num => 1);
27002 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
27003
27004 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27005
27006 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
27007 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27008 END IF;
27009
27010 --
27011 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27012 --
27013 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27014 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
27015 ELSE
27016 ---------------------------------------------------------------------------------------------------
27017 -- 4262811a Switch Sign
27018 ---------------------------------------------------------------------------------------------------
27019 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
27020 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27021 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27022 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27023 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27024 -- 5132302
27025 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27026 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27027
27028 END IF;
27029
27030 -- 4955764
27031 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27032 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27033
27034
27035 XLA_AE_LINES_PKG.ValidateCurrentLine;
27036 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27037
27038 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27039 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27040 ,p_balance_type_code => l_balance_type_code);
27041
27042 END IF;
27043
27044 -----------------------------------------------------------------------------------------
27045 -- 4262811 Multiperiod Accounting
27046 -----------------------------------------------------------------------------------------
27047 -- No MPA option is assigned.
27048
27049
27050 END IF;
27051 END IF;
27052 --
27053
27054 --
27055 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27056 trace
27057 (p_msg => 'END of AcctLineType_50'
27058 ,p_level => C_LEVEL_PROCEDURE
27059 ,p_module => l_log_module);
27060 END IF;
27061 --
27062 EXCEPTION
27063 WHEN xla_exceptions_pkg.application_exception THEN
27064 RAISE;
27065 WHEN OTHERS THEN
27066 xla_exceptions_pkg.raise_message
27067 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_50');
27068 END AcctLineType_50;
27069 --
27070
27071 ---------------------------------------
27072 --
27073 -- PRIVATE FUNCTION
27074 -- AcctLineType_51
27075 --
27076 ---------------------------------------
27077 PROCEDURE AcctLineType_51 (
27078 p_application_id IN NUMBER
27079 ,p_event_id IN NUMBER
27080 ,p_calculate_acctd_flag IN VARCHAR2
27081 ,p_calculate_g_l_flag IN VARCHAR2
27082 ,p_actual_flag IN OUT VARCHAR2
27083 ,p_balance_type_code OUT VARCHAR2
27084 ,p_gain_or_loss_ref OUT VARCHAR2
27085
27086 --Project Name
27087 , p_source_3 IN VARCHAR2
27088 --Task Name
27089 , p_source_4 IN VARCHAR2
27090 --Project Expenditure Organization Identifier
27091 , p_source_5 IN NUMBER
27092 --Expenditure Type
27093 , p_source_6 IN VARCHAR2
27094 --Document Type
27095 , p_source_9 IN VARCHAR2
27096 --Budget Account
27097 , p_source_11 IN NUMBER
27098 --Main Or Backing Code
27099 , p_source_13 IN VARCHAR2
27100 --Burden Record Identifier
27101 , p_source_14 IN VARCHAR2
27102 , p_source_14_meaning IN VARCHAR2
27103 --Burden Amount Display Method
27104 , p_source_15 IN VARCHAR2
27105 --Accounting Reversal Flag
27106 , p_source_16 IN VARCHAR2
27107 --Allocated to Application Identifier
27108 , p_source_17 IN NUMBER
27109 --Allocated to Distribution Type
27110 , p_source_18 IN VARCHAR2
27111 --Allocated to Entity Code
27112 , p_source_19 IN VARCHAR2
27113 --Allocated to First Distribution Identifier
27114 , p_source_20 IN NUMBER
27115 --Allocated to First System Transaction Identifier
27116 , p_source_21 IN NUMBER
27117 --Purchase Order Burden Applied to Application Identifier
27118 , p_source_23 IN NUMBER
27119 --PO Distribution Type
27120 , p_source_24 IN VARCHAR2
27121 --Purchase Order Burden Applied to Entity Code
27122 , p_source_25 IN VARCHAR2
27123 --Purchase Order Burden Applied to First Distribution Identifier
27124 , p_source_26 IN NUMBER
27125 --Purchase Order Burden Applied to First System Transaction Identifier
27126 , p_source_27 IN NUMBER
27127 --Purchase Order Burden Applied to Second Distribution Identifier
27128 , p_source_28 IN VARCHAR2
27129 --PO Distribution Identifier
27130 , p_source_29 IN NUMBER
27131 --Line Type Name
27132 , p_source_30 IN VARCHAR2
27133 --Encumbrance Upgrade Credit Accounting Class
27134 , p_source_31 IN VARCHAR2
27135 --Encumbrance Upgrade Credit Account
27136 , p_source_32 IN NUMBER
27137 --Entered Amount
27138 , p_source_33 IN NUMBER
27139 --Currency Code
27140 , p_source_34 IN VARCHAR2
27141 --Accounted Amount
27142 , p_source_35 IN NUMBER
27143 --Encumbrance Upgrade Debit Accounting Class
27144 , p_source_36 IN VARCHAR2
27145 --Encumbrance Upgrade Debit Account
27146 , p_source_37 IN NUMBER
27147 --Use Encumbrances Upgrade Attributes Flag
27148 , p_source_38 IN VARCHAR2
27149 --Encumbrance Upgrade Credit Encumbrance Type
27150 , p_source_39 IN NUMBER
27151 --Encumbrance Upgrade Debit Encumbrance Type
27152 , p_source_40 IN NUMBER
27153 --Backing Requisition Prevent Encumbrance Flag Flipped
27154 , p_source_67 IN VARCHAR2
27155 )
27156 IS
27157
27158 l_component_type VARCHAR2(80);
27159 l_component_code VARCHAR2(30);
27160 l_component_type_code VARCHAR2(1);
27161 l_component_appl_id INTEGER;
27162 l_amb_context_code VARCHAR2(30);
27163 l_entity_code VARCHAR2(30);
27164 l_event_class_code VARCHAR2(30);
27165 l_ae_header_id NUMBER;
27166 l_event_type_code VARCHAR2(30);
27167 l_line_definition_code VARCHAR2(30);
27168 l_line_definition_owner_code VARCHAR2(1);
27169 --
27170 -- adr variables
27171 l_segment VARCHAR2(30);
27172 l_ccid NUMBER;
27173 l_adr_transaction_coa_id NUMBER;
27174 l_adr_accounting_coa_id NUMBER;
27175 l_adr_flexfield_segment_code VARCHAR2(30);
27176 l_adr_flex_value_set_id NUMBER;
27177 l_adr_value_type_code VARCHAR2(30);
27178 l_adr_value_combination_id NUMBER;
27179 l_adr_value_segment_code VARCHAR2(30);
27180
27181 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
27182 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
27183 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
27184 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
27185
27186 -- 4262811 Variables ------------------------------------------------------------------------------------------
27187 l_entered_amt_idx NUMBER;
27188 l_accted_amt_idx NUMBER;
27189 l_acc_rev_flag VARCHAR2(1);
27190 l_accrual_line_num NUMBER;
27191 l_tmp_amt NUMBER;
27192 l_acc_rev_natural_side_code VARCHAR2(1);
27193
27194 l_num_entries NUMBER;
27195 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
27196 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
27197 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
27198 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
27199 l_recog_line_1 NUMBER;
27200 l_recog_line_2 NUMBER;
27201
27202 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
27203 l_bflow_applied_to_amt NUMBER; -- 5132302
27204 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
27205
27206 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
27207
27208 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
27209 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
27210
27211 ---------------------------------------------------------------------------------------------------------------
27212
27213
27214 --
27215 -- bulk performance
27216 --
27217 l_balance_type_code VARCHAR2(1);
27218 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
27219 l_log_module VARCHAR2(240);
27220
27221 --
27222 -- Upgrade strategy
27223 --
27224 l_actual_upg_option VARCHAR2(1);
27225 l_enc_upg_option VARCHAR2(1);
27226
27227 --
27228 BEGIN
27229 --
27230 IF g_log_enabled THEN
27231 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_51';
27232 END IF;
27233 --
27234 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27235
27236 trace
27237 (p_msg => 'BEGIN of AcctLineType_51'
27238 ,p_level => C_LEVEL_PROCEDURE
27239 ,p_module => l_log_module);
27240
27241 END IF;
27242 --
27243 l_component_type := 'AMB_JLT';
27244 l_component_code := 'RELIEVE_UNENC_BURDEND_REQFORPO';
27245 l_component_type_code := 'S';
27246 l_component_appl_id := 201;
27247 l_amb_context_code := 'DEFAULT';
27248 l_entity_code := 'PURCHASE_ORDER';
27249 l_event_class_code := 'PO_BURDEN';
27250 l_event_type_code := 'PO_BURDEN_ALL';
27251 l_line_definition_owner_code := 'S';
27252 l_line_definition_code := 'PO_BURDEN_ENC_ALL';
27253 --
27254 l_balance_type_code := 'E';
27255 l_segment := NULL;
27256 l_ccid := NULL;
27257 l_adr_transaction_coa_id := NULL;
27258 l_adr_accounting_coa_id := NULL;
27259 l_adr_flexfield_segment_code := NULL;
27260 l_adr_flex_value_set_id := NULL;
27261 l_adr_value_type_code := NULL;
27262 l_adr_value_combination_id := NULL;
27263 l_adr_value_segment_code := NULL;
27264
27265 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
27266 l_bflow_class_code := ''; -- 4219869 Business Flow
27267 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
27268 l_budgetary_control_flag := 'Y';
27269
27270 l_bflow_applied_to_amt_idx := NULL; -- 5132302
27271 l_bflow_applied_to_amt := NULL; -- 5132302
27272 l_entered_amt_idx := NULL; -- 4262811
27273 l_accted_amt_idx := NULL; -- 4262811
27274 l_acc_rev_flag := NULL; -- 4262811
27275 l_accrual_line_num := NULL; -- 4262811
27276 l_tmp_amt := NULL; -- 4262811
27277 --
27278
27279 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
27280 l_balance_type_code <> 'B' THEN
27281 IF NVL(
27282 xla_ae_sources_pkg.GetSystemSourceChar(
27283 p_source_code => 'XLA_EVENT_TYPE_CODE'
27284 , p_source_type_code => 'Y'
27285 , p_source_application_id => 602
27286 ),'
27287 ') = 'PO_BURDEN_RESERVED' AND
27288 NVL(p_source_13,'
27289 ') = 'B_REQ' AND
27290 (NVL(p_source_14,'
27291 ') = 'N' OR
27292 NVL(p_source_14,'
27293 ') = 'O') AND
27294 NVL(p_source_9,'
27295 ') = 'REQ' AND
27296 NVL(p_source_15,'
27297 ') = 'S' AND
27298 NVL(p_source_67,'
27299 ') = 'Y'
27300 THEN
27301
27302 --
27303 XLA_AE_LINES_PKG.SetNewLine;
27304
27305 p_balance_type_code := l_balance_type_code;
27306 -- set the flag so later we will know whether the gain loss line needs to be created
27307
27308 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
27309 p_actual_flag :='A';
27310 END IF;
27311
27312 --
27313 -- bulk performance
27314 --
27315 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
27316 p_header_num => 0); -- 4262811
27317 --
27318 -- set accounting line options
27319 --
27320 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
27321 p_natural_side_code => 'C'
27322 , p_gain_or_loss_flag => 'N'
27323 , p_gl_transfer_mode_code => 'S'
27324 , p_acct_entry_type_code => 'E'
27325 , p_switch_side_flag => 'N'
27326 , p_merge_duplicate_code => 'N'
27327 );
27328 --
27329 l_acc_rev_natural_side_code := 'D'; -- 4262811
27330 --
27331 --
27332 -- set accounting line type info
27333 --
27334 xla_ae_lines_pkg.SetAcctLineType
27335 (p_component_type => l_component_type
27336 ,p_event_type_code => l_event_type_code
27337 ,p_line_definition_owner_code => l_line_definition_owner_code
27338 ,p_line_definition_code => l_line_definition_code
27339 ,p_accounting_line_code => l_component_code
27340 ,p_accounting_line_type_code => l_component_type_code
27341 ,p_accounting_line_appl_id => l_component_appl_id
27342 ,p_amb_context_code => l_amb_context_code
27343 ,p_entity_code => l_entity_code
27344 ,p_event_class_code => l_event_class_code);
27345 --
27346 -- set accounting class
27347 --
27348 xla_ae_lines_pkg.SetAcctClass(
27349 p_accounting_class_code => 'REQ_PA_BURDENED'
27350 , p_ae_header_id => l_ae_header_id
27351 );
27352
27353 --
27354 -- set rounding class
27355 --
27356 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
27357 'REQ_PA_BURDENED';
27358
27359 --
27360 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
27361 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
27362 --
27363 -- bulk performance
27364 --
27365 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
27366
27367 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
27368 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
27369
27370 -- 4955764
27371 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27372 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
27373
27374 -- 4458381 Public Sector Enh
27375 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1000;
27376 --
27377 -- set accounting attributes for the line type
27378 --
27379 l_entered_amt_idx := 27;
27380 l_accted_amt_idx := 29;
27381 l_bflow_applied_to_amt_idx := NULL; -- 5132302
27382 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
27383 l_rec_acct_attrs.array_char_value(1) := p_source_16;
27384 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
27385 l_rec_acct_attrs.array_num_value(2) := p_source_17;
27386 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
27387 l_rec_acct_attrs.array_char_value(3) := p_source_18;
27388 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
27389 l_rec_acct_attrs.array_char_value(4) := p_source_19;
27390 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
27391 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
27392 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
27393 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
27394 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
27395 l_rec_acct_attrs.array_num_value(7) := p_source_23;
27396 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
27397 l_rec_acct_attrs.array_char_value(8) := p_source_24;
27398 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
27399 l_rec_acct_attrs.array_char_value(9) := p_source_25;
27400 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
27401 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_26);
27402 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
27403 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_27);
27404 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
27405 l_rec_acct_attrs.array_char_value(12) := p_source_28;
27406 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
27407 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_29);
27408 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
27409 l_rec_acct_attrs.array_char_value(14) := p_source_6;
27410 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
27411 l_rec_acct_attrs.array_char_value(15) := p_source_30;
27412 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
27413 l_rec_acct_attrs.array_char_value(16) := p_source_31;
27414 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
27415 l_rec_acct_attrs.array_num_value(17) := p_source_32;
27416 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
27417 l_rec_acct_attrs.array_num_value(18) := p_source_33;
27418 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
27419 l_rec_acct_attrs.array_char_value(19) := p_source_34;
27420 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
27421 l_rec_acct_attrs.array_num_value(20) := p_source_35;
27422 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
27423 l_rec_acct_attrs.array_char_value(21) := p_source_36;
27424 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
27425 l_rec_acct_attrs.array_num_value(22) := p_source_37;
27426 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
27427 l_rec_acct_attrs.array_num_value(23) := p_source_33;
27428 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
27429 l_rec_acct_attrs.array_char_value(24) := p_source_34;
27430 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
27431 l_rec_acct_attrs.array_num_value(25) := p_source_35;
27432 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
27433 l_rec_acct_attrs.array_char_value(26) := p_source_38;
27434 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
27435 l_rec_acct_attrs.array_num_value(27) := p_source_33;
27436 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
27437 l_rec_acct_attrs.array_char_value(28) := p_source_34;
27438 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
27439 l_rec_acct_attrs.array_num_value(29) := p_source_35;
27440 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
27441 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_29);
27442 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
27443 l_rec_acct_attrs.array_char_value(31) := p_source_6;
27444 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
27445 l_rec_acct_attrs.array_char_value(32) := p_source_30;
27446 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
27447 l_rec_acct_attrs.array_num_value(33) := p_source_39;
27448 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
27449 l_rec_acct_attrs.array_num_value(34) := p_source_40;
27450
27451 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
27452 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
27453
27454 ---------------------------------------------------------------------------------------------------------------
27455 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
27456 ---------------------------------------------------------------------------------------------------------------
27457 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
27458
27459 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27460 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27461
27462 IF xla_accounting_cache_pkg.GetValueChar
27463 (p_source_code => 'LEDGER_CATEGORY_CODE'
27464 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
27465 AND l_bflow_method_code = 'PRIOR_ENTRY'
27466 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
27467 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
27468 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
27469 )
27470 THEN
27471 xla_ae_lines_pkg.BflowUpgEntry
27472 (p_business_method_code => l_bflow_method_code
27473 ,p_business_class_code => l_bflow_class_code
27474 ,p_balance_type => l_balance_type_code);
27475 ELSE
27476 NULL;
27477 -- No business flow processing for business flow method of NONE.
27478 END IF;
27479
27480 --
27481 -- call analytical criteria
27482 --
27483
27484 --
27485 -- call description
27486 --
27487
27488 xla_ae_lines_pkg.SetLineDescription(
27489 p_ae_header_id => l_ae_header_id
27490 ,p_description => Description_2 (
27491 p_application_id => p_application_id
27492 , p_ae_header_id => l_ae_header_id
27493 , p_source_3 => p_source_3
27494 , p_source_4 => p_source_4
27495 , p_source_5 => p_source_5
27496 , p_source_6 => p_source_6
27497 )
27498 );
27499
27500
27501 --
27502 -- call ADRs
27503 -- Bug 4922099
27504 --
27505 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27506 (NVL(l_actual_upg_option, 'N') = 'O') OR
27507 (NVL(l_enc_upg_option, 'N') = 'O')
27508 )
27509 THEN
27510 NULL;
27511 --
27512 --
27513
27514 l_ccid := AcctDerRule_6(
27515 p_application_id => p_application_id
27516 , p_ae_header_id => l_ae_header_id
27517 , p_source_11 => p_source_11
27518 , x_transaction_coa_id => l_adr_transaction_coa_id
27519 , x_accounting_coa_id => l_adr_accounting_coa_id
27520 , x_value_type_code => l_adr_value_type_code
27521 , p_side => 'NA'
27522 );
27523
27524 xla_ae_lines_pkg.set_ccid(
27525 p_code_combination_id => l_ccid
27526 , p_value_type_code => l_adr_value_type_code
27527 , p_transaction_coa_id => l_adr_transaction_coa_id
27528 , p_accounting_coa_id => l_adr_accounting_coa_id
27529 , p_adr_code => 'PROJ_BURDENED_ENC_ACCT_RULE'
27530 , p_adr_type_code => 'S'
27531 , p_component_type => l_component_type
27532 , p_component_code => l_component_code
27533 , p_component_type_code => l_component_type_code
27534 , p_component_appl_id => l_component_appl_id
27535 , p_amb_context_code => l_amb_context_code
27536 , p_side => 'NA'
27537 );
27538
27539
27540 --
27541 --
27542 END IF;
27543 --
27544 -- Bug 4922099
27545 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
27546 (NVL(l_enc_upg_option, 'N') = 'O')
27547 ) AND
27548 (l_bflow_method_code = 'PRIOR_ENTRY')
27549 )
27550 THEN
27551 IF
27552 --
27553 1 = 2
27554 --
27555 THEN
27556 xla_accounting_err_pkg.build_message
27557 (p_appli_s_name => 'XLA'
27558 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27559 ,p_token_1 => 'LINE_NUMBER'
27560 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
27561 ,p_token_2 => 'LINE_TYPE_NAME'
27562 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
27563 l_component_type
27564 ,l_component_code
27565 ,l_component_type_code
27566 ,l_component_appl_id
27567 ,l_amb_context_code
27568 ,l_entity_code
27569 ,l_event_class_code
27570 )
27571 ,p_token_3 => 'OWNER'
27572 ,p_value_3 => xla_lookups_pkg.get_meaning(
27573 p_lookup_type => 'XLA_OWNER_TYPE'
27574 ,p_lookup_code => l_component_type_code
27575 )
27576 ,p_token_4 => 'PRODUCT_NAME'
27577 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
27578 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
27579 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
27580 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
27581 ,p_ae_header_id => NULL
27582 );
27583
27584 IF (C_LEVEL_ERROR>= g_log_level) THEN
27585 trace
27586 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27587 ,p_level => C_LEVEL_ERROR
27588 ,p_module => l_log_module);
27589 END IF;
27590 END IF;
27591 END IF;
27592 --
27593 --
27594 ------------------------------------------------------------------------------------------------
27595 -- 4219869 Business Flow
27596 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
27597 -- Prior Entry. Currently, the following code is always generated.
27598 ------------------------------------------------------------------------------------------------
27599 XLA_AE_LINES_PKG.ValidateCurrentLine;
27600
27601 ------------------------------------------------------------------------------------
27602 -- 4219869 Business Flow
27603 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
27604 ------------------------------------------------------------------------------------
27605 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27606
27607 ----------------------------------------------------------------------------------
27608 -- 4219869 Business Flow
27609 -- Update journal entry status -- Need to generate this within IF <condition>
27610 ----------------------------------------------------------------------------------
27611 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27612 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
27613 ,p_balance_type_code => l_balance_type_code
27614 );
27615
27616 -------------------------------------------------------------------------------------------
27617 -- 4262811 - Generate the Accrual Reversal lines
27618 -------------------------------------------------------------------------------------------
27619 BEGIN
27620 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
27621 (g_array_event(p_event_id).array_value_num('header_index'));
27622 IF l_acc_rev_flag IS NULL THEN
27623 l_acc_rev_flag := 'N';
27624 END IF;
27625 EXCEPTION
27626 WHEN OTHERS THEN
27627 l_acc_rev_flag := 'N';
27628 END;
27629 --
27630 IF (l_acc_rev_flag = 'Y') THEN
27631
27632 -- 4645092 ------------------------------------------------------------------------------
27633 -- To allow MPA report to determine if it should generate report process
27634 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
27635 ------------------------------------------------------------------------------------------
27636
27637 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
27638 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
27639
27640 --
27641 -- Update the line information that should be overwritten
27642 --
27643 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27644 p_header_num => 1);
27645 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
27646
27647 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27648
27649 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
27650 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27651 END IF;
27652
27653 --
27654 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27655 --
27656 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27657 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
27658 ELSE
27659 ---------------------------------------------------------------------------------------------------
27660 -- 4262811a Switch Sign
27661 ---------------------------------------------------------------------------------------------------
27662 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
27663 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27664 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27665 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27666 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27667 -- 5132302
27668 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27669 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27670
27671 END IF;
27672
27673 -- 4955764
27674 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27675 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27676
27677
27678 XLA_AE_LINES_PKG.ValidateCurrentLine;
27679 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27680
27681 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27682 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27683 ,p_balance_type_code => l_balance_type_code);
27684
27685 END IF;
27686
27687 -----------------------------------------------------------------------------------------
27688 -- 4262811 Multiperiod Accounting
27689 -----------------------------------------------------------------------------------------
27690 -- No MPA option is assigned.
27691
27692
27693 END IF;
27694 END IF;
27695 --
27696
27697 --
27698 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27699 trace
27700 (p_msg => 'END of AcctLineType_51'
27701 ,p_level => C_LEVEL_PROCEDURE
27702 ,p_module => l_log_module);
27703 END IF;
27704 --
27705 EXCEPTION
27706 WHEN xla_exceptions_pkg.application_exception THEN
27707 RAISE;
27708 WHEN OTHERS THEN
27709 xla_exceptions_pkg.raise_message
27710 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_51');
27711 END AcctLineType_51;
27712 --
27713
27714 ---------------------------------------
27715 --
27716 -- PRIVATE FUNCTION
27717 -- AcctLineType_52
27718 --
27719 ---------------------------------------
27720 PROCEDURE AcctLineType_52 (
27721 p_application_id IN NUMBER
27722 ,p_event_id IN NUMBER
27723 ,p_calculate_acctd_flag IN VARCHAR2
27724 ,p_calculate_g_l_flag IN VARCHAR2
27725 ,p_actual_flag IN OUT VARCHAR2
27726 ,p_balance_type_code OUT VARCHAR2
27727 ,p_gain_or_loss_ref OUT VARCHAR2
27728
27729 --Project Name
27730 , p_source_3 IN VARCHAR2
27731 --Task Name
27732 , p_source_4 IN VARCHAR2
27733 --Project Expenditure Organization Identifier
27734 , p_source_5 IN NUMBER
27735 --Expenditure Type
27736 , p_source_6 IN VARCHAR2
27737 --Document Type
27738 , p_source_9 IN VARCHAR2
27739 --Budget Account
27740 , p_source_11 IN NUMBER
27741 --Main Or Backing Code
27742 , p_source_13 IN VARCHAR2
27743 --Burden Record Identifier
27744 , p_source_14 IN VARCHAR2
27745 , p_source_14_meaning IN VARCHAR2
27746 --Burden Amount Display Method
27747 , p_source_15 IN VARCHAR2
27748 --Accounting Reversal Flag
27749 , p_source_16 IN VARCHAR2
27750 --Allocated to Application Identifier
27751 , p_source_17 IN NUMBER
27752 --Allocated to Distribution Type
27753 , p_source_18 IN VARCHAR2
27754 --Allocated to Entity Code
27755 , p_source_19 IN VARCHAR2
27756 --Allocated to First Distribution Identifier
27757 , p_source_20 IN NUMBER
27758 --Allocated to First System Transaction Identifier
27759 , p_source_21 IN NUMBER
27760 --Purchase Order Burden Applied to Application Identifier
27761 , p_source_23 IN NUMBER
27762 --PO Distribution Type
27763 , p_source_24 IN VARCHAR2
27764 --Purchase Order Burden Applied to Entity Code
27765 , p_source_25 IN VARCHAR2
27766 --Purchase Order Burden Applied to First Distribution Identifier
27767 , p_source_26 IN NUMBER
27768 --Purchase Order Burden Applied to First System Transaction Identifier
27769 , p_source_27 IN NUMBER
27770 --Purchase Order Burden Applied to Second Distribution Identifier
27771 , p_source_28 IN VARCHAR2
27772 --PO Distribution Identifier
27773 , p_source_29 IN NUMBER
27774 --Line Type Name
27775 , p_source_30 IN VARCHAR2
27776 --Encumbrance Upgrade Credit Accounting Class
27777 , p_source_31 IN VARCHAR2
27778 --Encumbrance Upgrade Credit Account
27779 , p_source_32 IN NUMBER
27780 --Entered Amount
27781 , p_source_33 IN NUMBER
27782 --Currency Code
27783 , p_source_34 IN VARCHAR2
27784 --Accounted Amount
27785 , p_source_35 IN NUMBER
27786 --Encumbrance Upgrade Debit Accounting Class
27787 , p_source_36 IN VARCHAR2
27788 --Encumbrance Upgrade Debit Account
27789 , p_source_37 IN NUMBER
27790 --Use Encumbrances Upgrade Attributes Flag
27791 , p_source_38 IN VARCHAR2
27792 --Encumbrance Upgrade Credit Encumbrance Type
27793 , p_source_39 IN NUMBER
27794 --Encumbrance Upgrade Debit Encumbrance Type
27795 , p_source_40 IN NUMBER
27796 --Backing Requisition Prevent Encumbrance Flag Flipped
27797 , p_source_67 IN VARCHAR2
27798 )
27799 IS
27800
27801 l_component_type VARCHAR2(80);
27802 l_component_code VARCHAR2(30);
27803 l_component_type_code VARCHAR2(1);
27804 l_component_appl_id INTEGER;
27805 l_amb_context_code VARCHAR2(30);
27806 l_entity_code VARCHAR2(30);
27807 l_event_class_code VARCHAR2(30);
27808 l_ae_header_id NUMBER;
27809 l_event_type_code VARCHAR2(30);
27810 l_line_definition_code VARCHAR2(30);
27811 l_line_definition_owner_code VARCHAR2(1);
27812 --
27813 -- adr variables
27814 l_segment VARCHAR2(30);
27815 l_ccid NUMBER;
27816 l_adr_transaction_coa_id NUMBER;
27817 l_adr_accounting_coa_id NUMBER;
27818 l_adr_flexfield_segment_code VARCHAR2(30);
27819 l_adr_flex_value_set_id NUMBER;
27820 l_adr_value_type_code VARCHAR2(30);
27821 l_adr_value_combination_id NUMBER;
27822 l_adr_value_segment_code VARCHAR2(30);
27823
27824 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
27825 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
27826 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
27827 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
27828
27829 -- 4262811 Variables ------------------------------------------------------------------------------------------
27830 l_entered_amt_idx NUMBER;
27831 l_accted_amt_idx NUMBER;
27832 l_acc_rev_flag VARCHAR2(1);
27833 l_accrual_line_num NUMBER;
27834 l_tmp_amt NUMBER;
27835 l_acc_rev_natural_side_code VARCHAR2(1);
27836
27837 l_num_entries NUMBER;
27838 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
27839 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
27840 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
27841 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
27842 l_recog_line_1 NUMBER;
27843 l_recog_line_2 NUMBER;
27844
27845 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
27846 l_bflow_applied_to_amt NUMBER; -- 5132302
27847 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
27848
27849 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
27850
27851 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
27852 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
27853
27854 ---------------------------------------------------------------------------------------------------------------
27855
27856
27857 --
27858 -- bulk performance
27859 --
27860 l_balance_type_code VARCHAR2(1);
27861 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
27862 l_log_module VARCHAR2(240);
27863
27864 --
27865 -- Upgrade strategy
27866 --
27867 l_actual_upg_option VARCHAR2(1);
27868 l_enc_upg_option VARCHAR2(1);
27869
27870 --
27871 BEGIN
27872 --
27873 IF g_log_enabled THEN
27874 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_52';
27875 END IF;
27876 --
27877 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27878
27879 trace
27880 (p_msg => 'BEGIN of AcctLineType_52'
27881 ,p_level => C_LEVEL_PROCEDURE
27882 ,p_module => l_log_module);
27883
27884 END IF;
27885 --
27886 l_component_type := 'AMB_JLT';
27887 l_component_code := 'RELIEVE_UNENC_BURDEN_REQFORPO';
27888 l_component_type_code := 'S';
27889 l_component_appl_id := 201;
27890 l_amb_context_code := 'DEFAULT';
27891 l_entity_code := 'PURCHASE_ORDER';
27892 l_event_class_code := 'PO_BURDEN';
27893 l_event_type_code := 'PO_BURDEN_ALL';
27894 l_line_definition_owner_code := 'S';
27895 l_line_definition_code := 'PO_BURDEN_ENC_ALL';
27896 --
27897 l_balance_type_code := 'E';
27898 l_segment := NULL;
27899 l_ccid := NULL;
27900 l_adr_transaction_coa_id := NULL;
27901 l_adr_accounting_coa_id := NULL;
27902 l_adr_flexfield_segment_code := NULL;
27903 l_adr_flex_value_set_id := NULL;
27904 l_adr_value_type_code := NULL;
27905 l_adr_value_combination_id := NULL;
27906 l_adr_value_segment_code := NULL;
27907
27908 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
27909 l_bflow_class_code := ''; -- 4219869 Business Flow
27910 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
27911 l_budgetary_control_flag := 'Y';
27912
27913 l_bflow_applied_to_amt_idx := NULL; -- 5132302
27914 l_bflow_applied_to_amt := NULL; -- 5132302
27915 l_entered_amt_idx := NULL; -- 4262811
27916 l_accted_amt_idx := NULL; -- 4262811
27917 l_acc_rev_flag := NULL; -- 4262811
27918 l_accrual_line_num := NULL; -- 4262811
27919 l_tmp_amt := NULL; -- 4262811
27920 --
27921
27922 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
27923 l_balance_type_code <> 'B' THEN
27924 IF NVL(
27925 xla_ae_sources_pkg.GetSystemSourceChar(
27926 p_source_code => 'XLA_EVENT_TYPE_CODE'
27927 , p_source_type_code => 'Y'
27928 , p_source_application_id => 602
27929 ),'
27930 ') = 'PO_BURDEN_RESERVED' AND
27931 NVL(p_source_13,'
27932 ') = 'B_REQ' AND
27933 NVL(p_source_14,'
27934 ') = 'O' AND
27935 NVL(p_source_9,'
27936 ') = 'REQ' AND
27937 NVL(p_source_15,'
27938 ') = 'D' AND
27939 NVL(p_source_67,'
27940 ') = 'Y'
27941 THEN
27942
27943 --
27944 XLA_AE_LINES_PKG.SetNewLine;
27945
27946 p_balance_type_code := l_balance_type_code;
27947 -- set the flag so later we will know whether the gain loss line needs to be created
27948
27949 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
27950 p_actual_flag :='A';
27951 END IF;
27952
27953 --
27954 -- bulk performance
27955 --
27956 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
27957 p_header_num => 0); -- 4262811
27958 --
27959 -- set accounting line options
27960 --
27961 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
27962 p_natural_side_code => 'C'
27963 , p_gain_or_loss_flag => 'N'
27964 , p_gl_transfer_mode_code => 'S'
27965 , p_acct_entry_type_code => 'E'
27966 , p_switch_side_flag => 'N'
27967 , p_merge_duplicate_code => 'N'
27968 );
27969 --
27970 l_acc_rev_natural_side_code := 'D'; -- 4262811
27971 --
27972 --
27973 -- set accounting line type info
27974 --
27975 xla_ae_lines_pkg.SetAcctLineType
27976 (p_component_type => l_component_type
27977 ,p_event_type_code => l_event_type_code
27978 ,p_line_definition_owner_code => l_line_definition_owner_code
27979 ,p_line_definition_code => l_line_definition_code
27980 ,p_accounting_line_code => l_component_code
27981 ,p_accounting_line_type_code => l_component_type_code
27982 ,p_accounting_line_appl_id => l_component_appl_id
27983 ,p_amb_context_code => l_amb_context_code
27984 ,p_entity_code => l_entity_code
27985 ,p_event_class_code => l_event_class_code);
27986 --
27987 -- set accounting class
27988 --
27989 xla_ae_lines_pkg.SetAcctClass(
27990 p_accounting_class_code => 'REQ_PA_BURDEN'
27991 , p_ae_header_id => l_ae_header_id
27992 );
27993
27994 --
27995 -- set rounding class
27996 --
27997 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
27998 'REQ_PA_BURDEN';
27999
28000 --
28001 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
28002 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
28003 --
28004 -- bulk performance
28005 --
28006 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
28007
28008 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
28009 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
28010
28011 -- 4955764
28012 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28013 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
28014
28015 -- 4458381 Public Sector Enh
28016 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1000;
28017 --
28018 -- set accounting attributes for the line type
28019 --
28020 l_entered_amt_idx := 27;
28021 l_accted_amt_idx := 29;
28022 l_bflow_applied_to_amt_idx := NULL; -- 5132302
28023 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
28024 l_rec_acct_attrs.array_char_value(1) := p_source_16;
28025 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
28026 l_rec_acct_attrs.array_num_value(2) := p_source_17;
28027 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
28028 l_rec_acct_attrs.array_char_value(3) := p_source_18;
28029 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
28030 l_rec_acct_attrs.array_char_value(4) := p_source_19;
28031 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
28032 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
28033 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
28034 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
28035 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
28036 l_rec_acct_attrs.array_num_value(7) := p_source_23;
28037 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
28038 l_rec_acct_attrs.array_char_value(8) := p_source_24;
28039 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
28040 l_rec_acct_attrs.array_char_value(9) := p_source_25;
28041 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
28042 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_26);
28043 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
28044 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_27);
28045 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
28046 l_rec_acct_attrs.array_char_value(12) := p_source_28;
28047 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
28048 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_29);
28049 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
28050 l_rec_acct_attrs.array_char_value(14) := p_source_6;
28051 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
28052 l_rec_acct_attrs.array_char_value(15) := p_source_30;
28053 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
28054 l_rec_acct_attrs.array_char_value(16) := p_source_31;
28055 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
28056 l_rec_acct_attrs.array_num_value(17) := p_source_32;
28057 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
28058 l_rec_acct_attrs.array_num_value(18) := p_source_33;
28059 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
28060 l_rec_acct_attrs.array_char_value(19) := p_source_34;
28061 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
28062 l_rec_acct_attrs.array_num_value(20) := p_source_35;
28063 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
28064 l_rec_acct_attrs.array_char_value(21) := p_source_36;
28065 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
28066 l_rec_acct_attrs.array_num_value(22) := p_source_37;
28067 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
28068 l_rec_acct_attrs.array_num_value(23) := p_source_33;
28069 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
28070 l_rec_acct_attrs.array_char_value(24) := p_source_34;
28071 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
28072 l_rec_acct_attrs.array_num_value(25) := p_source_35;
28073 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
28074 l_rec_acct_attrs.array_char_value(26) := p_source_38;
28075 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
28076 l_rec_acct_attrs.array_num_value(27) := p_source_33;
28077 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
28078 l_rec_acct_attrs.array_char_value(28) := p_source_34;
28079 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
28080 l_rec_acct_attrs.array_num_value(29) := p_source_35;
28081 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
28082 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_29);
28083 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
28084 l_rec_acct_attrs.array_char_value(31) := p_source_6;
28085 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
28086 l_rec_acct_attrs.array_char_value(32) := p_source_30;
28087 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
28088 l_rec_acct_attrs.array_num_value(33) := p_source_39;
28089 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
28090 l_rec_acct_attrs.array_num_value(34) := p_source_40;
28091
28092 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
28093 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
28094
28095 ---------------------------------------------------------------------------------------------------------------
28096 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
28097 ---------------------------------------------------------------------------------------------------------------
28098 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
28099
28100 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28101 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28102
28103 IF xla_accounting_cache_pkg.GetValueChar
28104 (p_source_code => 'LEDGER_CATEGORY_CODE'
28105 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
28106 AND l_bflow_method_code = 'PRIOR_ENTRY'
28107 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
28108 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
28109 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
28110 )
28111 THEN
28112 xla_ae_lines_pkg.BflowUpgEntry
28113 (p_business_method_code => l_bflow_method_code
28114 ,p_business_class_code => l_bflow_class_code
28115 ,p_balance_type => l_balance_type_code);
28116 ELSE
28117 NULL;
28118 -- No business flow processing for business flow method of NONE.
28119 END IF;
28120
28121 --
28122 -- call analytical criteria
28123 --
28124
28125 --
28126 -- call description
28127 --
28128
28129 xla_ae_lines_pkg.SetLineDescription(
28130 p_ae_header_id => l_ae_header_id
28131 ,p_description => Description_2 (
28132 p_application_id => p_application_id
28133 , p_ae_header_id => l_ae_header_id
28134 , p_source_3 => p_source_3
28135 , p_source_4 => p_source_4
28136 , p_source_5 => p_source_5
28137 , p_source_6 => p_source_6
28138 )
28139 );
28140
28141
28142 --
28143 -- call ADRs
28144 -- Bug 4922099
28145 --
28146 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28147 (NVL(l_actual_upg_option, 'N') = 'O') OR
28148 (NVL(l_enc_upg_option, 'N') = 'O')
28149 )
28150 THEN
28151 NULL;
28152 --
28153 --
28154
28155 l_ccid := AcctDerRule_7(
28156 p_application_id => p_application_id
28157 , p_ae_header_id => l_ae_header_id
28158 , p_source_11 => p_source_11
28159 , x_transaction_coa_id => l_adr_transaction_coa_id
28160 , x_accounting_coa_id => l_adr_accounting_coa_id
28161 , x_value_type_code => l_adr_value_type_code
28162 , p_side => 'NA'
28163 );
28164
28165 xla_ae_lines_pkg.set_ccid(
28166 p_code_combination_id => l_ccid
28167 , p_value_type_code => l_adr_value_type_code
28168 , p_transaction_coa_id => l_adr_transaction_coa_id
28169 , p_accounting_coa_id => l_adr_accounting_coa_id
28170 , p_adr_code => 'PROJ_BURDEN_ENC_ACCT_RULE'
28171 , p_adr_type_code => 'S'
28172 , p_component_type => l_component_type
28173 , p_component_code => l_component_code
28174 , p_component_type_code => l_component_type_code
28175 , p_component_appl_id => l_component_appl_id
28176 , p_amb_context_code => l_amb_context_code
28177 , p_side => 'NA'
28178 );
28179
28180
28181 --
28182 --
28183 END IF;
28184 --
28185 -- Bug 4922099
28186 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
28187 (NVL(l_enc_upg_option, 'N') = 'O')
28188 ) AND
28189 (l_bflow_method_code = 'PRIOR_ENTRY')
28190 )
28191 THEN
28192 IF
28193 --
28194 1 = 2
28195 --
28196 THEN
28197 xla_accounting_err_pkg.build_message
28198 (p_appli_s_name => 'XLA'
28199 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28200 ,p_token_1 => 'LINE_NUMBER'
28201 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
28202 ,p_token_2 => 'LINE_TYPE_NAME'
28203 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
28204 l_component_type
28205 ,l_component_code
28206 ,l_component_type_code
28207 ,l_component_appl_id
28208 ,l_amb_context_code
28209 ,l_entity_code
28210 ,l_event_class_code
28211 )
28212 ,p_token_3 => 'OWNER'
28213 ,p_value_3 => xla_lookups_pkg.get_meaning(
28214 p_lookup_type => 'XLA_OWNER_TYPE'
28215 ,p_lookup_code => l_component_type_code
28216 )
28217 ,p_token_4 => 'PRODUCT_NAME'
28218 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
28219 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
28220 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
28221 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
28222 ,p_ae_header_id => NULL
28223 );
28224
28225 IF (C_LEVEL_ERROR>= g_log_level) THEN
28226 trace
28227 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28228 ,p_level => C_LEVEL_ERROR
28229 ,p_module => l_log_module);
28230 END IF;
28231 END IF;
28232 END IF;
28233 --
28234 --
28235 ------------------------------------------------------------------------------------------------
28236 -- 4219869 Business Flow
28237 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
28238 -- Prior Entry. Currently, the following code is always generated.
28239 ------------------------------------------------------------------------------------------------
28240 XLA_AE_LINES_PKG.ValidateCurrentLine;
28241
28242 ------------------------------------------------------------------------------------
28243 -- 4219869 Business Flow
28244 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
28245 ------------------------------------------------------------------------------------
28246 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28247
28248 ----------------------------------------------------------------------------------
28249 -- 4219869 Business Flow
28250 -- Update journal entry status -- Need to generate this within IF <condition>
28251 ----------------------------------------------------------------------------------
28252 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28253 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
28254 ,p_balance_type_code => l_balance_type_code
28255 );
28256
28257 -------------------------------------------------------------------------------------------
28258 -- 4262811 - Generate the Accrual Reversal lines
28259 -------------------------------------------------------------------------------------------
28260 BEGIN
28261 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
28262 (g_array_event(p_event_id).array_value_num('header_index'));
28263 IF l_acc_rev_flag IS NULL THEN
28264 l_acc_rev_flag := 'N';
28265 END IF;
28266 EXCEPTION
28267 WHEN OTHERS THEN
28268 l_acc_rev_flag := 'N';
28269 END;
28270 --
28271 IF (l_acc_rev_flag = 'Y') THEN
28272
28273 -- 4645092 ------------------------------------------------------------------------------
28274 -- To allow MPA report to determine if it should generate report process
28275 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
28276 ------------------------------------------------------------------------------------------
28277
28278 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
28279 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
28280
28281 --
28282 -- Update the line information that should be overwritten
28283 --
28284 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
28285 p_header_num => 1);
28286 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
28287
28288 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
28289
28290 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
28291 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
28292 END IF;
28293
28294 --
28295 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
28296 --
28297 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
28298 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
28299 ELSE
28300 ---------------------------------------------------------------------------------------------------
28301 -- 4262811a Switch Sign
28302 ---------------------------------------------------------------------------------------------------
28303 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
28304 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28305 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28306 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28307 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28308 -- 5132302
28309 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
28310 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28311
28312 END IF;
28313
28314 -- 4955764
28315 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28316 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
28317
28318
28319 XLA_AE_LINES_PKG.ValidateCurrentLine;
28320 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28321
28322 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28323 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
28324 ,p_balance_type_code => l_balance_type_code);
28325
28326 END IF;
28327
28328 -----------------------------------------------------------------------------------------
28329 -- 4262811 Multiperiod Accounting
28330 -----------------------------------------------------------------------------------------
28331 -- No MPA option is assigned.
28332
28333
28334 END IF;
28335 END IF;
28336 --
28337
28338 --
28339 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28340 trace
28341 (p_msg => 'END of AcctLineType_52'
28342 ,p_level => C_LEVEL_PROCEDURE
28343 ,p_module => l_log_module);
28344 END IF;
28345 --
28346 EXCEPTION
28347 WHEN xla_exceptions_pkg.application_exception THEN
28348 RAISE;
28349 WHEN OTHERS THEN
28350 xla_exceptions_pkg.raise_message
28351 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_52');
28352 END AcctLineType_52;
28353 --
28354
28355 ---------------------------------------
28356 --
28357 -- PRIVATE FUNCTION
28358 -- AcctLineType_53
28359 --
28360 ---------------------------------------
28361 PROCEDURE AcctLineType_53 (
28362 p_application_id IN NUMBER
28363 ,p_event_id IN NUMBER
28364 ,p_calculate_acctd_flag IN VARCHAR2
28365 ,p_calculate_g_l_flag IN VARCHAR2
28366 ,p_actual_flag IN OUT VARCHAR2
28367 ,p_balance_type_code OUT VARCHAR2
28368 ,p_gain_or_loss_ref OUT VARCHAR2
28369
28370 --Journal entry Line Description
28371 , p_source_7 IN VARCHAR2
28372 --Budget Account
28373 , p_source_11 IN NUMBER
28374 --Main Or Backing Code
28375 , p_source_13 IN VARCHAR2
28376 --Accounting Reversal Flag
28377 , p_source_16 IN VARCHAR2
28378 --PO Distribution Identifier
28379 , p_source_29 IN NUMBER
28380 --Entered Amount
28381 , p_source_33 IN NUMBER
28382 --Currency Code
28383 , p_source_34 IN VARCHAR2
28384 --Accounted Amount
28385 , p_source_35 IN NUMBER
28386 --Allocated to Main Document Distribution Identifier
28387 , p_source_51 IN NUMBER
28388 --PO Header Identifier
28389 , p_source_52 IN NUMBER
28390 --Applied To Application Identifier
28391 , p_source_53 IN NUMBER
28392 --Applied To Distribution Link Type
28393 , p_source_54 IN VARCHAR2
28394 --Applied To Entity Code
28395 , p_source_55 IN VARCHAR2
28396 --Applied To Distribution Identifier 1
28397 , p_source_56 IN NUMBER
28398 --Applied To Header Identifier 1
28399 , p_source_57 IN NUMBER
28400 --Distribution Link Type
28401 , p_source_58 IN VARCHAR2
28402 --PO Encumbrance Upgrade Option
28403 , p_source_59 IN VARCHAR2
28404 --JFMIP Reference
28405 , p_source_60 IN VARCHAR2
28406 --PO Upgrade Encumbrance Type Identifier
28407 , p_source_61 IN NUMBER
28408 --Currency Conversion Date
28409 , p_source_62 IN DATE
28410 --Currency Conversion Rate
28411 , p_source_63 IN NUMBER
28412 --Currency Conversion Type
28413 , p_source_64 IN VARCHAR2
28414 --Backing Requisition Prevent Encumbrance Changed Flag
28415 , p_source_65 IN VARCHAR2
28416 )
28417 IS
28418
28419 l_component_type VARCHAR2(80);
28420 l_component_code VARCHAR2(30);
28421 l_component_type_code VARCHAR2(1);
28422 l_component_appl_id INTEGER;
28423 l_amb_context_code VARCHAR2(30);
28424 l_entity_code VARCHAR2(30);
28425 l_event_class_code VARCHAR2(30);
28426 l_ae_header_id NUMBER;
28427 l_event_type_code VARCHAR2(30);
28428 l_line_definition_code VARCHAR2(30);
28429 l_line_definition_owner_code VARCHAR2(1);
28430 --
28431 -- adr variables
28432 l_segment VARCHAR2(30);
28433 l_ccid NUMBER;
28434 l_adr_transaction_coa_id NUMBER;
28435 l_adr_accounting_coa_id NUMBER;
28436 l_adr_flexfield_segment_code VARCHAR2(30);
28437 l_adr_flex_value_set_id NUMBER;
28438 l_adr_value_type_code VARCHAR2(30);
28439 l_adr_value_combination_id NUMBER;
28440 l_adr_value_segment_code VARCHAR2(30);
28441
28442 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
28443 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
28444 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
28445 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
28446
28447 -- 4262811 Variables ------------------------------------------------------------------------------------------
28448 l_entered_amt_idx NUMBER;
28449 l_accted_amt_idx NUMBER;
28450 l_acc_rev_flag VARCHAR2(1);
28451 l_accrual_line_num NUMBER;
28452 l_tmp_amt NUMBER;
28453 l_acc_rev_natural_side_code VARCHAR2(1);
28454
28455 l_num_entries NUMBER;
28456 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
28457 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
28458 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
28459 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
28460 l_recog_line_1 NUMBER;
28461 l_recog_line_2 NUMBER;
28462
28463 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
28464 l_bflow_applied_to_amt NUMBER; -- 5132302
28465 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
28466
28467 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
28468
28469 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
28470 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
28471
28472 ---------------------------------------------------------------------------------------------------------------
28473
28474
28475 --
28476 -- bulk performance
28477 --
28478 l_balance_type_code VARCHAR2(1);
28479 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
28480 l_log_module VARCHAR2(240);
28481
28482 --
28483 -- Upgrade strategy
28484 --
28485 l_actual_upg_option VARCHAR2(1);
28486 l_enc_upg_option VARCHAR2(1);
28487
28488 --
28489 BEGIN
28490 --
28491 IF g_log_enabled THEN
28492 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_53';
28493 END IF;
28494 --
28495 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28496
28497 trace
28498 (p_msg => 'BEGIN of AcctLineType_53'
28499 ,p_level => C_LEVEL_PROCEDURE
28500 ,p_module => l_log_module);
28501
28502 END IF;
28503 --
28504 l_component_type := 'AMB_JLT';
28505 l_component_code := 'RELIEVE_UNENC_REQ_ENC_FROM_PO';
28506 l_component_type_code := 'S';
28507 l_component_appl_id := 201;
28508 l_amb_context_code := 'DEFAULT';
28509 l_entity_code := 'PURCHASE_ORDER';
28510 l_event_class_code := 'PO_PA';
28511 l_event_type_code := 'PO_PA_ALL';
28512 l_line_definition_owner_code := 'S';
28513 l_line_definition_code := 'PO_PA_ENC_ALL';
28514 --
28515 l_balance_type_code := 'E';
28516 l_segment := NULL;
28517 l_ccid := NULL;
28518 l_adr_transaction_coa_id := NULL;
28519 l_adr_accounting_coa_id := NULL;
28520 l_adr_flexfield_segment_code := NULL;
28521 l_adr_flex_value_set_id := NULL;
28522 l_adr_value_type_code := NULL;
28523 l_adr_value_combination_id := NULL;
28524 l_adr_value_segment_code := NULL;
28525
28526 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
28527 l_bflow_class_code := ''; -- 4219869 Business Flow
28528 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
28529 l_budgetary_control_flag := 'Y';
28530
28531 l_bflow_applied_to_amt_idx := NULL; -- 5132302
28532 l_bflow_applied_to_amt := NULL; -- 5132302
28533 l_entered_amt_idx := NULL; -- 4262811
28534 l_accted_amt_idx := NULL; -- 4262811
28535 l_acc_rev_flag := NULL; -- 4262811
28536 l_accrual_line_num := NULL; -- 4262811
28537 l_tmp_amt := NULL; -- 4262811
28538 --
28539
28540 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
28541 l_balance_type_code <> 'B' THEN
28542 IF NVL(
28543 xla_ae_sources_pkg.GetSystemSourceChar(
28544 p_source_code => 'XLA_EVENT_TYPE_CODE'
28545 , p_source_type_code => 'Y'
28546 , p_source_application_id => 602
28547 ),'
28548 ') = 'PO_PA_RESERVED' AND
28549 NVL(p_source_13,'
28550 ') = 'B_REQ' AND
28551 NVL(p_source_65,'
28552 ') = 'Y'
28553 THEN
28554
28555 --
28556 XLA_AE_LINES_PKG.SetNewLine;
28557
28558 p_balance_type_code := l_balance_type_code;
28559 -- set the flag so later we will know whether the gain loss line needs to be created
28560
28561 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
28562 p_actual_flag :='A';
28563 END IF;
28564
28565 --
28566 -- bulk performance
28567 --
28568 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
28569 p_header_num => 0); -- 4262811
28570 --
28571 -- set accounting line options
28572 --
28573 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
28574 p_natural_side_code => 'C'
28575 , p_gain_or_loss_flag => 'N'
28576 , p_gl_transfer_mode_code => 'S'
28577 , p_acct_entry_type_code => 'E'
28578 , p_switch_side_flag => 'N'
28579 , p_merge_duplicate_code => 'N'
28580 );
28581 --
28582 l_acc_rev_natural_side_code := 'D'; -- 4262811
28583 --
28584 --
28585 -- set accounting line type info
28586 --
28587 xla_ae_lines_pkg.SetAcctLineType
28588 (p_component_type => l_component_type
28589 ,p_event_type_code => l_event_type_code
28590 ,p_line_definition_owner_code => l_line_definition_owner_code
28591 ,p_line_definition_code => l_line_definition_code
28592 ,p_accounting_line_code => l_component_code
28593 ,p_accounting_line_type_code => l_component_type_code
28594 ,p_accounting_line_appl_id => l_component_appl_id
28595 ,p_amb_context_code => l_amb_context_code
28596 ,p_entity_code => l_entity_code
28597 ,p_event_class_code => l_event_class_code);
28598 --
28599 -- set accounting class
28600 --
28601 xla_ae_lines_pkg.SetAcctClass(
28602 p_accounting_class_code => 'REQUISITION'
28603 , p_ae_header_id => l_ae_header_id
28604 );
28605
28606 --
28607 -- set rounding class
28608 --
28609 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
28610 'REQUISITION';
28611
28612 --
28613 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
28614 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
28615 --
28616 -- bulk performance
28617 --
28618 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
28619
28620 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
28621 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
28622
28623 -- 4955764
28624 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28625 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
28626
28627 -- 4458381 Public Sector Enh
28628 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1000;
28629 --
28630 -- set accounting attributes for the line type
28631 --
28632 l_entered_amt_idx := 23;
28633 l_accted_amt_idx := 28;
28634 l_bflow_applied_to_amt_idx := NULL; -- 5132302
28635 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
28636 l_rec_acct_attrs.array_char_value(1) := p_source_16;
28637 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
28638 l_rec_acct_attrs.array_num_value(2) :=
28639 xla_ae_sources_pkg.GetSystemSourceNum(
28640 p_source_code => 'XLA_EVENT_APPL_ID'
28641 , p_source_type_code => 'Y'
28642 , p_source_application_id => 602
28643 );
28644 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
28645 l_rec_acct_attrs.array_char_value(3) := p_source_58;
28646 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
28647 l_rec_acct_attrs.array_char_value(4) :=
28648 xla_ae_sources_pkg.GetSystemSourceChar(
28649 p_source_code => 'XLA_ENTITY_CODE'
28650 , p_source_type_code => 'Y'
28651 , p_source_application_id => 602
28652 );
28653 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
28654 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_51);
28655 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
28656 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_52);
28657 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
28658 l_rec_acct_attrs.array_num_value(7) := p_source_53;
28659 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
28660 l_rec_acct_attrs.array_char_value(8) := p_source_54;
28661 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
28662 l_rec_acct_attrs.array_char_value(9) := p_source_55;
28663 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
28664 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_56);
28665 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
28666 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_57);
28667 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
28668 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_29);
28669 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
28670 l_rec_acct_attrs.array_char_value(13) := p_source_58;
28671 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
28672 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_11);
28673 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
28674 l_rec_acct_attrs.array_num_value(15) := p_source_33;
28675 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
28676 l_rec_acct_attrs.array_char_value(16) := p_source_34;
28677 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
28678 l_rec_acct_attrs.array_num_value(17) := p_source_35;
28679 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
28680 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_11);
28681 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
28682 l_rec_acct_attrs.array_num_value(19) := p_source_33;
28683 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
28684 l_rec_acct_attrs.array_char_value(20) := p_source_34;
28685 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
28686 l_rec_acct_attrs.array_num_value(21) := p_source_35;
28687 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
28688 l_rec_acct_attrs.array_char_value(22) := p_source_59;
28689 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
28690 l_rec_acct_attrs.array_num_value(23) := p_source_33;
28691 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
28692 l_rec_acct_attrs.array_char_value(24) := p_source_34;
28693 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
28694 l_rec_acct_attrs.array_date_value(25) := p_source_62;
28695 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
28696 l_rec_acct_attrs.array_num_value(26) := p_source_63;
28697 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
28698 l_rec_acct_attrs.array_char_value(27) := p_source_64;
28699 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
28700 l_rec_acct_attrs.array_num_value(28) := p_source_35;
28701 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
28702 l_rec_acct_attrs.array_char_value(29) := p_source_60;
28703 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
28704 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_56);
28705 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
28706 l_rec_acct_attrs.array_char_value(31) := p_source_54;
28707 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
28708 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_29);
28709 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
28710 l_rec_acct_attrs.array_num_value(33) := p_source_61;
28711 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
28712 l_rec_acct_attrs.array_num_value(34) := p_source_61;
28713
28714 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
28715 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
28716
28717 ---------------------------------------------------------------------------------------------------------------
28718 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
28719 ---------------------------------------------------------------------------------------------------------------
28720 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
28721
28722 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28723 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28724
28725 IF xla_accounting_cache_pkg.GetValueChar
28726 (p_source_code => 'LEDGER_CATEGORY_CODE'
28727 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
28728 AND l_bflow_method_code = 'PRIOR_ENTRY'
28729 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
28730 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
28731 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
28732 )
28733 THEN
28734 xla_ae_lines_pkg.BflowUpgEntry
28735 (p_business_method_code => l_bflow_method_code
28736 ,p_business_class_code => l_bflow_class_code
28737 ,p_balance_type => l_balance_type_code);
28738 ELSE
28739 NULL;
28740 -- No business flow processing for business flow method of NONE.
28741 END IF;
28742
28743 --
28744 -- call analytical criteria
28745 --
28746
28747 --
28748 -- call description
28749 --
28750
28751 xla_ae_lines_pkg.SetLineDescription(
28752 p_ae_header_id => l_ae_header_id
28753 ,p_description => Description_3 (
28754 p_application_id => p_application_id
28755 , p_ae_header_id => l_ae_header_id
28756 , p_source_7 => p_source_7
28757 )
28758 );
28759
28760
28761 --
28762 -- call ADRs
28763 -- Bug 4922099
28764 --
28765 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28766 (NVL(l_actual_upg_option, 'N') = 'O') OR
28767 (NVL(l_enc_upg_option, 'N') = 'O')
28768 )
28769 THEN
28770 NULL;
28771 --
28772 --
28773
28774 l_ccid := AcctDerRule_8(
28775 p_application_id => p_application_id
28776 , p_ae_header_id => l_ae_header_id
28777 , p_source_11 => p_source_11
28778 , x_transaction_coa_id => l_adr_transaction_coa_id
28779 , x_accounting_coa_id => l_adr_accounting_coa_id
28780 , x_value_type_code => l_adr_value_type_code
28781 , p_side => 'NA'
28782 );
28783
28784 xla_ae_lines_pkg.set_ccid(
28785 p_code_combination_id => l_ccid
28786 , p_value_type_code => l_adr_value_type_code
28787 , p_transaction_coa_id => l_adr_transaction_coa_id
28788 , p_accounting_coa_id => l_adr_accounting_coa_id
28789 , p_adr_code => 'PURCHASING_ENCUMBRANCE_ADR'
28790 , p_adr_type_code => 'S'
28791 , p_component_type => l_component_type
28792 , p_component_code => l_component_code
28793 , p_component_type_code => l_component_type_code
28794 , p_component_appl_id => l_component_appl_id
28795 , p_amb_context_code => l_amb_context_code
28796 , p_side => 'NA'
28797 );
28798
28799
28800 --
28801 --
28802 END IF;
28803 --
28804 -- Bug 4922099
28805 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
28806 (NVL(l_enc_upg_option, 'N') = 'O')
28807 ) AND
28808 (l_bflow_method_code = 'PRIOR_ENTRY')
28809 )
28810 THEN
28811 IF
28812 --
28813 1 = 2
28814 --
28815 THEN
28816 xla_accounting_err_pkg.build_message
28817 (p_appli_s_name => 'XLA'
28818 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28819 ,p_token_1 => 'LINE_NUMBER'
28820 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
28821 ,p_token_2 => 'LINE_TYPE_NAME'
28822 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
28823 l_component_type
28824 ,l_component_code
28825 ,l_component_type_code
28826 ,l_component_appl_id
28827 ,l_amb_context_code
28828 ,l_entity_code
28829 ,l_event_class_code
28830 )
28831 ,p_token_3 => 'OWNER'
28832 ,p_value_3 => xla_lookups_pkg.get_meaning(
28833 p_lookup_type => 'XLA_OWNER_TYPE'
28834 ,p_lookup_code => l_component_type_code
28835 )
28836 ,p_token_4 => 'PRODUCT_NAME'
28837 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
28838 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
28839 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
28840 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
28841 ,p_ae_header_id => NULL
28842 );
28843
28844 IF (C_LEVEL_ERROR>= g_log_level) THEN
28845 trace
28846 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28847 ,p_level => C_LEVEL_ERROR
28848 ,p_module => l_log_module);
28849 END IF;
28850 END IF;
28851 END IF;
28852 --
28853 --
28854 ------------------------------------------------------------------------------------------------
28855 -- 4219869 Business Flow
28856 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
28857 -- Prior Entry. Currently, the following code is always generated.
28858 ------------------------------------------------------------------------------------------------
28859 XLA_AE_LINES_PKG.ValidateCurrentLine;
28860
28861 ------------------------------------------------------------------------------------
28862 -- 4219869 Business Flow
28863 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
28864 ------------------------------------------------------------------------------------
28865 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28866
28867 ----------------------------------------------------------------------------------
28868 -- 4219869 Business Flow
28869 -- Update journal entry status -- Need to generate this within IF <condition>
28870 ----------------------------------------------------------------------------------
28871 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28872 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
28873 ,p_balance_type_code => l_balance_type_code
28874 );
28875
28876 -------------------------------------------------------------------------------------------
28877 -- 4262811 - Generate the Accrual Reversal lines
28878 -------------------------------------------------------------------------------------------
28879 BEGIN
28880 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
28881 (g_array_event(p_event_id).array_value_num('header_index'));
28882 IF l_acc_rev_flag IS NULL THEN
28883 l_acc_rev_flag := 'N';
28884 END IF;
28885 EXCEPTION
28886 WHEN OTHERS THEN
28887 l_acc_rev_flag := 'N';
28888 END;
28889 --
28890 IF (l_acc_rev_flag = 'Y') THEN
28891
28892 -- 4645092 ------------------------------------------------------------------------------
28893 -- To allow MPA report to determine if it should generate report process
28894 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
28895 ------------------------------------------------------------------------------------------
28896
28897 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
28898 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
28899
28900 --
28901 -- Update the line information that should be overwritten
28902 --
28903 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
28904 p_header_num => 1);
28905 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
28906
28907 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
28908
28909 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
28910 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
28911 END IF;
28912
28913 --
28914 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
28915 --
28916 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
28917 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
28918 ELSE
28919 ---------------------------------------------------------------------------------------------------
28920 -- 4262811a Switch Sign
28921 ---------------------------------------------------------------------------------------------------
28922 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
28923 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28924 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28925 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28926 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28927 -- 5132302
28928 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
28929 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28930
28931 END IF;
28932
28933 -- 4955764
28934 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28935 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
28936
28937
28938 XLA_AE_LINES_PKG.ValidateCurrentLine;
28939 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28940
28941 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28942 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
28943 ,p_balance_type_code => l_balance_type_code);
28944
28945 END IF;
28946
28947 -----------------------------------------------------------------------------------------
28948 -- 4262811 Multiperiod Accounting
28949 -----------------------------------------------------------------------------------------
28950 -- No MPA option is assigned.
28951
28952
28953 END IF;
28954 END IF;
28955 --
28956
28957 --
28958 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28959 trace
28960 (p_msg => 'END of AcctLineType_53'
28961 ,p_level => C_LEVEL_PROCEDURE
28962 ,p_module => l_log_module);
28963 END IF;
28964 --
28965 EXCEPTION
28966 WHEN xla_exceptions_pkg.application_exception THEN
28967 RAISE;
28968 WHEN OTHERS THEN
28969 xla_exceptions_pkg.raise_message
28970 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_53');
28971 END AcctLineType_53;
28972 --
28973
28974 ---------------------------------------
28975 --
28976 -- PRIVATE FUNCTION
28977 -- AcctLineType_54
28978 --
28979 ---------------------------------------
28980 PROCEDURE AcctLineType_54 (
28981 p_application_id IN NUMBER
28982 ,p_event_id IN NUMBER
28983 ,p_calculate_acctd_flag IN VARCHAR2
28984 ,p_calculate_g_l_flag IN VARCHAR2
28985 ,p_actual_flag IN OUT VARCHAR2
28986 ,p_balance_type_code OUT VARCHAR2
28987 ,p_gain_or_loss_ref OUT VARCHAR2
28988
28989 --Project Name
28990 , p_source_3 IN VARCHAR2
28991 --Task Name
28992 , p_source_4 IN VARCHAR2
28993 --Project Expenditure Organization Identifier
28994 , p_source_5 IN NUMBER
28995 --Expenditure Type
28996 , p_source_6 IN VARCHAR2
28997 --Document Type
28998 , p_source_9 IN VARCHAR2
28999 --Budget Account
29000 , p_source_11 IN NUMBER
29001 --Main Or Backing Code
29002 , p_source_13 IN VARCHAR2
29003 --Burden Record Identifier
29004 , p_source_14 IN VARCHAR2
29005 , p_source_14_meaning IN VARCHAR2
29006 --Burden Amount Display Method
29007 , p_source_15 IN VARCHAR2
29008 --Accounting Reversal Flag
29009 , p_source_16 IN VARCHAR2
29010 --Allocated to Application Identifier
29011 , p_source_17 IN NUMBER
29012 --Allocated to Distribution Type
29013 , p_source_18 IN VARCHAR2
29014 --Allocated to Entity Code
29015 , p_source_19 IN VARCHAR2
29016 --Allocated to First Distribution Identifier
29017 , p_source_20 IN NUMBER
29018 --Allocated to First System Transaction Identifier
29019 , p_source_21 IN NUMBER
29020 --Allocated to Second Distribution Identifier
29021 , p_source_22 IN VARCHAR2
29022 --Purchase Order Burden Applied to Application Identifier
29023 , p_source_23 IN NUMBER
29024 --PO Distribution Type
29025 , p_source_24 IN VARCHAR2
29026 --Purchase Order Burden Applied to Entity Code
29027 , p_source_25 IN VARCHAR2
29028 --Purchase Order Burden Applied to First Distribution Identifier
29029 , p_source_26 IN NUMBER
29030 --Purchase Order Burden Applied to First System Transaction Identifier
29031 , p_source_27 IN NUMBER
29032 --Purchase Order Burden Applied to Second Distribution Identifier
29033 , p_source_28 IN VARCHAR2
29034 --PO Distribution Identifier
29035 , p_source_29 IN NUMBER
29036 --Line Type Name
29037 , p_source_30 IN VARCHAR2
29038 --Encumbrance Upgrade Credit Accounting Class
29039 , p_source_31 IN VARCHAR2
29040 --Encumbrance Upgrade Credit Account
29041 , p_source_32 IN NUMBER
29042 --Entered Amount
29043 , p_source_33 IN NUMBER
29044 --Currency Code
29045 , p_source_34 IN VARCHAR2
29046 --Accounted Amount
29047 , p_source_35 IN NUMBER
29048 --Encumbrance Upgrade Debit Accounting Class
29049 , p_source_36 IN VARCHAR2
29050 --Encumbrance Upgrade Debit Account
29051 , p_source_37 IN NUMBER
29052 --Use Encumbrances Upgrade Attributes Flag
29053 , p_source_38 IN VARCHAR2
29054 --Encumbrance Upgrade Credit Encumbrance Type
29055 , p_source_39 IN NUMBER
29056 --Encumbrance Upgrade Debit Encumbrance Type
29057 , p_source_40 IN NUMBER
29058 )
29059 IS
29060
29061 l_component_type VARCHAR2(80);
29062 l_component_code VARCHAR2(30);
29063 l_component_type_code VARCHAR2(1);
29064 l_component_appl_id INTEGER;
29065 l_amb_context_code VARCHAR2(30);
29066 l_entity_code VARCHAR2(30);
29067 l_event_class_code VARCHAR2(30);
29068 l_ae_header_id NUMBER;
29069 l_event_type_code VARCHAR2(30);
29070 l_line_definition_code VARCHAR2(30);
29071 l_line_definition_owner_code VARCHAR2(1);
29072 --
29073 -- adr variables
29074 l_segment VARCHAR2(30);
29075 l_ccid NUMBER;
29076 l_adr_transaction_coa_id NUMBER;
29077 l_adr_accounting_coa_id NUMBER;
29078 l_adr_flexfield_segment_code VARCHAR2(30);
29079 l_adr_flex_value_set_id NUMBER;
29080 l_adr_value_type_code VARCHAR2(30);
29081 l_adr_value_combination_id NUMBER;
29082 l_adr_value_segment_code VARCHAR2(30);
29083
29084 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
29085 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
29086 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
29087 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
29088
29089 -- 4262811 Variables ------------------------------------------------------------------------------------------
29090 l_entered_amt_idx NUMBER;
29091 l_accted_amt_idx NUMBER;
29092 l_acc_rev_flag VARCHAR2(1);
29093 l_accrual_line_num NUMBER;
29094 l_tmp_amt NUMBER;
29095 l_acc_rev_natural_side_code VARCHAR2(1);
29096
29097 l_num_entries NUMBER;
29098 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
29099 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
29100 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
29101 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
29102 l_recog_line_1 NUMBER;
29103 l_recog_line_2 NUMBER;
29104
29105 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
29106 l_bflow_applied_to_amt NUMBER; -- 5132302
29107 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
29108
29109 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
29110
29111 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
29112 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
29113
29114 ---------------------------------------------------------------------------------------------------------------
29115
29116
29117 --
29118 -- bulk performance
29119 --
29120 l_balance_type_code VARCHAR2(1);
29121 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
29122 l_log_module VARCHAR2(240);
29123
29124 --
29125 -- Upgrade strategy
29126 --
29127 l_actual_upg_option VARCHAR2(1);
29128 l_enc_upg_option VARCHAR2(1);
29129
29130 --
29131 BEGIN
29132 --
29133 IF g_log_enabled THEN
29134 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_54';
29135 END IF;
29136 --
29137 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29138
29139 trace
29140 (p_msg => 'BEGIN of AcctLineType_54'
29141 ,p_level => C_LEVEL_PROCEDURE
29142 ,p_module => l_log_module);
29143
29144 END IF;
29145 --
29146 l_component_type := 'AMB_JLT';
29147 l_component_code := 'REOPEN_FINALCLOSE_RELBURDENENC';
29148 l_component_type_code := 'S';
29149 l_component_appl_id := 201;
29150 l_amb_context_code := 'DEFAULT';
29151 l_entity_code := 'RELEASE';
29152 l_event_class_code := 'RELEASE_BURDEN';
29153 l_event_type_code := 'RELEASE_BURDEN_ALL';
29154 l_line_definition_owner_code := 'S';
29155 l_line_definition_code := 'REL_BURDEN_ENC_ALL';
29156 --
29157 l_balance_type_code := 'E';
29158 l_segment := NULL;
29159 l_ccid := NULL;
29160 l_adr_transaction_coa_id := NULL;
29161 l_adr_accounting_coa_id := NULL;
29162 l_adr_flexfield_segment_code := NULL;
29163 l_adr_flex_value_set_id := NULL;
29164 l_adr_value_type_code := NULL;
29165 l_adr_value_combination_id := NULL;
29166 l_adr_value_segment_code := NULL;
29167
29168 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
29169 l_bflow_class_code := ''; -- 4219869 Business Flow
29170 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
29171 l_budgetary_control_flag := 'Y';
29172
29173 l_bflow_applied_to_amt_idx := NULL; -- 5132302
29174 l_bflow_applied_to_amt := NULL; -- 5132302
29175 l_entered_amt_idx := NULL; -- 4262811
29176 l_accted_amt_idx := NULL; -- 4262811
29177 l_acc_rev_flag := NULL; -- 4262811
29178 l_accrual_line_num := NULL; -- 4262811
29179 l_tmp_amt := NULL; -- 4262811
29180 --
29181
29182 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
29183 l_balance_type_code <> 'B' THEN
29184 IF NVL(
29185 xla_ae_sources_pkg.GetSystemSourceChar(
29186 p_source_code => 'XLA_EVENT_TYPE_CODE'
29187 , p_source_type_code => 'Y'
29188 , p_source_application_id => 602
29189 ),'
29190 ') = 'REL_BURDEN_REOPEN_FINAL_CLOSED' AND
29191 NVL(p_source_13,'
29192 ') = 'M' AND
29193 NVL(p_source_14,'
29194 ') = 'O' AND
29195 NVL(p_source_9,'
29196 ') = 'PO' AND
29197 NVL(p_source_15,'
29198 ') = 'D'
29199 THEN
29200
29201 --
29202 XLA_AE_LINES_PKG.SetNewLine;
29203
29204 p_balance_type_code := l_balance_type_code;
29205 -- set the flag so later we will know whether the gain loss line needs to be created
29206
29207 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
29208 p_actual_flag :='A';
29209 END IF;
29210
29211 --
29212 -- bulk performance
29213 --
29214 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
29215 p_header_num => 0); -- 4262811
29216 --
29217 -- set accounting line options
29218 --
29219 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
29220 p_natural_side_code => 'D'
29221 , p_gain_or_loss_flag => 'N'
29222 , p_gl_transfer_mode_code => 'S'
29223 , p_acct_entry_type_code => 'E'
29224 , p_switch_side_flag => 'N'
29225 , p_merge_duplicate_code => 'N'
29226 );
29227 --
29228 l_acc_rev_natural_side_code := 'C'; -- 4262811
29229 --
29230 --
29231 -- set accounting line type info
29232 --
29233 xla_ae_lines_pkg.SetAcctLineType
29234 (p_component_type => l_component_type
29235 ,p_event_type_code => l_event_type_code
29236 ,p_line_definition_owner_code => l_line_definition_owner_code
29237 ,p_line_definition_code => l_line_definition_code
29238 ,p_accounting_line_code => l_component_code
29239 ,p_accounting_line_type_code => l_component_type_code
29240 ,p_accounting_line_appl_id => l_component_appl_id
29241 ,p_amb_context_code => l_amb_context_code
29242 ,p_entity_code => l_entity_code
29243 ,p_event_class_code => l_event_class_code);
29244 --
29245 -- set accounting class
29246 --
29247 xla_ae_lines_pkg.SetAcctClass(
29248 p_accounting_class_code => 'PO_PA_BURDENED'
29249 , p_ae_header_id => l_ae_header_id
29250 );
29251
29252 --
29253 -- set rounding class
29254 --
29255 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
29256 'PO_PA_BURDENED';
29257
29258 --
29259 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
29260 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
29261 --
29262 -- bulk performance
29263 --
29264 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
29265
29266 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
29267 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
29268
29269 -- 4955764
29270 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29271 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
29272
29273 -- 4458381 Public Sector Enh
29274 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1001;
29275 --
29276 -- set accounting attributes for the line type
29277 --
29278 l_entered_amt_idx := 28;
29279 l_accted_amt_idx := 30;
29280 l_bflow_applied_to_amt_idx := NULL; -- 5132302
29281 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
29282 l_rec_acct_attrs.array_char_value(1) := p_source_16;
29283 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
29284 l_rec_acct_attrs.array_num_value(2) := p_source_17;
29285 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
29286 l_rec_acct_attrs.array_char_value(3) := p_source_18;
29287 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
29288 l_rec_acct_attrs.array_char_value(4) := p_source_19;
29289 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
29290 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
29291 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
29292 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
29293 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
29294 l_rec_acct_attrs.array_char_value(7) := p_source_22;
29295 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
29296 l_rec_acct_attrs.array_num_value(8) := p_source_23;
29297 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
29298 l_rec_acct_attrs.array_char_value(9) := p_source_24;
29299 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
29300 l_rec_acct_attrs.array_char_value(10) := p_source_25;
29301 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
29302 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_26);
29303 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
29304 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_27);
29305 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
29306 l_rec_acct_attrs.array_char_value(13) := p_source_28;
29307 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
29308 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_29);
29309 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
29310 l_rec_acct_attrs.array_char_value(15) := p_source_6;
29311 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
29312 l_rec_acct_attrs.array_char_value(16) := p_source_30;
29313 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
29314 l_rec_acct_attrs.array_char_value(17) := p_source_31;
29315 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
29316 l_rec_acct_attrs.array_num_value(18) := p_source_32;
29317 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
29318 l_rec_acct_attrs.array_num_value(19) := p_source_33;
29319 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
29320 l_rec_acct_attrs.array_char_value(20) := p_source_34;
29321 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
29322 l_rec_acct_attrs.array_num_value(21) := p_source_35;
29323 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
29324 l_rec_acct_attrs.array_char_value(22) := p_source_36;
29325 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
29326 l_rec_acct_attrs.array_num_value(23) := p_source_37;
29327 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
29328 l_rec_acct_attrs.array_num_value(24) := p_source_33;
29329 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
29330 l_rec_acct_attrs.array_char_value(25) := p_source_34;
29331 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
29332 l_rec_acct_attrs.array_num_value(26) := p_source_35;
29333 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
29334 l_rec_acct_attrs.array_char_value(27) := p_source_38;
29335 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
29336 l_rec_acct_attrs.array_num_value(28) := p_source_33;
29337 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
29338 l_rec_acct_attrs.array_char_value(29) := p_source_34;
29339 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
29340 l_rec_acct_attrs.array_num_value(30) := p_source_35;
29341 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
29342 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_29);
29343 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
29344 l_rec_acct_attrs.array_char_value(32) := p_source_6;
29345 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
29346 l_rec_acct_attrs.array_char_value(33) := p_source_30;
29347 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
29348 l_rec_acct_attrs.array_num_value(34) := p_source_39;
29349 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
29350 l_rec_acct_attrs.array_num_value(35) := p_source_40;
29351
29352 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
29353 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
29354
29355 ---------------------------------------------------------------------------------------------------------------
29356 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
29357 ---------------------------------------------------------------------------------------------------------------
29358 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
29359
29360 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29361 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29362
29363 IF xla_accounting_cache_pkg.GetValueChar
29364 (p_source_code => 'LEDGER_CATEGORY_CODE'
29365 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
29366 AND l_bflow_method_code = 'PRIOR_ENTRY'
29367 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
29368 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
29369 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
29370 )
29371 THEN
29372 xla_ae_lines_pkg.BflowUpgEntry
29373 (p_business_method_code => l_bflow_method_code
29374 ,p_business_class_code => l_bflow_class_code
29375 ,p_balance_type => l_balance_type_code);
29376 ELSE
29377 NULL;
29378 -- No business flow processing for business flow method of NONE.
29379 END IF;
29380
29381 --
29382 -- call analytical criteria
29383 --
29384
29385 --
29386 -- call description
29387 --
29388
29389 xla_ae_lines_pkg.SetLineDescription(
29390 p_ae_header_id => l_ae_header_id
29391 ,p_description => Description_2 (
29392 p_application_id => p_application_id
29393 , p_ae_header_id => l_ae_header_id
29394 , p_source_3 => p_source_3
29395 , p_source_4 => p_source_4
29396 , p_source_5 => p_source_5
29397 , p_source_6 => p_source_6
29398 )
29399 );
29400
29401
29402 --
29403 -- call ADRs
29404 -- Bug 4922099
29405 --
29406 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29407 (NVL(l_actual_upg_option, 'N') = 'O') OR
29408 (NVL(l_enc_upg_option, 'N') = 'O')
29409 )
29410 THEN
29411 NULL;
29412 --
29413 --
29414
29415 l_ccid := AcctDerRule_7(
29416 p_application_id => p_application_id
29417 , p_ae_header_id => l_ae_header_id
29418 , p_source_11 => p_source_11
29419 , x_transaction_coa_id => l_adr_transaction_coa_id
29420 , x_accounting_coa_id => l_adr_accounting_coa_id
29421 , x_value_type_code => l_adr_value_type_code
29422 , p_side => 'NA'
29423 );
29424
29425 xla_ae_lines_pkg.set_ccid(
29426 p_code_combination_id => l_ccid
29427 , p_value_type_code => l_adr_value_type_code
29428 , p_transaction_coa_id => l_adr_transaction_coa_id
29429 , p_accounting_coa_id => l_adr_accounting_coa_id
29430 , p_adr_code => 'PROJ_BURDEN_ENC_ACCT_RULE'
29431 , p_adr_type_code => 'S'
29432 , p_component_type => l_component_type
29433 , p_component_code => l_component_code
29434 , p_component_type_code => l_component_type_code
29435 , p_component_appl_id => l_component_appl_id
29436 , p_amb_context_code => l_amb_context_code
29437 , p_side => 'NA'
29438 );
29439
29440
29441 --
29442 --
29443 END IF;
29444 --
29445 -- Bug 4922099
29446 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
29447 (NVL(l_enc_upg_option, 'N') = 'O')
29448 ) AND
29449 (l_bflow_method_code = 'PRIOR_ENTRY')
29450 )
29451 THEN
29452 IF
29453 --
29454 1 = 2
29455 --
29456 THEN
29457 xla_accounting_err_pkg.build_message
29458 (p_appli_s_name => 'XLA'
29459 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29460 ,p_token_1 => 'LINE_NUMBER'
29461 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
29462 ,p_token_2 => 'LINE_TYPE_NAME'
29463 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
29464 l_component_type
29465 ,l_component_code
29466 ,l_component_type_code
29467 ,l_component_appl_id
29468 ,l_amb_context_code
29469 ,l_entity_code
29470 ,l_event_class_code
29471 )
29472 ,p_token_3 => 'OWNER'
29473 ,p_value_3 => xla_lookups_pkg.get_meaning(
29474 p_lookup_type => 'XLA_OWNER_TYPE'
29475 ,p_lookup_code => l_component_type_code
29476 )
29477 ,p_token_4 => 'PRODUCT_NAME'
29478 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
29479 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
29480 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
29481 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
29482 ,p_ae_header_id => NULL
29483 );
29484
29485 IF (C_LEVEL_ERROR>= g_log_level) THEN
29486 trace
29487 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29488 ,p_level => C_LEVEL_ERROR
29489 ,p_module => l_log_module);
29490 END IF;
29491 END IF;
29492 END IF;
29493 --
29494 --
29495 ------------------------------------------------------------------------------------------------
29496 -- 4219869 Business Flow
29497 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
29498 -- Prior Entry. Currently, the following code is always generated.
29499 ------------------------------------------------------------------------------------------------
29500 XLA_AE_LINES_PKG.ValidateCurrentLine;
29501
29502 ------------------------------------------------------------------------------------
29503 -- 4219869 Business Flow
29504 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
29505 ------------------------------------------------------------------------------------
29506 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29507
29508 ----------------------------------------------------------------------------------
29509 -- 4219869 Business Flow
29510 -- Update journal entry status -- Need to generate this within IF <condition>
29511 ----------------------------------------------------------------------------------
29512 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29513 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
29514 ,p_balance_type_code => l_balance_type_code
29515 );
29516
29517 -------------------------------------------------------------------------------------------
29518 -- 4262811 - Generate the Accrual Reversal lines
29519 -------------------------------------------------------------------------------------------
29520 BEGIN
29521 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
29522 (g_array_event(p_event_id).array_value_num('header_index'));
29523 IF l_acc_rev_flag IS NULL THEN
29524 l_acc_rev_flag := 'N';
29525 END IF;
29526 EXCEPTION
29527 WHEN OTHERS THEN
29528 l_acc_rev_flag := 'N';
29529 END;
29530 --
29531 IF (l_acc_rev_flag = 'Y') THEN
29532
29533 -- 4645092 ------------------------------------------------------------------------------
29534 -- To allow MPA report to determine if it should generate report process
29535 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
29536 ------------------------------------------------------------------------------------------
29537
29538 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
29539 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
29540
29541 --
29542 -- Update the line information that should be overwritten
29543 --
29544 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
29545 p_header_num => 1);
29546 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
29547
29548 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
29549
29550 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
29551 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
29552 END IF;
29553
29554 --
29555 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
29556 --
29557 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
29558 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
29559 ELSE
29560 ---------------------------------------------------------------------------------------------------
29561 -- 4262811a Switch Sign
29562 ---------------------------------------------------------------------------------------------------
29563 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
29564 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29565 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29566 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29567 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29568 -- 5132302
29569 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
29570 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29571
29572 END IF;
29573
29574 -- 4955764
29575 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29576 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
29577
29578
29579 XLA_AE_LINES_PKG.ValidateCurrentLine;
29580 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29581
29582 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29583 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
29584 ,p_balance_type_code => l_balance_type_code);
29585
29586 END IF;
29587
29588 -----------------------------------------------------------------------------------------
29589 -- 4262811 Multiperiod Accounting
29590 -----------------------------------------------------------------------------------------
29591 -- No MPA option is assigned.
29592
29593
29594 END IF;
29595 END IF;
29596 --
29597
29598 --
29599 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29600 trace
29601 (p_msg => 'END of AcctLineType_54'
29602 ,p_level => C_LEVEL_PROCEDURE
29603 ,p_module => l_log_module);
29604 END IF;
29605 --
29606 EXCEPTION
29607 WHEN xla_exceptions_pkg.application_exception THEN
29608 RAISE;
29609 WHEN OTHERS THEN
29610 xla_exceptions_pkg.raise_message
29611 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_54');
29612 END AcctLineType_54;
29613 --
29614
29615 ---------------------------------------
29616 --
29617 -- PRIVATE FUNCTION
29618 -- AcctLineType_55
29619 --
29620 ---------------------------------------
29621 PROCEDURE AcctLineType_55 (
29622 p_application_id IN NUMBER
29623 ,p_event_id IN NUMBER
29624 ,p_calculate_acctd_flag IN VARCHAR2
29625 ,p_calculate_g_l_flag IN VARCHAR2
29626 ,p_actual_flag IN OUT VARCHAR2
29627 ,p_balance_type_code OUT VARCHAR2
29628 ,p_gain_or_loss_ref OUT VARCHAR2
29629
29630 --Project Name
29631 , p_source_3 IN VARCHAR2
29632 --Task Name
29633 , p_source_4 IN VARCHAR2
29634 --Project Expenditure Organization Identifier
29635 , p_source_5 IN NUMBER
29636 --Expenditure Type
29637 , p_source_6 IN VARCHAR2
29638 --Document Type
29639 , p_source_9 IN VARCHAR2
29640 --Budget Account
29641 , p_source_11 IN NUMBER
29642 --Main Or Backing Code
29643 , p_source_13 IN VARCHAR2
29644 --Burden Record Identifier
29645 , p_source_14 IN VARCHAR2
29646 , p_source_14_meaning IN VARCHAR2
29647 --Burden Amount Display Method
29648 , p_source_15 IN VARCHAR2
29649 --Accounting Reversal Flag
29650 , p_source_16 IN VARCHAR2
29651 --Allocated to Application Identifier
29652 , p_source_17 IN NUMBER
29653 --Allocated to Distribution Type
29654 , p_source_18 IN VARCHAR2
29655 --Allocated to Entity Code
29656 , p_source_19 IN VARCHAR2
29657 --Allocated to First Distribution Identifier
29658 , p_source_20 IN NUMBER
29659 --Allocated to First System Transaction Identifier
29660 , p_source_21 IN NUMBER
29661 --Allocated to Second Distribution Identifier
29662 , p_source_22 IN VARCHAR2
29663 --Purchase Order Burden Applied to Application Identifier
29664 , p_source_23 IN NUMBER
29665 --PO Distribution Type
29666 , p_source_24 IN VARCHAR2
29667 --Purchase Order Burden Applied to Entity Code
29668 , p_source_25 IN VARCHAR2
29669 --Purchase Order Burden Applied to First Distribution Identifier
29670 , p_source_26 IN NUMBER
29671 --Purchase Order Burden Applied to First System Transaction Identifier
29672 , p_source_27 IN NUMBER
29673 --Purchase Order Burden Applied to Second Distribution Identifier
29674 , p_source_28 IN VARCHAR2
29675 --PO Distribution Identifier
29676 , p_source_29 IN NUMBER
29677 --Line Type Name
29678 , p_source_30 IN VARCHAR2
29679 --Encumbrance Upgrade Credit Accounting Class
29680 , p_source_31 IN VARCHAR2
29681 --Encumbrance Upgrade Credit Account
29682 , p_source_32 IN NUMBER
29683 --Entered Amount
29684 , p_source_33 IN NUMBER
29685 --Currency Code
29686 , p_source_34 IN VARCHAR2
29687 --Accounted Amount
29688 , p_source_35 IN NUMBER
29689 --Encumbrance Upgrade Debit Accounting Class
29690 , p_source_36 IN VARCHAR2
29691 --Encumbrance Upgrade Debit Account
29692 , p_source_37 IN NUMBER
29693 --Use Encumbrances Upgrade Attributes Flag
29694 , p_source_38 IN VARCHAR2
29695 --Encumbrance Upgrade Credit Encumbrance Type
29696 , p_source_39 IN NUMBER
29697 --Encumbrance Upgrade Debit Encumbrance Type
29698 , p_source_40 IN NUMBER
29699 )
29700 IS
29701
29702 l_component_type VARCHAR2(80);
29703 l_component_code VARCHAR2(30);
29704 l_component_type_code VARCHAR2(1);
29705 l_component_appl_id INTEGER;
29706 l_amb_context_code VARCHAR2(30);
29707 l_entity_code VARCHAR2(30);
29708 l_event_class_code VARCHAR2(30);
29709 l_ae_header_id NUMBER;
29710 l_event_type_code VARCHAR2(30);
29711 l_line_definition_code VARCHAR2(30);
29712 l_line_definition_owner_code VARCHAR2(1);
29713 --
29714 -- adr variables
29715 l_segment VARCHAR2(30);
29716 l_ccid NUMBER;
29717 l_adr_transaction_coa_id NUMBER;
29718 l_adr_accounting_coa_id NUMBER;
29719 l_adr_flexfield_segment_code VARCHAR2(30);
29720 l_adr_flex_value_set_id NUMBER;
29721 l_adr_value_type_code VARCHAR2(30);
29722 l_adr_value_combination_id NUMBER;
29723 l_adr_value_segment_code VARCHAR2(30);
29724
29725 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
29726 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
29727 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
29728 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
29729
29730 -- 4262811 Variables ------------------------------------------------------------------------------------------
29731 l_entered_amt_idx NUMBER;
29732 l_accted_amt_idx NUMBER;
29733 l_acc_rev_flag VARCHAR2(1);
29734 l_accrual_line_num NUMBER;
29735 l_tmp_amt NUMBER;
29736 l_acc_rev_natural_side_code VARCHAR2(1);
29737
29738 l_num_entries NUMBER;
29739 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
29740 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
29741 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
29742 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
29743 l_recog_line_1 NUMBER;
29744 l_recog_line_2 NUMBER;
29745
29746 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
29747 l_bflow_applied_to_amt NUMBER; -- 5132302
29748 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
29749
29750 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
29751
29752 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
29753 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
29754
29755 ---------------------------------------------------------------------------------------------------------------
29756
29757
29758 --
29759 -- bulk performance
29760 --
29761 l_balance_type_code VARCHAR2(1);
29762 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
29763 l_log_module VARCHAR2(240);
29764
29765 --
29766 -- Upgrade strategy
29767 --
29768 l_actual_upg_option VARCHAR2(1);
29769 l_enc_upg_option VARCHAR2(1);
29770
29771 --
29772 BEGIN
29773 --
29774 IF g_log_enabled THEN
29775 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_55';
29776 END IF;
29777 --
29778 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29779
29780 trace
29781 (p_msg => 'BEGIN of AcctLineType_55'
29782 ,p_level => C_LEVEL_PROCEDURE
29783 ,p_module => l_log_module);
29784
29785 END IF;
29786 --
29787 l_component_type := 'AMB_JLT';
29788 l_component_code := 'REOPEN_FINALCLOSE_RELBURDNDENC';
29789 l_component_type_code := 'S';
29790 l_component_appl_id := 201;
29791 l_amb_context_code := 'DEFAULT';
29792 l_entity_code := 'RELEASE';
29793 l_event_class_code := 'RELEASE_BURDEN';
29794 l_event_type_code := 'RELEASE_BURDEN_ALL';
29795 l_line_definition_owner_code := 'S';
29796 l_line_definition_code := 'REL_BURDEN_ENC_ALL';
29797 --
29798 l_balance_type_code := 'E';
29799 l_segment := NULL;
29800 l_ccid := NULL;
29801 l_adr_transaction_coa_id := NULL;
29802 l_adr_accounting_coa_id := NULL;
29803 l_adr_flexfield_segment_code := NULL;
29804 l_adr_flex_value_set_id := NULL;
29805 l_adr_value_type_code := NULL;
29806 l_adr_value_combination_id := NULL;
29807 l_adr_value_segment_code := NULL;
29808
29809 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
29810 l_bflow_class_code := ''; -- 4219869 Business Flow
29811 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
29812 l_budgetary_control_flag := 'Y';
29813
29814 l_bflow_applied_to_amt_idx := NULL; -- 5132302
29815 l_bflow_applied_to_amt := NULL; -- 5132302
29816 l_entered_amt_idx := NULL; -- 4262811
29817 l_accted_amt_idx := NULL; -- 4262811
29818 l_acc_rev_flag := NULL; -- 4262811
29819 l_accrual_line_num := NULL; -- 4262811
29820 l_tmp_amt := NULL; -- 4262811
29821 --
29822
29823 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
29824 l_balance_type_code <> 'B' THEN
29825 IF NVL(
29826 xla_ae_sources_pkg.GetSystemSourceChar(
29827 p_source_code => 'XLA_EVENT_TYPE_CODE'
29828 , p_source_type_code => 'Y'
29829 , p_source_application_id => 602
29830 ),'
29831 ') = 'REL_BURDEN_REOPEN_FINAL_CLOSED' AND
29832 NVL(p_source_13,'
29833 ') = 'M' AND
29834 (NVL(p_source_14,'
29835 ') = 'O' OR
29836 NVL(p_source_14,'
29837 ') = 'N') AND
29838 NVL(p_source_9,'
29839 ') = 'PO' AND
29840 NVL(p_source_15,'
29841 ') = 'S'
29842 THEN
29843
29844 --
29845 XLA_AE_LINES_PKG.SetNewLine;
29846
29847 p_balance_type_code := l_balance_type_code;
29848 -- set the flag so later we will know whether the gain loss line needs to be created
29849
29850 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
29851 p_actual_flag :='A';
29852 END IF;
29853
29854 --
29855 -- bulk performance
29856 --
29857 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
29858 p_header_num => 0); -- 4262811
29859 --
29860 -- set accounting line options
29861 --
29862 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
29863 p_natural_side_code => 'D'
29864 , p_gain_or_loss_flag => 'N'
29865 , p_gl_transfer_mode_code => 'S'
29866 , p_acct_entry_type_code => 'E'
29867 , p_switch_side_flag => 'N'
29868 , p_merge_duplicate_code => 'N'
29869 );
29870 --
29871 l_acc_rev_natural_side_code := 'C'; -- 4262811
29872 --
29873 --
29874 -- set accounting line type info
29875 --
29876 xla_ae_lines_pkg.SetAcctLineType
29877 (p_component_type => l_component_type
29878 ,p_event_type_code => l_event_type_code
29879 ,p_line_definition_owner_code => l_line_definition_owner_code
29880 ,p_line_definition_code => l_line_definition_code
29881 ,p_accounting_line_code => l_component_code
29882 ,p_accounting_line_type_code => l_component_type_code
29883 ,p_accounting_line_appl_id => l_component_appl_id
29884 ,p_amb_context_code => l_amb_context_code
29885 ,p_entity_code => l_entity_code
29886 ,p_event_class_code => l_event_class_code);
29887 --
29888 -- set accounting class
29889 --
29890 xla_ae_lines_pkg.SetAcctClass(
29891 p_accounting_class_code => 'PO_PA_BURDENED'
29892 , p_ae_header_id => l_ae_header_id
29893 );
29894
29895 --
29896 -- set rounding class
29897 --
29898 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
29899 'PO_PA_BURDENED';
29900
29901 --
29902 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
29903 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
29904 --
29905 -- bulk performance
29906 --
29907 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
29908
29909 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
29910 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
29911
29912 -- 4955764
29913 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29914 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
29915
29916 -- 4458381 Public Sector Enh
29917 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1001;
29918 --
29919 -- set accounting attributes for the line type
29920 --
29921 l_entered_amt_idx := 28;
29922 l_accted_amt_idx := 30;
29923 l_bflow_applied_to_amt_idx := NULL; -- 5132302
29924 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
29925 l_rec_acct_attrs.array_char_value(1) := p_source_16;
29926 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
29927 l_rec_acct_attrs.array_num_value(2) := p_source_17;
29928 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
29929 l_rec_acct_attrs.array_char_value(3) := p_source_18;
29930 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
29931 l_rec_acct_attrs.array_char_value(4) := p_source_19;
29932 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
29933 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
29934 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
29935 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
29936 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
29937 l_rec_acct_attrs.array_char_value(7) := p_source_22;
29938 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
29939 l_rec_acct_attrs.array_num_value(8) := p_source_23;
29940 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
29941 l_rec_acct_attrs.array_char_value(9) := p_source_24;
29942 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
29943 l_rec_acct_attrs.array_char_value(10) := p_source_25;
29944 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
29945 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_26);
29946 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
29947 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_27);
29948 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
29949 l_rec_acct_attrs.array_char_value(13) := p_source_28;
29950 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
29951 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_29);
29952 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
29953 l_rec_acct_attrs.array_char_value(15) := p_source_6;
29954 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
29955 l_rec_acct_attrs.array_char_value(16) := p_source_30;
29956 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
29957 l_rec_acct_attrs.array_char_value(17) := p_source_31;
29958 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
29959 l_rec_acct_attrs.array_num_value(18) := p_source_32;
29960 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
29961 l_rec_acct_attrs.array_num_value(19) := p_source_33;
29962 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
29963 l_rec_acct_attrs.array_char_value(20) := p_source_34;
29964 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
29965 l_rec_acct_attrs.array_num_value(21) := p_source_35;
29966 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
29967 l_rec_acct_attrs.array_char_value(22) := p_source_36;
29968 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
29969 l_rec_acct_attrs.array_num_value(23) := p_source_37;
29970 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
29971 l_rec_acct_attrs.array_num_value(24) := p_source_33;
29972 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
29973 l_rec_acct_attrs.array_char_value(25) := p_source_34;
29974 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
29975 l_rec_acct_attrs.array_num_value(26) := p_source_35;
29976 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
29977 l_rec_acct_attrs.array_char_value(27) := p_source_38;
29978 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
29979 l_rec_acct_attrs.array_num_value(28) := p_source_33;
29980 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
29981 l_rec_acct_attrs.array_char_value(29) := p_source_34;
29982 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
29983 l_rec_acct_attrs.array_num_value(30) := p_source_35;
29984 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
29985 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_29);
29986 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
29987 l_rec_acct_attrs.array_char_value(32) := p_source_6;
29988 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
29989 l_rec_acct_attrs.array_char_value(33) := p_source_30;
29990 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
29991 l_rec_acct_attrs.array_num_value(34) := p_source_39;
29992 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
29993 l_rec_acct_attrs.array_num_value(35) := p_source_40;
29994
29995 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
29996 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
29997
29998 ---------------------------------------------------------------------------------------------------------------
29999 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
30000 ---------------------------------------------------------------------------------------------------------------
30001 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
30002
30003 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30004 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30005
30006 IF xla_accounting_cache_pkg.GetValueChar
30007 (p_source_code => 'LEDGER_CATEGORY_CODE'
30008 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
30009 AND l_bflow_method_code = 'PRIOR_ENTRY'
30010 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
30011 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
30012 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
30013 )
30014 THEN
30015 xla_ae_lines_pkg.BflowUpgEntry
30016 (p_business_method_code => l_bflow_method_code
30017 ,p_business_class_code => l_bflow_class_code
30018 ,p_balance_type => l_balance_type_code);
30019 ELSE
30020 NULL;
30021 -- No business flow processing for business flow method of NONE.
30022 END IF;
30023
30024 --
30025 -- call analytical criteria
30026 --
30027
30028 --
30029 -- call description
30030 --
30031
30032 xla_ae_lines_pkg.SetLineDescription(
30033 p_ae_header_id => l_ae_header_id
30034 ,p_description => Description_2 (
30035 p_application_id => p_application_id
30036 , p_ae_header_id => l_ae_header_id
30037 , p_source_3 => p_source_3
30038 , p_source_4 => p_source_4
30039 , p_source_5 => p_source_5
30040 , p_source_6 => p_source_6
30041 )
30042 );
30043
30044
30045 --
30046 -- call ADRs
30047 -- Bug 4922099
30048 --
30049 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30050 (NVL(l_actual_upg_option, 'N') = 'O') OR
30051 (NVL(l_enc_upg_option, 'N') = 'O')
30052 )
30053 THEN
30054 NULL;
30055 --
30056 --
30057
30058 l_ccid := AcctDerRule_6(
30059 p_application_id => p_application_id
30060 , p_ae_header_id => l_ae_header_id
30061 , p_source_11 => p_source_11
30062 , x_transaction_coa_id => l_adr_transaction_coa_id
30063 , x_accounting_coa_id => l_adr_accounting_coa_id
30064 , x_value_type_code => l_adr_value_type_code
30065 , p_side => 'NA'
30066 );
30067
30068 xla_ae_lines_pkg.set_ccid(
30069 p_code_combination_id => l_ccid
30070 , p_value_type_code => l_adr_value_type_code
30071 , p_transaction_coa_id => l_adr_transaction_coa_id
30072 , p_accounting_coa_id => l_adr_accounting_coa_id
30073 , p_adr_code => 'PROJ_BURDENED_ENC_ACCT_RULE'
30074 , p_adr_type_code => 'S'
30075 , p_component_type => l_component_type
30076 , p_component_code => l_component_code
30077 , p_component_type_code => l_component_type_code
30078 , p_component_appl_id => l_component_appl_id
30079 , p_amb_context_code => l_amb_context_code
30080 , p_side => 'NA'
30081 );
30082
30083
30084 --
30085 --
30086 END IF;
30087 --
30088 -- Bug 4922099
30089 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
30090 (NVL(l_enc_upg_option, 'N') = 'O')
30091 ) AND
30092 (l_bflow_method_code = 'PRIOR_ENTRY')
30093 )
30094 THEN
30095 IF
30096 --
30097 1 = 2
30098 --
30099 THEN
30100 xla_accounting_err_pkg.build_message
30101 (p_appli_s_name => 'XLA'
30102 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30103 ,p_token_1 => 'LINE_NUMBER'
30104 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
30105 ,p_token_2 => 'LINE_TYPE_NAME'
30106 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
30107 l_component_type
30108 ,l_component_code
30109 ,l_component_type_code
30110 ,l_component_appl_id
30111 ,l_amb_context_code
30112 ,l_entity_code
30113 ,l_event_class_code
30114 )
30115 ,p_token_3 => 'OWNER'
30116 ,p_value_3 => xla_lookups_pkg.get_meaning(
30117 p_lookup_type => 'XLA_OWNER_TYPE'
30118 ,p_lookup_code => l_component_type_code
30119 )
30120 ,p_token_4 => 'PRODUCT_NAME'
30121 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
30122 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
30123 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
30124 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
30125 ,p_ae_header_id => NULL
30126 );
30127
30128 IF (C_LEVEL_ERROR>= g_log_level) THEN
30129 trace
30130 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30131 ,p_level => C_LEVEL_ERROR
30132 ,p_module => l_log_module);
30133 END IF;
30134 END IF;
30135 END IF;
30136 --
30137 --
30138 ------------------------------------------------------------------------------------------------
30139 -- 4219869 Business Flow
30140 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
30141 -- Prior Entry. Currently, the following code is always generated.
30142 ------------------------------------------------------------------------------------------------
30143 XLA_AE_LINES_PKG.ValidateCurrentLine;
30144
30145 ------------------------------------------------------------------------------------
30146 -- 4219869 Business Flow
30147 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
30148 ------------------------------------------------------------------------------------
30149 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30150
30151 ----------------------------------------------------------------------------------
30152 -- 4219869 Business Flow
30153 -- Update journal entry status -- Need to generate this within IF <condition>
30154 ----------------------------------------------------------------------------------
30155 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30156 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
30157 ,p_balance_type_code => l_balance_type_code
30158 );
30159
30160 -------------------------------------------------------------------------------------------
30161 -- 4262811 - Generate the Accrual Reversal lines
30162 -------------------------------------------------------------------------------------------
30163 BEGIN
30164 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
30165 (g_array_event(p_event_id).array_value_num('header_index'));
30166 IF l_acc_rev_flag IS NULL THEN
30167 l_acc_rev_flag := 'N';
30168 END IF;
30169 EXCEPTION
30170 WHEN OTHERS THEN
30171 l_acc_rev_flag := 'N';
30172 END;
30173 --
30174 IF (l_acc_rev_flag = 'Y') THEN
30175
30176 -- 4645092 ------------------------------------------------------------------------------
30177 -- To allow MPA report to determine if it should generate report process
30178 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
30179 ------------------------------------------------------------------------------------------
30180
30181 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
30182 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
30183
30184 --
30185 -- Update the line information that should be overwritten
30186 --
30187 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
30188 p_header_num => 1);
30189 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
30190
30191 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
30192
30193 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
30194 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
30195 END IF;
30196
30197 --
30198 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
30199 --
30200 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
30201 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
30202 ELSE
30203 ---------------------------------------------------------------------------------------------------
30204 -- 4262811a Switch Sign
30205 ---------------------------------------------------------------------------------------------------
30206 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
30207 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30208 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30209 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30210 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30211 -- 5132302
30212 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
30213 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30214
30215 END IF;
30216
30217 -- 4955764
30218 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30219 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
30220
30221
30222 XLA_AE_LINES_PKG.ValidateCurrentLine;
30223 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30224
30225 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30226 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
30227 ,p_balance_type_code => l_balance_type_code);
30228
30229 END IF;
30230
30231 -----------------------------------------------------------------------------------------
30232 -- 4262811 Multiperiod Accounting
30233 -----------------------------------------------------------------------------------------
30234 -- No MPA option is assigned.
30235
30236
30237 END IF;
30238 END IF;
30239 --
30240
30241 --
30242 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30243 trace
30244 (p_msg => 'END of AcctLineType_55'
30245 ,p_level => C_LEVEL_PROCEDURE
30246 ,p_module => l_log_module);
30247 END IF;
30248 --
30249 EXCEPTION
30250 WHEN xla_exceptions_pkg.application_exception THEN
30251 RAISE;
30252 WHEN OTHERS THEN
30253 xla_exceptions_pkg.raise_message
30254 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_55');
30255 END AcctLineType_55;
30256 --
30257
30258 ---------------------------------------
30259 --
30260 -- PRIVATE FUNCTION
30261 -- AcctLineType_56
30262 --
30263 ---------------------------------------
30264 PROCEDURE AcctLineType_56 (
30265 p_application_id IN NUMBER
30266 ,p_event_id IN NUMBER
30267 ,p_calculate_acctd_flag IN VARCHAR2
30268 ,p_calculate_g_l_flag IN VARCHAR2
30269 ,p_actual_flag IN OUT VARCHAR2
30270 ,p_balance_type_code OUT VARCHAR2
30271 ,p_gain_or_loss_ref OUT VARCHAR2
30272
30273 --Project Name
30274 , p_source_3 IN VARCHAR2
30275 --Task Name
30276 , p_source_4 IN VARCHAR2
30277 --Project Expenditure Organization Identifier
30278 , p_source_5 IN NUMBER
30279 --Expenditure Type
30280 , p_source_6 IN VARCHAR2
30281 --Document Type
30282 , p_source_9 IN VARCHAR2
30283 --Budget Account
30284 , p_source_11 IN NUMBER
30285 --Main Or Backing Code
30286 , p_source_13 IN VARCHAR2
30287 --Burden Record Identifier
30288 , p_source_14 IN VARCHAR2
30289 , p_source_14_meaning IN VARCHAR2
30290 --Burden Amount Display Method
30291 , p_source_15 IN VARCHAR2
30292 --Accounting Reversal Flag
30293 , p_source_16 IN VARCHAR2
30294 --Allocated to Application Identifier
30295 , p_source_17 IN NUMBER
30296 --Allocated to Distribution Type
30297 , p_source_18 IN VARCHAR2
30298 --Allocated to Entity Code
30299 , p_source_19 IN VARCHAR2
30300 --Allocated to First Distribution Identifier
30301 , p_source_20 IN NUMBER
30302 --Allocated to First System Transaction Identifier
30303 , p_source_21 IN NUMBER
30304 --Purchase Order Burden Applied to Application Identifier
30305 , p_source_23 IN NUMBER
30306 --PO Distribution Type
30307 , p_source_24 IN VARCHAR2
30308 --Purchase Order Burden Applied to Entity Code
30309 , p_source_25 IN VARCHAR2
30310 --Purchase Order Burden Applied to First Distribution Identifier
30311 , p_source_26 IN NUMBER
30312 --Purchase Order Burden Applied to First System Transaction Identifier
30313 , p_source_27 IN NUMBER
30314 --Purchase Order Burden Applied to Second Distribution Identifier
30315 , p_source_28 IN VARCHAR2
30316 --PO Distribution Identifier
30317 , p_source_29 IN NUMBER
30318 --Line Type Name
30319 , p_source_30 IN VARCHAR2
30320 --Encumbrance Upgrade Credit Accounting Class
30321 , p_source_31 IN VARCHAR2
30322 --Encumbrance Upgrade Credit Account
30323 , p_source_32 IN NUMBER
30324 --Entered Amount
30325 , p_source_33 IN NUMBER
30326 --Currency Code
30327 , p_source_34 IN VARCHAR2
30328 --Accounted Amount
30329 , p_source_35 IN NUMBER
30330 --Encumbrance Upgrade Debit Accounting Class
30331 , p_source_36 IN VARCHAR2
30332 --Encumbrance Upgrade Debit Account
30333 , p_source_37 IN NUMBER
30334 --Use Encumbrances Upgrade Attributes Flag
30335 , p_source_38 IN VARCHAR2
30336 --Encumbrance Upgrade Credit Encumbrance Type
30337 , p_source_39 IN NUMBER
30338 --Encumbrance Upgrade Debit Encumbrance Type
30339 , p_source_40 IN NUMBER
30340 )
30341 IS
30342
30343 l_component_type VARCHAR2(80);
30344 l_component_code VARCHAR2(30);
30345 l_component_type_code VARCHAR2(1);
30346 l_component_appl_id INTEGER;
30347 l_amb_context_code VARCHAR2(30);
30348 l_entity_code VARCHAR2(30);
30349 l_event_class_code VARCHAR2(30);
30350 l_ae_header_id NUMBER;
30351 l_event_type_code VARCHAR2(30);
30352 l_line_definition_code VARCHAR2(30);
30353 l_line_definition_owner_code VARCHAR2(1);
30354 --
30355 -- adr variables
30356 l_segment VARCHAR2(30);
30357 l_ccid NUMBER;
30358 l_adr_transaction_coa_id NUMBER;
30359 l_adr_accounting_coa_id NUMBER;
30360 l_adr_flexfield_segment_code VARCHAR2(30);
30361 l_adr_flex_value_set_id NUMBER;
30362 l_adr_value_type_code VARCHAR2(30);
30363 l_adr_value_combination_id NUMBER;
30364 l_adr_value_segment_code VARCHAR2(30);
30365
30366 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
30367 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
30368 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
30369 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
30370
30371 -- 4262811 Variables ------------------------------------------------------------------------------------------
30372 l_entered_amt_idx NUMBER;
30373 l_accted_amt_idx NUMBER;
30374 l_acc_rev_flag VARCHAR2(1);
30375 l_accrual_line_num NUMBER;
30376 l_tmp_amt NUMBER;
30377 l_acc_rev_natural_side_code VARCHAR2(1);
30378
30379 l_num_entries NUMBER;
30380 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
30381 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
30382 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
30383 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
30384 l_recog_line_1 NUMBER;
30385 l_recog_line_2 NUMBER;
30386
30387 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
30388 l_bflow_applied_to_amt NUMBER; -- 5132302
30389 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
30390
30391 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
30392
30393 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
30394 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
30395
30396 ---------------------------------------------------------------------------------------------------------------
30397
30398
30399 --
30400 -- bulk performance
30401 --
30402 l_balance_type_code VARCHAR2(1);
30403 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
30404 l_log_module VARCHAR2(240);
30405
30406 --
30407 -- Upgrade strategy
30408 --
30409 l_actual_upg_option VARCHAR2(1);
30410 l_enc_upg_option VARCHAR2(1);
30411
30412 --
30413 BEGIN
30414 --
30415 IF g_log_enabled THEN
30416 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_56';
30417 END IF;
30418 --
30419 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30420
30421 trace
30422 (p_msg => 'BEGIN of AcctLineType_56'
30423 ,p_level => C_LEVEL_PROCEDURE
30424 ,p_module => l_log_module);
30425
30426 END IF;
30427 --
30428 l_component_type := 'AMB_JLT';
30429 l_component_code := 'REOPEN_FINALMATCH_POBURDENDENC';
30430 l_component_type_code := 'S';
30431 l_component_appl_id := 201;
30432 l_amb_context_code := 'DEFAULT';
30433 l_entity_code := 'PURCHASE_ORDER';
30434 l_event_class_code := 'PO_BURDEN';
30435 l_event_type_code := 'PO_BURDEN_ALL';
30436 l_line_definition_owner_code := 'S';
30437 l_line_definition_code := 'PO_BURDEN_ENC_ALL';
30438 --
30439 l_balance_type_code := 'E';
30440 l_segment := NULL;
30441 l_ccid := NULL;
30442 l_adr_transaction_coa_id := NULL;
30443 l_adr_accounting_coa_id := NULL;
30444 l_adr_flexfield_segment_code := NULL;
30445 l_adr_flex_value_set_id := NULL;
30446 l_adr_value_type_code := NULL;
30447 l_adr_value_combination_id := NULL;
30448 l_adr_value_segment_code := NULL;
30449
30450 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
30451 l_bflow_class_code := ''; -- 4219869 Business Flow
30452 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
30453 l_budgetary_control_flag := 'Y';
30454
30455 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30456 l_bflow_applied_to_amt := NULL; -- 5132302
30457 l_entered_amt_idx := NULL; -- 4262811
30458 l_accted_amt_idx := NULL; -- 4262811
30459 l_acc_rev_flag := NULL; -- 4262811
30460 l_accrual_line_num := NULL; -- 4262811
30461 l_tmp_amt := NULL; -- 4262811
30462 --
30463
30464 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
30465 l_balance_type_code <> 'B' THEN
30466 IF NVL(
30467 xla_ae_sources_pkg.GetSystemSourceChar(
30468 p_source_code => 'XLA_EVENT_TYPE_CODE'
30469 , p_source_type_code => 'Y'
30470 , p_source_application_id => 602
30471 ),'
30472 ') = 'PO_BURDEN_REOPEN_FINAL_MATCH' AND
30473 NVL(p_source_13,'
30474 ') = 'M' AND
30475 (NVL(p_source_14,'
30476 ') = 'N' OR
30477 NVL(p_source_14,'
30478 ') = 'O') AND
30479 NVL(p_source_9,'
30480 ') = 'PO' AND
30481 NVL(p_source_15,'
30482 ') = 'S'
30483 THEN
30484
30485 --
30486 XLA_AE_LINES_PKG.SetNewLine;
30487
30488 p_balance_type_code := l_balance_type_code;
30489 -- set the flag so later we will know whether the gain loss line needs to be created
30490
30491 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
30492 p_actual_flag :='A';
30493 END IF;
30494
30495 --
30496 -- bulk performance
30497 --
30498 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
30499 p_header_num => 0); -- 4262811
30500 --
30501 -- set accounting line options
30502 --
30503 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
30504 p_natural_side_code => 'D'
30505 , p_gain_or_loss_flag => 'N'
30506 , p_gl_transfer_mode_code => 'S'
30507 , p_acct_entry_type_code => 'E'
30508 , p_switch_side_flag => 'N'
30509 , p_merge_duplicate_code => 'N'
30510 );
30511 --
30512 l_acc_rev_natural_side_code := 'C'; -- 4262811
30513 --
30514 --
30515 -- set accounting line type info
30516 --
30517 xla_ae_lines_pkg.SetAcctLineType
30518 (p_component_type => l_component_type
30519 ,p_event_type_code => l_event_type_code
30520 ,p_line_definition_owner_code => l_line_definition_owner_code
30521 ,p_line_definition_code => l_line_definition_code
30522 ,p_accounting_line_code => l_component_code
30523 ,p_accounting_line_type_code => l_component_type_code
30524 ,p_accounting_line_appl_id => l_component_appl_id
30525 ,p_amb_context_code => l_amb_context_code
30526 ,p_entity_code => l_entity_code
30527 ,p_event_class_code => l_event_class_code);
30528 --
30529 -- set accounting class
30530 --
30531 xla_ae_lines_pkg.SetAcctClass(
30532 p_accounting_class_code => 'PO_PA_BURDENED'
30533 , p_ae_header_id => l_ae_header_id
30534 );
30535
30536 --
30537 -- set rounding class
30538 --
30539 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
30540 'PO_PA_BURDENED';
30541
30542 --
30543 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
30544 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
30545 --
30546 -- bulk performance
30547 --
30548 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
30549
30550 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
30551 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
30552
30553 -- 4955764
30554 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30555 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
30556
30557 -- 4458381 Public Sector Enh
30558 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1001;
30559 --
30560 -- set accounting attributes for the line type
30561 --
30562 l_entered_amt_idx := 27;
30563 l_accted_amt_idx := 29;
30564 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30565 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
30566 l_rec_acct_attrs.array_char_value(1) := p_source_16;
30567 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
30568 l_rec_acct_attrs.array_num_value(2) := p_source_17;
30569 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
30570 l_rec_acct_attrs.array_char_value(3) := p_source_18;
30571 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
30572 l_rec_acct_attrs.array_char_value(4) := p_source_19;
30573 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
30574 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
30575 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
30576 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
30577 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
30578 l_rec_acct_attrs.array_num_value(7) := p_source_23;
30579 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
30580 l_rec_acct_attrs.array_char_value(8) := p_source_24;
30581 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
30582 l_rec_acct_attrs.array_char_value(9) := p_source_25;
30583 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
30584 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_26);
30585 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
30586 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_27);
30587 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
30588 l_rec_acct_attrs.array_char_value(12) := p_source_28;
30589 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
30590 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_29);
30591 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
30592 l_rec_acct_attrs.array_char_value(14) := p_source_6;
30593 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
30594 l_rec_acct_attrs.array_char_value(15) := p_source_30;
30595 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
30596 l_rec_acct_attrs.array_char_value(16) := p_source_31;
30597 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
30598 l_rec_acct_attrs.array_num_value(17) := p_source_32;
30599 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
30600 l_rec_acct_attrs.array_num_value(18) := p_source_33;
30601 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
30602 l_rec_acct_attrs.array_char_value(19) := p_source_34;
30603 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
30604 l_rec_acct_attrs.array_num_value(20) := p_source_35;
30605 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
30606 l_rec_acct_attrs.array_char_value(21) := p_source_36;
30607 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
30608 l_rec_acct_attrs.array_num_value(22) := p_source_37;
30609 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
30610 l_rec_acct_attrs.array_num_value(23) := p_source_33;
30611 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
30612 l_rec_acct_attrs.array_char_value(24) := p_source_34;
30613 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
30614 l_rec_acct_attrs.array_num_value(25) := p_source_35;
30615 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
30616 l_rec_acct_attrs.array_char_value(26) := p_source_38;
30617 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
30618 l_rec_acct_attrs.array_num_value(27) := p_source_33;
30619 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
30620 l_rec_acct_attrs.array_char_value(28) := p_source_34;
30621 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
30622 l_rec_acct_attrs.array_num_value(29) := p_source_35;
30623 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
30624 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_29);
30625 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
30626 l_rec_acct_attrs.array_char_value(31) := p_source_6;
30627 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
30628 l_rec_acct_attrs.array_char_value(32) := p_source_30;
30629 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
30630 l_rec_acct_attrs.array_num_value(33) := p_source_39;
30631 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
30632 l_rec_acct_attrs.array_num_value(34) := p_source_40;
30633
30634 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
30635 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
30636
30637 ---------------------------------------------------------------------------------------------------------------
30638 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
30639 ---------------------------------------------------------------------------------------------------------------
30640 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
30641
30642 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30643 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30644
30645 IF xla_accounting_cache_pkg.GetValueChar
30646 (p_source_code => 'LEDGER_CATEGORY_CODE'
30647 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
30648 AND l_bflow_method_code = 'PRIOR_ENTRY'
30649 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
30650 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
30651 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
30652 )
30653 THEN
30654 xla_ae_lines_pkg.BflowUpgEntry
30655 (p_business_method_code => l_bflow_method_code
30656 ,p_business_class_code => l_bflow_class_code
30657 ,p_balance_type => l_balance_type_code);
30658 ELSE
30659 NULL;
30660 -- No business flow processing for business flow method of NONE.
30661 END IF;
30662
30663 --
30664 -- call analytical criteria
30665 --
30666
30667 --
30668 -- call description
30669 --
30670
30671 xla_ae_lines_pkg.SetLineDescription(
30672 p_ae_header_id => l_ae_header_id
30673 ,p_description => Description_2 (
30674 p_application_id => p_application_id
30675 , p_ae_header_id => l_ae_header_id
30676 , p_source_3 => p_source_3
30677 , p_source_4 => p_source_4
30678 , p_source_5 => p_source_5
30679 , p_source_6 => p_source_6
30680 )
30681 );
30682
30683
30684 --
30685 -- call ADRs
30686 -- Bug 4922099
30687 --
30688 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30689 (NVL(l_actual_upg_option, 'N') = 'O') OR
30690 (NVL(l_enc_upg_option, 'N') = 'O')
30691 )
30692 THEN
30693 NULL;
30694 --
30695 --
30696
30697 l_ccid := AcctDerRule_6(
30698 p_application_id => p_application_id
30699 , p_ae_header_id => l_ae_header_id
30700 , p_source_11 => p_source_11
30701 , x_transaction_coa_id => l_adr_transaction_coa_id
30702 , x_accounting_coa_id => l_adr_accounting_coa_id
30703 , x_value_type_code => l_adr_value_type_code
30704 , p_side => 'NA'
30705 );
30706
30707 xla_ae_lines_pkg.set_ccid(
30708 p_code_combination_id => l_ccid
30709 , p_value_type_code => l_adr_value_type_code
30710 , p_transaction_coa_id => l_adr_transaction_coa_id
30711 , p_accounting_coa_id => l_adr_accounting_coa_id
30712 , p_adr_code => 'PROJ_BURDENED_ENC_ACCT_RULE'
30713 , p_adr_type_code => 'S'
30714 , p_component_type => l_component_type
30715 , p_component_code => l_component_code
30716 , p_component_type_code => l_component_type_code
30717 , p_component_appl_id => l_component_appl_id
30718 , p_amb_context_code => l_amb_context_code
30719 , p_side => 'NA'
30720 );
30721
30722
30723 --
30724 --
30725 END IF;
30726 --
30727 -- Bug 4922099
30728 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
30729 (NVL(l_enc_upg_option, 'N') = 'O')
30730 ) AND
30731 (l_bflow_method_code = 'PRIOR_ENTRY')
30732 )
30733 THEN
30734 IF
30735 --
30736 1 = 2
30737 --
30738 THEN
30739 xla_accounting_err_pkg.build_message
30740 (p_appli_s_name => 'XLA'
30741 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30742 ,p_token_1 => 'LINE_NUMBER'
30743 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
30744 ,p_token_2 => 'LINE_TYPE_NAME'
30745 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
30746 l_component_type
30747 ,l_component_code
30748 ,l_component_type_code
30749 ,l_component_appl_id
30750 ,l_amb_context_code
30751 ,l_entity_code
30752 ,l_event_class_code
30753 )
30754 ,p_token_3 => 'OWNER'
30755 ,p_value_3 => xla_lookups_pkg.get_meaning(
30756 p_lookup_type => 'XLA_OWNER_TYPE'
30757 ,p_lookup_code => l_component_type_code
30758 )
30759 ,p_token_4 => 'PRODUCT_NAME'
30760 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
30761 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
30762 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
30763 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
30764 ,p_ae_header_id => NULL
30765 );
30766
30767 IF (C_LEVEL_ERROR>= g_log_level) THEN
30768 trace
30769 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30770 ,p_level => C_LEVEL_ERROR
30771 ,p_module => l_log_module);
30772 END IF;
30773 END IF;
30774 END IF;
30775 --
30776 --
30777 ------------------------------------------------------------------------------------------------
30778 -- 4219869 Business Flow
30779 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
30780 -- Prior Entry. Currently, the following code is always generated.
30781 ------------------------------------------------------------------------------------------------
30782 XLA_AE_LINES_PKG.ValidateCurrentLine;
30783
30784 ------------------------------------------------------------------------------------
30785 -- 4219869 Business Flow
30786 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
30787 ------------------------------------------------------------------------------------
30788 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30789
30790 ----------------------------------------------------------------------------------
30791 -- 4219869 Business Flow
30792 -- Update journal entry status -- Need to generate this within IF <condition>
30793 ----------------------------------------------------------------------------------
30794 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30795 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
30796 ,p_balance_type_code => l_balance_type_code
30797 );
30798
30799 -------------------------------------------------------------------------------------------
30800 -- 4262811 - Generate the Accrual Reversal lines
30801 -------------------------------------------------------------------------------------------
30802 BEGIN
30803 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
30804 (g_array_event(p_event_id).array_value_num('header_index'));
30805 IF l_acc_rev_flag IS NULL THEN
30806 l_acc_rev_flag := 'N';
30807 END IF;
30808 EXCEPTION
30809 WHEN OTHERS THEN
30810 l_acc_rev_flag := 'N';
30811 END;
30812 --
30813 IF (l_acc_rev_flag = 'Y') THEN
30814
30815 -- 4645092 ------------------------------------------------------------------------------
30816 -- To allow MPA report to determine if it should generate report process
30817 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
30818 ------------------------------------------------------------------------------------------
30819
30820 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
30821 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
30822
30823 --
30824 -- Update the line information that should be overwritten
30825 --
30826 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
30827 p_header_num => 1);
30828 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
30829
30830 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
30831
30832 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
30833 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
30834 END IF;
30835
30836 --
30837 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
30838 --
30839 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
30840 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
30841 ELSE
30842 ---------------------------------------------------------------------------------------------------
30843 -- 4262811a Switch Sign
30844 ---------------------------------------------------------------------------------------------------
30845 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
30846 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30847 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30848 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30849 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30850 -- 5132302
30851 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
30852 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30853
30854 END IF;
30855
30856 -- 4955764
30857 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30858 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
30859
30860
30861 XLA_AE_LINES_PKG.ValidateCurrentLine;
30862 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30863
30864 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30865 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
30866 ,p_balance_type_code => l_balance_type_code);
30867
30868 END IF;
30869
30870 -----------------------------------------------------------------------------------------
30871 -- 4262811 Multiperiod Accounting
30872 -----------------------------------------------------------------------------------------
30873 -- No MPA option is assigned.
30874
30875
30876 END IF;
30877 END IF;
30878 --
30879
30880 --
30881 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30882 trace
30883 (p_msg => 'END of AcctLineType_56'
30884 ,p_level => C_LEVEL_PROCEDURE
30885 ,p_module => l_log_module);
30886 END IF;
30887 --
30888 EXCEPTION
30889 WHEN xla_exceptions_pkg.application_exception THEN
30890 RAISE;
30891 WHEN OTHERS THEN
30892 xla_exceptions_pkg.raise_message
30893 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_56');
30894 END AcctLineType_56;
30895 --
30896
30897 ---------------------------------------
30898 --
30899 -- PRIVATE FUNCTION
30900 -- AcctLineType_57
30901 --
30902 ---------------------------------------
30903 PROCEDURE AcctLineType_57 (
30904 p_application_id IN NUMBER
30905 ,p_event_id IN NUMBER
30906 ,p_calculate_acctd_flag IN VARCHAR2
30907 ,p_calculate_g_l_flag IN VARCHAR2
30908 ,p_actual_flag IN OUT VARCHAR2
30909 ,p_balance_type_code OUT VARCHAR2
30910 ,p_gain_or_loss_ref OUT VARCHAR2
30911
30912 --Project Name
30913 , p_source_3 IN VARCHAR2
30914 --Task Name
30915 , p_source_4 IN VARCHAR2
30916 --Project Expenditure Organization Identifier
30917 , p_source_5 IN NUMBER
30918 --Expenditure Type
30919 , p_source_6 IN VARCHAR2
30920 --Document Type
30921 , p_source_9 IN VARCHAR2
30922 --Budget Account
30923 , p_source_11 IN NUMBER
30924 --Main Or Backing Code
30925 , p_source_13 IN VARCHAR2
30926 --Burden Record Identifier
30927 , p_source_14 IN VARCHAR2
30928 , p_source_14_meaning IN VARCHAR2
30929 --Burden Amount Display Method
30930 , p_source_15 IN VARCHAR2
30931 --Accounting Reversal Flag
30932 , p_source_16 IN VARCHAR2
30933 --Allocated to Application Identifier
30934 , p_source_17 IN NUMBER
30935 --Allocated to Distribution Type
30936 , p_source_18 IN VARCHAR2
30937 --Allocated to Entity Code
30938 , p_source_19 IN VARCHAR2
30939 --Allocated to First Distribution Identifier
30940 , p_source_20 IN NUMBER
30941 --Allocated to First System Transaction Identifier
30942 , p_source_21 IN NUMBER
30943 --Purchase Order Burden Applied to Application Identifier
30944 , p_source_23 IN NUMBER
30945 --PO Distribution Type
30946 , p_source_24 IN VARCHAR2
30947 --Purchase Order Burden Applied to Entity Code
30948 , p_source_25 IN VARCHAR2
30949 --Purchase Order Burden Applied to First Distribution Identifier
30950 , p_source_26 IN NUMBER
30951 --Purchase Order Burden Applied to First System Transaction Identifier
30952 , p_source_27 IN NUMBER
30953 --Purchase Order Burden Applied to Second Distribution Identifier
30954 , p_source_28 IN VARCHAR2
30955 --PO Distribution Identifier
30956 , p_source_29 IN NUMBER
30957 --Line Type Name
30958 , p_source_30 IN VARCHAR2
30959 --Encumbrance Upgrade Credit Accounting Class
30960 , p_source_31 IN VARCHAR2
30961 --Encumbrance Upgrade Credit Account
30962 , p_source_32 IN NUMBER
30963 --Entered Amount
30964 , p_source_33 IN NUMBER
30965 --Currency Code
30966 , p_source_34 IN VARCHAR2
30967 --Accounted Amount
30968 , p_source_35 IN NUMBER
30969 --Encumbrance Upgrade Debit Accounting Class
30970 , p_source_36 IN VARCHAR2
30971 --Encumbrance Upgrade Debit Account
30972 , p_source_37 IN NUMBER
30973 --Use Encumbrances Upgrade Attributes Flag
30974 , p_source_38 IN VARCHAR2
30975 --Encumbrance Upgrade Credit Encumbrance Type
30976 , p_source_39 IN NUMBER
30977 --Encumbrance Upgrade Debit Encumbrance Type
30978 , p_source_40 IN NUMBER
30979 )
30980 IS
30981
30982 l_component_type VARCHAR2(80);
30983 l_component_code VARCHAR2(30);
30984 l_component_type_code VARCHAR2(1);
30985 l_component_appl_id INTEGER;
30986 l_amb_context_code VARCHAR2(30);
30987 l_entity_code VARCHAR2(30);
30988 l_event_class_code VARCHAR2(30);
30989 l_ae_header_id NUMBER;
30990 l_event_type_code VARCHAR2(30);
30991 l_line_definition_code VARCHAR2(30);
30992 l_line_definition_owner_code VARCHAR2(1);
30993 --
30994 -- adr variables
30995 l_segment VARCHAR2(30);
30996 l_ccid NUMBER;
30997 l_adr_transaction_coa_id NUMBER;
30998 l_adr_accounting_coa_id NUMBER;
30999 l_adr_flexfield_segment_code VARCHAR2(30);
31000 l_adr_flex_value_set_id NUMBER;
31001 l_adr_value_type_code VARCHAR2(30);
31002 l_adr_value_combination_id NUMBER;
31003 l_adr_value_segment_code VARCHAR2(30);
31004
31005 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
31006 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
31007 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
31008 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
31009
31010 -- 4262811 Variables ------------------------------------------------------------------------------------------
31011 l_entered_amt_idx NUMBER;
31012 l_accted_amt_idx NUMBER;
31013 l_acc_rev_flag VARCHAR2(1);
31014 l_accrual_line_num NUMBER;
31015 l_tmp_amt NUMBER;
31016 l_acc_rev_natural_side_code VARCHAR2(1);
31017
31018 l_num_entries NUMBER;
31019 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
31020 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
31021 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
31022 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
31023 l_recog_line_1 NUMBER;
31024 l_recog_line_2 NUMBER;
31025
31026 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
31027 l_bflow_applied_to_amt NUMBER; -- 5132302
31028 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
31029
31030 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
31031
31032 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
31033 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
31034
31035 ---------------------------------------------------------------------------------------------------------------
31036
31037
31038 --
31039 -- bulk performance
31040 --
31041 l_balance_type_code VARCHAR2(1);
31042 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
31043 l_log_module VARCHAR2(240);
31044
31045 --
31046 -- Upgrade strategy
31047 --
31048 l_actual_upg_option VARCHAR2(1);
31049 l_enc_upg_option VARCHAR2(1);
31050
31051 --
31052 BEGIN
31053 --
31054 IF g_log_enabled THEN
31055 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_57';
31056 END IF;
31057 --
31058 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31059
31060 trace
31061 (p_msg => 'BEGIN of AcctLineType_57'
31062 ,p_level => C_LEVEL_PROCEDURE
31063 ,p_module => l_log_module);
31064
31065 END IF;
31066 --
31067 l_component_type := 'AMB_JLT';
31068 l_component_code := 'REOPEN_FINALMATCH_POBURDENENC';
31069 l_component_type_code := 'S';
31070 l_component_appl_id := 201;
31071 l_amb_context_code := 'DEFAULT';
31072 l_entity_code := 'PURCHASE_ORDER';
31073 l_event_class_code := 'PO_BURDEN';
31074 l_event_type_code := 'PO_BURDEN_ALL';
31075 l_line_definition_owner_code := 'S';
31076 l_line_definition_code := 'PO_BURDEN_ENC_ALL';
31077 --
31078 l_balance_type_code := 'E';
31079 l_segment := NULL;
31080 l_ccid := NULL;
31081 l_adr_transaction_coa_id := NULL;
31082 l_adr_accounting_coa_id := NULL;
31083 l_adr_flexfield_segment_code := NULL;
31084 l_adr_flex_value_set_id := NULL;
31085 l_adr_value_type_code := NULL;
31086 l_adr_value_combination_id := NULL;
31087 l_adr_value_segment_code := NULL;
31088
31089 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
31090 l_bflow_class_code := ''; -- 4219869 Business Flow
31091 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
31092 l_budgetary_control_flag := 'Y';
31093
31094 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31095 l_bflow_applied_to_amt := NULL; -- 5132302
31096 l_entered_amt_idx := NULL; -- 4262811
31097 l_accted_amt_idx := NULL; -- 4262811
31098 l_acc_rev_flag := NULL; -- 4262811
31099 l_accrual_line_num := NULL; -- 4262811
31100 l_tmp_amt := NULL; -- 4262811
31101 --
31102
31103 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
31104 l_balance_type_code <> 'B' THEN
31105 IF NVL(
31106 xla_ae_sources_pkg.GetSystemSourceChar(
31107 p_source_code => 'XLA_EVENT_TYPE_CODE'
31108 , p_source_type_code => 'Y'
31109 , p_source_application_id => 602
31110 ),'
31111 ') = 'PO_BURDEN_REOPEN_FINAL_MATCH' AND
31112 NVL(p_source_13,'
31113 ') = 'M' AND
31114 NVL(p_source_14,'
31115 ') = 'O' AND
31116 NVL(p_source_9,'
31117 ') = 'PO' AND
31118 NVL(p_source_15,'
31119 ') = 'D'
31120 THEN
31121
31122 --
31123 XLA_AE_LINES_PKG.SetNewLine;
31124
31125 p_balance_type_code := l_balance_type_code;
31126 -- set the flag so later we will know whether the gain loss line needs to be created
31127
31128 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
31129 p_actual_flag :='A';
31130 END IF;
31131
31132 --
31133 -- bulk performance
31134 --
31135 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
31136 p_header_num => 0); -- 4262811
31137 --
31138 -- set accounting line options
31139 --
31140 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
31141 p_natural_side_code => 'D'
31142 , p_gain_or_loss_flag => 'N'
31143 , p_gl_transfer_mode_code => 'S'
31144 , p_acct_entry_type_code => 'E'
31145 , p_switch_side_flag => 'N'
31146 , p_merge_duplicate_code => 'N'
31147 );
31148 --
31149 l_acc_rev_natural_side_code := 'C'; -- 4262811
31150 --
31151 --
31152 -- set accounting line type info
31153 --
31154 xla_ae_lines_pkg.SetAcctLineType
31155 (p_component_type => l_component_type
31156 ,p_event_type_code => l_event_type_code
31157 ,p_line_definition_owner_code => l_line_definition_owner_code
31158 ,p_line_definition_code => l_line_definition_code
31159 ,p_accounting_line_code => l_component_code
31160 ,p_accounting_line_type_code => l_component_type_code
31161 ,p_accounting_line_appl_id => l_component_appl_id
31162 ,p_amb_context_code => l_amb_context_code
31163 ,p_entity_code => l_entity_code
31164 ,p_event_class_code => l_event_class_code);
31165 --
31166 -- set accounting class
31167 --
31168 xla_ae_lines_pkg.SetAcctClass(
31169 p_accounting_class_code => 'PO_PA_BURDEN'
31170 , p_ae_header_id => l_ae_header_id
31171 );
31172
31173 --
31174 -- set rounding class
31175 --
31176 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
31177 'PO_PA_BURDEN';
31178
31179 --
31180 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31181 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31182 --
31183 -- bulk performance
31184 --
31185 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31186
31187 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31188 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31189
31190 -- 4955764
31191 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31192 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31193
31194 -- 4458381 Public Sector Enh
31195 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1001;
31196 --
31197 -- set accounting attributes for the line type
31198 --
31199 l_entered_amt_idx := 27;
31200 l_accted_amt_idx := 29;
31201 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31202 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
31203 l_rec_acct_attrs.array_char_value(1) := p_source_16;
31204 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
31205 l_rec_acct_attrs.array_num_value(2) := p_source_17;
31206 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
31207 l_rec_acct_attrs.array_char_value(3) := p_source_18;
31208 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
31209 l_rec_acct_attrs.array_char_value(4) := p_source_19;
31210 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
31211 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
31212 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
31213 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
31214 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
31215 l_rec_acct_attrs.array_num_value(7) := p_source_23;
31216 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
31217 l_rec_acct_attrs.array_char_value(8) := p_source_24;
31218 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
31219 l_rec_acct_attrs.array_char_value(9) := p_source_25;
31220 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
31221 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_26);
31222 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
31223 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_27);
31224 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
31225 l_rec_acct_attrs.array_char_value(12) := p_source_28;
31226 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
31227 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_29);
31228 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
31229 l_rec_acct_attrs.array_char_value(14) := p_source_6;
31230 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
31231 l_rec_acct_attrs.array_char_value(15) := p_source_30;
31232 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
31233 l_rec_acct_attrs.array_char_value(16) := p_source_31;
31234 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
31235 l_rec_acct_attrs.array_num_value(17) := p_source_32;
31236 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
31237 l_rec_acct_attrs.array_num_value(18) := p_source_33;
31238 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
31239 l_rec_acct_attrs.array_char_value(19) := p_source_34;
31240 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
31241 l_rec_acct_attrs.array_num_value(20) := p_source_35;
31242 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
31243 l_rec_acct_attrs.array_char_value(21) := p_source_36;
31244 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
31245 l_rec_acct_attrs.array_num_value(22) := p_source_37;
31246 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
31247 l_rec_acct_attrs.array_num_value(23) := p_source_33;
31248 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
31249 l_rec_acct_attrs.array_char_value(24) := p_source_34;
31250 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
31251 l_rec_acct_attrs.array_num_value(25) := p_source_35;
31252 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
31253 l_rec_acct_attrs.array_char_value(26) := p_source_38;
31254 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
31255 l_rec_acct_attrs.array_num_value(27) := p_source_33;
31256 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
31257 l_rec_acct_attrs.array_char_value(28) := p_source_34;
31258 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
31259 l_rec_acct_attrs.array_num_value(29) := p_source_35;
31260 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
31261 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_29);
31262 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
31263 l_rec_acct_attrs.array_char_value(31) := p_source_6;
31264 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
31265 l_rec_acct_attrs.array_char_value(32) := p_source_30;
31266 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
31267 l_rec_acct_attrs.array_num_value(33) := p_source_39;
31268 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
31269 l_rec_acct_attrs.array_num_value(34) := p_source_40;
31270
31271 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
31272 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
31273
31274 ---------------------------------------------------------------------------------------------------------------
31275 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
31276 ---------------------------------------------------------------------------------------------------------------
31277 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
31278
31279 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31280 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31281
31282 IF xla_accounting_cache_pkg.GetValueChar
31283 (p_source_code => 'LEDGER_CATEGORY_CODE'
31284 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
31285 AND l_bflow_method_code = 'PRIOR_ENTRY'
31286 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
31287 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
31288 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
31289 )
31290 THEN
31291 xla_ae_lines_pkg.BflowUpgEntry
31292 (p_business_method_code => l_bflow_method_code
31293 ,p_business_class_code => l_bflow_class_code
31294 ,p_balance_type => l_balance_type_code);
31295 ELSE
31296 NULL;
31297 -- No business flow processing for business flow method of NONE.
31298 END IF;
31299
31300 --
31301 -- call analytical criteria
31302 --
31303
31304 --
31305 -- call description
31306 --
31307
31308 xla_ae_lines_pkg.SetLineDescription(
31309 p_ae_header_id => l_ae_header_id
31310 ,p_description => Description_2 (
31311 p_application_id => p_application_id
31312 , p_ae_header_id => l_ae_header_id
31313 , p_source_3 => p_source_3
31314 , p_source_4 => p_source_4
31315 , p_source_5 => p_source_5
31316 , p_source_6 => p_source_6
31317 )
31318 );
31319
31320
31321 --
31322 -- call ADRs
31323 -- Bug 4922099
31324 --
31325 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31326 (NVL(l_actual_upg_option, 'N') = 'O') OR
31327 (NVL(l_enc_upg_option, 'N') = 'O')
31328 )
31329 THEN
31330 NULL;
31331 --
31332 --
31333
31334 l_ccid := AcctDerRule_7(
31335 p_application_id => p_application_id
31336 , p_ae_header_id => l_ae_header_id
31337 , p_source_11 => p_source_11
31338 , x_transaction_coa_id => l_adr_transaction_coa_id
31339 , x_accounting_coa_id => l_adr_accounting_coa_id
31340 , x_value_type_code => l_adr_value_type_code
31341 , p_side => 'NA'
31342 );
31343
31344 xla_ae_lines_pkg.set_ccid(
31345 p_code_combination_id => l_ccid
31346 , p_value_type_code => l_adr_value_type_code
31347 , p_transaction_coa_id => l_adr_transaction_coa_id
31348 , p_accounting_coa_id => l_adr_accounting_coa_id
31349 , p_adr_code => 'PROJ_BURDEN_ENC_ACCT_RULE'
31350 , p_adr_type_code => 'S'
31351 , p_component_type => l_component_type
31352 , p_component_code => l_component_code
31353 , p_component_type_code => l_component_type_code
31354 , p_component_appl_id => l_component_appl_id
31355 , p_amb_context_code => l_amb_context_code
31356 , p_side => 'NA'
31357 );
31358
31359
31360 --
31361 --
31362 END IF;
31363 --
31364 -- Bug 4922099
31365 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
31366 (NVL(l_enc_upg_option, 'N') = 'O')
31367 ) AND
31368 (l_bflow_method_code = 'PRIOR_ENTRY')
31369 )
31370 THEN
31371 IF
31372 --
31373 1 = 2
31374 --
31375 THEN
31376 xla_accounting_err_pkg.build_message
31377 (p_appli_s_name => 'XLA'
31378 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31379 ,p_token_1 => 'LINE_NUMBER'
31380 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
31381 ,p_token_2 => 'LINE_TYPE_NAME'
31382 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
31383 l_component_type
31384 ,l_component_code
31385 ,l_component_type_code
31386 ,l_component_appl_id
31387 ,l_amb_context_code
31388 ,l_entity_code
31389 ,l_event_class_code
31390 )
31391 ,p_token_3 => 'OWNER'
31392 ,p_value_3 => xla_lookups_pkg.get_meaning(
31393 p_lookup_type => 'XLA_OWNER_TYPE'
31394 ,p_lookup_code => l_component_type_code
31395 )
31396 ,p_token_4 => 'PRODUCT_NAME'
31397 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
31398 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
31399 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
31400 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
31401 ,p_ae_header_id => NULL
31402 );
31403
31404 IF (C_LEVEL_ERROR>= g_log_level) THEN
31405 trace
31406 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31407 ,p_level => C_LEVEL_ERROR
31408 ,p_module => l_log_module);
31409 END IF;
31410 END IF;
31411 END IF;
31412 --
31413 --
31414 ------------------------------------------------------------------------------------------------
31415 -- 4219869 Business Flow
31416 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
31417 -- Prior Entry. Currently, the following code is always generated.
31418 ------------------------------------------------------------------------------------------------
31419 XLA_AE_LINES_PKG.ValidateCurrentLine;
31420
31421 ------------------------------------------------------------------------------------
31422 -- 4219869 Business Flow
31423 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
31424 ------------------------------------------------------------------------------------
31425 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31426
31427 ----------------------------------------------------------------------------------
31428 -- 4219869 Business Flow
31429 -- Update journal entry status -- Need to generate this within IF <condition>
31430 ----------------------------------------------------------------------------------
31431 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31432 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
31433 ,p_balance_type_code => l_balance_type_code
31434 );
31435
31436 -------------------------------------------------------------------------------------------
31437 -- 4262811 - Generate the Accrual Reversal lines
31438 -------------------------------------------------------------------------------------------
31439 BEGIN
31440 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
31441 (g_array_event(p_event_id).array_value_num('header_index'));
31442 IF l_acc_rev_flag IS NULL THEN
31443 l_acc_rev_flag := 'N';
31444 END IF;
31445 EXCEPTION
31446 WHEN OTHERS THEN
31447 l_acc_rev_flag := 'N';
31448 END;
31449 --
31450 IF (l_acc_rev_flag = 'Y') THEN
31451
31452 -- 4645092 ------------------------------------------------------------------------------
31453 -- To allow MPA report to determine if it should generate report process
31454 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
31455 ------------------------------------------------------------------------------------------
31456
31457 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
31458 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
31459
31460 --
31461 -- Update the line information that should be overwritten
31462 --
31463 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
31464 p_header_num => 1);
31465 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
31466
31467 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
31468
31469 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
31470 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
31471 END IF;
31472
31473 --
31474 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
31475 --
31476 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
31477 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
31478 ELSE
31479 ---------------------------------------------------------------------------------------------------
31480 -- 4262811a Switch Sign
31481 ---------------------------------------------------------------------------------------------------
31482 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
31483 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31484 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31485 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31486 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31487 -- 5132302
31488 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
31489 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31490
31491 END IF;
31492
31493 -- 4955764
31494 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31495 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
31496
31497
31498 XLA_AE_LINES_PKG.ValidateCurrentLine;
31499 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31500
31501 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31502 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
31503 ,p_balance_type_code => l_balance_type_code);
31504
31505 END IF;
31506
31507 -----------------------------------------------------------------------------------------
31508 -- 4262811 Multiperiod Accounting
31509 -----------------------------------------------------------------------------------------
31510 -- No MPA option is assigned.
31511
31512
31513 END IF;
31514 END IF;
31515 --
31516
31517 --
31518 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31519 trace
31520 (p_msg => 'END of AcctLineType_57'
31521 ,p_level => C_LEVEL_PROCEDURE
31522 ,p_module => l_log_module);
31523 END IF;
31524 --
31525 EXCEPTION
31526 WHEN xla_exceptions_pkg.application_exception THEN
31527 RAISE;
31528 WHEN OTHERS THEN
31529 xla_exceptions_pkg.raise_message
31530 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_57');
31531 END AcctLineType_57;
31532 --
31533
31534 ---------------------------------------
31535 --
31536 -- PRIVATE FUNCTION
31537 -- AcctLineType_58
31538 --
31539 ---------------------------------------
31540 PROCEDURE AcctLineType_58 (
31541 p_application_id IN NUMBER
31542 ,p_event_id IN NUMBER
31543 ,p_calculate_acctd_flag IN VARCHAR2
31544 ,p_calculate_g_l_flag IN VARCHAR2
31545 ,p_actual_flag IN OUT VARCHAR2
31546 ,p_balance_type_code OUT VARCHAR2
31547 ,p_gain_or_loss_ref OUT VARCHAR2
31548
31549 --Journal entry Line Description
31550 , p_source_7 IN VARCHAR2
31551 --Budget Account
31552 , p_source_11 IN NUMBER
31553 --Main Or Backing Code
31554 , p_source_13 IN VARCHAR2
31555 --Accounting Reversal Flag
31556 , p_source_16 IN VARCHAR2
31557 --PO Distribution Identifier
31558 , p_source_29 IN NUMBER
31559 --Entered Amount
31560 , p_source_33 IN NUMBER
31561 --Currency Code
31562 , p_source_34 IN VARCHAR2
31563 --Accounted Amount
31564 , p_source_35 IN NUMBER
31565 --Applied To Application Identifier
31566 , p_source_53 IN NUMBER
31567 --Applied To Distribution Link Type
31568 , p_source_54 IN VARCHAR2
31569 --Applied To Entity Code
31570 , p_source_55 IN VARCHAR2
31571 --Applied To Distribution Identifier 1
31572 , p_source_56 IN NUMBER
31573 --Applied To Header Identifier 1
31574 , p_source_57 IN NUMBER
31575 --Distribution Link Type
31576 , p_source_58 IN VARCHAR2
31577 --PO Encumbrance Upgrade Option
31578 , p_source_59 IN VARCHAR2
31579 --JFMIP Reference
31580 , p_source_60 IN VARCHAR2
31581 --PO Upgrade Encumbrance Type Identifier
31582 , p_source_61 IN NUMBER
31583 --Currency Conversion Date
31584 , p_source_62 IN DATE
31585 --Currency Conversion Rate
31586 , p_source_63 IN NUMBER
31587 --Currency Conversion Type
31588 , p_source_64 IN VARCHAR2
31589 --PO Release Identifier
31590 , p_source_66 IN NUMBER
31591 )
31592 IS
31593
31594 l_component_type VARCHAR2(80);
31595 l_component_code VARCHAR2(30);
31596 l_component_type_code VARCHAR2(1);
31597 l_component_appl_id INTEGER;
31598 l_amb_context_code VARCHAR2(30);
31599 l_entity_code VARCHAR2(30);
31600 l_event_class_code VARCHAR2(30);
31601 l_ae_header_id NUMBER;
31602 l_event_type_code VARCHAR2(30);
31603 l_line_definition_code VARCHAR2(30);
31604 l_line_definition_owner_code VARCHAR2(1);
31605 --
31606 -- adr variables
31607 l_segment VARCHAR2(30);
31608 l_ccid NUMBER;
31609 l_adr_transaction_coa_id NUMBER;
31610 l_adr_accounting_coa_id NUMBER;
31611 l_adr_flexfield_segment_code VARCHAR2(30);
31612 l_adr_flex_value_set_id NUMBER;
31613 l_adr_value_type_code VARCHAR2(30);
31614 l_adr_value_combination_id NUMBER;
31615 l_adr_value_segment_code VARCHAR2(30);
31616
31617 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
31618 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
31619 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
31620 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
31621
31622 -- 4262811 Variables ------------------------------------------------------------------------------------------
31623 l_entered_amt_idx NUMBER;
31624 l_accted_amt_idx NUMBER;
31625 l_acc_rev_flag VARCHAR2(1);
31626 l_accrual_line_num NUMBER;
31627 l_tmp_amt NUMBER;
31628 l_acc_rev_natural_side_code VARCHAR2(1);
31629
31630 l_num_entries NUMBER;
31631 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
31632 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
31633 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
31634 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
31635 l_recog_line_1 NUMBER;
31636 l_recog_line_2 NUMBER;
31637
31638 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
31639 l_bflow_applied_to_amt NUMBER; -- 5132302
31640 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
31641
31642 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
31643
31644 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
31645 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
31646
31647 ---------------------------------------------------------------------------------------------------------------
31648
31649
31650 --
31651 -- bulk performance
31652 --
31653 l_balance_type_code VARCHAR2(1);
31654 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
31655 l_log_module VARCHAR2(240);
31656
31657 --
31658 -- Upgrade strategy
31659 --
31660 l_actual_upg_option VARCHAR2(1);
31661 l_enc_upg_option VARCHAR2(1);
31662
31663 --
31664 BEGIN
31665 --
31666 IF g_log_enabled THEN
31667 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_58';
31668 END IF;
31669 --
31670 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31671
31672 trace
31673 (p_msg => 'BEGIN of AcctLineType_58'
31674 ,p_level => C_LEVEL_PROCEDURE
31675 ,p_module => l_log_module);
31676
31677 END IF;
31678 --
31679 l_component_type := 'AMB_JLT';
31680 l_component_code := 'REOPEN_FINAL_CLOSED_RELEASE';
31681 l_component_type_code := 'S';
31682 l_component_appl_id := 201;
31683 l_amb_context_code := 'DEFAULT';
31684 l_entity_code := 'RELEASE';
31685 l_event_class_code := 'RELEASE';
31686 l_event_type_code := 'RELEASE_ALL';
31687 l_line_definition_owner_code := 'S';
31688 l_line_definition_code := 'RELEASE_ENC_ALL';
31689 --
31690 l_balance_type_code := 'E';
31691 l_segment := NULL;
31692 l_ccid := NULL;
31693 l_adr_transaction_coa_id := NULL;
31694 l_adr_accounting_coa_id := NULL;
31695 l_adr_flexfield_segment_code := NULL;
31696 l_adr_flex_value_set_id := NULL;
31697 l_adr_value_type_code := NULL;
31698 l_adr_value_combination_id := NULL;
31699 l_adr_value_segment_code := NULL;
31700
31701 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
31702 l_bflow_class_code := ''; -- 4219869 Business Flow
31703 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
31704 l_budgetary_control_flag := 'Y';
31705
31706 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31707 l_bflow_applied_to_amt := NULL; -- 5132302
31708 l_entered_amt_idx := NULL; -- 4262811
31709 l_accted_amt_idx := NULL; -- 4262811
31710 l_acc_rev_flag := NULL; -- 4262811
31711 l_accrual_line_num := NULL; -- 4262811
31712 l_tmp_amt := NULL; -- 4262811
31713 --
31714
31715 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
31716 l_balance_type_code <> 'B' THEN
31717 IF NVL(
31718 xla_ae_sources_pkg.GetSystemSourceChar(
31719 p_source_code => 'XLA_EVENT_TYPE_CODE'
31720 , p_source_type_code => 'Y'
31721 , p_source_application_id => 602
31722 ),'
31723 ') = 'RELEASE_REOPEN_FINAL_CLOSED' AND
31724 NVL(p_source_13,'
31725 ') = 'M'
31726 THEN
31727
31728 --
31729 XLA_AE_LINES_PKG.SetNewLine;
31730
31731 p_balance_type_code := l_balance_type_code;
31732 -- set the flag so later we will know whether the gain loss line needs to be created
31733
31734 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
31735 p_actual_flag :='A';
31736 END IF;
31737
31738 --
31739 -- bulk performance
31740 --
31741 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
31742 p_header_num => 0); -- 4262811
31743 --
31744 -- set accounting line options
31745 --
31746 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
31747 p_natural_side_code => 'D'
31748 , p_gain_or_loss_flag => 'N'
31749 , p_gl_transfer_mode_code => 'S'
31750 , p_acct_entry_type_code => 'E'
31751 , p_switch_side_flag => 'N'
31752 , p_merge_duplicate_code => 'N'
31753 );
31754 --
31755 l_acc_rev_natural_side_code := 'C'; -- 4262811
31756 --
31757 --
31758 -- set accounting line type info
31759 --
31760 xla_ae_lines_pkg.SetAcctLineType
31761 (p_component_type => l_component_type
31762 ,p_event_type_code => l_event_type_code
31763 ,p_line_definition_owner_code => l_line_definition_owner_code
31764 ,p_line_definition_code => l_line_definition_code
31765 ,p_accounting_line_code => l_component_code
31766 ,p_accounting_line_type_code => l_component_type_code
31767 ,p_accounting_line_appl_id => l_component_appl_id
31768 ,p_amb_context_code => l_amb_context_code
31769 ,p_entity_code => l_entity_code
31770 ,p_event_class_code => l_event_class_code);
31771 --
31772 -- set accounting class
31773 --
31774 xla_ae_lines_pkg.SetAcctClass(
31775 p_accounting_class_code => 'PURCHASE_ORDER'
31776 , p_ae_header_id => l_ae_header_id
31777 );
31778
31779 --
31780 -- set rounding class
31781 --
31782 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
31783 'PURCHASE_ORDER';
31784
31785 --
31786 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31787 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31788 --
31789 -- bulk performance
31790 --
31791 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31792
31793 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31794 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31795
31796 -- 4955764
31797 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31798 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31799
31800 -- 4458381 Public Sector Enh
31801 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1001;
31802 --
31803 -- set accounting attributes for the line type
31804 --
31805 l_entered_amt_idx := 23;
31806 l_accted_amt_idx := 28;
31807 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31808 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
31809 l_rec_acct_attrs.array_char_value(1) := p_source_16;
31810 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
31811 l_rec_acct_attrs.array_num_value(2) :=
31812 xla_ae_sources_pkg.GetSystemSourceNum(
31813 p_source_code => 'XLA_EVENT_APPL_ID'
31814 , p_source_type_code => 'Y'
31815 , p_source_application_id => 602
31816 );
31817 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
31818 l_rec_acct_attrs.array_char_value(3) := p_source_58;
31819 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
31820 l_rec_acct_attrs.array_char_value(4) :=
31821 xla_ae_sources_pkg.GetSystemSourceChar(
31822 p_source_code => 'XLA_ENTITY_CODE'
31823 , p_source_type_code => 'Y'
31824 , p_source_application_id => 602
31825 );
31826 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
31827 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_29);
31828 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
31829 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_66);
31830 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
31831 l_rec_acct_attrs.array_num_value(7) := p_source_53;
31832 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
31833 l_rec_acct_attrs.array_char_value(8) := p_source_54;
31834 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
31835 l_rec_acct_attrs.array_char_value(9) := p_source_55;
31836 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
31837 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_56);
31838 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
31839 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_57);
31840 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
31841 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_29);
31842 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
31843 l_rec_acct_attrs.array_char_value(13) := p_source_58;
31844 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
31845 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_11);
31846 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
31847 l_rec_acct_attrs.array_num_value(15) := p_source_33;
31848 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
31849 l_rec_acct_attrs.array_char_value(16) := p_source_34;
31850 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
31851 l_rec_acct_attrs.array_num_value(17) := p_source_35;
31852 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
31853 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_11);
31854 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
31855 l_rec_acct_attrs.array_num_value(19) := p_source_33;
31856 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
31857 l_rec_acct_attrs.array_char_value(20) := p_source_34;
31858 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
31859 l_rec_acct_attrs.array_num_value(21) := p_source_35;
31860 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
31861 l_rec_acct_attrs.array_char_value(22) := p_source_59;
31862 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
31863 l_rec_acct_attrs.array_num_value(23) := p_source_33;
31864 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
31865 l_rec_acct_attrs.array_char_value(24) := p_source_34;
31866 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
31867 l_rec_acct_attrs.array_date_value(25) := p_source_62;
31868 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
31869 l_rec_acct_attrs.array_num_value(26) := p_source_63;
31870 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
31871 l_rec_acct_attrs.array_char_value(27) := p_source_64;
31872 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
31873 l_rec_acct_attrs.array_num_value(28) := p_source_35;
31874 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
31875 l_rec_acct_attrs.array_char_value(29) := p_source_60;
31876 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
31877 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_56);
31878 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
31879 l_rec_acct_attrs.array_char_value(31) := p_source_54;
31880 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
31881 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_66);
31882 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
31883 l_rec_acct_attrs.array_num_value(33) := p_source_61;
31884 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
31885 l_rec_acct_attrs.array_num_value(34) := p_source_61;
31886
31887 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
31888 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
31889
31890 ---------------------------------------------------------------------------------------------------------------
31891 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
31892 ---------------------------------------------------------------------------------------------------------------
31893 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
31894
31895 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31896 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31897
31898 IF xla_accounting_cache_pkg.GetValueChar
31899 (p_source_code => 'LEDGER_CATEGORY_CODE'
31900 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
31901 AND l_bflow_method_code = 'PRIOR_ENTRY'
31902 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
31903 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
31904 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
31905 )
31906 THEN
31907 xla_ae_lines_pkg.BflowUpgEntry
31908 (p_business_method_code => l_bflow_method_code
31909 ,p_business_class_code => l_bflow_class_code
31910 ,p_balance_type => l_balance_type_code);
31911 ELSE
31912 NULL;
31913 -- No business flow processing for business flow method of NONE.
31914 END IF;
31915
31916 --
31917 -- call analytical criteria
31918 --
31919
31920 --
31921 -- call description
31922 --
31923
31924 xla_ae_lines_pkg.SetLineDescription(
31925 p_ae_header_id => l_ae_header_id
31926 ,p_description => Description_3 (
31927 p_application_id => p_application_id
31928 , p_ae_header_id => l_ae_header_id
31929 , p_source_7 => p_source_7
31930 )
31931 );
31932
31933
31934 --
31935 -- call ADRs
31936 -- Bug 4922099
31937 --
31938 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31939 (NVL(l_actual_upg_option, 'N') = 'O') OR
31940 (NVL(l_enc_upg_option, 'N') = 'O')
31941 )
31942 THEN
31943 NULL;
31944 --
31945 --
31946
31947 l_ccid := AcctDerRule_8(
31948 p_application_id => p_application_id
31949 , p_ae_header_id => l_ae_header_id
31950 , p_source_11 => p_source_11
31951 , x_transaction_coa_id => l_adr_transaction_coa_id
31952 , x_accounting_coa_id => l_adr_accounting_coa_id
31953 , x_value_type_code => l_adr_value_type_code
31954 , p_side => 'NA'
31955 );
31956
31957 xla_ae_lines_pkg.set_ccid(
31958 p_code_combination_id => l_ccid
31959 , p_value_type_code => l_adr_value_type_code
31960 , p_transaction_coa_id => l_adr_transaction_coa_id
31961 , p_accounting_coa_id => l_adr_accounting_coa_id
31962 , p_adr_code => 'PURCHASING_ENCUMBRANCE_ADR'
31963 , p_adr_type_code => 'S'
31964 , p_component_type => l_component_type
31965 , p_component_code => l_component_code
31966 , p_component_type_code => l_component_type_code
31967 , p_component_appl_id => l_component_appl_id
31968 , p_amb_context_code => l_amb_context_code
31969 , p_side => 'NA'
31970 );
31971
31972
31973 --
31974 --
31975 END IF;
31976 --
31977 -- Bug 4922099
31978 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
31979 (NVL(l_enc_upg_option, 'N') = 'O')
31980 ) AND
31981 (l_bflow_method_code = 'PRIOR_ENTRY')
31982 )
31983 THEN
31984 IF
31985 --
31986 1 = 2
31987 --
31988 THEN
31989 xla_accounting_err_pkg.build_message
31990 (p_appli_s_name => 'XLA'
31991 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31992 ,p_token_1 => 'LINE_NUMBER'
31993 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
31994 ,p_token_2 => 'LINE_TYPE_NAME'
31995 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
31996 l_component_type
31997 ,l_component_code
31998 ,l_component_type_code
31999 ,l_component_appl_id
32000 ,l_amb_context_code
32001 ,l_entity_code
32002 ,l_event_class_code
32003 )
32004 ,p_token_3 => 'OWNER'
32005 ,p_value_3 => xla_lookups_pkg.get_meaning(
32006 p_lookup_type => 'XLA_OWNER_TYPE'
32007 ,p_lookup_code => l_component_type_code
32008 )
32009 ,p_token_4 => 'PRODUCT_NAME'
32010 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
32011 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
32012 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
32013 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
32014 ,p_ae_header_id => NULL
32015 );
32016
32017 IF (C_LEVEL_ERROR>= g_log_level) THEN
32018 trace
32019 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32020 ,p_level => C_LEVEL_ERROR
32021 ,p_module => l_log_module);
32022 END IF;
32023 END IF;
32024 END IF;
32025 --
32026 --
32027 ------------------------------------------------------------------------------------------------
32028 -- 4219869 Business Flow
32029 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
32030 -- Prior Entry. Currently, the following code is always generated.
32031 ------------------------------------------------------------------------------------------------
32032 XLA_AE_LINES_PKG.ValidateCurrentLine;
32033
32034 ------------------------------------------------------------------------------------
32035 -- 4219869 Business Flow
32036 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
32037 ------------------------------------------------------------------------------------
32038 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32039
32040 ----------------------------------------------------------------------------------
32041 -- 4219869 Business Flow
32042 -- Update journal entry status -- Need to generate this within IF <condition>
32043 ----------------------------------------------------------------------------------
32044 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32045 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32046 ,p_balance_type_code => l_balance_type_code
32047 );
32048
32049 -------------------------------------------------------------------------------------------
32050 -- 4262811 - Generate the Accrual Reversal lines
32051 -------------------------------------------------------------------------------------------
32052 BEGIN
32053 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
32054 (g_array_event(p_event_id).array_value_num('header_index'));
32055 IF l_acc_rev_flag IS NULL THEN
32056 l_acc_rev_flag := 'N';
32057 END IF;
32058 EXCEPTION
32059 WHEN OTHERS THEN
32060 l_acc_rev_flag := 'N';
32061 END;
32062 --
32063 IF (l_acc_rev_flag = 'Y') THEN
32064
32065 -- 4645092 ------------------------------------------------------------------------------
32066 -- To allow MPA report to determine if it should generate report process
32067 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
32068 ------------------------------------------------------------------------------------------
32069
32070 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
32071 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
32072
32073 --
32074 -- Update the line information that should be overwritten
32075 --
32076 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
32077 p_header_num => 1);
32078 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
32079
32080 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32081
32082 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
32083 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32084 END IF;
32085
32086 --
32087 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32088 --
32089 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
32090 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
32091 ELSE
32092 ---------------------------------------------------------------------------------------------------
32093 -- 4262811a Switch Sign
32094 ---------------------------------------------------------------------------------------------------
32095 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
32096 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32097 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32098 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32099 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32100 -- 5132302
32101 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
32102 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32103
32104 END IF;
32105
32106 -- 4955764
32107 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32108 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
32109
32110
32111 XLA_AE_LINES_PKG.ValidateCurrentLine;
32112 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32113
32114 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32115 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
32116 ,p_balance_type_code => l_balance_type_code);
32117
32118 END IF;
32119
32120 -----------------------------------------------------------------------------------------
32121 -- 4262811 Multiperiod Accounting
32122 -----------------------------------------------------------------------------------------
32123 -- No MPA option is assigned.
32124
32125
32126 END IF;
32127 END IF;
32128 --
32129
32130 --
32131 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32132 trace
32133 (p_msg => 'END of AcctLineType_58'
32134 ,p_level => C_LEVEL_PROCEDURE
32135 ,p_module => l_log_module);
32136 END IF;
32137 --
32138 EXCEPTION
32139 WHEN xla_exceptions_pkg.application_exception THEN
32140 RAISE;
32141 WHEN OTHERS THEN
32142 xla_exceptions_pkg.raise_message
32143 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_58');
32144 END AcctLineType_58;
32145 --
32146
32147 ---------------------------------------
32148 --
32149 -- PRIVATE FUNCTION
32150 -- AcctLineType_59
32151 --
32152 ---------------------------------------
32153 PROCEDURE AcctLineType_59 (
32154 p_application_id IN NUMBER
32155 ,p_event_id IN NUMBER
32156 ,p_calculate_acctd_flag IN VARCHAR2
32157 ,p_calculate_g_l_flag IN VARCHAR2
32158 ,p_actual_flag IN OUT VARCHAR2
32159 ,p_balance_type_code OUT VARCHAR2
32160 ,p_gain_or_loss_ref OUT VARCHAR2
32161
32162 --Journal entry Line Description
32163 , p_source_7 IN VARCHAR2
32164 --Budget Account
32165 , p_source_11 IN NUMBER
32166 --Main Or Backing Code
32167 , p_source_13 IN VARCHAR2
32168 --Accounting Reversal Flag
32169 , p_source_16 IN VARCHAR2
32170 --PO Distribution Identifier
32171 , p_source_29 IN NUMBER
32172 --Entered Amount
32173 , p_source_33 IN NUMBER
32174 --Currency Code
32175 , p_source_34 IN VARCHAR2
32176 --Accounted Amount
32177 , p_source_35 IN NUMBER
32178 --PO Header Identifier
32179 , p_source_52 IN NUMBER
32180 --Applied To Application Identifier
32181 , p_source_53 IN NUMBER
32182 --Applied To Distribution Link Type
32183 , p_source_54 IN VARCHAR2
32184 --Applied To Entity Code
32185 , p_source_55 IN VARCHAR2
32186 --Applied To Distribution Identifier 1
32187 , p_source_56 IN NUMBER
32188 --Applied To Header Identifier 1
32189 , p_source_57 IN NUMBER
32190 --Distribution Link Type
32191 , p_source_58 IN VARCHAR2
32192 --PO Encumbrance Upgrade Option
32193 , p_source_59 IN VARCHAR2
32194 --JFMIP Reference
32195 , p_source_60 IN VARCHAR2
32196 --PO Upgrade Encumbrance Type Identifier
32197 , p_source_61 IN NUMBER
32198 --Currency Conversion Date
32199 , p_source_62 IN DATE
32200 --Currency Conversion Rate
32201 , p_source_63 IN NUMBER
32202 --Currency Conversion Type
32203 , p_source_64 IN VARCHAR2
32204 )
32205 IS
32206
32207 l_component_type VARCHAR2(80);
32208 l_component_code VARCHAR2(30);
32209 l_component_type_code VARCHAR2(1);
32210 l_component_appl_id INTEGER;
32211 l_amb_context_code VARCHAR2(30);
32212 l_entity_code VARCHAR2(30);
32213 l_event_class_code VARCHAR2(30);
32214 l_ae_header_id NUMBER;
32215 l_event_type_code VARCHAR2(30);
32216 l_line_definition_code VARCHAR2(30);
32217 l_line_definition_owner_code VARCHAR2(1);
32218 --
32219 -- adr variables
32220 l_segment VARCHAR2(30);
32221 l_ccid NUMBER;
32222 l_adr_transaction_coa_id NUMBER;
32223 l_adr_accounting_coa_id NUMBER;
32224 l_adr_flexfield_segment_code VARCHAR2(30);
32225 l_adr_flex_value_set_id NUMBER;
32226 l_adr_value_type_code VARCHAR2(30);
32227 l_adr_value_combination_id NUMBER;
32228 l_adr_value_segment_code VARCHAR2(30);
32229
32230 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
32231 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
32232 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
32233 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
32234
32235 -- 4262811 Variables ------------------------------------------------------------------------------------------
32236 l_entered_amt_idx NUMBER;
32237 l_accted_amt_idx NUMBER;
32238 l_acc_rev_flag VARCHAR2(1);
32239 l_accrual_line_num NUMBER;
32240 l_tmp_amt NUMBER;
32241 l_acc_rev_natural_side_code VARCHAR2(1);
32242
32243 l_num_entries NUMBER;
32244 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
32245 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
32246 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
32247 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
32248 l_recog_line_1 NUMBER;
32249 l_recog_line_2 NUMBER;
32250
32251 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
32252 l_bflow_applied_to_amt NUMBER; -- 5132302
32253 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
32254
32255 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
32256
32257 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
32258 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
32259
32260 ---------------------------------------------------------------------------------------------------------------
32261
32262
32263 --
32264 -- bulk performance
32265 --
32266 l_balance_type_code VARCHAR2(1);
32267 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
32268 l_log_module VARCHAR2(240);
32269
32270 --
32271 -- Upgrade strategy
32272 --
32273 l_actual_upg_option VARCHAR2(1);
32274 l_enc_upg_option VARCHAR2(1);
32275
32276 --
32277 BEGIN
32278 --
32279 IF g_log_enabled THEN
32280 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_59';
32281 END IF;
32282 --
32283 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32284
32285 trace
32286 (p_msg => 'BEGIN of AcctLineType_59'
32287 ,p_level => C_LEVEL_PROCEDURE
32288 ,p_module => l_log_module);
32289
32290 END IF;
32291 --
32292 l_component_type := 'AMB_JLT';
32293 l_component_code := 'REOPEN_FINAL_MATCHED_PO';
32294 l_component_type_code := 'S';
32295 l_component_appl_id := 201;
32296 l_amb_context_code := 'DEFAULT';
32297 l_entity_code := 'PURCHASE_ORDER';
32298 l_event_class_code := 'PO_PA';
32299 l_event_type_code := 'PO_PA_ALL';
32300 l_line_definition_owner_code := 'S';
32301 l_line_definition_code := 'PO_PA_ENC_ALL';
32302 --
32303 l_balance_type_code := 'E';
32304 l_segment := NULL;
32305 l_ccid := NULL;
32306 l_adr_transaction_coa_id := NULL;
32307 l_adr_accounting_coa_id := NULL;
32308 l_adr_flexfield_segment_code := NULL;
32309 l_adr_flex_value_set_id := NULL;
32310 l_adr_value_type_code := NULL;
32311 l_adr_value_combination_id := NULL;
32312 l_adr_value_segment_code := NULL;
32313
32314 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
32315 l_bflow_class_code := ''; -- 4219869 Business Flow
32316 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
32317 l_budgetary_control_flag := 'Y';
32318
32319 l_bflow_applied_to_amt_idx := NULL; -- 5132302
32320 l_bflow_applied_to_amt := NULL; -- 5132302
32321 l_entered_amt_idx := NULL; -- 4262811
32322 l_accted_amt_idx := NULL; -- 4262811
32323 l_acc_rev_flag := NULL; -- 4262811
32324 l_accrual_line_num := NULL; -- 4262811
32325 l_tmp_amt := NULL; -- 4262811
32326 --
32327
32328 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
32329 l_balance_type_code <> 'B' THEN
32330 IF NVL(
32331 xla_ae_sources_pkg.GetSystemSourceChar(
32332 p_source_code => 'XLA_EVENT_TYPE_CODE'
32333 , p_source_type_code => 'Y'
32334 , p_source_application_id => 602
32335 ),'
32336 ') = 'PO_REOPEN_FINAL_MATCH' AND
32337 NVL(p_source_13,'
32338 ') = 'M'
32339 THEN
32340
32341 --
32342 XLA_AE_LINES_PKG.SetNewLine;
32343
32344 p_balance_type_code := l_balance_type_code;
32345 -- set the flag so later we will know whether the gain loss line needs to be created
32346
32347 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
32348 p_actual_flag :='A';
32349 END IF;
32350
32351 --
32352 -- bulk performance
32353 --
32354 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
32355 p_header_num => 0); -- 4262811
32356 --
32357 -- set accounting line options
32358 --
32359 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
32360 p_natural_side_code => 'D'
32361 , p_gain_or_loss_flag => 'N'
32362 , p_gl_transfer_mode_code => 'S'
32363 , p_acct_entry_type_code => 'E'
32364 , p_switch_side_flag => 'N'
32365 , p_merge_duplicate_code => 'N'
32366 );
32367 --
32368 l_acc_rev_natural_side_code := 'C'; -- 4262811
32369 --
32370 --
32371 -- set accounting line type info
32372 --
32373 xla_ae_lines_pkg.SetAcctLineType
32374 (p_component_type => l_component_type
32375 ,p_event_type_code => l_event_type_code
32376 ,p_line_definition_owner_code => l_line_definition_owner_code
32377 ,p_line_definition_code => l_line_definition_code
32378 ,p_accounting_line_code => l_component_code
32379 ,p_accounting_line_type_code => l_component_type_code
32380 ,p_accounting_line_appl_id => l_component_appl_id
32381 ,p_amb_context_code => l_amb_context_code
32382 ,p_entity_code => l_entity_code
32383 ,p_event_class_code => l_event_class_code);
32384 --
32385 -- set accounting class
32386 --
32387 xla_ae_lines_pkg.SetAcctClass(
32388 p_accounting_class_code => 'PURCHASE_ORDER'
32389 , p_ae_header_id => l_ae_header_id
32390 );
32391
32392 --
32393 -- set rounding class
32394 --
32395 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
32396 'PURCHASE_ORDER';
32397
32398 --
32399 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
32400 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
32401 --
32402 -- bulk performance
32403 --
32404 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
32405
32406 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
32407 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
32408
32409 -- 4955764
32410 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32411 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
32412
32413 -- 4458381 Public Sector Enh
32414 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1001;
32415 --
32416 -- set accounting attributes for the line type
32417 --
32418 l_entered_amt_idx := 23;
32419 l_accted_amt_idx := 28;
32420 l_bflow_applied_to_amt_idx := NULL; -- 5132302
32421 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
32422 l_rec_acct_attrs.array_char_value(1) := p_source_16;
32423 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
32424 l_rec_acct_attrs.array_num_value(2) :=
32425 xla_ae_sources_pkg.GetSystemSourceNum(
32426 p_source_code => 'XLA_EVENT_APPL_ID'
32427 , p_source_type_code => 'Y'
32428 , p_source_application_id => 602
32429 );
32430 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
32431 l_rec_acct_attrs.array_char_value(3) := p_source_58;
32432 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
32433 l_rec_acct_attrs.array_char_value(4) :=
32434 xla_ae_sources_pkg.GetSystemSourceChar(
32435 p_source_code => 'XLA_ENTITY_CODE'
32436 , p_source_type_code => 'Y'
32437 , p_source_application_id => 602
32438 );
32439 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
32440 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_29);
32441 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
32442 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_52);
32443 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
32444 l_rec_acct_attrs.array_num_value(7) := p_source_53;
32445 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
32446 l_rec_acct_attrs.array_char_value(8) := p_source_54;
32447 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
32448 l_rec_acct_attrs.array_char_value(9) := p_source_55;
32449 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
32450 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_56);
32451 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
32452 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_57);
32453 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
32454 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_29);
32455 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
32456 l_rec_acct_attrs.array_char_value(13) := p_source_58;
32457 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
32458 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_11);
32459 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
32460 l_rec_acct_attrs.array_num_value(15) := p_source_33;
32461 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
32462 l_rec_acct_attrs.array_char_value(16) := p_source_34;
32463 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
32464 l_rec_acct_attrs.array_num_value(17) := p_source_35;
32465 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
32466 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_11);
32467 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
32468 l_rec_acct_attrs.array_num_value(19) := p_source_33;
32469 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
32470 l_rec_acct_attrs.array_char_value(20) := p_source_34;
32471 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
32472 l_rec_acct_attrs.array_num_value(21) := p_source_35;
32473 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
32474 l_rec_acct_attrs.array_char_value(22) := p_source_59;
32475 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
32476 l_rec_acct_attrs.array_num_value(23) := p_source_33;
32477 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
32478 l_rec_acct_attrs.array_char_value(24) := p_source_34;
32479 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
32480 l_rec_acct_attrs.array_date_value(25) := p_source_62;
32481 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
32482 l_rec_acct_attrs.array_num_value(26) := p_source_63;
32483 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
32484 l_rec_acct_attrs.array_char_value(27) := p_source_64;
32485 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
32486 l_rec_acct_attrs.array_num_value(28) := p_source_35;
32487 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
32488 l_rec_acct_attrs.array_char_value(29) := p_source_60;
32489 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
32490 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_56);
32491 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
32492 l_rec_acct_attrs.array_char_value(31) := p_source_54;
32493 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
32494 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_29);
32495 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
32496 l_rec_acct_attrs.array_num_value(33) := p_source_61;
32497 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
32498 l_rec_acct_attrs.array_num_value(34) := p_source_61;
32499
32500 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
32501 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
32502
32503 ---------------------------------------------------------------------------------------------------------------
32504 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
32505 ---------------------------------------------------------------------------------------------------------------
32506 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
32507
32508 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32509 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32510
32511 IF xla_accounting_cache_pkg.GetValueChar
32512 (p_source_code => 'LEDGER_CATEGORY_CODE'
32513 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
32514 AND l_bflow_method_code = 'PRIOR_ENTRY'
32515 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
32516 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
32517 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
32518 )
32519 THEN
32520 xla_ae_lines_pkg.BflowUpgEntry
32521 (p_business_method_code => l_bflow_method_code
32522 ,p_business_class_code => l_bflow_class_code
32523 ,p_balance_type => l_balance_type_code);
32524 ELSE
32525 NULL;
32526 -- No business flow processing for business flow method of NONE.
32527 END IF;
32528
32529 --
32530 -- call analytical criteria
32531 --
32532
32533 --
32534 -- call description
32535 --
32536
32537 xla_ae_lines_pkg.SetLineDescription(
32538 p_ae_header_id => l_ae_header_id
32539 ,p_description => Description_3 (
32540 p_application_id => p_application_id
32541 , p_ae_header_id => l_ae_header_id
32542 , p_source_7 => p_source_7
32543 )
32544 );
32545
32546
32547 --
32548 -- call ADRs
32549 -- Bug 4922099
32550 --
32551 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32552 (NVL(l_actual_upg_option, 'N') = 'O') OR
32553 (NVL(l_enc_upg_option, 'N') = 'O')
32554 )
32555 THEN
32556 NULL;
32557 --
32558 --
32559
32560 l_ccid := AcctDerRule_8(
32561 p_application_id => p_application_id
32562 , p_ae_header_id => l_ae_header_id
32563 , p_source_11 => p_source_11
32564 , x_transaction_coa_id => l_adr_transaction_coa_id
32565 , x_accounting_coa_id => l_adr_accounting_coa_id
32566 , x_value_type_code => l_adr_value_type_code
32567 , p_side => 'NA'
32568 );
32569
32570 xla_ae_lines_pkg.set_ccid(
32571 p_code_combination_id => l_ccid
32572 , p_value_type_code => l_adr_value_type_code
32573 , p_transaction_coa_id => l_adr_transaction_coa_id
32574 , p_accounting_coa_id => l_adr_accounting_coa_id
32575 , p_adr_code => 'PURCHASING_ENCUMBRANCE_ADR'
32576 , p_adr_type_code => 'S'
32577 , p_component_type => l_component_type
32578 , p_component_code => l_component_code
32579 , p_component_type_code => l_component_type_code
32580 , p_component_appl_id => l_component_appl_id
32581 , p_amb_context_code => l_amb_context_code
32582 , p_side => 'NA'
32583 );
32584
32585
32586 --
32587 --
32588 END IF;
32589 --
32590 -- Bug 4922099
32591 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
32592 (NVL(l_enc_upg_option, 'N') = 'O')
32593 ) AND
32594 (l_bflow_method_code = 'PRIOR_ENTRY')
32595 )
32596 THEN
32597 IF
32598 --
32599 1 = 2
32600 --
32601 THEN
32602 xla_accounting_err_pkg.build_message
32603 (p_appli_s_name => 'XLA'
32604 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32605 ,p_token_1 => 'LINE_NUMBER'
32606 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
32607 ,p_token_2 => 'LINE_TYPE_NAME'
32608 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
32609 l_component_type
32610 ,l_component_code
32611 ,l_component_type_code
32612 ,l_component_appl_id
32613 ,l_amb_context_code
32614 ,l_entity_code
32615 ,l_event_class_code
32616 )
32617 ,p_token_3 => 'OWNER'
32618 ,p_value_3 => xla_lookups_pkg.get_meaning(
32619 p_lookup_type => 'XLA_OWNER_TYPE'
32620 ,p_lookup_code => l_component_type_code
32621 )
32622 ,p_token_4 => 'PRODUCT_NAME'
32623 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
32624 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
32625 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
32626 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
32627 ,p_ae_header_id => NULL
32628 );
32629
32630 IF (C_LEVEL_ERROR>= g_log_level) THEN
32631 trace
32632 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32633 ,p_level => C_LEVEL_ERROR
32634 ,p_module => l_log_module);
32635 END IF;
32636 END IF;
32637 END IF;
32638 --
32639 --
32640 ------------------------------------------------------------------------------------------------
32641 -- 4219869 Business Flow
32642 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
32643 -- Prior Entry. Currently, the following code is always generated.
32644 ------------------------------------------------------------------------------------------------
32645 XLA_AE_LINES_PKG.ValidateCurrentLine;
32646
32647 ------------------------------------------------------------------------------------
32648 -- 4219869 Business Flow
32649 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
32650 ------------------------------------------------------------------------------------
32651 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32652
32653 ----------------------------------------------------------------------------------
32654 -- 4219869 Business Flow
32655 -- Update journal entry status -- Need to generate this within IF <condition>
32656 ----------------------------------------------------------------------------------
32657 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32658 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32659 ,p_balance_type_code => l_balance_type_code
32660 );
32661
32662 -------------------------------------------------------------------------------------------
32663 -- 4262811 - Generate the Accrual Reversal lines
32664 -------------------------------------------------------------------------------------------
32665 BEGIN
32666 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
32667 (g_array_event(p_event_id).array_value_num('header_index'));
32668 IF l_acc_rev_flag IS NULL THEN
32669 l_acc_rev_flag := 'N';
32670 END IF;
32671 EXCEPTION
32672 WHEN OTHERS THEN
32673 l_acc_rev_flag := 'N';
32674 END;
32675 --
32676 IF (l_acc_rev_flag = 'Y') THEN
32677
32678 -- 4645092 ------------------------------------------------------------------------------
32679 -- To allow MPA report to determine if it should generate report process
32680 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
32681 ------------------------------------------------------------------------------------------
32682
32683 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
32684 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
32685
32686 --
32687 -- Update the line information that should be overwritten
32688 --
32689 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
32690 p_header_num => 1);
32691 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
32692
32693 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32694
32695 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
32696 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32697 END IF;
32698
32699 --
32700 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32701 --
32702 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
32703 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
32704 ELSE
32705 ---------------------------------------------------------------------------------------------------
32706 -- 4262811a Switch Sign
32707 ---------------------------------------------------------------------------------------------------
32708 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
32709 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32710 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32711 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32712 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32713 -- 5132302
32714 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
32715 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32716
32717 END IF;
32718
32719 -- 4955764
32720 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32721 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
32722
32723
32724 XLA_AE_LINES_PKG.ValidateCurrentLine;
32725 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32726
32727 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32728 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
32729 ,p_balance_type_code => l_balance_type_code);
32730
32731 END IF;
32732
32733 -----------------------------------------------------------------------------------------
32734 -- 4262811 Multiperiod Accounting
32735 -----------------------------------------------------------------------------------------
32736 -- No MPA option is assigned.
32737
32738
32739 END IF;
32740 END IF;
32741 --
32742
32743 --
32744 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32745 trace
32746 (p_msg => 'END of AcctLineType_59'
32747 ,p_level => C_LEVEL_PROCEDURE
32748 ,p_module => l_log_module);
32749 END IF;
32750 --
32751 EXCEPTION
32752 WHEN xla_exceptions_pkg.application_exception THEN
32753 RAISE;
32754 WHEN OTHERS THEN
32755 xla_exceptions_pkg.raise_message
32756 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_59');
32757 END AcctLineType_59;
32758 --
32759
32760 ---------------------------------------
32761 --
32762 -- PRIVATE FUNCTION
32763 -- AcctLineType_60
32764 --
32765 ---------------------------------------
32766 PROCEDURE AcctLineType_60 (
32767 p_application_id IN NUMBER
32768 ,p_event_id IN NUMBER
32769 ,p_calculate_acctd_flag IN VARCHAR2
32770 ,p_calculate_g_l_flag IN VARCHAR2
32771 ,p_actual_flag IN OUT VARCHAR2
32772 ,p_balance_type_code OUT VARCHAR2
32773 ,p_gain_or_loss_ref OUT VARCHAR2
32774
32775 --Project Name
32776 , p_source_3 IN VARCHAR2
32777 --Task Name
32778 , p_source_4 IN VARCHAR2
32779 --Project Expenditure Organization Identifier
32780 , p_source_5 IN NUMBER
32781 --Expenditure Type
32782 , p_source_6 IN VARCHAR2
32783 --Document Type
32784 , p_source_9 IN VARCHAR2
32785 --Budget Account
32786 , p_source_11 IN NUMBER
32787 --Main Or Backing Code
32788 , p_source_13 IN VARCHAR2
32789 --Burden Record Identifier
32790 , p_source_14 IN VARCHAR2
32791 , p_source_14_meaning IN VARCHAR2
32792 --Burden Amount Display Method
32793 , p_source_15 IN VARCHAR2
32794 --Accounting Reversal Flag
32795 , p_source_16 IN VARCHAR2
32796 --Allocated to Application Identifier
32797 , p_source_17 IN NUMBER
32798 --Allocated to Distribution Type
32799 , p_source_18 IN VARCHAR2
32800 --Allocated to Entity Code
32801 , p_source_19 IN VARCHAR2
32802 --Allocated to First Distribution Identifier
32803 , p_source_20 IN NUMBER
32804 --Allocated to First System Transaction Identifier
32805 , p_source_21 IN NUMBER
32806 --Purchase Order Burden Applied to Application Identifier
32807 , p_source_23 IN NUMBER
32808 --PO Distribution Type
32809 , p_source_24 IN VARCHAR2
32810 --Purchase Order Burden Applied to Entity Code
32811 , p_source_25 IN VARCHAR2
32812 --Purchase Order Burden Applied to First Distribution Identifier
32813 , p_source_26 IN NUMBER
32814 --Purchase Order Burden Applied to First System Transaction Identifier
32815 , p_source_27 IN NUMBER
32816 --Purchase Order Burden Applied to Second Distribution Identifier
32817 , p_source_28 IN VARCHAR2
32818 --PO Distribution Identifier
32819 , p_source_29 IN NUMBER
32820 --Line Type Name
32821 , p_source_30 IN VARCHAR2
32822 --Encumbrance Upgrade Credit Accounting Class
32823 , p_source_31 IN VARCHAR2
32824 --Encumbrance Upgrade Credit Account
32825 , p_source_32 IN NUMBER
32826 --Entered Amount
32827 , p_source_33 IN NUMBER
32828 --Currency Code
32829 , p_source_34 IN VARCHAR2
32830 --Accounted Amount
32831 , p_source_35 IN NUMBER
32832 --Encumbrance Upgrade Debit Accounting Class
32833 , p_source_36 IN VARCHAR2
32834 --Encumbrance Upgrade Debit Account
32835 , p_source_37 IN NUMBER
32836 --Use Encumbrances Upgrade Attributes Flag
32837 , p_source_38 IN VARCHAR2
32838 --Encumbrance Upgrade Credit Encumbrance Type
32839 , p_source_39 IN NUMBER
32840 --Encumbrance Upgrade Debit Encumbrance Type
32841 , p_source_40 IN NUMBER
32842 )
32843 IS
32844
32845 l_component_type VARCHAR2(80);
32846 l_component_code VARCHAR2(30);
32847 l_component_type_code VARCHAR2(1);
32848 l_component_appl_id INTEGER;
32849 l_amb_context_code VARCHAR2(30);
32850 l_entity_code VARCHAR2(30);
32851 l_event_class_code VARCHAR2(30);
32852 l_ae_header_id NUMBER;
32853 l_event_type_code VARCHAR2(30);
32854 l_line_definition_code VARCHAR2(30);
32855 l_line_definition_owner_code VARCHAR2(1);
32856 --
32857 -- adr variables
32858 l_segment VARCHAR2(30);
32859 l_ccid NUMBER;
32860 l_adr_transaction_coa_id NUMBER;
32861 l_adr_accounting_coa_id NUMBER;
32862 l_adr_flexfield_segment_code VARCHAR2(30);
32863 l_adr_flex_value_set_id NUMBER;
32864 l_adr_value_type_code VARCHAR2(30);
32865 l_adr_value_combination_id NUMBER;
32866 l_adr_value_segment_code VARCHAR2(30);
32867
32868 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
32869 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
32870 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
32871 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
32872
32873 -- 4262811 Variables ------------------------------------------------------------------------------------------
32874 l_entered_amt_idx NUMBER;
32875 l_accted_amt_idx NUMBER;
32876 l_acc_rev_flag VARCHAR2(1);
32877 l_accrual_line_num NUMBER;
32878 l_tmp_amt NUMBER;
32879 l_acc_rev_natural_side_code VARCHAR2(1);
32880
32881 l_num_entries NUMBER;
32882 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
32883 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
32884 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
32885 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
32886 l_recog_line_1 NUMBER;
32887 l_recog_line_2 NUMBER;
32888
32889 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
32890 l_bflow_applied_to_amt NUMBER; -- 5132302
32891 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
32892
32893 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
32894
32895 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
32896 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
32897
32898 ---------------------------------------------------------------------------------------------------------------
32899
32900
32901 --
32902 -- bulk performance
32903 --
32904 l_balance_type_code VARCHAR2(1);
32905 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
32906 l_log_module VARCHAR2(240);
32907
32908 --
32909 -- Upgrade strategy
32910 --
32911 l_actual_upg_option VARCHAR2(1);
32912 l_enc_upg_option VARCHAR2(1);
32913
32914 --
32915 BEGIN
32916 --
32917 IF g_log_enabled THEN
32918 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_60';
32919 END IF;
32920 --
32921 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32922
32923 trace
32924 (p_msg => 'BEGIN of AcctLineType_60'
32925 ,p_level => C_LEVEL_PROCEDURE
32926 ,p_module => l_log_module);
32927
32928 END IF;
32929 --
32930 l_component_type := 'AMB_JLT';
32931 l_component_code := 'RESERVE_BURDENED_PO_ENC';
32932 l_component_type_code := 'S';
32933 l_component_appl_id := 201;
32934 l_amb_context_code := 'DEFAULT';
32935 l_entity_code := 'PURCHASE_ORDER';
32936 l_event_class_code := 'PO_BURDEN';
32937 l_event_type_code := 'PO_BURDEN_ALL';
32938 l_line_definition_owner_code := 'S';
32939 l_line_definition_code := 'PO_BURDEN_ENC_ALL';
32940 --
32941 l_balance_type_code := 'E';
32942 l_segment := NULL;
32943 l_ccid := NULL;
32944 l_adr_transaction_coa_id := NULL;
32945 l_adr_accounting_coa_id := NULL;
32946 l_adr_flexfield_segment_code := NULL;
32947 l_adr_flex_value_set_id := NULL;
32948 l_adr_value_type_code := NULL;
32949 l_adr_value_combination_id := NULL;
32950 l_adr_value_segment_code := NULL;
32951
32952 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
32953 l_bflow_class_code := 'PO_PA_BURDENED_ENC'; -- 4219869 Business Flow
32954 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
32955 l_budgetary_control_flag := 'Y';
32956
32957 l_bflow_applied_to_amt_idx := NULL; -- 5132302
32958 l_bflow_applied_to_amt := NULL; -- 5132302
32959 l_entered_amt_idx := NULL; -- 4262811
32960 l_accted_amt_idx := NULL; -- 4262811
32961 l_acc_rev_flag := NULL; -- 4262811
32962 l_accrual_line_num := NULL; -- 4262811
32963 l_tmp_amt := NULL; -- 4262811
32964 --
32965
32966 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
32967 l_balance_type_code <> 'B' THEN
32968 IF NVL(
32969 xla_ae_sources_pkg.GetSystemSourceChar(
32970 p_source_code => 'XLA_EVENT_TYPE_CODE'
32971 , p_source_type_code => 'Y'
32972 , p_source_application_id => 602
32973 ),'
32974 ') = 'PO_BURDEN_RESERVED' AND
32975 NVL(p_source_13,'
32976 ') = 'M' AND
32977 (NVL(p_source_14,'
32978 ') = 'N' OR
32979 NVL(p_source_14,'
32980 ') = 'O') AND
32981 NVL(p_source_9,'
32982 ') = 'PO' AND
32983 NVL(p_source_15,'
32984 ') = 'S'
32985 THEN
32986
32987 --
32988 XLA_AE_LINES_PKG.SetNewLine;
32989
32990 p_balance_type_code := l_balance_type_code;
32991 -- set the flag so later we will know whether the gain loss line needs to be created
32992
32993 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
32994 p_actual_flag :='A';
32995 END IF;
32996
32997 --
32998 -- bulk performance
32999 --
33000 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
33001 p_header_num => 0); -- 4262811
33002 --
33003 -- set accounting line options
33004 --
33005 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
33006 p_natural_side_code => 'D'
33007 , p_gain_or_loss_flag => 'N'
33008 , p_gl_transfer_mode_code => 'S'
33009 , p_acct_entry_type_code => 'E'
33010 , p_switch_side_flag => 'N'
33011 , p_merge_duplicate_code => 'N'
33012 );
33013 --
33014 l_acc_rev_natural_side_code := 'C'; -- 4262811
33015 --
33016 --
33017 -- set accounting line type info
33018 --
33019 xla_ae_lines_pkg.SetAcctLineType
33020 (p_component_type => l_component_type
33021 ,p_event_type_code => l_event_type_code
33022 ,p_line_definition_owner_code => l_line_definition_owner_code
33023 ,p_line_definition_code => l_line_definition_code
33024 ,p_accounting_line_code => l_component_code
33025 ,p_accounting_line_type_code => l_component_type_code
33026 ,p_accounting_line_appl_id => l_component_appl_id
33027 ,p_amb_context_code => l_amb_context_code
33028 ,p_entity_code => l_entity_code
33029 ,p_event_class_code => l_event_class_code);
33030 --
33031 -- set accounting class
33032 --
33033 xla_ae_lines_pkg.SetAcctClass(
33034 p_accounting_class_code => 'PO_PA_BURDENED'
33035 , p_ae_header_id => l_ae_header_id
33036 );
33037
33038 --
33039 -- set rounding class
33040 --
33041 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33042 'PO_PA_BURDENED';
33043
33044 --
33045 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33046 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33047 --
33048 -- bulk performance
33049 --
33050 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33051
33052 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33053 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33054
33055 -- 4955764
33056 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33057 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33058
33059 -- 4458381 Public Sector Enh
33060 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1001;
33061 --
33062 -- set accounting attributes for the line type
33063 --
33064 l_entered_amt_idx := 27;
33065 l_accted_amt_idx := 29;
33066 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33067 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33068 l_rec_acct_attrs.array_char_value(1) := p_source_16;
33069 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
33070 l_rec_acct_attrs.array_num_value(2) := p_source_17;
33071 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
33072 l_rec_acct_attrs.array_char_value(3) := p_source_18;
33073 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
33074 l_rec_acct_attrs.array_char_value(4) := p_source_19;
33075 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
33076 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
33077 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
33078 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
33079 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
33080 l_rec_acct_attrs.array_num_value(7) := p_source_23;
33081 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
33082 l_rec_acct_attrs.array_char_value(8) := p_source_24;
33083 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
33084 l_rec_acct_attrs.array_char_value(9) := p_source_25;
33085 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
33086 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_26);
33087 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
33088 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_27);
33089 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
33090 l_rec_acct_attrs.array_char_value(12) := p_source_28;
33091 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
33092 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_29);
33093 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
33094 l_rec_acct_attrs.array_char_value(14) := p_source_6;
33095 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
33096 l_rec_acct_attrs.array_char_value(15) := p_source_30;
33097 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
33098 l_rec_acct_attrs.array_char_value(16) := p_source_31;
33099 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
33100 l_rec_acct_attrs.array_num_value(17) := p_source_32;
33101 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
33102 l_rec_acct_attrs.array_num_value(18) := p_source_33;
33103 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
33104 l_rec_acct_attrs.array_char_value(19) := p_source_34;
33105 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
33106 l_rec_acct_attrs.array_num_value(20) := p_source_35;
33107 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
33108 l_rec_acct_attrs.array_char_value(21) := p_source_36;
33109 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
33110 l_rec_acct_attrs.array_num_value(22) := p_source_37;
33111 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
33112 l_rec_acct_attrs.array_num_value(23) := p_source_33;
33113 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
33114 l_rec_acct_attrs.array_char_value(24) := p_source_34;
33115 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
33116 l_rec_acct_attrs.array_num_value(25) := p_source_35;
33117 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
33118 l_rec_acct_attrs.array_char_value(26) := p_source_38;
33119 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
33120 l_rec_acct_attrs.array_num_value(27) := p_source_33;
33121 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
33122 l_rec_acct_attrs.array_char_value(28) := p_source_34;
33123 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
33124 l_rec_acct_attrs.array_num_value(29) := p_source_35;
33125 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
33126 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_29);
33127 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
33128 l_rec_acct_attrs.array_char_value(31) := p_source_6;
33129 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
33130 l_rec_acct_attrs.array_char_value(32) := p_source_30;
33131 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
33132 l_rec_acct_attrs.array_num_value(33) := p_source_39;
33133 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
33134 l_rec_acct_attrs.array_num_value(34) := p_source_40;
33135
33136 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
33137 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
33138
33139 ---------------------------------------------------------------------------------------------------------------
33140 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
33141 ---------------------------------------------------------------------------------------------------------------
33142 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
33143
33144 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33145 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33146
33147 IF xla_accounting_cache_pkg.GetValueChar
33148 (p_source_code => 'LEDGER_CATEGORY_CODE'
33149 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
33150 AND l_bflow_method_code = 'PRIOR_ENTRY'
33151 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
33152 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
33153 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
33154 )
33155 THEN
33156 xla_ae_lines_pkg.BflowUpgEntry
33157 (p_business_method_code => l_bflow_method_code
33158 ,p_business_class_code => l_bflow_class_code
33159 ,p_balance_type => l_balance_type_code);
33160 ELSE
33161 NULL;
33162 -- No business flow processing for business flow method of NONE.
33163 END IF;
33164
33165 --
33166 -- call analytical criteria
33167 --
33168
33169 --
33170 -- call description
33171 --
33172
33173 xla_ae_lines_pkg.SetLineDescription(
33174 p_ae_header_id => l_ae_header_id
33175 ,p_description => Description_2 (
33176 p_application_id => p_application_id
33177 , p_ae_header_id => l_ae_header_id
33178 , p_source_3 => p_source_3
33179 , p_source_4 => p_source_4
33180 , p_source_5 => p_source_5
33181 , p_source_6 => p_source_6
33182 )
33183 );
33184
33185
33186 --
33187 -- call ADRs
33188 -- Bug 4922099
33189 --
33190 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33191 (NVL(l_actual_upg_option, 'N') = 'O') OR
33192 (NVL(l_enc_upg_option, 'N') = 'O')
33193 )
33194 THEN
33195 NULL;
33196 --
33197 --
33198
33199 l_ccid := AcctDerRule_6(
33200 p_application_id => p_application_id
33201 , p_ae_header_id => l_ae_header_id
33202 , p_source_11 => p_source_11
33203 , x_transaction_coa_id => l_adr_transaction_coa_id
33204 , x_accounting_coa_id => l_adr_accounting_coa_id
33205 , x_value_type_code => l_adr_value_type_code
33206 , p_side => 'NA'
33207 );
33208
33209 xla_ae_lines_pkg.set_ccid(
33210 p_code_combination_id => l_ccid
33211 , p_value_type_code => l_adr_value_type_code
33212 , p_transaction_coa_id => l_adr_transaction_coa_id
33213 , p_accounting_coa_id => l_adr_accounting_coa_id
33214 , p_adr_code => 'PROJ_BURDENED_ENC_ACCT_RULE'
33215 , p_adr_type_code => 'S'
33216 , p_component_type => l_component_type
33217 , p_component_code => l_component_code
33218 , p_component_type_code => l_component_type_code
33219 , p_component_appl_id => l_component_appl_id
33220 , p_amb_context_code => l_amb_context_code
33221 , p_side => 'NA'
33222 );
33223
33224
33225 --
33226 --
33227 END IF;
33228 --
33229 -- Bug 4922099
33230 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
33231 (NVL(l_enc_upg_option, 'N') = 'O')
33232 ) AND
33233 (l_bflow_method_code = 'PRIOR_ENTRY')
33234 )
33235 THEN
33236 IF
33237 --
33238 1 = 2
33239 --
33240 THEN
33241 xla_accounting_err_pkg.build_message
33242 (p_appli_s_name => 'XLA'
33243 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33244 ,p_token_1 => 'LINE_NUMBER'
33245 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
33246 ,p_token_2 => 'LINE_TYPE_NAME'
33247 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
33248 l_component_type
33249 ,l_component_code
33250 ,l_component_type_code
33251 ,l_component_appl_id
33252 ,l_amb_context_code
33253 ,l_entity_code
33254 ,l_event_class_code
33255 )
33256 ,p_token_3 => 'OWNER'
33257 ,p_value_3 => xla_lookups_pkg.get_meaning(
33258 p_lookup_type => 'XLA_OWNER_TYPE'
33259 ,p_lookup_code => l_component_type_code
33260 )
33261 ,p_token_4 => 'PRODUCT_NAME'
33262 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
33263 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
33264 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
33265 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
33266 ,p_ae_header_id => NULL
33267 );
33268
33269 IF (C_LEVEL_ERROR>= g_log_level) THEN
33270 trace
33271 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33272 ,p_level => C_LEVEL_ERROR
33273 ,p_module => l_log_module);
33274 END IF;
33275 END IF;
33276 END IF;
33277 --
33278 --
33279 ------------------------------------------------------------------------------------------------
33280 -- 4219869 Business Flow
33281 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
33282 -- Prior Entry. Currently, the following code is always generated.
33283 ------------------------------------------------------------------------------------------------
33284 XLA_AE_LINES_PKG.ValidateCurrentLine;
33285
33286 ------------------------------------------------------------------------------------
33287 -- 4219869 Business Flow
33288 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
33289 ------------------------------------------------------------------------------------
33290 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33291
33292 ----------------------------------------------------------------------------------
33293 -- 4219869 Business Flow
33294 -- Update journal entry status -- Need to generate this within IF <condition>
33295 ----------------------------------------------------------------------------------
33296 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33297 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
33298 ,p_balance_type_code => l_balance_type_code
33299 );
33300
33301 -------------------------------------------------------------------------------------------
33302 -- 4262811 - Generate the Accrual Reversal lines
33303 -------------------------------------------------------------------------------------------
33304 BEGIN
33305 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
33306 (g_array_event(p_event_id).array_value_num('header_index'));
33307 IF l_acc_rev_flag IS NULL THEN
33308 l_acc_rev_flag := 'N';
33309 END IF;
33310 EXCEPTION
33311 WHEN OTHERS THEN
33312 l_acc_rev_flag := 'N';
33313 END;
33314 --
33315 IF (l_acc_rev_flag = 'Y') THEN
33316
33317 -- 4645092 ------------------------------------------------------------------------------
33318 -- To allow MPA report to determine if it should generate report process
33319 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
33320 ------------------------------------------------------------------------------------------
33321
33322 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
33323 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
33324
33325 --
33326 -- Update the line information that should be overwritten
33327 --
33328 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
33329 p_header_num => 1);
33330 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
33331
33332 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
33333
33334 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
33335 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
33336 END IF;
33337
33338 --
33339 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
33340 --
33341 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
33342 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
33343 ELSE
33344 ---------------------------------------------------------------------------------------------------
33345 -- 4262811a Switch Sign
33346 ---------------------------------------------------------------------------------------------------
33347 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
33348 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33349 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33350 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33351 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33352 -- 5132302
33353 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
33354 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33355
33356 END IF;
33357
33358 -- 4955764
33359 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33360 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
33361
33362
33363 XLA_AE_LINES_PKG.ValidateCurrentLine;
33364 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33365
33366 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33367 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
33368 ,p_balance_type_code => l_balance_type_code);
33369
33370 END IF;
33371
33372 -----------------------------------------------------------------------------------------
33373 -- 4262811 Multiperiod Accounting
33374 -----------------------------------------------------------------------------------------
33375 -- No MPA option is assigned.
33376
33377
33378 END IF;
33379 END IF;
33380 --
33381
33382 --
33383 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33384 trace
33385 (p_msg => 'END of AcctLineType_60'
33386 ,p_level => C_LEVEL_PROCEDURE
33387 ,p_module => l_log_module);
33388 END IF;
33389 --
33390 EXCEPTION
33391 WHEN xla_exceptions_pkg.application_exception THEN
33392 RAISE;
33393 WHEN OTHERS THEN
33394 xla_exceptions_pkg.raise_message
33395 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_60');
33396 END AcctLineType_60;
33397 --
33398
33399 ---------------------------------------
33400 --
33401 -- PRIVATE FUNCTION
33402 -- AcctLineType_61
33403 --
33404 ---------------------------------------
33405 PROCEDURE AcctLineType_61 (
33406 p_application_id IN NUMBER
33407 ,p_event_id IN NUMBER
33408 ,p_calculate_acctd_flag IN VARCHAR2
33409 ,p_calculate_g_l_flag IN VARCHAR2
33410 ,p_actual_flag IN OUT VARCHAR2
33411 ,p_balance_type_code OUT VARCHAR2
33412 ,p_gain_or_loss_ref OUT VARCHAR2
33413
33414 --Project Name
33415 , p_source_3 IN VARCHAR2
33416 --Task Name
33417 , p_source_4 IN VARCHAR2
33418 --Project Expenditure Organization Identifier
33419 , p_source_5 IN NUMBER
33420 --Expenditure Type
33421 , p_source_6 IN VARCHAR2
33422 --Document Type
33423 , p_source_9 IN VARCHAR2
33424 --Budget Account
33425 , p_source_11 IN NUMBER
33426 --Main Or Backing Code
33427 , p_source_13 IN VARCHAR2
33428 --Burden Record Identifier
33429 , p_source_14 IN VARCHAR2
33430 , p_source_14_meaning IN VARCHAR2
33431 --Burden Amount Display Method
33432 , p_source_15 IN VARCHAR2
33433 --Accounting Reversal Flag
33434 , p_source_16 IN VARCHAR2
33435 --Allocated to Application Identifier
33436 , p_source_17 IN NUMBER
33437 --Allocated to Distribution Type
33438 , p_source_18 IN VARCHAR2
33439 --Allocated to Entity Code
33440 , p_source_19 IN VARCHAR2
33441 --Allocated to First Distribution Identifier
33442 , p_source_20 IN NUMBER
33443 --Allocated to First System Transaction Identifier
33444 , p_source_21 IN NUMBER
33445 --Allocated to Second Distribution Identifier
33446 , p_source_22 IN VARCHAR2
33447 --Purchase Order Burden Applied to Application Identifier
33448 , p_source_23 IN NUMBER
33449 --PO Distribution Type
33450 , p_source_24 IN VARCHAR2
33451 --Purchase Order Burden Applied to Entity Code
33452 , p_source_25 IN VARCHAR2
33453 --Purchase Order Burden Applied to First Distribution Identifier
33454 , p_source_26 IN NUMBER
33455 --Purchase Order Burden Applied to First System Transaction Identifier
33456 , p_source_27 IN NUMBER
33457 --Purchase Order Burden Applied to Second Distribution Identifier
33458 , p_source_28 IN VARCHAR2
33459 --PO Distribution Identifier
33460 , p_source_29 IN NUMBER
33461 --Line Type Name
33462 , p_source_30 IN VARCHAR2
33463 --Encumbrance Upgrade Credit Accounting Class
33464 , p_source_31 IN VARCHAR2
33465 --Encumbrance Upgrade Credit Account
33466 , p_source_32 IN NUMBER
33467 --Entered Amount
33468 , p_source_33 IN NUMBER
33469 --Currency Code
33470 , p_source_34 IN VARCHAR2
33471 --Accounted Amount
33472 , p_source_35 IN NUMBER
33473 --Encumbrance Upgrade Debit Accounting Class
33474 , p_source_36 IN VARCHAR2
33475 --Encumbrance Upgrade Debit Account
33476 , p_source_37 IN NUMBER
33477 --Use Encumbrances Upgrade Attributes Flag
33478 , p_source_38 IN VARCHAR2
33479 --Encumbrance Upgrade Credit Encumbrance Type
33480 , p_source_39 IN NUMBER
33481 --Encumbrance Upgrade Debit Encumbrance Type
33482 , p_source_40 IN NUMBER
33483 )
33484 IS
33485
33486 l_component_type VARCHAR2(80);
33487 l_component_code VARCHAR2(30);
33488 l_component_type_code VARCHAR2(1);
33489 l_component_appl_id INTEGER;
33490 l_amb_context_code VARCHAR2(30);
33491 l_entity_code VARCHAR2(30);
33492 l_event_class_code VARCHAR2(30);
33493 l_ae_header_id NUMBER;
33494 l_event_type_code VARCHAR2(30);
33495 l_line_definition_code VARCHAR2(30);
33496 l_line_definition_owner_code VARCHAR2(1);
33497 --
33498 -- adr variables
33499 l_segment VARCHAR2(30);
33500 l_ccid NUMBER;
33501 l_adr_transaction_coa_id NUMBER;
33502 l_adr_accounting_coa_id NUMBER;
33503 l_adr_flexfield_segment_code VARCHAR2(30);
33504 l_adr_flex_value_set_id NUMBER;
33505 l_adr_value_type_code VARCHAR2(30);
33506 l_adr_value_combination_id NUMBER;
33507 l_adr_value_segment_code VARCHAR2(30);
33508
33509 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
33510 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
33511 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
33512 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
33513
33514 -- 4262811 Variables ------------------------------------------------------------------------------------------
33515 l_entered_amt_idx NUMBER;
33516 l_accted_amt_idx NUMBER;
33517 l_acc_rev_flag VARCHAR2(1);
33518 l_accrual_line_num NUMBER;
33519 l_tmp_amt NUMBER;
33520 l_acc_rev_natural_side_code VARCHAR2(1);
33521
33522 l_num_entries NUMBER;
33523 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
33524 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
33525 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
33526 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
33527 l_recog_line_1 NUMBER;
33528 l_recog_line_2 NUMBER;
33529
33530 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
33531 l_bflow_applied_to_amt NUMBER; -- 5132302
33532 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
33533
33534 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
33535
33536 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
33537 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
33538
33539 ---------------------------------------------------------------------------------------------------------------
33540
33541
33542 --
33543 -- bulk performance
33544 --
33545 l_balance_type_code VARCHAR2(1);
33546 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
33547 l_log_module VARCHAR2(240);
33548
33549 --
33550 -- Upgrade strategy
33551 --
33552 l_actual_upg_option VARCHAR2(1);
33553 l_enc_upg_option VARCHAR2(1);
33554
33555 --
33556 BEGIN
33557 --
33558 IF g_log_enabled THEN
33559 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_61';
33560 END IF;
33561 --
33562 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33563
33564 trace
33565 (p_msg => 'BEGIN of AcctLineType_61'
33566 ,p_level => C_LEVEL_PROCEDURE
33567 ,p_module => l_log_module);
33568
33569 END IF;
33570 --
33571 l_component_type := 'AMB_JLT';
33572 l_component_code := 'RESERVE_BURDENED_RELEASE_ENC';
33573 l_component_type_code := 'S';
33574 l_component_appl_id := 201;
33575 l_amb_context_code := 'DEFAULT';
33576 l_entity_code := 'RELEASE';
33577 l_event_class_code := 'RELEASE_BURDEN';
33578 l_event_type_code := 'RELEASE_BURDEN_ALL';
33579 l_line_definition_owner_code := 'S';
33580 l_line_definition_code := 'REL_BURDEN_ENC_ALL';
33581 --
33582 l_balance_type_code := 'E';
33583 l_segment := NULL;
33584 l_ccid := NULL;
33585 l_adr_transaction_coa_id := NULL;
33586 l_adr_accounting_coa_id := NULL;
33587 l_adr_flexfield_segment_code := NULL;
33588 l_adr_flex_value_set_id := NULL;
33589 l_adr_value_type_code := NULL;
33590 l_adr_value_combination_id := NULL;
33591 l_adr_value_segment_code := NULL;
33592
33593 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
33594 l_bflow_class_code := 'REL_PA_BURDENED_ENC'; -- 4219869 Business Flow
33595 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
33596 l_budgetary_control_flag := 'Y';
33597
33598 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33599 l_bflow_applied_to_amt := NULL; -- 5132302
33600 l_entered_amt_idx := NULL; -- 4262811
33601 l_accted_amt_idx := NULL; -- 4262811
33602 l_acc_rev_flag := NULL; -- 4262811
33603 l_accrual_line_num := NULL; -- 4262811
33604 l_tmp_amt := NULL; -- 4262811
33605 --
33606
33607 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
33608 l_balance_type_code <> 'B' THEN
33609 IF NVL(
33610 xla_ae_sources_pkg.GetSystemSourceChar(
33611 p_source_code => 'XLA_EVENT_TYPE_CODE'
33612 , p_source_type_code => 'Y'
33613 , p_source_application_id => 602
33614 ),'
33615 ') = 'REL_BURDEN_RESERVED' AND
33616 NVL(p_source_13,'
33617 ') = 'M' AND
33618 (NVL(p_source_14,'
33619 ') = 'O' OR
33620 NVL(p_source_14,'
33621 ') = 'N') AND
33622 NVL(p_source_9,'
33623 ') = 'PO' AND
33624 NVL(p_source_15,'
33625 ') = 'S'
33626 THEN
33627
33628 --
33629 XLA_AE_LINES_PKG.SetNewLine;
33630
33631 p_balance_type_code := l_balance_type_code;
33632 -- set the flag so later we will know whether the gain loss line needs to be created
33633
33634 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
33635 p_actual_flag :='A';
33636 END IF;
33637
33638 --
33639 -- bulk performance
33640 --
33641 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
33642 p_header_num => 0); -- 4262811
33643 --
33644 -- set accounting line options
33645 --
33646 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
33647 p_natural_side_code => 'D'
33648 , p_gain_or_loss_flag => 'N'
33649 , p_gl_transfer_mode_code => 'S'
33650 , p_acct_entry_type_code => 'E'
33651 , p_switch_side_flag => 'N'
33652 , p_merge_duplicate_code => 'N'
33653 );
33654 --
33655 l_acc_rev_natural_side_code := 'C'; -- 4262811
33656 --
33657 --
33658 -- set accounting line type info
33659 --
33660 xla_ae_lines_pkg.SetAcctLineType
33661 (p_component_type => l_component_type
33662 ,p_event_type_code => l_event_type_code
33663 ,p_line_definition_owner_code => l_line_definition_owner_code
33664 ,p_line_definition_code => l_line_definition_code
33665 ,p_accounting_line_code => l_component_code
33666 ,p_accounting_line_type_code => l_component_type_code
33667 ,p_accounting_line_appl_id => l_component_appl_id
33668 ,p_amb_context_code => l_amb_context_code
33669 ,p_entity_code => l_entity_code
33670 ,p_event_class_code => l_event_class_code);
33671 --
33672 -- set accounting class
33673 --
33674 xla_ae_lines_pkg.SetAcctClass(
33675 p_accounting_class_code => 'PO_PA_BURDENED'
33676 , p_ae_header_id => l_ae_header_id
33677 );
33678
33679 --
33680 -- set rounding class
33681 --
33682 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33683 'PO_PA_BURDENED';
33684
33685 --
33686 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33687 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33688 --
33689 -- bulk performance
33690 --
33691 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33692
33693 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33694 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33695
33696 -- 4955764
33697 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33698 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33699
33700 -- 4458381 Public Sector Enh
33701 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1001;
33702 --
33703 -- set accounting attributes for the line type
33704 --
33705 l_entered_amt_idx := 28;
33706 l_accted_amt_idx := 30;
33707 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33708 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33709 l_rec_acct_attrs.array_char_value(1) := p_source_16;
33710 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
33711 l_rec_acct_attrs.array_num_value(2) := p_source_17;
33712 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
33713 l_rec_acct_attrs.array_char_value(3) := p_source_18;
33714 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
33715 l_rec_acct_attrs.array_char_value(4) := p_source_19;
33716 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
33717 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
33718 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
33719 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
33720 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
33721 l_rec_acct_attrs.array_char_value(7) := p_source_22;
33722 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
33723 l_rec_acct_attrs.array_num_value(8) := p_source_23;
33724 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
33725 l_rec_acct_attrs.array_char_value(9) := p_source_24;
33726 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
33727 l_rec_acct_attrs.array_char_value(10) := p_source_25;
33728 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
33729 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_26);
33730 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
33731 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_27);
33732 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
33733 l_rec_acct_attrs.array_char_value(13) := p_source_28;
33734 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
33735 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_29);
33736 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
33737 l_rec_acct_attrs.array_char_value(15) := p_source_6;
33738 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
33739 l_rec_acct_attrs.array_char_value(16) := p_source_30;
33740 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
33741 l_rec_acct_attrs.array_char_value(17) := p_source_31;
33742 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
33743 l_rec_acct_attrs.array_num_value(18) := p_source_32;
33744 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
33745 l_rec_acct_attrs.array_num_value(19) := p_source_33;
33746 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
33747 l_rec_acct_attrs.array_char_value(20) := p_source_34;
33748 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
33749 l_rec_acct_attrs.array_num_value(21) := p_source_35;
33750 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
33751 l_rec_acct_attrs.array_char_value(22) := p_source_36;
33752 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
33753 l_rec_acct_attrs.array_num_value(23) := p_source_37;
33754 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
33755 l_rec_acct_attrs.array_num_value(24) := p_source_33;
33756 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
33757 l_rec_acct_attrs.array_char_value(25) := p_source_34;
33758 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
33759 l_rec_acct_attrs.array_num_value(26) := p_source_35;
33760 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
33761 l_rec_acct_attrs.array_char_value(27) := p_source_38;
33762 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
33763 l_rec_acct_attrs.array_num_value(28) := p_source_33;
33764 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
33765 l_rec_acct_attrs.array_char_value(29) := p_source_34;
33766 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
33767 l_rec_acct_attrs.array_num_value(30) := p_source_35;
33768 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
33769 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_29);
33770 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
33771 l_rec_acct_attrs.array_char_value(32) := p_source_6;
33772 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
33773 l_rec_acct_attrs.array_char_value(33) := p_source_30;
33774 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
33775 l_rec_acct_attrs.array_num_value(34) := p_source_39;
33776 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
33777 l_rec_acct_attrs.array_num_value(35) := p_source_40;
33778
33779 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
33780 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
33781
33782 ---------------------------------------------------------------------------------------------------------------
33783 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
33784 ---------------------------------------------------------------------------------------------------------------
33785 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
33786
33787 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33788 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33789
33790 IF xla_accounting_cache_pkg.GetValueChar
33791 (p_source_code => 'LEDGER_CATEGORY_CODE'
33792 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
33793 AND l_bflow_method_code = 'PRIOR_ENTRY'
33794 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
33795 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
33796 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
33797 )
33798 THEN
33799 xla_ae_lines_pkg.BflowUpgEntry
33800 (p_business_method_code => l_bflow_method_code
33801 ,p_business_class_code => l_bflow_class_code
33802 ,p_balance_type => l_balance_type_code);
33803 ELSE
33804 NULL;
33805 -- No business flow processing for business flow method of NONE.
33806 END IF;
33807
33808 --
33809 -- call analytical criteria
33810 --
33811
33812 --
33813 -- call description
33814 --
33815
33816 xla_ae_lines_pkg.SetLineDescription(
33817 p_ae_header_id => l_ae_header_id
33818 ,p_description => Description_2 (
33819 p_application_id => p_application_id
33820 , p_ae_header_id => l_ae_header_id
33821 , p_source_3 => p_source_3
33822 , p_source_4 => p_source_4
33823 , p_source_5 => p_source_5
33824 , p_source_6 => p_source_6
33825 )
33826 );
33827
33828
33829 --
33830 -- call ADRs
33831 -- Bug 4922099
33832 --
33833 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33834 (NVL(l_actual_upg_option, 'N') = 'O') OR
33835 (NVL(l_enc_upg_option, 'N') = 'O')
33836 )
33837 THEN
33838 NULL;
33839 --
33840 --
33841
33842 l_ccid := AcctDerRule_6(
33843 p_application_id => p_application_id
33844 , p_ae_header_id => l_ae_header_id
33845 , p_source_11 => p_source_11
33846 , x_transaction_coa_id => l_adr_transaction_coa_id
33847 , x_accounting_coa_id => l_adr_accounting_coa_id
33848 , x_value_type_code => l_adr_value_type_code
33849 , p_side => 'NA'
33850 );
33851
33852 xla_ae_lines_pkg.set_ccid(
33853 p_code_combination_id => l_ccid
33854 , p_value_type_code => l_adr_value_type_code
33855 , p_transaction_coa_id => l_adr_transaction_coa_id
33856 , p_accounting_coa_id => l_adr_accounting_coa_id
33857 , p_adr_code => 'PROJ_BURDENED_ENC_ACCT_RULE'
33858 , p_adr_type_code => 'S'
33859 , p_component_type => l_component_type
33860 , p_component_code => l_component_code
33861 , p_component_type_code => l_component_type_code
33862 , p_component_appl_id => l_component_appl_id
33863 , p_amb_context_code => l_amb_context_code
33864 , p_side => 'NA'
33865 );
33866
33867
33868 --
33869 --
33870 END IF;
33871 --
33872 -- Bug 4922099
33873 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
33874 (NVL(l_enc_upg_option, 'N') = 'O')
33875 ) AND
33876 (l_bflow_method_code = 'PRIOR_ENTRY')
33877 )
33878 THEN
33879 IF
33880 --
33881 1 = 2
33882 --
33883 THEN
33884 xla_accounting_err_pkg.build_message
33885 (p_appli_s_name => 'XLA'
33886 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33887 ,p_token_1 => 'LINE_NUMBER'
33888 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
33889 ,p_token_2 => 'LINE_TYPE_NAME'
33890 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
33891 l_component_type
33892 ,l_component_code
33893 ,l_component_type_code
33894 ,l_component_appl_id
33895 ,l_amb_context_code
33896 ,l_entity_code
33897 ,l_event_class_code
33898 )
33899 ,p_token_3 => 'OWNER'
33900 ,p_value_3 => xla_lookups_pkg.get_meaning(
33901 p_lookup_type => 'XLA_OWNER_TYPE'
33902 ,p_lookup_code => l_component_type_code
33903 )
33904 ,p_token_4 => 'PRODUCT_NAME'
33905 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
33906 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
33907 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
33908 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
33909 ,p_ae_header_id => NULL
33910 );
33911
33912 IF (C_LEVEL_ERROR>= g_log_level) THEN
33913 trace
33914 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33915 ,p_level => C_LEVEL_ERROR
33916 ,p_module => l_log_module);
33917 END IF;
33918 END IF;
33919 END IF;
33920 --
33921 --
33922 ------------------------------------------------------------------------------------------------
33923 -- 4219869 Business Flow
33924 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
33925 -- Prior Entry. Currently, the following code is always generated.
33926 ------------------------------------------------------------------------------------------------
33927 XLA_AE_LINES_PKG.ValidateCurrentLine;
33928
33929 ------------------------------------------------------------------------------------
33930 -- 4219869 Business Flow
33931 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
33932 ------------------------------------------------------------------------------------
33933 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33934
33935 ----------------------------------------------------------------------------------
33936 -- 4219869 Business Flow
33937 -- Update journal entry status -- Need to generate this within IF <condition>
33938 ----------------------------------------------------------------------------------
33939 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33940 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
33941 ,p_balance_type_code => l_balance_type_code
33942 );
33943
33944 -------------------------------------------------------------------------------------------
33945 -- 4262811 - Generate the Accrual Reversal lines
33946 -------------------------------------------------------------------------------------------
33947 BEGIN
33948 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
33949 (g_array_event(p_event_id).array_value_num('header_index'));
33950 IF l_acc_rev_flag IS NULL THEN
33951 l_acc_rev_flag := 'N';
33952 END IF;
33953 EXCEPTION
33954 WHEN OTHERS THEN
33955 l_acc_rev_flag := 'N';
33956 END;
33957 --
33958 IF (l_acc_rev_flag = 'Y') THEN
33959
33960 -- 4645092 ------------------------------------------------------------------------------
33961 -- To allow MPA report to determine if it should generate report process
33962 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
33963 ------------------------------------------------------------------------------------------
33964
33965 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
33966 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
33967
33968 --
33969 -- Update the line information that should be overwritten
33970 --
33971 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
33972 p_header_num => 1);
33973 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
33974
33975 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
33976
33977 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
33978 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
33979 END IF;
33980
33981 --
33982 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
33983 --
33984 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
33985 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
33986 ELSE
33987 ---------------------------------------------------------------------------------------------------
33988 -- 4262811a Switch Sign
33989 ---------------------------------------------------------------------------------------------------
33990 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
33991 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33992 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33993 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33994 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33995 -- 5132302
33996 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
33997 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33998
33999 END IF;
34000
34001 -- 4955764
34002 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34003 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
34004
34005
34006 XLA_AE_LINES_PKG.ValidateCurrentLine;
34007 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34008
34009 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34010 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
34011 ,p_balance_type_code => l_balance_type_code);
34012
34013 END IF;
34014
34015 -----------------------------------------------------------------------------------------
34016 -- 4262811 Multiperiod Accounting
34017 -----------------------------------------------------------------------------------------
34018 -- No MPA option is assigned.
34019
34020
34021 END IF;
34022 END IF;
34023 --
34024
34025 --
34026 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34027 trace
34028 (p_msg => 'END of AcctLineType_61'
34029 ,p_level => C_LEVEL_PROCEDURE
34030 ,p_module => l_log_module);
34031 END IF;
34032 --
34033 EXCEPTION
34034 WHEN xla_exceptions_pkg.application_exception THEN
34035 RAISE;
34036 WHEN OTHERS THEN
34037 xla_exceptions_pkg.raise_message
34038 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_61');
34039 END AcctLineType_61;
34040 --
34041
34042 ---------------------------------------
34043 --
34044 -- PRIVATE FUNCTION
34045 -- AcctLineType_62
34046 --
34047 ---------------------------------------
34048 PROCEDURE AcctLineType_62 (
34049 p_application_id IN NUMBER
34050 ,p_event_id IN NUMBER
34051 ,p_calculate_acctd_flag IN VARCHAR2
34052 ,p_calculate_g_l_flag IN VARCHAR2
34053 ,p_actual_flag IN OUT VARCHAR2
34054 ,p_balance_type_code OUT VARCHAR2
34055 ,p_gain_or_loss_ref OUT VARCHAR2
34056
34057 --Project Name
34058 , p_source_3 IN VARCHAR2
34059 --Task Name
34060 , p_source_4 IN VARCHAR2
34061 --Project Expenditure Organization Identifier
34062 , p_source_5 IN NUMBER
34063 --Expenditure Type
34064 , p_source_6 IN VARCHAR2
34065 --Budget Account
34066 , p_source_11 IN NUMBER
34067 --Main Or Backing Code
34068 , p_source_13 IN VARCHAR2
34069 --Burden Record Identifier
34070 , p_source_14 IN VARCHAR2
34071 , p_source_14_meaning IN VARCHAR2
34072 --Burden Amount Display Method
34073 , p_source_15 IN VARCHAR2
34074 --Accounting Reversal Flag
34075 , p_source_16 IN VARCHAR2
34076 --Allocated to Application Identifier
34077 , p_source_17 IN NUMBER
34078 --Allocated to Distribution Type
34079 , p_source_18 IN VARCHAR2
34080 --Allocated to Entity Code
34081 , p_source_19 IN VARCHAR2
34082 --Allocated to First Distribution Identifier
34083 , p_source_20 IN NUMBER
34084 --Allocated to First System Transaction Identifier
34085 , p_source_21 IN NUMBER
34086 --Allocated to Second Distribution Identifier
34087 , p_source_22 IN VARCHAR2
34088 --Line Type Name
34089 , p_source_30 IN VARCHAR2
34090 --Encumbrance Upgrade Credit Accounting Class
34091 , p_source_31 IN VARCHAR2
34092 --Encumbrance Upgrade Credit Account
34093 , p_source_32 IN NUMBER
34094 --Entered Amount
34095 , p_source_33 IN NUMBER
34096 --Currency Code
34097 , p_source_34 IN VARCHAR2
34098 --Accounted Amount
34099 , p_source_35 IN NUMBER
34100 --Encumbrance Upgrade Debit Accounting Class
34101 , p_source_36 IN VARCHAR2
34102 --Encumbrance Upgrade Debit Account
34103 , p_source_37 IN NUMBER
34104 --Use Encumbrances Upgrade Attributes Flag
34105 , p_source_38 IN VARCHAR2
34106 --Encumbrance Upgrade Credit Encumbrance Type
34107 , p_source_39 IN NUMBER
34108 --Encumbrance Upgrade Debit Encumbrance Type
34109 , p_source_40 IN NUMBER
34110 --Requisition Burden Applied to Application Identifier
34111 , p_source_41 IN NUMBER
34112 --Requisition Distribution Type
34113 , p_source_42 IN VARCHAR2
34114 --Requisition Burden Applied to Entity Code
34115 , p_source_43 IN VARCHAR2
34116 --Requisition Burden Applied to First Distribution Identifier
34117 , p_source_44 IN NUMBER
34118 --Requisition Burden Applied to First System Transaction Identifier
34119 , p_source_45 IN NUMBER
34120 --Requisition Burden Applied to Second Distribution Identifier
34121 , p_source_46 IN VARCHAR2
34122 --Requisition Distribution Identifier
34123 , p_source_47 IN NUMBER
34124 --Document Distribution Type
34125 , p_source_74 IN VARCHAR2
34126 )
34127 IS
34128
34129 l_component_type VARCHAR2(80);
34130 l_component_code VARCHAR2(30);
34131 l_component_type_code VARCHAR2(1);
34132 l_component_appl_id INTEGER;
34133 l_amb_context_code VARCHAR2(30);
34134 l_entity_code VARCHAR2(30);
34135 l_event_class_code VARCHAR2(30);
34136 l_ae_header_id NUMBER;
34137 l_event_type_code VARCHAR2(30);
34138 l_line_definition_code VARCHAR2(30);
34139 l_line_definition_owner_code VARCHAR2(1);
34140 --
34141 -- adr variables
34142 l_segment VARCHAR2(30);
34143 l_ccid NUMBER;
34144 l_adr_transaction_coa_id NUMBER;
34145 l_adr_accounting_coa_id NUMBER;
34146 l_adr_flexfield_segment_code VARCHAR2(30);
34147 l_adr_flex_value_set_id NUMBER;
34148 l_adr_value_type_code VARCHAR2(30);
34149 l_adr_value_combination_id NUMBER;
34150 l_adr_value_segment_code VARCHAR2(30);
34151
34152 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
34153 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
34154 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
34155 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
34156
34157 -- 4262811 Variables ------------------------------------------------------------------------------------------
34158 l_entered_amt_idx NUMBER;
34159 l_accted_amt_idx NUMBER;
34160 l_acc_rev_flag VARCHAR2(1);
34161 l_accrual_line_num NUMBER;
34162 l_tmp_amt NUMBER;
34163 l_acc_rev_natural_side_code VARCHAR2(1);
34164
34165 l_num_entries NUMBER;
34166 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
34167 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
34168 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
34169 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
34170 l_recog_line_1 NUMBER;
34171 l_recog_line_2 NUMBER;
34172
34173 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
34174 l_bflow_applied_to_amt NUMBER; -- 5132302
34175 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
34176
34177 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
34178
34179 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
34180 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
34181
34182 ---------------------------------------------------------------------------------------------------------------
34183
34184
34185 --
34186 -- bulk performance
34187 --
34188 l_balance_type_code VARCHAR2(1);
34189 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
34190 l_log_module VARCHAR2(240);
34191
34192 --
34193 -- Upgrade strategy
34194 --
34195 l_actual_upg_option VARCHAR2(1);
34196 l_enc_upg_option VARCHAR2(1);
34197
34198 --
34199 BEGIN
34200 --
34201 IF g_log_enabled THEN
34202 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_62';
34203 END IF;
34204 --
34205 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34206
34207 trace
34208 (p_msg => 'BEGIN of AcctLineType_62'
34209 ,p_level => C_LEVEL_PROCEDURE
34210 ,p_module => l_log_module);
34211
34212 END IF;
34213 --
34214 l_component_type := 'AMB_JLT';
34215 l_component_code := 'RESERVE_BURDENED_REQ_ENC';
34216 l_component_type_code := 'S';
34217 l_component_appl_id := 201;
34218 l_amb_context_code := 'DEFAULT';
34219 l_entity_code := 'REQUISITION';
34220 l_event_class_code := 'REQUISITION_BURDEN';
34221 l_event_type_code := 'REQUISITION_BURDEN_ALL';
34222 l_line_definition_owner_code := 'S';
34223 l_line_definition_code := 'REQ_BURDEN_ENC_ALL';
34224 --
34225 l_balance_type_code := 'E';
34226 l_segment := NULL;
34227 l_ccid := NULL;
34228 l_adr_transaction_coa_id := NULL;
34229 l_adr_accounting_coa_id := NULL;
34230 l_adr_flexfield_segment_code := NULL;
34231 l_adr_flex_value_set_id := NULL;
34232 l_adr_value_type_code := NULL;
34233 l_adr_value_combination_id := NULL;
34234 l_adr_value_segment_code := NULL;
34235
34236 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
34237 l_bflow_class_code := 'REQ_PA_BURDENED_ENC'; -- 4219869 Business Flow
34238 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
34239 l_budgetary_control_flag := 'Y';
34240
34241 l_bflow_applied_to_amt_idx := NULL; -- 5132302
34242 l_bflow_applied_to_amt := NULL; -- 5132302
34243 l_entered_amt_idx := NULL; -- 4262811
34244 l_accted_amt_idx := NULL; -- 4262811
34245 l_acc_rev_flag := NULL; -- 4262811
34246 l_accrual_line_num := NULL; -- 4262811
34247 l_tmp_amt := NULL; -- 4262811
34248 --
34249
34250 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
34251 l_balance_type_code <> 'B' THEN
34252 IF ((NVL(
34253 xla_ae_sources_pkg.GetSystemSourceChar(
34254 p_source_code => 'XLA_EVENT_TYPE_CODE'
34255 , p_source_type_code => 'Y'
34256 , p_source_application_id => 602
34257 ),'
34258 ') = 'REQ_BURDEN_RESERVED' OR
34259 (NVL(
34260 xla_ae_sources_pkg.GetSystemSourceChar(
34261 p_source_code => 'XLA_EVENT_TYPE_CODE'
34262 , p_source_type_code => 'Y'
34263 , p_source_application_id => 602
34264 ),'
34265 ') = 'REQ_BURDEN_ADJUSTED' AND
34266 NVL(p_source_74,'
34267 ') = 'REQUISITION_ADJUSTED_NEW')
34268 ) AND NVL(p_source_13,'
34269 ') = 'M') AND
34270 (NVL(p_source_14,'
34271 ') = 'N' OR
34272 NVL(p_source_14,'
34273 ') = 'O') AND
34274 NVL(p_source_15,'
34275 ') = 'S'
34276 THEN
34277
34278 --
34279 XLA_AE_LINES_PKG.SetNewLine;
34280
34281 p_balance_type_code := l_balance_type_code;
34282 -- set the flag so later we will know whether the gain loss line needs to be created
34283
34284 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
34285 p_actual_flag :='A';
34286 END IF;
34287
34288 --
34289 -- bulk performance
34290 --
34291 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
34292 p_header_num => 0); -- 4262811
34293 --
34294 -- set accounting line options
34295 --
34296 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
34297 p_natural_side_code => 'D'
34298 , p_gain_or_loss_flag => 'N'
34299 , p_gl_transfer_mode_code => 'S'
34300 , p_acct_entry_type_code => 'E'
34301 , p_switch_side_flag => 'N'
34302 , p_merge_duplicate_code => 'N'
34303 );
34304 --
34305 l_acc_rev_natural_side_code := 'C'; -- 4262811
34306 --
34307 --
34308 -- set accounting line type info
34309 --
34310 xla_ae_lines_pkg.SetAcctLineType
34311 (p_component_type => l_component_type
34312 ,p_event_type_code => l_event_type_code
34313 ,p_line_definition_owner_code => l_line_definition_owner_code
34314 ,p_line_definition_code => l_line_definition_code
34315 ,p_accounting_line_code => l_component_code
34316 ,p_accounting_line_type_code => l_component_type_code
34317 ,p_accounting_line_appl_id => l_component_appl_id
34318 ,p_amb_context_code => l_amb_context_code
34319 ,p_entity_code => l_entity_code
34320 ,p_event_class_code => l_event_class_code);
34321 --
34322 -- set accounting class
34323 --
34324 xla_ae_lines_pkg.SetAcctClass(
34325 p_accounting_class_code => 'REQ_PA_BURDENED'
34326 , p_ae_header_id => l_ae_header_id
34327 );
34328
34329 --
34330 -- set rounding class
34331 --
34332 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
34333 'REQ_PA_BURDENED';
34334
34335 --
34336 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
34337 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
34338 --
34339 -- bulk performance
34340 --
34341 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
34342
34343 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
34344 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
34345
34346 -- 4955764
34347 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34348 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
34349
34350 -- 4458381 Public Sector Enh
34351 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1000;
34352 --
34353 -- set accounting attributes for the line type
34354 --
34355 l_entered_amt_idx := 28;
34356 l_accted_amt_idx := 30;
34357 l_bflow_applied_to_amt_idx := NULL; -- 5132302
34358 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
34359 l_rec_acct_attrs.array_char_value(1) := p_source_16;
34360 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
34361 l_rec_acct_attrs.array_num_value(2) := p_source_17;
34362 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
34363 l_rec_acct_attrs.array_char_value(3) := p_source_18;
34364 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
34365 l_rec_acct_attrs.array_char_value(4) := p_source_19;
34366 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
34367 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
34368 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
34369 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
34370 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
34371 l_rec_acct_attrs.array_char_value(7) := p_source_22;
34372 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
34373 l_rec_acct_attrs.array_num_value(8) := p_source_41;
34374 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
34375 l_rec_acct_attrs.array_char_value(9) := p_source_42;
34376 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
34377 l_rec_acct_attrs.array_char_value(10) := p_source_43;
34378 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
34379 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_44);
34380 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
34381 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_45);
34382 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
34383 l_rec_acct_attrs.array_char_value(13) := p_source_46;
34384 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
34385 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_47);
34386 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
34387 l_rec_acct_attrs.array_char_value(15) := p_source_6;
34388 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
34389 l_rec_acct_attrs.array_char_value(16) := p_source_30;
34390 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
34391 l_rec_acct_attrs.array_char_value(17) := p_source_31;
34392 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
34393 l_rec_acct_attrs.array_num_value(18) := p_source_32;
34394 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
34395 l_rec_acct_attrs.array_num_value(19) := p_source_33;
34396 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
34397 l_rec_acct_attrs.array_char_value(20) := p_source_34;
34398 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
34399 l_rec_acct_attrs.array_num_value(21) := p_source_35;
34400 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
34401 l_rec_acct_attrs.array_char_value(22) := p_source_36;
34402 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
34403 l_rec_acct_attrs.array_num_value(23) := p_source_37;
34404 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
34405 l_rec_acct_attrs.array_num_value(24) := p_source_33;
34406 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
34407 l_rec_acct_attrs.array_char_value(25) := p_source_34;
34408 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
34409 l_rec_acct_attrs.array_num_value(26) := p_source_35;
34410 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
34411 l_rec_acct_attrs.array_char_value(27) := p_source_38;
34412 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
34413 l_rec_acct_attrs.array_num_value(28) := p_source_33;
34414 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
34415 l_rec_acct_attrs.array_char_value(29) := p_source_34;
34416 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
34417 l_rec_acct_attrs.array_num_value(30) := p_source_35;
34418 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
34419 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_47);
34420 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
34421 l_rec_acct_attrs.array_char_value(32) := p_source_6;
34422 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
34423 l_rec_acct_attrs.array_char_value(33) := p_source_30;
34424 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
34425 l_rec_acct_attrs.array_num_value(34) := p_source_39;
34426 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
34427 l_rec_acct_attrs.array_num_value(35) := p_source_40;
34428
34429 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
34430 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
34431
34432 ---------------------------------------------------------------------------------------------------------------
34433 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
34434 ---------------------------------------------------------------------------------------------------------------
34435 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
34436
34437 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34438 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34439
34440 IF xla_accounting_cache_pkg.GetValueChar
34441 (p_source_code => 'LEDGER_CATEGORY_CODE'
34442 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
34443 AND l_bflow_method_code = 'PRIOR_ENTRY'
34444 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
34445 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
34446 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
34447 )
34448 THEN
34449 xla_ae_lines_pkg.BflowUpgEntry
34450 (p_business_method_code => l_bflow_method_code
34451 ,p_business_class_code => l_bflow_class_code
34452 ,p_balance_type => l_balance_type_code);
34453 ELSE
34454 NULL;
34455 -- No business flow processing for business flow method of NONE.
34456 END IF;
34457
34458 --
34459 -- call analytical criteria
34460 --
34461
34462 --
34463 -- call description
34464 --
34465
34466 xla_ae_lines_pkg.SetLineDescription(
34467 p_ae_header_id => l_ae_header_id
34468 ,p_description => Description_2 (
34469 p_application_id => p_application_id
34470 , p_ae_header_id => l_ae_header_id
34471 , p_source_3 => p_source_3
34472 , p_source_4 => p_source_4
34473 , p_source_5 => p_source_5
34474 , p_source_6 => p_source_6
34475 )
34476 );
34477
34478
34479 --
34480 -- call ADRs
34481 -- Bug 4922099
34482 --
34483 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34484 (NVL(l_actual_upg_option, 'N') = 'O') OR
34485 (NVL(l_enc_upg_option, 'N') = 'O')
34486 )
34487 THEN
34488 NULL;
34489 --
34490 --
34491
34492 l_ccid := AcctDerRule_6(
34493 p_application_id => p_application_id
34494 , p_ae_header_id => l_ae_header_id
34495 , p_source_11 => p_source_11
34496 , x_transaction_coa_id => l_adr_transaction_coa_id
34497 , x_accounting_coa_id => l_adr_accounting_coa_id
34498 , x_value_type_code => l_adr_value_type_code
34499 , p_side => 'NA'
34500 );
34501
34502 xla_ae_lines_pkg.set_ccid(
34503 p_code_combination_id => l_ccid
34504 , p_value_type_code => l_adr_value_type_code
34505 , p_transaction_coa_id => l_adr_transaction_coa_id
34506 , p_accounting_coa_id => l_adr_accounting_coa_id
34507 , p_adr_code => 'PROJ_BURDENED_ENC_ACCT_RULE'
34508 , p_adr_type_code => 'S'
34509 , p_component_type => l_component_type
34510 , p_component_code => l_component_code
34511 , p_component_type_code => l_component_type_code
34512 , p_component_appl_id => l_component_appl_id
34513 , p_amb_context_code => l_amb_context_code
34514 , p_side => 'NA'
34515 );
34516
34517
34518 --
34519 --
34520 END IF;
34521 --
34522 -- Bug 4922099
34523 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
34524 (NVL(l_enc_upg_option, 'N') = 'O')
34525 ) AND
34526 (l_bflow_method_code = 'PRIOR_ENTRY')
34527 )
34528 THEN
34529 IF
34530 --
34531 1 = 2
34532 --
34533 THEN
34534 xla_accounting_err_pkg.build_message
34535 (p_appli_s_name => 'XLA'
34536 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34537 ,p_token_1 => 'LINE_NUMBER'
34538 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
34539 ,p_token_2 => 'LINE_TYPE_NAME'
34540 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
34541 l_component_type
34542 ,l_component_code
34543 ,l_component_type_code
34544 ,l_component_appl_id
34545 ,l_amb_context_code
34546 ,l_entity_code
34547 ,l_event_class_code
34548 )
34549 ,p_token_3 => 'OWNER'
34550 ,p_value_3 => xla_lookups_pkg.get_meaning(
34551 p_lookup_type => 'XLA_OWNER_TYPE'
34552 ,p_lookup_code => l_component_type_code
34553 )
34554 ,p_token_4 => 'PRODUCT_NAME'
34555 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
34556 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
34557 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
34558 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
34559 ,p_ae_header_id => NULL
34560 );
34561
34562 IF (C_LEVEL_ERROR>= g_log_level) THEN
34563 trace
34564 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34565 ,p_level => C_LEVEL_ERROR
34566 ,p_module => l_log_module);
34567 END IF;
34568 END IF;
34569 END IF;
34570 --
34571 --
34572 ------------------------------------------------------------------------------------------------
34573 -- 4219869 Business Flow
34574 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
34575 -- Prior Entry. Currently, the following code is always generated.
34576 ------------------------------------------------------------------------------------------------
34577 XLA_AE_LINES_PKG.ValidateCurrentLine;
34578
34579 ------------------------------------------------------------------------------------
34580 -- 4219869 Business Flow
34581 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
34582 ------------------------------------------------------------------------------------
34583 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34584
34585 ----------------------------------------------------------------------------------
34586 -- 4219869 Business Flow
34587 -- Update journal entry status -- Need to generate this within IF <condition>
34588 ----------------------------------------------------------------------------------
34589 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34590 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
34591 ,p_balance_type_code => l_balance_type_code
34592 );
34593
34594 -------------------------------------------------------------------------------------------
34595 -- 4262811 - Generate the Accrual Reversal lines
34596 -------------------------------------------------------------------------------------------
34597 BEGIN
34598 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
34599 (g_array_event(p_event_id).array_value_num('header_index'));
34600 IF l_acc_rev_flag IS NULL THEN
34601 l_acc_rev_flag := 'N';
34602 END IF;
34603 EXCEPTION
34604 WHEN OTHERS THEN
34605 l_acc_rev_flag := 'N';
34606 END;
34607 --
34608 IF (l_acc_rev_flag = 'Y') THEN
34609
34610 -- 4645092 ------------------------------------------------------------------------------
34611 -- To allow MPA report to determine if it should generate report process
34612 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
34613 ------------------------------------------------------------------------------------------
34614
34615 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
34616 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
34617
34618 --
34619 -- Update the line information that should be overwritten
34620 --
34621 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
34622 p_header_num => 1);
34623 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
34624
34625 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
34626
34627 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
34628 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
34629 END IF;
34630
34631 --
34632 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
34633 --
34634 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
34635 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
34636 ELSE
34637 ---------------------------------------------------------------------------------------------------
34638 -- 4262811a Switch Sign
34639 ---------------------------------------------------------------------------------------------------
34640 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
34641 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34642 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34643 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34644 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34645 -- 5132302
34646 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
34647 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34648
34649 END IF;
34650
34651 -- 4955764
34652 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34653 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
34654
34655
34656 XLA_AE_LINES_PKG.ValidateCurrentLine;
34657 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34658
34659 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34660 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
34661 ,p_balance_type_code => l_balance_type_code);
34662
34663 END IF;
34664
34665 -----------------------------------------------------------------------------------------
34666 -- 4262811 Multiperiod Accounting
34667 -----------------------------------------------------------------------------------------
34668 -- No MPA option is assigned.
34669
34670
34671 END IF;
34672 END IF;
34673 --
34674
34675 --
34676 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34677 trace
34678 (p_msg => 'END of AcctLineType_62'
34679 ,p_level => C_LEVEL_PROCEDURE
34680 ,p_module => l_log_module);
34681 END IF;
34682 --
34683 EXCEPTION
34684 WHEN xla_exceptions_pkg.application_exception THEN
34685 RAISE;
34686 WHEN OTHERS THEN
34687 xla_exceptions_pkg.raise_message
34688 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_62');
34689 END AcctLineType_62;
34690 --
34691
34692 ---------------------------------------
34693 --
34694 -- PRIVATE FUNCTION
34695 -- AcctLineType_63
34696 --
34697 ---------------------------------------
34698 PROCEDURE AcctLineType_63 (
34699 p_application_id IN NUMBER
34700 ,p_event_id IN NUMBER
34701 ,p_calculate_acctd_flag IN VARCHAR2
34702 ,p_calculate_g_l_flag IN VARCHAR2
34703 ,p_actual_flag IN OUT VARCHAR2
34704 ,p_balance_type_code OUT VARCHAR2
34705 ,p_gain_or_loss_ref OUT VARCHAR2
34706
34707 --Project Name
34708 , p_source_3 IN VARCHAR2
34709 --Task Name
34710 , p_source_4 IN VARCHAR2
34711 --Project Expenditure Organization Identifier
34712 , p_source_5 IN NUMBER
34713 --Expenditure Type
34714 , p_source_6 IN VARCHAR2
34715 --Document Type
34716 , p_source_9 IN VARCHAR2
34717 --Budget Account
34718 , p_source_11 IN NUMBER
34719 --Main Or Backing Code
34720 , p_source_13 IN VARCHAR2
34721 --Burden Record Identifier
34722 , p_source_14 IN VARCHAR2
34723 , p_source_14_meaning IN VARCHAR2
34724 --Burden Amount Display Method
34725 , p_source_15 IN VARCHAR2
34726 --Accounting Reversal Flag
34727 , p_source_16 IN VARCHAR2
34728 --Allocated to Application Identifier
34729 , p_source_17 IN NUMBER
34730 --Allocated to Distribution Type
34731 , p_source_18 IN VARCHAR2
34732 --Allocated to Entity Code
34733 , p_source_19 IN VARCHAR2
34734 --Allocated to First Distribution Identifier
34735 , p_source_20 IN NUMBER
34736 --Allocated to First System Transaction Identifier
34737 , p_source_21 IN NUMBER
34738 --Purchase Order Burden Applied to Application Identifier
34739 , p_source_23 IN NUMBER
34740 --PO Distribution Type
34741 , p_source_24 IN VARCHAR2
34742 --Purchase Order Burden Applied to Entity Code
34743 , p_source_25 IN VARCHAR2
34744 --Purchase Order Burden Applied to First Distribution Identifier
34745 , p_source_26 IN NUMBER
34746 --Purchase Order Burden Applied to First System Transaction Identifier
34747 , p_source_27 IN NUMBER
34748 --Purchase Order Burden Applied to Second Distribution Identifier
34749 , p_source_28 IN VARCHAR2
34750 --PO Distribution Identifier
34751 , p_source_29 IN NUMBER
34752 --Line Type Name
34753 , p_source_30 IN VARCHAR2
34754 --Encumbrance Upgrade Credit Accounting Class
34755 , p_source_31 IN VARCHAR2
34756 --Encumbrance Upgrade Credit Account
34757 , p_source_32 IN NUMBER
34758 --Entered Amount
34759 , p_source_33 IN NUMBER
34760 --Currency Code
34761 , p_source_34 IN VARCHAR2
34762 --Accounted Amount
34763 , p_source_35 IN NUMBER
34764 --Encumbrance Upgrade Debit Accounting Class
34765 , p_source_36 IN VARCHAR2
34766 --Encumbrance Upgrade Debit Account
34767 , p_source_37 IN NUMBER
34768 --Use Encumbrances Upgrade Attributes Flag
34769 , p_source_38 IN VARCHAR2
34770 --Encumbrance Upgrade Credit Encumbrance Type
34771 , p_source_39 IN NUMBER
34772 --Encumbrance Upgrade Debit Encumbrance Type
34773 , p_source_40 IN NUMBER
34774 )
34775 IS
34776
34777 l_component_type VARCHAR2(80);
34778 l_component_code VARCHAR2(30);
34779 l_component_type_code VARCHAR2(1);
34780 l_component_appl_id INTEGER;
34781 l_amb_context_code VARCHAR2(30);
34782 l_entity_code VARCHAR2(30);
34783 l_event_class_code VARCHAR2(30);
34784 l_ae_header_id NUMBER;
34785 l_event_type_code VARCHAR2(30);
34786 l_line_definition_code VARCHAR2(30);
34787 l_line_definition_owner_code VARCHAR2(1);
34788 --
34789 -- adr variables
34790 l_segment VARCHAR2(30);
34791 l_ccid NUMBER;
34792 l_adr_transaction_coa_id NUMBER;
34793 l_adr_accounting_coa_id NUMBER;
34794 l_adr_flexfield_segment_code VARCHAR2(30);
34795 l_adr_flex_value_set_id NUMBER;
34796 l_adr_value_type_code VARCHAR2(30);
34797 l_adr_value_combination_id NUMBER;
34798 l_adr_value_segment_code VARCHAR2(30);
34799
34800 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
34801 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
34802 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
34803 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
34804
34805 -- 4262811 Variables ------------------------------------------------------------------------------------------
34806 l_entered_amt_idx NUMBER;
34807 l_accted_amt_idx NUMBER;
34808 l_acc_rev_flag VARCHAR2(1);
34809 l_accrual_line_num NUMBER;
34810 l_tmp_amt NUMBER;
34811 l_acc_rev_natural_side_code VARCHAR2(1);
34812
34813 l_num_entries NUMBER;
34814 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
34815 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
34816 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
34817 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
34818 l_recog_line_1 NUMBER;
34819 l_recog_line_2 NUMBER;
34820
34821 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
34822 l_bflow_applied_to_amt NUMBER; -- 5132302
34823 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
34824
34825 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
34826
34827 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
34828 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
34829
34830 ---------------------------------------------------------------------------------------------------------------
34831
34832
34833 --
34834 -- bulk performance
34835 --
34836 l_balance_type_code VARCHAR2(1);
34837 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
34838 l_log_module VARCHAR2(240);
34839
34840 --
34841 -- Upgrade strategy
34842 --
34843 l_actual_upg_option VARCHAR2(1);
34844 l_enc_upg_option VARCHAR2(1);
34845
34846 --
34847 BEGIN
34848 --
34849 IF g_log_enabled THEN
34850 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_63';
34851 END IF;
34852 --
34853 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34854
34855 trace
34856 (p_msg => 'BEGIN of AcctLineType_63'
34857 ,p_level => C_LEVEL_PROCEDURE
34858 ,p_module => l_log_module);
34859
34860 END IF;
34861 --
34862 l_component_type := 'AMB_JLT';
34863 l_component_code := 'RESERVE_BURDEN_PO_ENC';
34864 l_component_type_code := 'S';
34865 l_component_appl_id := 201;
34866 l_amb_context_code := 'DEFAULT';
34867 l_entity_code := 'PURCHASE_ORDER';
34868 l_event_class_code := 'PO_BURDEN';
34869 l_event_type_code := 'PO_BURDEN_ALL';
34870 l_line_definition_owner_code := 'S';
34871 l_line_definition_code := 'PO_BURDEN_ENC_ALL';
34872 --
34873 l_balance_type_code := 'E';
34874 l_segment := NULL;
34875 l_ccid := NULL;
34876 l_adr_transaction_coa_id := NULL;
34877 l_adr_accounting_coa_id := NULL;
34878 l_adr_flexfield_segment_code := NULL;
34879 l_adr_flex_value_set_id := NULL;
34880 l_adr_value_type_code := NULL;
34881 l_adr_value_combination_id := NULL;
34882 l_adr_value_segment_code := NULL;
34883
34884 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
34885 l_bflow_class_code := 'PO_PA_BURDEN_ENC'; -- 4219869 Business Flow
34886 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
34887 l_budgetary_control_flag := 'Y';
34888
34889 l_bflow_applied_to_amt_idx := NULL; -- 5132302
34890 l_bflow_applied_to_amt := NULL; -- 5132302
34891 l_entered_amt_idx := NULL; -- 4262811
34892 l_accted_amt_idx := NULL; -- 4262811
34893 l_acc_rev_flag := NULL; -- 4262811
34894 l_accrual_line_num := NULL; -- 4262811
34895 l_tmp_amt := NULL; -- 4262811
34896 --
34897
34898 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
34899 l_balance_type_code <> 'B' THEN
34900 IF NVL(
34901 xla_ae_sources_pkg.GetSystemSourceChar(
34902 p_source_code => 'XLA_EVENT_TYPE_CODE'
34903 , p_source_type_code => 'Y'
34904 , p_source_application_id => 602
34905 ),'
34906 ') = 'PO_BURDEN_RESERVED' AND
34907 NVL(p_source_13,'
34908 ') = 'M' AND
34909 NVL(p_source_14,'
34910 ') = 'O' AND
34911 NVL(p_source_9,'
34912 ') = 'PO' AND
34913 NVL(p_source_15,'
34914 ') = 'D'
34915 THEN
34916
34917 --
34918 XLA_AE_LINES_PKG.SetNewLine;
34919
34920 p_balance_type_code := l_balance_type_code;
34921 -- set the flag so later we will know whether the gain loss line needs to be created
34922
34923 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
34924 p_actual_flag :='A';
34925 END IF;
34926
34927 --
34928 -- bulk performance
34929 --
34930 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
34931 p_header_num => 0); -- 4262811
34932 --
34933 -- set accounting line options
34934 --
34935 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
34936 p_natural_side_code => 'D'
34937 , p_gain_or_loss_flag => 'N'
34938 , p_gl_transfer_mode_code => 'S'
34939 , p_acct_entry_type_code => 'E'
34940 , p_switch_side_flag => 'N'
34941 , p_merge_duplicate_code => 'N'
34942 );
34943 --
34944 l_acc_rev_natural_side_code := 'C'; -- 4262811
34945 --
34946 --
34947 -- set accounting line type info
34948 --
34949 xla_ae_lines_pkg.SetAcctLineType
34950 (p_component_type => l_component_type
34951 ,p_event_type_code => l_event_type_code
34952 ,p_line_definition_owner_code => l_line_definition_owner_code
34953 ,p_line_definition_code => l_line_definition_code
34954 ,p_accounting_line_code => l_component_code
34955 ,p_accounting_line_type_code => l_component_type_code
34956 ,p_accounting_line_appl_id => l_component_appl_id
34957 ,p_amb_context_code => l_amb_context_code
34958 ,p_entity_code => l_entity_code
34959 ,p_event_class_code => l_event_class_code);
34960 --
34961 -- set accounting class
34962 --
34963 xla_ae_lines_pkg.SetAcctClass(
34964 p_accounting_class_code => 'PO_PA_BURDEN'
34965 , p_ae_header_id => l_ae_header_id
34966 );
34967
34968 --
34969 -- set rounding class
34970 --
34971 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
34972 'PO_PA_BURDEN';
34973
34974 --
34975 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
34976 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
34977 --
34978 -- bulk performance
34979 --
34980 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
34981
34982 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
34983 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
34984
34985 -- 4955764
34986 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34987 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
34988
34989 -- 4458381 Public Sector Enh
34990 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1001;
34991 --
34992 -- set accounting attributes for the line type
34993 --
34994 l_entered_amt_idx := 27;
34995 l_accted_amt_idx := 29;
34996 l_bflow_applied_to_amt_idx := NULL; -- 5132302
34997 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
34998 l_rec_acct_attrs.array_char_value(1) := p_source_16;
34999 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
35000 l_rec_acct_attrs.array_num_value(2) := p_source_17;
35001 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
35002 l_rec_acct_attrs.array_char_value(3) := p_source_18;
35003 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
35004 l_rec_acct_attrs.array_char_value(4) := p_source_19;
35005 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
35006 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
35007 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
35008 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
35009 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
35010 l_rec_acct_attrs.array_num_value(7) := p_source_23;
35011 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
35012 l_rec_acct_attrs.array_char_value(8) := p_source_24;
35013 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
35014 l_rec_acct_attrs.array_char_value(9) := p_source_25;
35015 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
35016 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_26);
35017 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
35018 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_27);
35019 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
35020 l_rec_acct_attrs.array_char_value(12) := p_source_28;
35021 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
35022 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_29);
35023 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
35024 l_rec_acct_attrs.array_char_value(14) := p_source_6;
35025 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
35026 l_rec_acct_attrs.array_char_value(15) := p_source_30;
35027 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
35028 l_rec_acct_attrs.array_char_value(16) := p_source_31;
35029 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
35030 l_rec_acct_attrs.array_num_value(17) := p_source_32;
35031 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
35032 l_rec_acct_attrs.array_num_value(18) := p_source_33;
35033 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
35034 l_rec_acct_attrs.array_char_value(19) := p_source_34;
35035 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
35036 l_rec_acct_attrs.array_num_value(20) := p_source_35;
35037 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
35038 l_rec_acct_attrs.array_char_value(21) := p_source_36;
35039 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
35040 l_rec_acct_attrs.array_num_value(22) := p_source_37;
35041 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
35042 l_rec_acct_attrs.array_num_value(23) := p_source_33;
35043 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
35044 l_rec_acct_attrs.array_char_value(24) := p_source_34;
35045 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
35046 l_rec_acct_attrs.array_num_value(25) := p_source_35;
35047 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
35048 l_rec_acct_attrs.array_char_value(26) := p_source_38;
35049 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
35050 l_rec_acct_attrs.array_num_value(27) := p_source_33;
35051 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
35052 l_rec_acct_attrs.array_char_value(28) := p_source_34;
35053 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
35054 l_rec_acct_attrs.array_num_value(29) := p_source_35;
35055 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
35056 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_29);
35057 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
35058 l_rec_acct_attrs.array_char_value(31) := p_source_6;
35059 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
35060 l_rec_acct_attrs.array_char_value(32) := p_source_30;
35061 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
35062 l_rec_acct_attrs.array_num_value(33) := p_source_39;
35063 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
35064 l_rec_acct_attrs.array_num_value(34) := p_source_40;
35065
35066 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
35067 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
35068
35069 ---------------------------------------------------------------------------------------------------------------
35070 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
35071 ---------------------------------------------------------------------------------------------------------------
35072 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
35073
35074 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35075 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35076
35077 IF xla_accounting_cache_pkg.GetValueChar
35078 (p_source_code => 'LEDGER_CATEGORY_CODE'
35079 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
35080 AND l_bflow_method_code = 'PRIOR_ENTRY'
35081 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
35082 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
35083 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
35084 )
35085 THEN
35086 xla_ae_lines_pkg.BflowUpgEntry
35087 (p_business_method_code => l_bflow_method_code
35088 ,p_business_class_code => l_bflow_class_code
35089 ,p_balance_type => l_balance_type_code);
35090 ELSE
35091 NULL;
35092 -- No business flow processing for business flow method of NONE.
35093 END IF;
35094
35095 --
35096 -- call analytical criteria
35097 --
35098
35099 --
35100 -- call description
35101 --
35102
35103 xla_ae_lines_pkg.SetLineDescription(
35104 p_ae_header_id => l_ae_header_id
35105 ,p_description => Description_2 (
35106 p_application_id => p_application_id
35107 , p_ae_header_id => l_ae_header_id
35108 , p_source_3 => p_source_3
35109 , p_source_4 => p_source_4
35110 , p_source_5 => p_source_5
35111 , p_source_6 => p_source_6
35112 )
35113 );
35114
35115
35116 --
35117 -- call ADRs
35118 -- Bug 4922099
35119 --
35120 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35121 (NVL(l_actual_upg_option, 'N') = 'O') OR
35122 (NVL(l_enc_upg_option, 'N') = 'O')
35123 )
35124 THEN
35125 NULL;
35126 --
35127 --
35128
35129 l_ccid := AcctDerRule_7(
35130 p_application_id => p_application_id
35131 , p_ae_header_id => l_ae_header_id
35132 , p_source_11 => p_source_11
35133 , x_transaction_coa_id => l_adr_transaction_coa_id
35134 , x_accounting_coa_id => l_adr_accounting_coa_id
35135 , x_value_type_code => l_adr_value_type_code
35136 , p_side => 'NA'
35137 );
35138
35139 xla_ae_lines_pkg.set_ccid(
35140 p_code_combination_id => l_ccid
35141 , p_value_type_code => l_adr_value_type_code
35142 , p_transaction_coa_id => l_adr_transaction_coa_id
35143 , p_accounting_coa_id => l_adr_accounting_coa_id
35144 , p_adr_code => 'PROJ_BURDEN_ENC_ACCT_RULE'
35145 , p_adr_type_code => 'S'
35146 , p_component_type => l_component_type
35147 , p_component_code => l_component_code
35148 , p_component_type_code => l_component_type_code
35149 , p_component_appl_id => l_component_appl_id
35150 , p_amb_context_code => l_amb_context_code
35151 , p_side => 'NA'
35152 );
35153
35154
35155 --
35156 --
35157 END IF;
35158 --
35159 -- Bug 4922099
35160 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
35161 (NVL(l_enc_upg_option, 'N') = 'O')
35162 ) AND
35163 (l_bflow_method_code = 'PRIOR_ENTRY')
35164 )
35165 THEN
35166 IF
35167 --
35168 1 = 2
35169 --
35170 THEN
35171 xla_accounting_err_pkg.build_message
35172 (p_appli_s_name => 'XLA'
35173 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35174 ,p_token_1 => 'LINE_NUMBER'
35175 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
35176 ,p_token_2 => 'LINE_TYPE_NAME'
35177 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
35178 l_component_type
35179 ,l_component_code
35180 ,l_component_type_code
35181 ,l_component_appl_id
35182 ,l_amb_context_code
35183 ,l_entity_code
35184 ,l_event_class_code
35185 )
35186 ,p_token_3 => 'OWNER'
35187 ,p_value_3 => xla_lookups_pkg.get_meaning(
35188 p_lookup_type => 'XLA_OWNER_TYPE'
35189 ,p_lookup_code => l_component_type_code
35190 )
35191 ,p_token_4 => 'PRODUCT_NAME'
35192 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
35193 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
35194 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
35195 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
35196 ,p_ae_header_id => NULL
35197 );
35198
35199 IF (C_LEVEL_ERROR>= g_log_level) THEN
35200 trace
35201 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35202 ,p_level => C_LEVEL_ERROR
35203 ,p_module => l_log_module);
35204 END IF;
35205 END IF;
35206 END IF;
35207 --
35208 --
35209 ------------------------------------------------------------------------------------------------
35210 -- 4219869 Business Flow
35211 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
35212 -- Prior Entry. Currently, the following code is always generated.
35213 ------------------------------------------------------------------------------------------------
35214 XLA_AE_LINES_PKG.ValidateCurrentLine;
35215
35216 ------------------------------------------------------------------------------------
35217 -- 4219869 Business Flow
35218 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
35219 ------------------------------------------------------------------------------------
35220 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35221
35222 ----------------------------------------------------------------------------------
35223 -- 4219869 Business Flow
35224 -- Update journal entry status -- Need to generate this within IF <condition>
35225 ----------------------------------------------------------------------------------
35226 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35227 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
35228 ,p_balance_type_code => l_balance_type_code
35229 );
35230
35231 -------------------------------------------------------------------------------------------
35232 -- 4262811 - Generate the Accrual Reversal lines
35233 -------------------------------------------------------------------------------------------
35234 BEGIN
35235 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
35236 (g_array_event(p_event_id).array_value_num('header_index'));
35237 IF l_acc_rev_flag IS NULL THEN
35238 l_acc_rev_flag := 'N';
35239 END IF;
35240 EXCEPTION
35241 WHEN OTHERS THEN
35242 l_acc_rev_flag := 'N';
35243 END;
35244 --
35245 IF (l_acc_rev_flag = 'Y') THEN
35246
35247 -- 4645092 ------------------------------------------------------------------------------
35248 -- To allow MPA report to determine if it should generate report process
35249 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
35250 ------------------------------------------------------------------------------------------
35251
35252 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
35253 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
35254
35255 --
35256 -- Update the line information that should be overwritten
35257 --
35258 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
35259 p_header_num => 1);
35260 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
35261
35262 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
35263
35264 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
35265 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
35266 END IF;
35267
35268 --
35269 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
35270 --
35271 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
35272 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
35273 ELSE
35274 ---------------------------------------------------------------------------------------------------
35275 -- 4262811a Switch Sign
35276 ---------------------------------------------------------------------------------------------------
35277 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
35278 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35279 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35280 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35281 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35282 -- 5132302
35283 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
35284 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35285
35286 END IF;
35287
35288 -- 4955764
35289 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35290 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
35291
35292
35293 XLA_AE_LINES_PKG.ValidateCurrentLine;
35294 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35295
35296 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35297 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
35298 ,p_balance_type_code => l_balance_type_code);
35299
35300 END IF;
35301
35302 -----------------------------------------------------------------------------------------
35303 -- 4262811 Multiperiod Accounting
35304 -----------------------------------------------------------------------------------------
35305 -- No MPA option is assigned.
35306
35307
35308 END IF;
35309 END IF;
35310 --
35311
35312 --
35313 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35314 trace
35315 (p_msg => 'END of AcctLineType_63'
35316 ,p_level => C_LEVEL_PROCEDURE
35317 ,p_module => l_log_module);
35318 END IF;
35319 --
35320 EXCEPTION
35321 WHEN xla_exceptions_pkg.application_exception THEN
35322 RAISE;
35323 WHEN OTHERS THEN
35324 xla_exceptions_pkg.raise_message
35325 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_63');
35326 END AcctLineType_63;
35327 --
35328
35329 ---------------------------------------
35330 --
35331 -- PRIVATE FUNCTION
35332 -- AcctLineType_64
35333 --
35334 ---------------------------------------
35335 PROCEDURE AcctLineType_64 (
35336 p_application_id IN NUMBER
35337 ,p_event_id IN NUMBER
35338 ,p_calculate_acctd_flag IN VARCHAR2
35339 ,p_calculate_g_l_flag IN VARCHAR2
35340 ,p_actual_flag IN OUT VARCHAR2
35341 ,p_balance_type_code OUT VARCHAR2
35342 ,p_gain_or_loss_ref OUT VARCHAR2
35343
35344 --Project Name
35345 , p_source_3 IN VARCHAR2
35346 --Task Name
35347 , p_source_4 IN VARCHAR2
35348 --Project Expenditure Organization Identifier
35349 , p_source_5 IN NUMBER
35350 --Expenditure Type
35351 , p_source_6 IN VARCHAR2
35352 --Document Type
35353 , p_source_9 IN VARCHAR2
35354 --Budget Account
35355 , p_source_11 IN NUMBER
35356 --Main Or Backing Code
35357 , p_source_13 IN VARCHAR2
35358 --Burden Record Identifier
35359 , p_source_14 IN VARCHAR2
35360 , p_source_14_meaning IN VARCHAR2
35361 --Burden Amount Display Method
35362 , p_source_15 IN VARCHAR2
35363 --Accounting Reversal Flag
35364 , p_source_16 IN VARCHAR2
35365 --Allocated to Application Identifier
35366 , p_source_17 IN NUMBER
35367 --Allocated to Distribution Type
35368 , p_source_18 IN VARCHAR2
35369 --Allocated to Entity Code
35370 , p_source_19 IN VARCHAR2
35371 --Allocated to First Distribution Identifier
35372 , p_source_20 IN NUMBER
35373 --Allocated to First System Transaction Identifier
35374 , p_source_21 IN NUMBER
35375 --Allocated to Second Distribution Identifier
35376 , p_source_22 IN VARCHAR2
35377 --Purchase Order Burden Applied to Application Identifier
35378 , p_source_23 IN NUMBER
35379 --PO Distribution Type
35380 , p_source_24 IN VARCHAR2
35381 --Purchase Order Burden Applied to Entity Code
35382 , p_source_25 IN VARCHAR2
35383 --Purchase Order Burden Applied to First Distribution Identifier
35384 , p_source_26 IN NUMBER
35385 --Purchase Order Burden Applied to First System Transaction Identifier
35386 , p_source_27 IN NUMBER
35387 --Purchase Order Burden Applied to Second Distribution Identifier
35388 , p_source_28 IN VARCHAR2
35389 --PO Distribution Identifier
35390 , p_source_29 IN NUMBER
35391 --Line Type Name
35392 , p_source_30 IN VARCHAR2
35393 --Encumbrance Upgrade Credit Accounting Class
35394 , p_source_31 IN VARCHAR2
35395 --Encumbrance Upgrade Credit Account
35396 , p_source_32 IN NUMBER
35397 --Entered Amount
35398 , p_source_33 IN NUMBER
35399 --Currency Code
35400 , p_source_34 IN VARCHAR2
35401 --Accounted Amount
35402 , p_source_35 IN NUMBER
35403 --Encumbrance Upgrade Debit Accounting Class
35404 , p_source_36 IN VARCHAR2
35405 --Encumbrance Upgrade Debit Account
35406 , p_source_37 IN NUMBER
35407 --Use Encumbrances Upgrade Attributes Flag
35408 , p_source_38 IN VARCHAR2
35409 --Encumbrance Upgrade Credit Encumbrance Type
35410 , p_source_39 IN NUMBER
35411 --Encumbrance Upgrade Debit Encumbrance Type
35412 , p_source_40 IN NUMBER
35413 )
35414 IS
35415
35416 l_component_type VARCHAR2(80);
35417 l_component_code VARCHAR2(30);
35418 l_component_type_code VARCHAR2(1);
35419 l_component_appl_id INTEGER;
35420 l_amb_context_code VARCHAR2(30);
35421 l_entity_code VARCHAR2(30);
35422 l_event_class_code VARCHAR2(30);
35423 l_ae_header_id NUMBER;
35424 l_event_type_code VARCHAR2(30);
35425 l_line_definition_code VARCHAR2(30);
35426 l_line_definition_owner_code VARCHAR2(1);
35427 --
35428 -- adr variables
35429 l_segment VARCHAR2(30);
35430 l_ccid NUMBER;
35431 l_adr_transaction_coa_id NUMBER;
35432 l_adr_accounting_coa_id NUMBER;
35433 l_adr_flexfield_segment_code VARCHAR2(30);
35434 l_adr_flex_value_set_id NUMBER;
35435 l_adr_value_type_code VARCHAR2(30);
35436 l_adr_value_combination_id NUMBER;
35437 l_adr_value_segment_code VARCHAR2(30);
35438
35439 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
35440 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
35441 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
35442 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
35443
35444 -- 4262811 Variables ------------------------------------------------------------------------------------------
35445 l_entered_amt_idx NUMBER;
35446 l_accted_amt_idx NUMBER;
35447 l_acc_rev_flag VARCHAR2(1);
35448 l_accrual_line_num NUMBER;
35449 l_tmp_amt NUMBER;
35450 l_acc_rev_natural_side_code VARCHAR2(1);
35451
35452 l_num_entries NUMBER;
35453 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
35454 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
35455 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
35456 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
35457 l_recog_line_1 NUMBER;
35458 l_recog_line_2 NUMBER;
35459
35460 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
35461 l_bflow_applied_to_amt NUMBER; -- 5132302
35462 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
35463
35464 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
35465
35466 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
35467 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
35468
35469 ---------------------------------------------------------------------------------------------------------------
35470
35471
35472 --
35473 -- bulk performance
35474 --
35475 l_balance_type_code VARCHAR2(1);
35476 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
35477 l_log_module VARCHAR2(240);
35478
35479 --
35480 -- Upgrade strategy
35481 --
35482 l_actual_upg_option VARCHAR2(1);
35483 l_enc_upg_option VARCHAR2(1);
35484
35485 --
35486 BEGIN
35487 --
35488 IF g_log_enabled THEN
35489 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_64';
35490 END IF;
35491 --
35492 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35493
35494 trace
35495 (p_msg => 'BEGIN of AcctLineType_64'
35496 ,p_level => C_LEVEL_PROCEDURE
35497 ,p_module => l_log_module);
35498
35499 END IF;
35500 --
35501 l_component_type := 'AMB_JLT';
35502 l_component_code := 'RESERVE_BURDEN_REL_ENC';
35503 l_component_type_code := 'S';
35504 l_component_appl_id := 201;
35505 l_amb_context_code := 'DEFAULT';
35506 l_entity_code := 'RELEASE';
35507 l_event_class_code := 'RELEASE_BURDEN';
35508 l_event_type_code := 'RELEASE_BURDEN_ALL';
35509 l_line_definition_owner_code := 'S';
35510 l_line_definition_code := 'REL_BURDEN_ENC_ALL';
35511 --
35512 l_balance_type_code := 'E';
35513 l_segment := NULL;
35514 l_ccid := NULL;
35515 l_adr_transaction_coa_id := NULL;
35516 l_adr_accounting_coa_id := NULL;
35517 l_adr_flexfield_segment_code := NULL;
35518 l_adr_flex_value_set_id := NULL;
35519 l_adr_value_type_code := NULL;
35520 l_adr_value_combination_id := NULL;
35521 l_adr_value_segment_code := NULL;
35522
35523 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
35524 l_bflow_class_code := 'REL_PA_BURDEN_ENC'; -- 4219869 Business Flow
35525 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
35526 l_budgetary_control_flag := 'Y';
35527
35528 l_bflow_applied_to_amt_idx := NULL; -- 5132302
35529 l_bflow_applied_to_amt := NULL; -- 5132302
35530 l_entered_amt_idx := NULL; -- 4262811
35531 l_accted_amt_idx := NULL; -- 4262811
35532 l_acc_rev_flag := NULL; -- 4262811
35533 l_accrual_line_num := NULL; -- 4262811
35534 l_tmp_amt := NULL; -- 4262811
35535 --
35536
35537 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
35538 l_balance_type_code <> 'B' THEN
35539 IF NVL(
35540 xla_ae_sources_pkg.GetSystemSourceChar(
35541 p_source_code => 'XLA_EVENT_TYPE_CODE'
35542 , p_source_type_code => 'Y'
35543 , p_source_application_id => 602
35544 ),'
35545 ') = 'REL_BURDEN_RESERVED' AND
35546 NVL(p_source_13,'
35547 ') = 'M' AND
35548 NVL(p_source_14,'
35549 ') = 'O' AND
35550 NVL(p_source_9,'
35551 ') = 'PO' AND
35552 NVL(p_source_15,'
35553 ') = 'D'
35554 THEN
35555
35556 --
35557 XLA_AE_LINES_PKG.SetNewLine;
35558
35559 p_balance_type_code := l_balance_type_code;
35560 -- set the flag so later we will know whether the gain loss line needs to be created
35561
35562 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
35563 p_actual_flag :='A';
35564 END IF;
35565
35566 --
35567 -- bulk performance
35568 --
35569 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
35570 p_header_num => 0); -- 4262811
35571 --
35572 -- set accounting line options
35573 --
35574 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
35575 p_natural_side_code => 'D'
35576 , p_gain_or_loss_flag => 'N'
35577 , p_gl_transfer_mode_code => 'S'
35578 , p_acct_entry_type_code => 'E'
35579 , p_switch_side_flag => 'N'
35580 , p_merge_duplicate_code => 'N'
35581 );
35582 --
35583 l_acc_rev_natural_side_code := 'C'; -- 4262811
35584 --
35585 --
35586 -- set accounting line type info
35587 --
35588 xla_ae_lines_pkg.SetAcctLineType
35589 (p_component_type => l_component_type
35590 ,p_event_type_code => l_event_type_code
35591 ,p_line_definition_owner_code => l_line_definition_owner_code
35592 ,p_line_definition_code => l_line_definition_code
35593 ,p_accounting_line_code => l_component_code
35594 ,p_accounting_line_type_code => l_component_type_code
35595 ,p_accounting_line_appl_id => l_component_appl_id
35596 ,p_amb_context_code => l_amb_context_code
35597 ,p_entity_code => l_entity_code
35598 ,p_event_class_code => l_event_class_code);
35599 --
35600 -- set accounting class
35601 --
35602 xla_ae_lines_pkg.SetAcctClass(
35603 p_accounting_class_code => 'PO_PA_BURDEN'
35604 , p_ae_header_id => l_ae_header_id
35605 );
35606
35607 --
35608 -- set rounding class
35609 --
35610 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
35611 'PO_PA_BURDEN';
35612
35613 --
35614 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
35615 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
35616 --
35617 -- bulk performance
35618 --
35619 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
35620
35621 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
35622 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
35623
35624 -- 4955764
35625 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35626 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
35627
35628 -- 4458381 Public Sector Enh
35629 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1001;
35630 --
35631 -- set accounting attributes for the line type
35632 --
35633 l_entered_amt_idx := 28;
35634 l_accted_amt_idx := 30;
35635 l_bflow_applied_to_amt_idx := NULL; -- 5132302
35636 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
35637 l_rec_acct_attrs.array_char_value(1) := p_source_16;
35638 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
35639 l_rec_acct_attrs.array_num_value(2) := p_source_17;
35640 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
35641 l_rec_acct_attrs.array_char_value(3) := p_source_18;
35642 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
35643 l_rec_acct_attrs.array_char_value(4) := p_source_19;
35644 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
35645 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
35646 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
35647 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
35648 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
35649 l_rec_acct_attrs.array_char_value(7) := p_source_22;
35650 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
35651 l_rec_acct_attrs.array_num_value(8) := p_source_23;
35652 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
35653 l_rec_acct_attrs.array_char_value(9) := p_source_24;
35654 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
35655 l_rec_acct_attrs.array_char_value(10) := p_source_25;
35656 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
35657 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_26);
35658 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
35659 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_27);
35660 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
35661 l_rec_acct_attrs.array_char_value(13) := p_source_28;
35662 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
35663 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_29);
35664 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
35665 l_rec_acct_attrs.array_char_value(15) := p_source_6;
35666 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
35667 l_rec_acct_attrs.array_char_value(16) := p_source_30;
35668 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
35669 l_rec_acct_attrs.array_char_value(17) := p_source_31;
35670 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
35671 l_rec_acct_attrs.array_num_value(18) := p_source_32;
35672 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
35673 l_rec_acct_attrs.array_num_value(19) := p_source_33;
35674 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
35675 l_rec_acct_attrs.array_char_value(20) := p_source_34;
35676 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
35677 l_rec_acct_attrs.array_num_value(21) := p_source_35;
35678 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
35679 l_rec_acct_attrs.array_char_value(22) := p_source_36;
35680 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
35681 l_rec_acct_attrs.array_num_value(23) := p_source_37;
35682 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
35683 l_rec_acct_attrs.array_num_value(24) := p_source_33;
35684 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
35685 l_rec_acct_attrs.array_char_value(25) := p_source_34;
35686 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
35687 l_rec_acct_attrs.array_num_value(26) := p_source_35;
35688 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
35689 l_rec_acct_attrs.array_char_value(27) := p_source_38;
35690 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
35691 l_rec_acct_attrs.array_num_value(28) := p_source_33;
35692 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
35693 l_rec_acct_attrs.array_char_value(29) := p_source_34;
35694 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
35695 l_rec_acct_attrs.array_num_value(30) := p_source_35;
35696 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
35697 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_29);
35698 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
35699 l_rec_acct_attrs.array_char_value(32) := p_source_6;
35700 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
35701 l_rec_acct_attrs.array_char_value(33) := p_source_30;
35702 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
35703 l_rec_acct_attrs.array_num_value(34) := p_source_39;
35704 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
35705 l_rec_acct_attrs.array_num_value(35) := p_source_40;
35706
35707 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
35708 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
35709
35710 ---------------------------------------------------------------------------------------------------------------
35711 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
35712 ---------------------------------------------------------------------------------------------------------------
35713 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
35714
35715 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35716 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35717
35718 IF xla_accounting_cache_pkg.GetValueChar
35719 (p_source_code => 'LEDGER_CATEGORY_CODE'
35720 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
35721 AND l_bflow_method_code = 'PRIOR_ENTRY'
35722 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
35723 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
35724 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
35725 )
35726 THEN
35727 xla_ae_lines_pkg.BflowUpgEntry
35728 (p_business_method_code => l_bflow_method_code
35729 ,p_business_class_code => l_bflow_class_code
35730 ,p_balance_type => l_balance_type_code);
35731 ELSE
35732 NULL;
35733 -- No business flow processing for business flow method of NONE.
35734 END IF;
35735
35736 --
35737 -- call analytical criteria
35738 --
35739
35740 --
35741 -- call description
35742 --
35743
35744 xla_ae_lines_pkg.SetLineDescription(
35745 p_ae_header_id => l_ae_header_id
35746 ,p_description => Description_2 (
35747 p_application_id => p_application_id
35748 , p_ae_header_id => l_ae_header_id
35749 , p_source_3 => p_source_3
35750 , p_source_4 => p_source_4
35751 , p_source_5 => p_source_5
35752 , p_source_6 => p_source_6
35753 )
35754 );
35755
35756
35757 --
35758 -- call ADRs
35759 -- Bug 4922099
35760 --
35761 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35762 (NVL(l_actual_upg_option, 'N') = 'O') OR
35763 (NVL(l_enc_upg_option, 'N') = 'O')
35764 )
35765 THEN
35766 NULL;
35767 --
35768 --
35769
35770 l_ccid := AcctDerRule_7(
35771 p_application_id => p_application_id
35772 , p_ae_header_id => l_ae_header_id
35773 , p_source_11 => p_source_11
35774 , x_transaction_coa_id => l_adr_transaction_coa_id
35775 , x_accounting_coa_id => l_adr_accounting_coa_id
35776 , x_value_type_code => l_adr_value_type_code
35777 , p_side => 'NA'
35778 );
35779
35780 xla_ae_lines_pkg.set_ccid(
35781 p_code_combination_id => l_ccid
35782 , p_value_type_code => l_adr_value_type_code
35783 , p_transaction_coa_id => l_adr_transaction_coa_id
35784 , p_accounting_coa_id => l_adr_accounting_coa_id
35785 , p_adr_code => 'PROJ_BURDEN_ENC_ACCT_RULE'
35786 , p_adr_type_code => 'S'
35787 , p_component_type => l_component_type
35788 , p_component_code => l_component_code
35789 , p_component_type_code => l_component_type_code
35790 , p_component_appl_id => l_component_appl_id
35791 , p_amb_context_code => l_amb_context_code
35792 , p_side => 'NA'
35793 );
35794
35795
35796 --
35797 --
35798 END IF;
35799 --
35800 -- Bug 4922099
35801 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
35802 (NVL(l_enc_upg_option, 'N') = 'O')
35803 ) AND
35804 (l_bflow_method_code = 'PRIOR_ENTRY')
35805 )
35806 THEN
35807 IF
35808 --
35809 1 = 2
35810 --
35811 THEN
35812 xla_accounting_err_pkg.build_message
35813 (p_appli_s_name => 'XLA'
35814 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35815 ,p_token_1 => 'LINE_NUMBER'
35816 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
35817 ,p_token_2 => 'LINE_TYPE_NAME'
35818 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
35819 l_component_type
35820 ,l_component_code
35821 ,l_component_type_code
35822 ,l_component_appl_id
35823 ,l_amb_context_code
35824 ,l_entity_code
35825 ,l_event_class_code
35826 )
35827 ,p_token_3 => 'OWNER'
35828 ,p_value_3 => xla_lookups_pkg.get_meaning(
35829 p_lookup_type => 'XLA_OWNER_TYPE'
35830 ,p_lookup_code => l_component_type_code
35831 )
35832 ,p_token_4 => 'PRODUCT_NAME'
35833 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
35834 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
35835 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
35836 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
35837 ,p_ae_header_id => NULL
35838 );
35839
35840 IF (C_LEVEL_ERROR>= g_log_level) THEN
35841 trace
35842 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35843 ,p_level => C_LEVEL_ERROR
35844 ,p_module => l_log_module);
35845 END IF;
35846 END IF;
35847 END IF;
35848 --
35849 --
35850 ------------------------------------------------------------------------------------------------
35851 -- 4219869 Business Flow
35852 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
35853 -- Prior Entry. Currently, the following code is always generated.
35854 ------------------------------------------------------------------------------------------------
35855 XLA_AE_LINES_PKG.ValidateCurrentLine;
35856
35857 ------------------------------------------------------------------------------------
35858 -- 4219869 Business Flow
35859 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
35860 ------------------------------------------------------------------------------------
35861 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35862
35863 ----------------------------------------------------------------------------------
35864 -- 4219869 Business Flow
35865 -- Update journal entry status -- Need to generate this within IF <condition>
35866 ----------------------------------------------------------------------------------
35867 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35868 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
35869 ,p_balance_type_code => l_balance_type_code
35870 );
35871
35872 -------------------------------------------------------------------------------------------
35873 -- 4262811 - Generate the Accrual Reversal lines
35874 -------------------------------------------------------------------------------------------
35875 BEGIN
35876 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
35877 (g_array_event(p_event_id).array_value_num('header_index'));
35878 IF l_acc_rev_flag IS NULL THEN
35879 l_acc_rev_flag := 'N';
35880 END IF;
35881 EXCEPTION
35882 WHEN OTHERS THEN
35883 l_acc_rev_flag := 'N';
35884 END;
35885 --
35886 IF (l_acc_rev_flag = 'Y') THEN
35887
35888 -- 4645092 ------------------------------------------------------------------------------
35889 -- To allow MPA report to determine if it should generate report process
35890 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
35891 ------------------------------------------------------------------------------------------
35892
35893 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
35894 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
35895
35896 --
35897 -- Update the line information that should be overwritten
35898 --
35899 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
35900 p_header_num => 1);
35901 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
35902
35903 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
35904
35905 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
35906 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
35907 END IF;
35908
35909 --
35910 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
35911 --
35912 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
35913 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
35914 ELSE
35915 ---------------------------------------------------------------------------------------------------
35916 -- 4262811a Switch Sign
35917 ---------------------------------------------------------------------------------------------------
35918 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
35919 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35920 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35921 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35922 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35923 -- 5132302
35924 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
35925 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35926
35927 END IF;
35928
35929 -- 4955764
35930 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35931 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
35932
35933
35934 XLA_AE_LINES_PKG.ValidateCurrentLine;
35935 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35936
35937 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35938 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
35939 ,p_balance_type_code => l_balance_type_code);
35940
35941 END IF;
35942
35943 -----------------------------------------------------------------------------------------
35944 -- 4262811 Multiperiod Accounting
35945 -----------------------------------------------------------------------------------------
35946 -- No MPA option is assigned.
35947
35948
35949 END IF;
35950 END IF;
35951 --
35952
35953 --
35954 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35955 trace
35956 (p_msg => 'END of AcctLineType_64'
35957 ,p_level => C_LEVEL_PROCEDURE
35958 ,p_module => l_log_module);
35959 END IF;
35960 --
35961 EXCEPTION
35962 WHEN xla_exceptions_pkg.application_exception THEN
35963 RAISE;
35964 WHEN OTHERS THEN
35965 xla_exceptions_pkg.raise_message
35966 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_64');
35967 END AcctLineType_64;
35968 --
35969
35970 ---------------------------------------
35971 --
35972 -- PRIVATE FUNCTION
35973 -- AcctLineType_65
35974 --
35975 ---------------------------------------
35976 PROCEDURE AcctLineType_65 (
35977 p_application_id IN NUMBER
35978 ,p_event_id IN NUMBER
35979 ,p_calculate_acctd_flag IN VARCHAR2
35980 ,p_calculate_g_l_flag IN VARCHAR2
35981 ,p_actual_flag IN OUT VARCHAR2
35982 ,p_balance_type_code OUT VARCHAR2
35983 ,p_gain_or_loss_ref OUT VARCHAR2
35984
35985 --Project Name
35986 , p_source_3 IN VARCHAR2
35987 --Task Name
35988 , p_source_4 IN VARCHAR2
35989 --Project Expenditure Organization Identifier
35990 , p_source_5 IN NUMBER
35991 --Expenditure Type
35992 , p_source_6 IN VARCHAR2
35993 --Budget Account
35994 , p_source_11 IN NUMBER
35995 --Main Or Backing Code
35996 , p_source_13 IN VARCHAR2
35997 --Burden Record Identifier
35998 , p_source_14 IN VARCHAR2
35999 , p_source_14_meaning IN VARCHAR2
36000 --Burden Amount Display Method
36001 , p_source_15 IN VARCHAR2
36002 --Accounting Reversal Flag
36003 , p_source_16 IN VARCHAR2
36004 --Allocated to Application Identifier
36005 , p_source_17 IN NUMBER
36006 --Allocated to Distribution Type
36007 , p_source_18 IN VARCHAR2
36008 --Allocated to Entity Code
36009 , p_source_19 IN VARCHAR2
36010 --Allocated to First Distribution Identifier
36011 , p_source_20 IN NUMBER
36012 --Allocated to First System Transaction Identifier
36013 , p_source_21 IN NUMBER
36014 --Allocated to Second Distribution Identifier
36015 , p_source_22 IN VARCHAR2
36016 --Line Type Name
36017 , p_source_30 IN VARCHAR2
36018 --Encumbrance Upgrade Credit Accounting Class
36019 , p_source_31 IN VARCHAR2
36020 --Encumbrance Upgrade Credit Account
36021 , p_source_32 IN NUMBER
36022 --Entered Amount
36023 , p_source_33 IN NUMBER
36024 --Currency Code
36025 , p_source_34 IN VARCHAR2
36026 --Accounted Amount
36027 , p_source_35 IN NUMBER
36028 --Encumbrance Upgrade Debit Accounting Class
36029 , p_source_36 IN VARCHAR2
36030 --Encumbrance Upgrade Debit Account
36031 , p_source_37 IN NUMBER
36032 --Use Encumbrances Upgrade Attributes Flag
36033 , p_source_38 IN VARCHAR2
36034 --Encumbrance Upgrade Credit Encumbrance Type
36035 , p_source_39 IN NUMBER
36036 --Encumbrance Upgrade Debit Encumbrance Type
36037 , p_source_40 IN NUMBER
36038 --Requisition Burden Applied to Application Identifier
36039 , p_source_41 IN NUMBER
36040 --Requisition Distribution Type
36041 , p_source_42 IN VARCHAR2
36042 --Requisition Burden Applied to Entity Code
36043 , p_source_43 IN VARCHAR2
36044 --Requisition Burden Applied to First Distribution Identifier
36045 , p_source_44 IN NUMBER
36046 --Requisition Burden Applied to First System Transaction Identifier
36047 , p_source_45 IN NUMBER
36048 --Requisition Burden Applied to Second Distribution Identifier
36049 , p_source_46 IN VARCHAR2
36050 --Requisition Distribution Identifier
36051 , p_source_47 IN NUMBER
36052 --Document Distribution Type
36053 , p_source_74 IN VARCHAR2
36054 )
36055 IS
36056
36057 l_component_type VARCHAR2(80);
36058 l_component_code VARCHAR2(30);
36059 l_component_type_code VARCHAR2(1);
36060 l_component_appl_id INTEGER;
36061 l_amb_context_code VARCHAR2(30);
36062 l_entity_code VARCHAR2(30);
36063 l_event_class_code VARCHAR2(30);
36064 l_ae_header_id NUMBER;
36065 l_event_type_code VARCHAR2(30);
36066 l_line_definition_code VARCHAR2(30);
36067 l_line_definition_owner_code VARCHAR2(1);
36068 --
36069 -- adr variables
36070 l_segment VARCHAR2(30);
36071 l_ccid NUMBER;
36072 l_adr_transaction_coa_id NUMBER;
36073 l_adr_accounting_coa_id NUMBER;
36074 l_adr_flexfield_segment_code VARCHAR2(30);
36075 l_adr_flex_value_set_id NUMBER;
36076 l_adr_value_type_code VARCHAR2(30);
36077 l_adr_value_combination_id NUMBER;
36078 l_adr_value_segment_code VARCHAR2(30);
36079
36080 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
36081 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
36082 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
36083 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
36084
36085 -- 4262811 Variables ------------------------------------------------------------------------------------------
36086 l_entered_amt_idx NUMBER;
36087 l_accted_amt_idx NUMBER;
36088 l_acc_rev_flag VARCHAR2(1);
36089 l_accrual_line_num NUMBER;
36090 l_tmp_amt NUMBER;
36091 l_acc_rev_natural_side_code VARCHAR2(1);
36092
36093 l_num_entries NUMBER;
36094 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
36095 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
36096 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
36097 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
36098 l_recog_line_1 NUMBER;
36099 l_recog_line_2 NUMBER;
36100
36101 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
36102 l_bflow_applied_to_amt NUMBER; -- 5132302
36103 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
36104
36105 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
36106
36107 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
36108 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
36109
36110 ---------------------------------------------------------------------------------------------------------------
36111
36112
36113 --
36114 -- bulk performance
36115 --
36116 l_balance_type_code VARCHAR2(1);
36117 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
36118 l_log_module VARCHAR2(240);
36119
36120 --
36121 -- Upgrade strategy
36122 --
36123 l_actual_upg_option VARCHAR2(1);
36124 l_enc_upg_option VARCHAR2(1);
36125
36126 --
36127 BEGIN
36128 --
36129 IF g_log_enabled THEN
36130 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_65';
36131 END IF;
36132 --
36133 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36134
36135 trace
36136 (p_msg => 'BEGIN of AcctLineType_65'
36137 ,p_level => C_LEVEL_PROCEDURE
36138 ,p_module => l_log_module);
36139
36140 END IF;
36141 --
36142 l_component_type := 'AMB_JLT';
36143 l_component_code := 'RESERVE_BURDEN_REQ_ENC';
36144 l_component_type_code := 'S';
36145 l_component_appl_id := 201;
36146 l_amb_context_code := 'DEFAULT';
36147 l_entity_code := 'REQUISITION';
36148 l_event_class_code := 'REQUISITION_BURDEN';
36149 l_event_type_code := 'REQUISITION_BURDEN_ALL';
36150 l_line_definition_owner_code := 'S';
36151 l_line_definition_code := 'REQ_BURDEN_ENC_ALL';
36152 --
36153 l_balance_type_code := 'E';
36154 l_segment := NULL;
36155 l_ccid := NULL;
36156 l_adr_transaction_coa_id := NULL;
36157 l_adr_accounting_coa_id := NULL;
36158 l_adr_flexfield_segment_code := NULL;
36159 l_adr_flex_value_set_id := NULL;
36160 l_adr_value_type_code := NULL;
36161 l_adr_value_combination_id := NULL;
36162 l_adr_value_segment_code := NULL;
36163
36164 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
36165 l_bflow_class_code := 'REQ_PA_BURDEN_ENC'; -- 4219869 Business Flow
36166 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
36167 l_budgetary_control_flag := 'Y';
36168
36169 l_bflow_applied_to_amt_idx := NULL; -- 5132302
36170 l_bflow_applied_to_amt := NULL; -- 5132302
36171 l_entered_amt_idx := NULL; -- 4262811
36172 l_accted_amt_idx := NULL; -- 4262811
36173 l_acc_rev_flag := NULL; -- 4262811
36174 l_accrual_line_num := NULL; -- 4262811
36175 l_tmp_amt := NULL; -- 4262811
36176 --
36177
36178 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
36179 l_balance_type_code <> 'B' THEN
36180 IF ((NVL(
36181 xla_ae_sources_pkg.GetSystemSourceChar(
36182 p_source_code => 'XLA_EVENT_TYPE_CODE'
36183 , p_source_type_code => 'Y'
36184 , p_source_application_id => 602
36185 ),'
36186 ') = 'REQ_BURDEN_RESERVED' OR
36187 (NVL(
36188 xla_ae_sources_pkg.GetSystemSourceChar(
36189 p_source_code => 'XLA_EVENT_TYPE_CODE'
36190 , p_source_type_code => 'Y'
36191 , p_source_application_id => 602
36192 ),'
36193 ') = 'REQ_BURDEN_ADJUSTED' AND
36194 NVL(p_source_74,'
36195 ') = 'REQUISITION_ADJUSTED_NEW')
36196 ) AND NVL(p_source_13,'
36197 ') = 'M') AND
36198 NVL(p_source_14,'
36199 ') = 'O' AND
36200 NVL(p_source_15,'
36201 ') = 'D'
36202 THEN
36203
36204 --
36205 XLA_AE_LINES_PKG.SetNewLine;
36206
36207 p_balance_type_code := l_balance_type_code;
36208 -- set the flag so later we will know whether the gain loss line needs to be created
36209
36210 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
36211 p_actual_flag :='A';
36212 END IF;
36213
36214 --
36215 -- bulk performance
36216 --
36217 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
36218 p_header_num => 0); -- 4262811
36219 --
36220 -- set accounting line options
36221 --
36222 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
36223 p_natural_side_code => 'D'
36224 , p_gain_or_loss_flag => 'N'
36225 , p_gl_transfer_mode_code => 'S'
36226 , p_acct_entry_type_code => 'E'
36227 , p_switch_side_flag => 'N'
36228 , p_merge_duplicate_code => 'N'
36229 );
36230 --
36231 l_acc_rev_natural_side_code := 'C'; -- 4262811
36232 --
36233 --
36234 -- set accounting line type info
36235 --
36236 xla_ae_lines_pkg.SetAcctLineType
36237 (p_component_type => l_component_type
36238 ,p_event_type_code => l_event_type_code
36239 ,p_line_definition_owner_code => l_line_definition_owner_code
36240 ,p_line_definition_code => l_line_definition_code
36241 ,p_accounting_line_code => l_component_code
36242 ,p_accounting_line_type_code => l_component_type_code
36243 ,p_accounting_line_appl_id => l_component_appl_id
36244 ,p_amb_context_code => l_amb_context_code
36245 ,p_entity_code => l_entity_code
36246 ,p_event_class_code => l_event_class_code);
36247 --
36248 -- set accounting class
36249 --
36250 xla_ae_lines_pkg.SetAcctClass(
36251 p_accounting_class_code => 'REQ_PA_BURDEN'
36252 , p_ae_header_id => l_ae_header_id
36253 );
36254
36255 --
36256 -- set rounding class
36257 --
36258 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
36259 'REQ_PA_BURDEN';
36260
36261 --
36262 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
36263 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
36264 --
36265 -- bulk performance
36266 --
36267 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
36268
36269 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
36270 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
36271
36272 -- 4955764
36273 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36274 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
36275
36276 -- 4458381 Public Sector Enh
36277 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1000;
36278 --
36279 -- set accounting attributes for the line type
36280 --
36281 l_entered_amt_idx := 28;
36282 l_accted_amt_idx := 30;
36283 l_bflow_applied_to_amt_idx := NULL; -- 5132302
36284 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
36285 l_rec_acct_attrs.array_char_value(1) := p_source_16;
36286 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
36287 l_rec_acct_attrs.array_num_value(2) := p_source_17;
36288 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
36289 l_rec_acct_attrs.array_char_value(3) := p_source_18;
36290 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
36291 l_rec_acct_attrs.array_char_value(4) := p_source_19;
36292 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
36293 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
36294 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
36295 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
36296 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
36297 l_rec_acct_attrs.array_char_value(7) := p_source_22;
36298 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
36299 l_rec_acct_attrs.array_num_value(8) := p_source_41;
36300 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
36301 l_rec_acct_attrs.array_char_value(9) := p_source_42;
36302 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
36303 l_rec_acct_attrs.array_char_value(10) := p_source_43;
36304 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
36305 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_44);
36306 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
36307 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_45);
36308 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
36309 l_rec_acct_attrs.array_char_value(13) := p_source_46;
36310 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
36311 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_47);
36312 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
36313 l_rec_acct_attrs.array_char_value(15) := p_source_6;
36314 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
36315 l_rec_acct_attrs.array_char_value(16) := p_source_30;
36316 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
36317 l_rec_acct_attrs.array_char_value(17) := p_source_31;
36318 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
36319 l_rec_acct_attrs.array_num_value(18) := p_source_32;
36320 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
36321 l_rec_acct_attrs.array_num_value(19) := p_source_33;
36322 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
36323 l_rec_acct_attrs.array_char_value(20) := p_source_34;
36324 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
36325 l_rec_acct_attrs.array_num_value(21) := p_source_35;
36326 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
36327 l_rec_acct_attrs.array_char_value(22) := p_source_36;
36328 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
36329 l_rec_acct_attrs.array_num_value(23) := p_source_37;
36330 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
36331 l_rec_acct_attrs.array_num_value(24) := p_source_33;
36332 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
36333 l_rec_acct_attrs.array_char_value(25) := p_source_34;
36334 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
36335 l_rec_acct_attrs.array_num_value(26) := p_source_35;
36336 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
36337 l_rec_acct_attrs.array_char_value(27) := p_source_38;
36338 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
36339 l_rec_acct_attrs.array_num_value(28) := p_source_33;
36340 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
36341 l_rec_acct_attrs.array_char_value(29) := p_source_34;
36342 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
36343 l_rec_acct_attrs.array_num_value(30) := p_source_35;
36344 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
36345 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_47);
36346 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
36347 l_rec_acct_attrs.array_char_value(32) := p_source_6;
36348 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
36349 l_rec_acct_attrs.array_char_value(33) := p_source_30;
36350 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
36351 l_rec_acct_attrs.array_num_value(34) := p_source_39;
36352 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
36353 l_rec_acct_attrs.array_num_value(35) := p_source_40;
36354
36355 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
36356 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
36357
36358 ---------------------------------------------------------------------------------------------------------------
36359 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
36360 ---------------------------------------------------------------------------------------------------------------
36361 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
36362
36363 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36364 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36365
36366 IF xla_accounting_cache_pkg.GetValueChar
36367 (p_source_code => 'LEDGER_CATEGORY_CODE'
36368 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
36369 AND l_bflow_method_code = 'PRIOR_ENTRY'
36370 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
36371 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
36372 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
36373 )
36374 THEN
36375 xla_ae_lines_pkg.BflowUpgEntry
36376 (p_business_method_code => l_bflow_method_code
36377 ,p_business_class_code => l_bflow_class_code
36378 ,p_balance_type => l_balance_type_code);
36379 ELSE
36380 NULL;
36381 -- No business flow processing for business flow method of NONE.
36382 END IF;
36383
36384 --
36385 -- call analytical criteria
36386 --
36387
36388 --
36389 -- call description
36390 --
36391
36392 xla_ae_lines_pkg.SetLineDescription(
36393 p_ae_header_id => l_ae_header_id
36394 ,p_description => Description_2 (
36395 p_application_id => p_application_id
36396 , p_ae_header_id => l_ae_header_id
36397 , p_source_3 => p_source_3
36398 , p_source_4 => p_source_4
36399 , p_source_5 => p_source_5
36400 , p_source_6 => p_source_6
36401 )
36402 );
36403
36404
36405 --
36406 -- call ADRs
36407 -- Bug 4922099
36408 --
36409 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36410 (NVL(l_actual_upg_option, 'N') = 'O') OR
36411 (NVL(l_enc_upg_option, 'N') = 'O')
36412 )
36413 THEN
36414 NULL;
36415 --
36416 --
36417
36418 l_ccid := AcctDerRule_7(
36419 p_application_id => p_application_id
36420 , p_ae_header_id => l_ae_header_id
36421 , p_source_11 => p_source_11
36422 , x_transaction_coa_id => l_adr_transaction_coa_id
36423 , x_accounting_coa_id => l_adr_accounting_coa_id
36424 , x_value_type_code => l_adr_value_type_code
36425 , p_side => 'NA'
36426 );
36427
36428 xla_ae_lines_pkg.set_ccid(
36429 p_code_combination_id => l_ccid
36430 , p_value_type_code => l_adr_value_type_code
36431 , p_transaction_coa_id => l_adr_transaction_coa_id
36432 , p_accounting_coa_id => l_adr_accounting_coa_id
36433 , p_adr_code => 'PROJ_BURDEN_ENC_ACCT_RULE'
36434 , p_adr_type_code => 'S'
36435 , p_component_type => l_component_type
36436 , p_component_code => l_component_code
36437 , p_component_type_code => l_component_type_code
36438 , p_component_appl_id => l_component_appl_id
36439 , p_amb_context_code => l_amb_context_code
36440 , p_side => 'NA'
36441 );
36442
36443
36444 --
36445 --
36446 END IF;
36447 --
36448 -- Bug 4922099
36449 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
36450 (NVL(l_enc_upg_option, 'N') = 'O')
36451 ) AND
36452 (l_bflow_method_code = 'PRIOR_ENTRY')
36453 )
36454 THEN
36455 IF
36456 --
36457 1 = 2
36458 --
36459 THEN
36460 xla_accounting_err_pkg.build_message
36461 (p_appli_s_name => 'XLA'
36462 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36463 ,p_token_1 => 'LINE_NUMBER'
36464 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
36465 ,p_token_2 => 'LINE_TYPE_NAME'
36466 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
36467 l_component_type
36468 ,l_component_code
36469 ,l_component_type_code
36470 ,l_component_appl_id
36471 ,l_amb_context_code
36472 ,l_entity_code
36473 ,l_event_class_code
36474 )
36475 ,p_token_3 => 'OWNER'
36476 ,p_value_3 => xla_lookups_pkg.get_meaning(
36477 p_lookup_type => 'XLA_OWNER_TYPE'
36478 ,p_lookup_code => l_component_type_code
36479 )
36480 ,p_token_4 => 'PRODUCT_NAME'
36481 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
36482 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
36483 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
36484 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
36485 ,p_ae_header_id => NULL
36486 );
36487
36488 IF (C_LEVEL_ERROR>= g_log_level) THEN
36489 trace
36490 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36491 ,p_level => C_LEVEL_ERROR
36492 ,p_module => l_log_module);
36493 END IF;
36494 END IF;
36495 END IF;
36496 --
36497 --
36498 ------------------------------------------------------------------------------------------------
36499 -- 4219869 Business Flow
36500 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
36501 -- Prior Entry. Currently, the following code is always generated.
36502 ------------------------------------------------------------------------------------------------
36503 XLA_AE_LINES_PKG.ValidateCurrentLine;
36504
36505 ------------------------------------------------------------------------------------
36506 -- 4219869 Business Flow
36507 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
36508 ------------------------------------------------------------------------------------
36509 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36510
36511 ----------------------------------------------------------------------------------
36512 -- 4219869 Business Flow
36513 -- Update journal entry status -- Need to generate this within IF <condition>
36514 ----------------------------------------------------------------------------------
36515 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36516 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
36517 ,p_balance_type_code => l_balance_type_code
36518 );
36519
36520 -------------------------------------------------------------------------------------------
36521 -- 4262811 - Generate the Accrual Reversal lines
36522 -------------------------------------------------------------------------------------------
36523 BEGIN
36524 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
36525 (g_array_event(p_event_id).array_value_num('header_index'));
36526 IF l_acc_rev_flag IS NULL THEN
36527 l_acc_rev_flag := 'N';
36528 END IF;
36529 EXCEPTION
36530 WHEN OTHERS THEN
36531 l_acc_rev_flag := 'N';
36532 END;
36533 --
36534 IF (l_acc_rev_flag = 'Y') THEN
36535
36536 -- 4645092 ------------------------------------------------------------------------------
36537 -- To allow MPA report to determine if it should generate report process
36538 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
36539 ------------------------------------------------------------------------------------------
36540
36541 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
36542 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
36543
36544 --
36545 -- Update the line information that should be overwritten
36546 --
36547 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
36548 p_header_num => 1);
36549 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
36550
36551 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
36552
36553 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
36554 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
36555 END IF;
36556
36557 --
36558 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
36559 --
36560 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
36561 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
36562 ELSE
36563 ---------------------------------------------------------------------------------------------------
36564 -- 4262811a Switch Sign
36565 ---------------------------------------------------------------------------------------------------
36566 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
36567 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36568 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36569 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36570 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36571 -- 5132302
36572 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
36573 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36574
36575 END IF;
36576
36577 -- 4955764
36578 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36579 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
36580
36581
36582 XLA_AE_LINES_PKG.ValidateCurrentLine;
36583 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36584
36585 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36586 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
36587 ,p_balance_type_code => l_balance_type_code);
36588
36589 END IF;
36590
36591 -----------------------------------------------------------------------------------------
36592 -- 4262811 Multiperiod Accounting
36593 -----------------------------------------------------------------------------------------
36594 -- No MPA option is assigned.
36595
36596
36597 END IF;
36598 END IF;
36599 --
36600
36601 --
36602 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36603 trace
36604 (p_msg => 'END of AcctLineType_65'
36605 ,p_level => C_LEVEL_PROCEDURE
36606 ,p_module => l_log_module);
36607 END IF;
36608 --
36609 EXCEPTION
36610 WHEN xla_exceptions_pkg.application_exception THEN
36611 RAISE;
36612 WHEN OTHERS THEN
36613 xla_exceptions_pkg.raise_message
36614 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_65');
36615 END AcctLineType_65;
36616 --
36617
36618 ---------------------------------------
36619 --
36620 -- PRIVATE FUNCTION
36621 -- AcctLineType_66
36622 --
36623 ---------------------------------------
36624 PROCEDURE AcctLineType_66 (
36625 p_application_id IN NUMBER
36626 ,p_event_id IN NUMBER
36627 ,p_calculate_acctd_flag IN VARCHAR2
36628 ,p_calculate_g_l_flag IN VARCHAR2
36629 ,p_actual_flag IN OUT VARCHAR2
36630 ,p_balance_type_code OUT VARCHAR2
36631 ,p_gain_or_loss_ref OUT VARCHAR2
36632
36633 --Journal entry Line Description
36634 , p_source_7 IN VARCHAR2
36635 --Budget Account
36636 , p_source_11 IN NUMBER
36637 --Main Or Backing Code
36638 , p_source_13 IN VARCHAR2
36639 --Accounting Reversal Flag
36640 , p_source_16 IN VARCHAR2
36641 --PO Distribution Type
36642 , p_source_24 IN VARCHAR2
36643 --PO Distribution Identifier
36644 , p_source_29 IN NUMBER
36645 --Entered Amount
36646 , p_source_33 IN NUMBER
36647 --Currency Code
36648 , p_source_34 IN VARCHAR2
36649 --Accounted Amount
36650 , p_source_35 IN NUMBER
36651 --PO Header Identifier
36652 , p_source_52 IN NUMBER
36653 --Applied To Application Identifier
36654 , p_source_53 IN NUMBER
36655 --Applied To Distribution Link Type
36656 , p_source_54 IN VARCHAR2
36657 --Applied To Entity Code
36658 , p_source_55 IN VARCHAR2
36659 --Applied To Distribution Identifier 1
36660 , p_source_56 IN NUMBER
36661 --Applied To Header Identifier 1
36662 , p_source_57 IN NUMBER
36663 --Distribution Link Type
36664 , p_source_58 IN VARCHAR2
36665 --PO Encumbrance Upgrade Option
36666 , p_source_59 IN VARCHAR2
36667 --JFMIP Reference
36668 , p_source_60 IN VARCHAR2
36669 --PO Upgrade Encumbrance Type Identifier
36670 , p_source_61 IN NUMBER
36671 --Currency Conversion Date
36672 , p_source_62 IN DATE
36673 --Currency Conversion Rate
36674 , p_source_63 IN NUMBER
36675 --Currency Conversion Type
36676 , p_source_64 IN VARCHAR2
36677 )
36678 IS
36679
36680 l_component_type VARCHAR2(80);
36681 l_component_code VARCHAR2(30);
36682 l_component_type_code VARCHAR2(1);
36683 l_component_appl_id INTEGER;
36684 l_amb_context_code VARCHAR2(30);
36685 l_entity_code VARCHAR2(30);
36686 l_event_class_code VARCHAR2(30);
36687 l_ae_header_id NUMBER;
36688 l_event_type_code VARCHAR2(30);
36689 l_line_definition_code VARCHAR2(30);
36690 l_line_definition_owner_code VARCHAR2(1);
36691 --
36692 -- adr variables
36693 l_segment VARCHAR2(30);
36694 l_ccid NUMBER;
36695 l_adr_transaction_coa_id NUMBER;
36696 l_adr_accounting_coa_id NUMBER;
36697 l_adr_flexfield_segment_code VARCHAR2(30);
36698 l_adr_flex_value_set_id NUMBER;
36699 l_adr_value_type_code VARCHAR2(30);
36700 l_adr_value_combination_id NUMBER;
36701 l_adr_value_segment_code VARCHAR2(30);
36702
36703 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
36704 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
36705 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
36706 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
36707
36708 -- 4262811 Variables ------------------------------------------------------------------------------------------
36709 l_entered_amt_idx NUMBER;
36710 l_accted_amt_idx NUMBER;
36711 l_acc_rev_flag VARCHAR2(1);
36712 l_accrual_line_num NUMBER;
36713 l_tmp_amt NUMBER;
36714 l_acc_rev_natural_side_code VARCHAR2(1);
36715
36716 l_num_entries NUMBER;
36717 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
36718 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
36719 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
36720 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
36721 l_recog_line_1 NUMBER;
36722 l_recog_line_2 NUMBER;
36723
36724 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
36725 l_bflow_applied_to_amt NUMBER; -- 5132302
36726 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
36727
36728 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
36729
36730 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
36731 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
36732
36733 ---------------------------------------------------------------------------------------------------------------
36734
36735
36736 --
36737 -- bulk performance
36738 --
36739 l_balance_type_code VARCHAR2(1);
36740 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
36741 l_log_module VARCHAR2(240);
36742
36743 --
36744 -- Upgrade strategy
36745 --
36746 l_actual_upg_option VARCHAR2(1);
36747 l_enc_upg_option VARCHAR2(1);
36748
36749 --
36750 BEGIN
36751 --
36752 IF g_log_enabled THEN
36753 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_66';
36754 END IF;
36755 --
36756 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36757
36758 trace
36759 (p_msg => 'BEGIN of AcctLineType_66'
36760 ,p_level => C_LEVEL_PROCEDURE
36761 ,p_module => l_log_module);
36762
36763 END IF;
36764 --
36765 l_component_type := 'AMB_JLT';
36766 l_component_code := 'RESERVE_PA_ENCUMBRANCE';
36767 l_component_type_code := 'S';
36768 l_component_appl_id := 201;
36769 l_amb_context_code := 'DEFAULT';
36770 l_entity_code := 'PURCHASE_ORDER';
36771 l_event_class_code := 'PO_PA';
36772 l_event_type_code := 'PO_PA_ALL';
36773 l_line_definition_owner_code := 'S';
36774 l_line_definition_code := 'PO_PA_ENC_ALL';
36775 --
36776 l_balance_type_code := 'E';
36777 l_segment := NULL;
36778 l_ccid := NULL;
36779 l_adr_transaction_coa_id := NULL;
36780 l_adr_accounting_coa_id := NULL;
36781 l_adr_flexfield_segment_code := NULL;
36782 l_adr_flex_value_set_id := NULL;
36783 l_adr_value_type_code := NULL;
36784 l_adr_value_combination_id := NULL;
36785 l_adr_value_segment_code := NULL;
36786
36787 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
36788 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
36789 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
36790 l_budgetary_control_flag := 'Y';
36791
36792 l_bflow_applied_to_amt_idx := NULL; -- 5132302
36793 l_bflow_applied_to_amt := NULL; -- 5132302
36794 l_entered_amt_idx := NULL; -- 4262811
36795 l_accted_amt_idx := NULL; -- 4262811
36796 l_acc_rev_flag := NULL; -- 4262811
36797 l_accrual_line_num := NULL; -- 4262811
36798 l_tmp_amt := NULL; -- 4262811
36799 --
36800
36801 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
36802 l_balance_type_code <> 'B' THEN
36803 IF NVL(
36804 xla_ae_sources_pkg.GetSystemSourceChar(
36805 p_source_code => 'XLA_EVENT_TYPE_CODE'
36806 , p_source_type_code => 'Y'
36807 , p_source_application_id => 602
36808 ),'
36809 ') = 'PO_PA_RESERVED' AND
36810 NVL(p_source_13,'
36811 ') = 'M' AND
36812 NVL(p_source_24,'
36813 ') = 'AGREEMENT'
36814 THEN
36815
36816 --
36817 XLA_AE_LINES_PKG.SetNewLine;
36818
36819 p_balance_type_code := l_balance_type_code;
36820 -- set the flag so later we will know whether the gain loss line needs to be created
36821
36822 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
36823 p_actual_flag :='A';
36824 END IF;
36825
36826 --
36827 -- bulk performance
36828 --
36829 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
36830 p_header_num => 0); -- 4262811
36831 --
36832 -- set accounting line options
36833 --
36834 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
36835 p_natural_side_code => 'D'
36836 , p_gain_or_loss_flag => 'N'
36837 , p_gl_transfer_mode_code => 'S'
36838 , p_acct_entry_type_code => 'E'
36839 , p_switch_side_flag => 'N'
36840 , p_merge_duplicate_code => 'N'
36841 );
36842 --
36843 l_acc_rev_natural_side_code := 'C'; -- 4262811
36844 --
36845 --
36846 -- set accounting line type info
36847 --
36848 xla_ae_lines_pkg.SetAcctLineType
36849 (p_component_type => l_component_type
36850 ,p_event_type_code => l_event_type_code
36851 ,p_line_definition_owner_code => l_line_definition_owner_code
36852 ,p_line_definition_code => l_line_definition_code
36853 ,p_accounting_line_code => l_component_code
36854 ,p_accounting_line_type_code => l_component_type_code
36855 ,p_accounting_line_appl_id => l_component_appl_id
36856 ,p_amb_context_code => l_amb_context_code
36857 ,p_entity_code => l_entity_code
36858 ,p_event_class_code => l_event_class_code);
36859 --
36860 -- set accounting class
36861 --
36862 xla_ae_lines_pkg.SetAcctClass(
36863 p_accounting_class_code => 'PURCHASE_ORDER'
36864 , p_ae_header_id => l_ae_header_id
36865 );
36866
36867 --
36868 -- set rounding class
36869 --
36870 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
36871 'PURCHASE_ORDER';
36872
36873 --
36874 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
36875 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
36876 --
36877 -- bulk performance
36878 --
36879 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
36880
36881 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
36882 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
36883
36884 -- 4955764
36885 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36886 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
36887
36888 -- 4458381 Public Sector Enh
36889 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1000;
36890 --
36891 -- set accounting attributes for the line type
36892 --
36893 l_entered_amt_idx := 23;
36894 l_accted_amt_idx := 28;
36895 l_bflow_applied_to_amt_idx := NULL; -- 5132302
36896 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
36897 l_rec_acct_attrs.array_char_value(1) := p_source_16;
36898 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
36899 l_rec_acct_attrs.array_num_value(2) :=
36900 xla_ae_sources_pkg.GetSystemSourceNum(
36901 p_source_code => 'XLA_EVENT_APPL_ID'
36902 , p_source_type_code => 'Y'
36903 , p_source_application_id => 602
36904 );
36905 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
36906 l_rec_acct_attrs.array_char_value(3) := p_source_58;
36907 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
36908 l_rec_acct_attrs.array_char_value(4) :=
36909 xla_ae_sources_pkg.GetSystemSourceChar(
36910 p_source_code => 'XLA_ENTITY_CODE'
36911 , p_source_type_code => 'Y'
36912 , p_source_application_id => 602
36913 );
36914 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
36915 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_29);
36916 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
36917 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_52);
36918 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
36919 l_rec_acct_attrs.array_num_value(7) := p_source_53;
36920 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
36921 l_rec_acct_attrs.array_char_value(8) := p_source_54;
36922 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
36923 l_rec_acct_attrs.array_char_value(9) := p_source_55;
36924 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
36925 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_56);
36926 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
36927 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_57);
36928 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
36929 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_29);
36930 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
36931 l_rec_acct_attrs.array_char_value(13) := p_source_58;
36932 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
36933 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_11);
36934 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
36935 l_rec_acct_attrs.array_num_value(15) := p_source_33;
36936 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
36937 l_rec_acct_attrs.array_char_value(16) := p_source_34;
36938 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
36939 l_rec_acct_attrs.array_num_value(17) := p_source_35;
36940 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
36941 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_11);
36942 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
36943 l_rec_acct_attrs.array_num_value(19) := p_source_33;
36944 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
36945 l_rec_acct_attrs.array_char_value(20) := p_source_34;
36946 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
36947 l_rec_acct_attrs.array_num_value(21) := p_source_35;
36948 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
36949 l_rec_acct_attrs.array_char_value(22) := p_source_59;
36950 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
36951 l_rec_acct_attrs.array_num_value(23) := p_source_33;
36952 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
36953 l_rec_acct_attrs.array_char_value(24) := p_source_34;
36954 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
36955 l_rec_acct_attrs.array_date_value(25) := p_source_62;
36956 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
36957 l_rec_acct_attrs.array_num_value(26) := p_source_63;
36958 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
36959 l_rec_acct_attrs.array_char_value(27) := p_source_64;
36960 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
36961 l_rec_acct_attrs.array_num_value(28) := p_source_35;
36962 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
36963 l_rec_acct_attrs.array_char_value(29) := p_source_60;
36964 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
36965 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_56);
36966 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
36967 l_rec_acct_attrs.array_char_value(31) := p_source_54;
36968 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
36969 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_29);
36970 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
36971 l_rec_acct_attrs.array_num_value(33) := p_source_61;
36972 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
36973 l_rec_acct_attrs.array_num_value(34) := p_source_61;
36974
36975 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
36976 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
36977
36978 ---------------------------------------------------------------------------------------------------------------
36979 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
36980 ---------------------------------------------------------------------------------------------------------------
36981 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
36982
36983 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36984 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36985
36986 IF xla_accounting_cache_pkg.GetValueChar
36987 (p_source_code => 'LEDGER_CATEGORY_CODE'
36988 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
36989 AND l_bflow_method_code = 'PRIOR_ENTRY'
36990 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
36991 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
36992 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
36993 )
36994 THEN
36995 xla_ae_lines_pkg.BflowUpgEntry
36996 (p_business_method_code => l_bflow_method_code
36997 ,p_business_class_code => l_bflow_class_code
36998 ,p_balance_type => l_balance_type_code);
36999 ELSE
37000 NULL;
37001 -- No business flow processing for business flow method of NONE.
37002 END IF;
37003
37004 --
37005 -- call analytical criteria
37006 --
37007
37008 --
37009 -- call description
37010 --
37011
37012 xla_ae_lines_pkg.SetLineDescription(
37013 p_ae_header_id => l_ae_header_id
37014 ,p_description => Description_3 (
37015 p_application_id => p_application_id
37016 , p_ae_header_id => l_ae_header_id
37017 , p_source_7 => p_source_7
37018 )
37019 );
37020
37021
37022 --
37023 -- call ADRs
37024 -- Bug 4922099
37025 --
37026 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37027 (NVL(l_actual_upg_option, 'N') = 'O') OR
37028 (NVL(l_enc_upg_option, 'N') = 'O')
37029 )
37030 THEN
37031 NULL;
37032 --
37033 --
37034
37035 l_ccid := AcctDerRule_8(
37036 p_application_id => p_application_id
37037 , p_ae_header_id => l_ae_header_id
37038 , p_source_11 => p_source_11
37039 , x_transaction_coa_id => l_adr_transaction_coa_id
37040 , x_accounting_coa_id => l_adr_accounting_coa_id
37041 , x_value_type_code => l_adr_value_type_code
37042 , p_side => 'NA'
37043 );
37044
37045 xla_ae_lines_pkg.set_ccid(
37046 p_code_combination_id => l_ccid
37047 , p_value_type_code => l_adr_value_type_code
37048 , p_transaction_coa_id => l_adr_transaction_coa_id
37049 , p_accounting_coa_id => l_adr_accounting_coa_id
37050 , p_adr_code => 'PURCHASING_ENCUMBRANCE_ADR'
37051 , p_adr_type_code => 'S'
37052 , p_component_type => l_component_type
37053 , p_component_code => l_component_code
37054 , p_component_type_code => l_component_type_code
37055 , p_component_appl_id => l_component_appl_id
37056 , p_amb_context_code => l_amb_context_code
37057 , p_side => 'NA'
37058 );
37059
37060
37061 --
37062 --
37063 END IF;
37064 --
37065 -- Bug 4922099
37066 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
37067 (NVL(l_enc_upg_option, 'N') = 'O')
37068 ) AND
37069 (l_bflow_method_code = 'PRIOR_ENTRY')
37070 )
37071 THEN
37072 IF
37073 --
37074 1 = 2
37075 --
37076 THEN
37077 xla_accounting_err_pkg.build_message
37078 (p_appli_s_name => 'XLA'
37079 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37080 ,p_token_1 => 'LINE_NUMBER'
37081 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
37082 ,p_token_2 => 'LINE_TYPE_NAME'
37083 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
37084 l_component_type
37085 ,l_component_code
37086 ,l_component_type_code
37087 ,l_component_appl_id
37088 ,l_amb_context_code
37089 ,l_entity_code
37090 ,l_event_class_code
37091 )
37092 ,p_token_3 => 'OWNER'
37093 ,p_value_3 => xla_lookups_pkg.get_meaning(
37094 p_lookup_type => 'XLA_OWNER_TYPE'
37095 ,p_lookup_code => l_component_type_code
37096 )
37097 ,p_token_4 => 'PRODUCT_NAME'
37098 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
37099 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
37100 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
37101 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
37102 ,p_ae_header_id => NULL
37103 );
37104
37105 IF (C_LEVEL_ERROR>= g_log_level) THEN
37106 trace
37107 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37108 ,p_level => C_LEVEL_ERROR
37109 ,p_module => l_log_module);
37110 END IF;
37111 END IF;
37112 END IF;
37113 --
37114 --
37115 ------------------------------------------------------------------------------------------------
37116 -- 4219869 Business Flow
37117 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
37118 -- Prior Entry. Currently, the following code is always generated.
37119 ------------------------------------------------------------------------------------------------
37120 XLA_AE_LINES_PKG.ValidateCurrentLine;
37121
37122 ------------------------------------------------------------------------------------
37123 -- 4219869 Business Flow
37124 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
37125 ------------------------------------------------------------------------------------
37126 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37127
37128 ----------------------------------------------------------------------------------
37129 -- 4219869 Business Flow
37130 -- Update journal entry status -- Need to generate this within IF <condition>
37131 ----------------------------------------------------------------------------------
37132 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37133 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
37134 ,p_balance_type_code => l_balance_type_code
37135 );
37136
37137 -------------------------------------------------------------------------------------------
37138 -- 4262811 - Generate the Accrual Reversal lines
37139 -------------------------------------------------------------------------------------------
37140 BEGIN
37141 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
37142 (g_array_event(p_event_id).array_value_num('header_index'));
37143 IF l_acc_rev_flag IS NULL THEN
37144 l_acc_rev_flag := 'N';
37145 END IF;
37146 EXCEPTION
37147 WHEN OTHERS THEN
37148 l_acc_rev_flag := 'N';
37149 END;
37150 --
37151 IF (l_acc_rev_flag = 'Y') THEN
37152
37153 -- 4645092 ------------------------------------------------------------------------------
37154 -- To allow MPA report to determine if it should generate report process
37155 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
37156 ------------------------------------------------------------------------------------------
37157
37158 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
37159 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
37160
37161 --
37162 -- Update the line information that should be overwritten
37163 --
37164 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
37165 p_header_num => 1);
37166 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
37167
37168 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
37169
37170 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
37171 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
37172 END IF;
37173
37174 --
37175 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
37176 --
37177 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
37178 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
37179 ELSE
37180 ---------------------------------------------------------------------------------------------------
37181 -- 4262811a Switch Sign
37182 ---------------------------------------------------------------------------------------------------
37183 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
37184 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37185 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37186 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37187 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37188 -- 5132302
37189 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
37190 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37191
37192 END IF;
37193
37194 -- 4955764
37195 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37196 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
37197
37198
37199 XLA_AE_LINES_PKG.ValidateCurrentLine;
37200 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37201
37202 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37203 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
37204 ,p_balance_type_code => l_balance_type_code);
37205
37206 END IF;
37207
37208 -----------------------------------------------------------------------------------------
37209 -- 4262811 Multiperiod Accounting
37210 -----------------------------------------------------------------------------------------
37211 -- No MPA option is assigned.
37212
37213
37214 END IF;
37215 END IF;
37216 --
37217
37218 --
37219 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37220 trace
37221 (p_msg => 'END of AcctLineType_66'
37222 ,p_level => C_LEVEL_PROCEDURE
37223 ,p_module => l_log_module);
37224 END IF;
37225 --
37226 EXCEPTION
37227 WHEN xla_exceptions_pkg.application_exception THEN
37228 RAISE;
37229 WHEN OTHERS THEN
37230 xla_exceptions_pkg.raise_message
37231 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_66');
37232 END AcctLineType_66;
37233 --
37234
37235 ---------------------------------------
37236 --
37237 -- PRIVATE FUNCTION
37238 -- AcctLineType_67
37239 --
37240 ---------------------------------------
37241 PROCEDURE AcctLineType_67 (
37242 p_application_id IN NUMBER
37243 ,p_event_id IN NUMBER
37244 ,p_calculate_acctd_flag IN VARCHAR2
37245 ,p_calculate_g_l_flag IN VARCHAR2
37246 ,p_actual_flag IN OUT VARCHAR2
37247 ,p_balance_type_code OUT VARCHAR2
37248 ,p_gain_or_loss_ref OUT VARCHAR2
37249
37250 --Journal entry Line Description
37251 , p_source_7 IN VARCHAR2
37252 --Budget Account
37253 , p_source_11 IN NUMBER
37254 --Main Or Backing Code
37255 , p_source_13 IN VARCHAR2
37256 --Accounting Reversal Flag
37257 , p_source_16 IN VARCHAR2
37258 --PO Distribution Type
37259 , p_source_24 IN VARCHAR2
37260 --PO Distribution Identifier
37261 , p_source_29 IN NUMBER
37262 --Entered Amount
37263 , p_source_33 IN NUMBER
37264 --Currency Code
37265 , p_source_34 IN VARCHAR2
37266 --Accounted Amount
37267 , p_source_35 IN NUMBER
37268 --PO Header Identifier
37269 , p_source_52 IN NUMBER
37270 --Applied To Application Identifier
37271 , p_source_53 IN NUMBER
37272 --Applied To Distribution Link Type
37273 , p_source_54 IN VARCHAR2
37274 --Applied To Entity Code
37275 , p_source_55 IN VARCHAR2
37276 --Applied To Distribution Identifier 1
37277 , p_source_56 IN NUMBER
37278 --Applied To Header Identifier 1
37279 , p_source_57 IN NUMBER
37280 --Distribution Link Type
37281 , p_source_58 IN VARCHAR2
37282 --PO Encumbrance Upgrade Option
37283 , p_source_59 IN VARCHAR2
37284 --JFMIP Reference
37285 , p_source_60 IN VARCHAR2
37286 --PO Upgrade Encumbrance Type Identifier
37287 , p_source_61 IN NUMBER
37288 --Currency Conversion Date
37289 , p_source_62 IN DATE
37290 --Currency Conversion Rate
37291 , p_source_63 IN NUMBER
37292 --Currency Conversion Type
37293 , p_source_64 IN VARCHAR2
37294 --Adjustment Status
37295 , p_source_75 IN VARCHAR2
37296 )
37297 IS
37298
37299 l_component_type VARCHAR2(80);
37300 l_component_code VARCHAR2(30);
37301 l_component_type_code VARCHAR2(1);
37302 l_component_appl_id INTEGER;
37303 l_amb_context_code VARCHAR2(30);
37304 l_entity_code VARCHAR2(30);
37305 l_event_class_code VARCHAR2(30);
37306 l_ae_header_id NUMBER;
37307 l_event_type_code VARCHAR2(30);
37308 l_line_definition_code VARCHAR2(30);
37309 l_line_definition_owner_code VARCHAR2(1);
37310 --
37311 -- adr variables
37312 l_segment VARCHAR2(30);
37313 l_ccid NUMBER;
37314 l_adr_transaction_coa_id NUMBER;
37315 l_adr_accounting_coa_id NUMBER;
37316 l_adr_flexfield_segment_code VARCHAR2(30);
37317 l_adr_flex_value_set_id NUMBER;
37318 l_adr_value_type_code VARCHAR2(30);
37319 l_adr_value_combination_id NUMBER;
37320 l_adr_value_segment_code VARCHAR2(30);
37321
37322 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
37323 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
37324 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
37325 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
37326
37327 -- 4262811 Variables ------------------------------------------------------------------------------------------
37328 l_entered_amt_idx NUMBER;
37329 l_accted_amt_idx NUMBER;
37330 l_acc_rev_flag VARCHAR2(1);
37331 l_accrual_line_num NUMBER;
37332 l_tmp_amt NUMBER;
37333 l_acc_rev_natural_side_code VARCHAR2(1);
37334
37335 l_num_entries NUMBER;
37336 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
37337 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
37338 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
37339 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
37340 l_recog_line_1 NUMBER;
37341 l_recog_line_2 NUMBER;
37342
37343 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
37344 l_bflow_applied_to_amt NUMBER; -- 5132302
37345 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
37346
37347 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
37348
37349 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
37350 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
37351
37352 ---------------------------------------------------------------------------------------------------------------
37353
37354
37355 --
37356 -- bulk performance
37357 --
37358 l_balance_type_code VARCHAR2(1);
37359 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
37360 l_log_module VARCHAR2(240);
37361
37362 --
37363 -- Upgrade strategy
37364 --
37365 l_actual_upg_option VARCHAR2(1);
37366 l_enc_upg_option VARCHAR2(1);
37367
37368 --
37369 BEGIN
37370 --
37371 IF g_log_enabled THEN
37372 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_67';
37373 END IF;
37374 --
37375 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37376
37377 trace
37378 (p_msg => 'BEGIN of AcctLineType_67'
37379 ,p_level => C_LEVEL_PROCEDURE
37380 ,p_module => l_log_module);
37381
37382 END IF;
37383 --
37384 l_component_type := 'AMB_JLT';
37385 l_component_code := 'RESERVE_PO_ENCUMBRANCE';
37386 l_component_type_code := 'S';
37387 l_component_appl_id := 201;
37388 l_amb_context_code := 'DEFAULT';
37389 l_entity_code := 'PURCHASE_ORDER';
37390 l_event_class_code := 'PO_PA';
37391 l_event_type_code := 'PO_PA_ALL';
37392 l_line_definition_owner_code := 'S';
37393 l_line_definition_code := 'PO_PA_ENC_ALL';
37394 --
37395 l_balance_type_code := 'E';
37396 l_segment := NULL;
37397 l_ccid := NULL;
37398 l_adr_transaction_coa_id := NULL;
37399 l_adr_accounting_coa_id := NULL;
37400 l_adr_flexfield_segment_code := NULL;
37401 l_adr_flex_value_set_id := NULL;
37402 l_adr_value_type_code := NULL;
37403 l_adr_value_combination_id := NULL;
37404 l_adr_value_segment_code := NULL;
37405
37406 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
37407 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
37408 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
37409 l_budgetary_control_flag := 'Y';
37410
37411 l_bflow_applied_to_amt_idx := NULL; -- 5132302
37412 l_bflow_applied_to_amt := NULL; -- 5132302
37413 l_entered_amt_idx := NULL; -- 4262811
37414 l_accted_amt_idx := NULL; -- 4262811
37415 l_acc_rev_flag := NULL; -- 4262811
37416 l_accrual_line_num := NULL; -- 4262811
37417 l_tmp_amt := NULL; -- 4262811
37418 --
37419
37420 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
37421 l_balance_type_code <> 'B' THEN
37422 IF (NVL(
37423 xla_ae_sources_pkg.GetSystemSourceChar(
37424 p_source_code => 'XLA_EVENT_TYPE_CODE'
37425 , p_source_type_code => 'Y'
37426 , p_source_application_id => 602
37427 ),'
37428 ') = 'PO_PA_RESERVED' OR
37429 (NVL(
37430 xla_ae_sources_pkg.GetSystemSourceChar(
37431 p_source_code => 'XLA_EVENT_TYPE_CODE'
37432 , p_source_type_code => 'Y'
37433 , p_source_application_id => 602
37434 ),'
37435 ') = 'PO_PA_ADJUSTED' AND
37436 NVL(p_source_75,'
37437 ') = 'NEW')
37438 ) AND NVL(p_source_13,'
37439 ') = 'M' AND
37440 (NVL(p_source_24,'
37441 ') <> 'AGREEMENT' OR
37442 p_source_24 IS NULL )
37443 THEN
37444
37445 --
37446 XLA_AE_LINES_PKG.SetNewLine;
37447
37448 p_balance_type_code := l_balance_type_code;
37449 -- set the flag so later we will know whether the gain loss line needs to be created
37450
37451 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
37452 p_actual_flag :='A';
37453 END IF;
37454
37455 --
37456 -- bulk performance
37457 --
37458 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
37459 p_header_num => 0); -- 4262811
37460 --
37461 -- set accounting line options
37462 --
37463 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
37464 p_natural_side_code => 'D'
37465 , p_gain_or_loss_flag => 'N'
37466 , p_gl_transfer_mode_code => 'S'
37467 , p_acct_entry_type_code => 'E'
37468 , p_switch_side_flag => 'N'
37469 , p_merge_duplicate_code => 'N'
37470 );
37471 --
37472 l_acc_rev_natural_side_code := 'C'; -- 4262811
37473 --
37474 --
37475 -- set accounting line type info
37476 --
37477 xla_ae_lines_pkg.SetAcctLineType
37478 (p_component_type => l_component_type
37479 ,p_event_type_code => l_event_type_code
37480 ,p_line_definition_owner_code => l_line_definition_owner_code
37481 ,p_line_definition_code => l_line_definition_code
37482 ,p_accounting_line_code => l_component_code
37483 ,p_accounting_line_type_code => l_component_type_code
37484 ,p_accounting_line_appl_id => l_component_appl_id
37485 ,p_amb_context_code => l_amb_context_code
37486 ,p_entity_code => l_entity_code
37487 ,p_event_class_code => l_event_class_code);
37488 --
37489 -- set accounting class
37490 --
37491 xla_ae_lines_pkg.SetAcctClass(
37492 p_accounting_class_code => 'PURCHASE_ORDER'
37493 , p_ae_header_id => l_ae_header_id
37494 );
37495
37496 --
37497 -- set rounding class
37498 --
37499 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
37500 'PURCHASE_ORDER';
37501
37502 --
37503 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
37504 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
37505 --
37506 -- bulk performance
37507 --
37508 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
37509
37510 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
37511 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
37512
37513 -- 4955764
37514 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37515 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
37516
37517 -- 4458381 Public Sector Enh
37518 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1001;
37519 --
37520 -- set accounting attributes for the line type
37521 --
37522 l_entered_amt_idx := 23;
37523 l_accted_amt_idx := 28;
37524 l_bflow_applied_to_amt_idx := NULL; -- 5132302
37525 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
37526 l_rec_acct_attrs.array_char_value(1) := p_source_16;
37527 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
37528 l_rec_acct_attrs.array_num_value(2) :=
37529 xla_ae_sources_pkg.GetSystemSourceNum(
37530 p_source_code => 'XLA_EVENT_APPL_ID'
37531 , p_source_type_code => 'Y'
37532 , p_source_application_id => 602
37533 );
37534 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
37535 l_rec_acct_attrs.array_char_value(3) := p_source_58;
37536 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
37537 l_rec_acct_attrs.array_char_value(4) :=
37538 xla_ae_sources_pkg.GetSystemSourceChar(
37539 p_source_code => 'XLA_ENTITY_CODE'
37540 , p_source_type_code => 'Y'
37541 , p_source_application_id => 602
37542 );
37543 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
37544 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_29);
37545 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
37546 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_52);
37547 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
37548 l_rec_acct_attrs.array_num_value(7) := p_source_53;
37549 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
37550 l_rec_acct_attrs.array_char_value(8) := p_source_54;
37551 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
37552 l_rec_acct_attrs.array_char_value(9) := p_source_55;
37553 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
37554 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_56);
37555 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
37556 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_57);
37557 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
37558 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_29);
37559 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
37560 l_rec_acct_attrs.array_char_value(13) := p_source_58;
37561 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
37562 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_11);
37563 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
37564 l_rec_acct_attrs.array_num_value(15) := p_source_33;
37565 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
37566 l_rec_acct_attrs.array_char_value(16) := p_source_34;
37567 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
37568 l_rec_acct_attrs.array_num_value(17) := p_source_35;
37569 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
37570 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_11);
37571 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
37572 l_rec_acct_attrs.array_num_value(19) := p_source_33;
37573 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
37574 l_rec_acct_attrs.array_char_value(20) := p_source_34;
37575 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
37576 l_rec_acct_attrs.array_num_value(21) := p_source_35;
37577 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
37578 l_rec_acct_attrs.array_char_value(22) := p_source_59;
37579 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
37580 l_rec_acct_attrs.array_num_value(23) := p_source_33;
37581 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
37582 l_rec_acct_attrs.array_char_value(24) := p_source_34;
37583 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
37584 l_rec_acct_attrs.array_date_value(25) := p_source_62;
37585 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
37586 l_rec_acct_attrs.array_num_value(26) := p_source_63;
37587 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
37588 l_rec_acct_attrs.array_char_value(27) := p_source_64;
37589 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
37590 l_rec_acct_attrs.array_num_value(28) := p_source_35;
37591 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
37592 l_rec_acct_attrs.array_char_value(29) := p_source_60;
37593 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
37594 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_56);
37595 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
37596 l_rec_acct_attrs.array_char_value(31) := p_source_54;
37597 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
37598 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_29);
37599 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
37600 l_rec_acct_attrs.array_num_value(33) := p_source_61;
37601 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
37602 l_rec_acct_attrs.array_num_value(34) := p_source_61;
37603
37604 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
37605 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
37606
37607 ---------------------------------------------------------------------------------------------------------------
37608 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
37609 ---------------------------------------------------------------------------------------------------------------
37610 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
37611
37612 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37613 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37614
37615 IF xla_accounting_cache_pkg.GetValueChar
37616 (p_source_code => 'LEDGER_CATEGORY_CODE'
37617 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
37618 AND l_bflow_method_code = 'PRIOR_ENTRY'
37619 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
37620 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
37621 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
37622 )
37623 THEN
37624 xla_ae_lines_pkg.BflowUpgEntry
37625 (p_business_method_code => l_bflow_method_code
37626 ,p_business_class_code => l_bflow_class_code
37627 ,p_balance_type => l_balance_type_code);
37628 ELSE
37629 NULL;
37630 -- No business flow processing for business flow method of NONE.
37631 END IF;
37632
37633 --
37634 -- call analytical criteria
37635 --
37636
37637 --
37638 -- call description
37639 --
37640
37641 xla_ae_lines_pkg.SetLineDescription(
37642 p_ae_header_id => l_ae_header_id
37643 ,p_description => Description_3 (
37644 p_application_id => p_application_id
37645 , p_ae_header_id => l_ae_header_id
37646 , p_source_7 => p_source_7
37647 )
37648 );
37649
37650
37651 --
37652 -- call ADRs
37653 -- Bug 4922099
37654 --
37655 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37656 (NVL(l_actual_upg_option, 'N') = 'O') OR
37657 (NVL(l_enc_upg_option, 'N') = 'O')
37658 )
37659 THEN
37660 NULL;
37661 --
37662 --
37663
37664 l_ccid := AcctDerRule_8(
37665 p_application_id => p_application_id
37666 , p_ae_header_id => l_ae_header_id
37667 , p_source_11 => p_source_11
37668 , x_transaction_coa_id => l_adr_transaction_coa_id
37669 , x_accounting_coa_id => l_adr_accounting_coa_id
37670 , x_value_type_code => l_adr_value_type_code
37671 , p_side => 'NA'
37672 );
37673
37674 xla_ae_lines_pkg.set_ccid(
37675 p_code_combination_id => l_ccid
37676 , p_value_type_code => l_adr_value_type_code
37677 , p_transaction_coa_id => l_adr_transaction_coa_id
37678 , p_accounting_coa_id => l_adr_accounting_coa_id
37679 , p_adr_code => 'PURCHASING_ENCUMBRANCE_ADR'
37680 , p_adr_type_code => 'S'
37681 , p_component_type => l_component_type
37682 , p_component_code => l_component_code
37683 , p_component_type_code => l_component_type_code
37684 , p_component_appl_id => l_component_appl_id
37685 , p_amb_context_code => l_amb_context_code
37686 , p_side => 'NA'
37687 );
37688
37689
37690 --
37691 --
37692 END IF;
37693 --
37694 -- Bug 4922099
37695 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
37696 (NVL(l_enc_upg_option, 'N') = 'O')
37697 ) AND
37698 (l_bflow_method_code = 'PRIOR_ENTRY')
37699 )
37700 THEN
37701 IF
37702 --
37703 1 = 2
37704 --
37705 THEN
37706 xla_accounting_err_pkg.build_message
37707 (p_appli_s_name => 'XLA'
37708 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37709 ,p_token_1 => 'LINE_NUMBER'
37710 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
37711 ,p_token_2 => 'LINE_TYPE_NAME'
37712 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
37713 l_component_type
37714 ,l_component_code
37715 ,l_component_type_code
37716 ,l_component_appl_id
37717 ,l_amb_context_code
37718 ,l_entity_code
37719 ,l_event_class_code
37720 )
37721 ,p_token_3 => 'OWNER'
37722 ,p_value_3 => xla_lookups_pkg.get_meaning(
37723 p_lookup_type => 'XLA_OWNER_TYPE'
37724 ,p_lookup_code => l_component_type_code
37725 )
37726 ,p_token_4 => 'PRODUCT_NAME'
37727 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
37728 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
37729 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
37730 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
37731 ,p_ae_header_id => NULL
37732 );
37733
37734 IF (C_LEVEL_ERROR>= g_log_level) THEN
37735 trace
37736 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37737 ,p_level => C_LEVEL_ERROR
37738 ,p_module => l_log_module);
37739 END IF;
37740 END IF;
37741 END IF;
37742 --
37743 --
37744 ------------------------------------------------------------------------------------------------
37745 -- 4219869 Business Flow
37746 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
37747 -- Prior Entry. Currently, the following code is always generated.
37748 ------------------------------------------------------------------------------------------------
37749 XLA_AE_LINES_PKG.ValidateCurrentLine;
37750
37751 ------------------------------------------------------------------------------------
37752 -- 4219869 Business Flow
37753 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
37754 ------------------------------------------------------------------------------------
37755 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37756
37757 ----------------------------------------------------------------------------------
37758 -- 4219869 Business Flow
37759 -- Update journal entry status -- Need to generate this within IF <condition>
37760 ----------------------------------------------------------------------------------
37761 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37762 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
37763 ,p_balance_type_code => l_balance_type_code
37764 );
37765
37766 -------------------------------------------------------------------------------------------
37767 -- 4262811 - Generate the Accrual Reversal lines
37768 -------------------------------------------------------------------------------------------
37769 BEGIN
37770 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
37771 (g_array_event(p_event_id).array_value_num('header_index'));
37772 IF l_acc_rev_flag IS NULL THEN
37773 l_acc_rev_flag := 'N';
37774 END IF;
37775 EXCEPTION
37776 WHEN OTHERS THEN
37777 l_acc_rev_flag := 'N';
37778 END;
37779 --
37780 IF (l_acc_rev_flag = 'Y') THEN
37781
37782 -- 4645092 ------------------------------------------------------------------------------
37783 -- To allow MPA report to determine if it should generate report process
37784 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
37785 ------------------------------------------------------------------------------------------
37786
37787 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
37788 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
37789
37790 --
37791 -- Update the line information that should be overwritten
37792 --
37793 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
37794 p_header_num => 1);
37795 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
37796
37797 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
37798
37799 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
37800 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
37801 END IF;
37802
37803 --
37804 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
37805 --
37806 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
37807 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
37808 ELSE
37809 ---------------------------------------------------------------------------------------------------
37810 -- 4262811a Switch Sign
37811 ---------------------------------------------------------------------------------------------------
37812 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
37813 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37814 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37815 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37816 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37817 -- 5132302
37818 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
37819 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37820
37821 END IF;
37822
37823 -- 4955764
37824 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37825 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
37826
37827
37828 XLA_AE_LINES_PKG.ValidateCurrentLine;
37829 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37830
37831 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37832 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
37833 ,p_balance_type_code => l_balance_type_code);
37834
37835 END IF;
37836
37837 -----------------------------------------------------------------------------------------
37838 -- 4262811 Multiperiod Accounting
37839 -----------------------------------------------------------------------------------------
37840 -- No MPA option is assigned.
37841
37842
37843 END IF;
37844 END IF;
37845 --
37846
37847 --
37848 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37849 trace
37850 (p_msg => 'END of AcctLineType_67'
37851 ,p_level => C_LEVEL_PROCEDURE
37852 ,p_module => l_log_module);
37853 END IF;
37854 --
37855 EXCEPTION
37856 WHEN xla_exceptions_pkg.application_exception THEN
37857 RAISE;
37858 WHEN OTHERS THEN
37859 xla_exceptions_pkg.raise_message
37860 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_67');
37861 END AcctLineType_67;
37862 --
37863
37864 ---------------------------------------
37865 --
37866 -- PRIVATE FUNCTION
37867 -- AcctLineType_68
37868 --
37869 ---------------------------------------
37870 PROCEDURE AcctLineType_68 (
37871 p_application_id IN NUMBER
37872 ,p_event_id IN NUMBER
37873 ,p_calculate_acctd_flag IN VARCHAR2
37874 ,p_calculate_g_l_flag IN VARCHAR2
37875 ,p_actual_flag IN OUT VARCHAR2
37876 ,p_balance_type_code OUT VARCHAR2
37877 ,p_gain_or_loss_ref OUT VARCHAR2
37878
37879 --Project Name
37880 , p_source_3 IN VARCHAR2
37881 --Task Name
37882 , p_source_4 IN VARCHAR2
37883 --Project Expenditure Organization Identifier
37884 , p_source_5 IN NUMBER
37885 --Expenditure Type
37886 , p_source_6 IN VARCHAR2
37887 --Main Or Backing Code
37888 , p_source_13 IN VARCHAR2
37889 --Accounting Reversal Flag
37890 , p_source_16 IN VARCHAR2
37891 --Allocated to Application Identifier
37892 , p_source_17 IN NUMBER
37893 --Allocated to Distribution Type
37894 , p_source_18 IN VARCHAR2
37895 --Allocated to Entity Code
37896 , p_source_19 IN VARCHAR2
37897 --Allocated to First Distribution Identifier
37898 , p_source_20 IN NUMBER
37899 --Allocated to First System Transaction Identifier
37900 , p_source_21 IN NUMBER
37901 --Allocated to Second Distribution Identifier
37902 , p_source_22 IN VARCHAR2
37903 --PO Distribution Identifier
37904 , p_source_29 IN NUMBER
37905 --Line Type Name
37906 , p_source_30 IN VARCHAR2
37907 --Encumbrance Upgrade Credit Accounting Class
37908 , p_source_31 IN VARCHAR2
37909 --Encumbrance Upgrade Credit Account
37910 , p_source_32 IN NUMBER
37911 --Entered Amount
37912 , p_source_33 IN NUMBER
37913 --Currency Code
37914 , p_source_34 IN VARCHAR2
37915 --Accounted Amount
37916 , p_source_35 IN NUMBER
37917 --Encumbrance Upgrade Debit Accounting Class
37918 , p_source_36 IN VARCHAR2
37919 --Encumbrance Upgrade Debit Account
37920 , p_source_37 IN NUMBER
37921 --Use Encumbrances Upgrade Attributes Flag
37922 , p_source_38 IN VARCHAR2
37923 --Encumbrance Upgrade Credit Encumbrance Type
37924 , p_source_39 IN NUMBER
37925 --Encumbrance Upgrade Debit Encumbrance Type
37926 , p_source_40 IN NUMBER
37927 --Project Encumbrance Applied to Application Identifier
37928 , p_source_68 IN NUMBER
37929 --Project Encumbrance Applied to Distribution Type
37930 , p_source_69 IN VARCHAR2
37931 --Project Encumbrance Applied to Entity Code
37932 , p_source_70 IN VARCHAR2
37933 --Project Encumbrance Applied to First Distribution Identifier
37934 , p_source_71 IN NUMBER
37935 --Project Encumbrance Applied to First System Transaction Identifier
37936 , p_source_72 IN NUMBER
37937 --Project Encumbrance Applied to Second Distribution Identifier
37938 , p_source_73 IN VARCHAR2
37939 )
37940 IS
37941
37942 l_component_type VARCHAR2(80);
37943 l_component_code VARCHAR2(30);
37944 l_component_type_code VARCHAR2(1);
37945 l_component_appl_id INTEGER;
37946 l_amb_context_code VARCHAR2(30);
37947 l_entity_code VARCHAR2(30);
37948 l_event_class_code VARCHAR2(30);
37949 l_ae_header_id NUMBER;
37950 l_event_type_code VARCHAR2(30);
37951 l_line_definition_code VARCHAR2(30);
37952 l_line_definition_owner_code VARCHAR2(1);
37953 --
37954 -- adr variables
37955 l_segment VARCHAR2(30);
37956 l_ccid NUMBER;
37957 l_adr_transaction_coa_id NUMBER;
37958 l_adr_accounting_coa_id NUMBER;
37959 l_adr_flexfield_segment_code VARCHAR2(30);
37960 l_adr_flex_value_set_id NUMBER;
37961 l_adr_value_type_code VARCHAR2(30);
37962 l_adr_value_combination_id NUMBER;
37963 l_adr_value_segment_code VARCHAR2(30);
37964
37965 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
37966 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
37967 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
37968 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
37969
37970 -- 4262811 Variables ------------------------------------------------------------------------------------------
37971 l_entered_amt_idx NUMBER;
37972 l_accted_amt_idx NUMBER;
37973 l_acc_rev_flag VARCHAR2(1);
37974 l_accrual_line_num NUMBER;
37975 l_tmp_amt NUMBER;
37976 l_acc_rev_natural_side_code VARCHAR2(1);
37977
37978 l_num_entries NUMBER;
37979 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
37980 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
37981 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
37982 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
37983 l_recog_line_1 NUMBER;
37984 l_recog_line_2 NUMBER;
37985
37986 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
37987 l_bflow_applied_to_amt NUMBER; -- 5132302
37988 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
37989
37990 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
37991
37992 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
37993 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
37994
37995 ---------------------------------------------------------------------------------------------------------------
37996
37997
37998 --
37999 -- bulk performance
38000 --
38001 l_balance_type_code VARCHAR2(1);
38002 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
38003 l_log_module VARCHAR2(240);
38004
38005 --
38006 -- Upgrade strategy
38007 --
38008 l_actual_upg_option VARCHAR2(1);
38009 l_enc_upg_option VARCHAR2(1);
38010
38011 --
38012 BEGIN
38013 --
38014 IF g_log_enabled THEN
38015 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_68';
38016 END IF;
38017 --
38018 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38019
38020 trace
38021 (p_msg => 'BEGIN of AcctLineType_68'
38022 ,p_level => C_LEVEL_PROCEDURE
38023 ,p_module => l_log_module);
38024
38025 END IF;
38026 --
38027 l_component_type := 'AMB_JLT';
38028 l_component_code := 'RESERVE_PROJ_ENC';
38029 l_component_type_code := 'S';
38030 l_component_appl_id := 201;
38031 l_amb_context_code := 'DEFAULT';
38032 l_entity_code := 'RELEASE';
38033 l_event_class_code := 'RELEASE_BURDEN';
38034 l_event_type_code := 'RELEASE_BURDEN_ALL';
38035 l_line_definition_owner_code := 'S';
38036 l_line_definition_code := 'REL_BURDEN_ENC_ALL';
38037 --
38038 l_balance_type_code := 'E';
38039 l_segment := NULL;
38040 l_ccid := NULL;
38041 l_adr_transaction_coa_id := NULL;
38042 l_adr_accounting_coa_id := NULL;
38043 l_adr_flexfield_segment_code := NULL;
38044 l_adr_flex_value_set_id := NULL;
38045 l_adr_value_type_code := NULL;
38046 l_adr_value_combination_id := NULL;
38047 l_adr_value_segment_code := NULL;
38048
38049 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
38050 l_bflow_class_code := 'PA_BUDGET_ENC'; -- 4219869 Business Flow
38051 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
38052 l_budgetary_control_flag := 'Y';
38053
38054 l_bflow_applied_to_amt_idx := NULL; -- 5132302
38055 l_bflow_applied_to_amt := NULL; -- 5132302
38056 l_entered_amt_idx := NULL; -- 4262811
38057 l_accted_amt_idx := NULL; -- 4262811
38058 l_acc_rev_flag := NULL; -- 4262811
38059 l_accrual_line_num := NULL; -- 4262811
38060 l_tmp_amt := NULL; -- 4262811
38061 --
38062
38063 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
38064 l_balance_type_code <> 'B' THEN
38065 IF ((NVL(
38066 xla_ae_sources_pkg.GetSystemSourceChar(
38067 p_source_code => 'XLA_EVENT_TYPE_CODE'
38068 , p_source_type_code => 'Y'
38069 , p_source_application_id => 602
38070 ),'
38071 ') = 'REL_BURDEN_CANCELLED' OR
38072 NVL(
38073 xla_ae_sources_pkg.GetSystemSourceChar(
38074 p_source_code => 'XLA_EVENT_TYPE_CODE'
38075 , p_source_type_code => 'Y'
38076 , p_source_application_id => 602
38077 ),'
38078 ') = 'REL_BURDEN_CR_MEMO_CANCELLED' OR
38079 NVL(
38080 xla_ae_sources_pkg.GetSystemSourceChar(
38081 p_source_code => 'XLA_EVENT_TYPE_CODE'
38082 , p_source_type_code => 'Y'
38083 , p_source_application_id => 602
38084 ),'
38085 ') = 'REL_BURDEN_RESERVED') AND
38086 (NVL(p_source_13,'
38087 ') = 'B_PO' OR
38088 NVL(p_source_13,'
38089 ') = 'B_PA' OR
38090 NVL(p_source_13,'
38091 ') = 'B_REQ')
38092 ) OR ((NVL(
38093 xla_ae_sources_pkg.GetSystemSourceChar(
38094 p_source_code => 'XLA_EVENT_TYPE_CODE'
38095 , p_source_type_code => 'Y'
38096 , p_source_application_id => 602
38097 ),'
38098 ') = 'REL_BURDEN_UNRESERVED' OR
38099 NVL(
38100 xla_ae_sources_pkg.GetSystemSourceChar(
38101 p_source_code => 'XLA_EVENT_TYPE_CODE'
38102 , p_source_type_code => 'Y'
38103 , p_source_application_id => 602
38104 ),'
38105 ') = 'REL_BURDEN_INV_CANCELLED' OR
38106 NVL(
38107 xla_ae_sources_pkg.GetSystemSourceChar(
38108 p_source_code => 'XLA_EVENT_TYPE_CODE'
38109 , p_source_type_code => 'Y'
38110 , p_source_application_id => 602
38111 ),'
38112 ') = 'REL_BURDEN_REJECTED' OR
38113 NVL(
38114 xla_ae_sources_pkg.GetSystemSourceChar(
38115 p_source_code => 'XLA_EVENT_TYPE_CODE'
38116 , p_source_type_code => 'Y'
38117 , p_source_application_id => 602
38118 ),'
38119 ') = 'REL_BURDEN_FINAL_CLOSED') AND
38120 NVL(p_source_13,'
38121 ') = 'M'
38122 ) THEN
38123
38124 --
38125 XLA_AE_LINES_PKG.SetNewLine;
38126
38127 p_balance_type_code := l_balance_type_code;
38128 -- set the flag so later we will know whether the gain loss line needs to be created
38129
38130 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
38131 p_actual_flag :='A';
38132 END IF;
38133
38134 --
38135 -- bulk performance
38136 --
38137 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
38138 p_header_num => 0); -- 4262811
38139 --
38140 -- set accounting line options
38141 --
38142 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
38143 p_natural_side_code => 'D'
38144 , p_gain_or_loss_flag => 'N'
38145 , p_gl_transfer_mode_code => 'S'
38146 , p_acct_entry_type_code => 'E'
38147 , p_switch_side_flag => 'N'
38148 , p_merge_duplicate_code => 'N'
38149 );
38150 --
38151 l_acc_rev_natural_side_code := 'C'; -- 4262811
38152 --
38153 --
38154 -- set accounting line type info
38155 --
38156 xla_ae_lines_pkg.SetAcctLineType
38157 (p_component_type => l_component_type
38158 ,p_event_type_code => l_event_type_code
38159 ,p_line_definition_owner_code => l_line_definition_owner_code
38160 ,p_line_definition_code => l_line_definition_code
38161 ,p_accounting_line_code => l_component_code
38162 ,p_accounting_line_type_code => l_component_type_code
38163 ,p_accounting_line_appl_id => l_component_appl_id
38164 ,p_amb_context_code => l_amb_context_code
38165 ,p_entity_code => l_entity_code
38166 ,p_event_class_code => l_event_class_code);
38167 --
38168 -- set accounting class
38169 --
38170 xla_ae_lines_pkg.SetAcctClass(
38171 p_accounting_class_code => 'PA_BUDGET_ENC'
38172 , p_ae_header_id => l_ae_header_id
38173 );
38174
38175 --
38176 -- set rounding class
38177 --
38178 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
38179 'PA_BUDGET_ENC';
38180
38181 --
38182 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
38183 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
38184 --
38185 -- bulk performance
38186 --
38187 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
38188
38189 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
38190 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
38191
38192 -- 4955764
38193 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38194 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
38195
38196 -- 4458381 Public Sector Enh
38197
38198 --
38199 -- set accounting attributes for the line type
38200 --
38201 l_entered_amt_idx := 28;
38202 l_accted_amt_idx := 30;
38203 l_bflow_applied_to_amt_idx := NULL; -- 5132302
38204 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
38205 l_rec_acct_attrs.array_char_value(1) := p_source_16;
38206 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
38207 l_rec_acct_attrs.array_num_value(2) := p_source_17;
38208 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
38209 l_rec_acct_attrs.array_char_value(3) := p_source_18;
38210 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
38211 l_rec_acct_attrs.array_char_value(4) := p_source_19;
38212 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
38213 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
38214 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
38215 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
38216 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
38217 l_rec_acct_attrs.array_char_value(7) := p_source_22;
38218 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
38219 l_rec_acct_attrs.array_num_value(8) := p_source_68;
38220 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
38221 l_rec_acct_attrs.array_char_value(9) := p_source_69;
38222 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
38223 l_rec_acct_attrs.array_char_value(10) := p_source_70;
38224 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
38225 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_71);
38226 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
38227 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_72);
38228 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
38229 l_rec_acct_attrs.array_char_value(13) := p_source_73;
38230 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
38231 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_29);
38232 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
38233 l_rec_acct_attrs.array_char_value(15) := p_source_6;
38234 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
38235 l_rec_acct_attrs.array_char_value(16) := p_source_30;
38236 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
38237 l_rec_acct_attrs.array_char_value(17) := p_source_31;
38238 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
38239 l_rec_acct_attrs.array_num_value(18) := p_source_32;
38240 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
38241 l_rec_acct_attrs.array_num_value(19) := p_source_33;
38242 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
38243 l_rec_acct_attrs.array_char_value(20) := p_source_34;
38244 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
38245 l_rec_acct_attrs.array_num_value(21) := p_source_35;
38246 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
38247 l_rec_acct_attrs.array_char_value(22) := p_source_36;
38248 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
38249 l_rec_acct_attrs.array_num_value(23) := p_source_37;
38250 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
38251 l_rec_acct_attrs.array_num_value(24) := p_source_33;
38252 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
38253 l_rec_acct_attrs.array_char_value(25) := p_source_34;
38254 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
38255 l_rec_acct_attrs.array_num_value(26) := p_source_35;
38256 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
38257 l_rec_acct_attrs.array_char_value(27) := p_source_38;
38258 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
38259 l_rec_acct_attrs.array_num_value(28) := p_source_33;
38260 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
38261 l_rec_acct_attrs.array_char_value(29) := p_source_34;
38262 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
38263 l_rec_acct_attrs.array_num_value(30) := p_source_35;
38264 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
38265 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_29);
38266 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
38267 l_rec_acct_attrs.array_char_value(32) := p_source_6;
38268 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
38269 l_rec_acct_attrs.array_char_value(33) := p_source_30;
38270 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
38271 l_rec_acct_attrs.array_num_value(34) := p_source_39;
38272 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
38273 l_rec_acct_attrs.array_num_value(35) := p_source_40;
38274
38275 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
38276 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
38277
38278 ---------------------------------------------------------------------------------------------------------------
38279 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
38280 ---------------------------------------------------------------------------------------------------------------
38281 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
38282
38283 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38284 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38285
38286 IF xla_accounting_cache_pkg.GetValueChar
38287 (p_source_code => 'LEDGER_CATEGORY_CODE'
38288 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
38289 AND l_bflow_method_code = 'PRIOR_ENTRY'
38290 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
38291 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
38292 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
38293 )
38294 THEN
38295 xla_ae_lines_pkg.BflowUpgEntry
38296 (p_business_method_code => l_bflow_method_code
38297 ,p_business_class_code => l_bflow_class_code
38298 ,p_balance_type => l_balance_type_code);
38299 ELSE
38300 NULL;
38301 XLA_AE_LINES_PKG.business_flow_validation(
38302 p_business_method_code => l_bflow_method_code
38303 ,p_business_class_code => l_bflow_class_code
38304 ,p_inherit_description_flag => l_inherit_desc_flag);
38305 END IF;
38306
38307 --
38308 -- call analytical criteria
38309 --
38310 -- Inherited Analytical Criteria for business flow method of Prior Entry.
38311 --
38312 -- call description
38313 --
38314
38315 xla_ae_lines_pkg.SetLineDescription(
38316 p_ae_header_id => l_ae_header_id
38317 ,p_description => Description_2 (
38318 p_application_id => p_application_id
38319 , p_ae_header_id => l_ae_header_id
38320 , p_source_3 => p_source_3
38321 , p_source_4 => p_source_4
38322 , p_source_5 => p_source_5
38323 , p_source_6 => p_source_6
38324 )
38325 );
38326
38327
38328 --
38329 -- call ADRs
38330 -- Bug 4922099
38331 --
38332 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38333 (NVL(l_actual_upg_option, 'N') = 'O') OR
38334 (NVL(l_enc_upg_option, 'N') = 'O')
38335 )
38336 THEN
38337 NULL;
38338 --
38339 --
38340
38341 --
38342 --
38343 END IF;
38344 --
38345 -- Bug 4922099
38346 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
38347 (NVL(l_enc_upg_option, 'N') = 'O')
38348 ) AND
38349 (l_bflow_method_code = 'PRIOR_ENTRY')
38350 )
38351 THEN
38352 IF
38353 --
38354 1 = 1
38355 --
38356 THEN
38357 xla_accounting_err_pkg.build_message
38358 (p_appli_s_name => 'XLA'
38359 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38360 ,p_token_1 => 'LINE_NUMBER'
38361 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
38362 ,p_token_2 => 'LINE_TYPE_NAME'
38363 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
38364 l_component_type
38365 ,l_component_code
38366 ,l_component_type_code
38367 ,l_component_appl_id
38368 ,l_amb_context_code
38369 ,l_entity_code
38370 ,l_event_class_code
38371 )
38372 ,p_token_3 => 'OWNER'
38373 ,p_value_3 => xla_lookups_pkg.get_meaning(
38374 p_lookup_type => 'XLA_OWNER_TYPE'
38375 ,p_lookup_code => l_component_type_code
38376 )
38377 ,p_token_4 => 'PRODUCT_NAME'
38378 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
38379 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
38380 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
38381 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
38382 ,p_ae_header_id => NULL
38383 );
38384
38385 IF (C_LEVEL_ERROR>= g_log_level) THEN
38386 trace
38387 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38388 ,p_level => C_LEVEL_ERROR
38389 ,p_module => l_log_module);
38390 END IF;
38391 END IF;
38392 END IF;
38393 --
38394 --
38395 ------------------------------------------------------------------------------------------------
38396 -- 4219869 Business Flow
38397 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
38398 -- Prior Entry. Currently, the following code is always generated.
38399 ------------------------------------------------------------------------------------------------
38400 -- No ValidateCurrentLine for business flow method of Prior Entry
38401
38402 ------------------------------------------------------------------------------------
38403 -- 4219869 Business Flow
38404 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
38405 ------------------------------------------------------------------------------------
38406 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38407
38408 ----------------------------------------------------------------------------------
38409 -- 4219869 Business Flow
38410 -- Update journal entry status -- Need to generate this within IF <condition>
38411 ----------------------------------------------------------------------------------
38412 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38413 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
38414 ,p_balance_type_code => l_balance_type_code
38415 );
38416
38417 -------------------------------------------------------------------------------------------
38418 -- 4262811 - Generate the Accrual Reversal lines
38419 -------------------------------------------------------------------------------------------
38420 BEGIN
38421 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
38422 (g_array_event(p_event_id).array_value_num('header_index'));
38423 IF l_acc_rev_flag IS NULL THEN
38424 l_acc_rev_flag := 'N';
38425 END IF;
38426 EXCEPTION
38427 WHEN OTHERS THEN
38428 l_acc_rev_flag := 'N';
38429 END;
38430 --
38431 IF (l_acc_rev_flag = 'Y') THEN
38432
38433 -- 4645092 ------------------------------------------------------------------------------
38434 -- To allow MPA report to determine if it should generate report process
38435 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
38436 ------------------------------------------------------------------------------------------
38437
38438 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
38439 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
38440
38441 --
38442 -- Update the line information that should be overwritten
38443 --
38444 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
38445 p_header_num => 1);
38446 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
38447
38448 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
38449
38450 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
38451 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
38452 END IF;
38453
38454 --
38455 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
38456 --
38457 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
38458 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
38459 ELSE
38460 ---------------------------------------------------------------------------------------------------
38461 -- 4262811a Switch Sign
38462 ---------------------------------------------------------------------------------------------------
38463 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
38464 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38465 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38466 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38467 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38468 -- 5132302
38469 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
38470 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38471
38472 END IF;
38473
38474 -- 4955764
38475 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38476 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
38477
38478
38479 XLA_AE_LINES_PKG.ValidateCurrentLine;
38480 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38481
38482 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38483 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
38484 ,p_balance_type_code => l_balance_type_code);
38485
38486 END IF;
38487
38488 -----------------------------------------------------------------------------------------
38489 -- 4262811 Multiperiod Accounting
38490 -----------------------------------------------------------------------------------------
38491 -- No MPA option is assigned.
38492
38493
38494 END IF;
38495 END IF;
38496 --
38497
38498 --
38499 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38500 trace
38501 (p_msg => 'END of AcctLineType_68'
38502 ,p_level => C_LEVEL_PROCEDURE
38503 ,p_module => l_log_module);
38504 END IF;
38505 --
38506 EXCEPTION
38507 WHEN xla_exceptions_pkg.application_exception THEN
38508 RAISE;
38509 WHEN OTHERS THEN
38510 xla_exceptions_pkg.raise_message
38511 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_68');
38512 END AcctLineType_68;
38513 --
38514
38515 ---------------------------------------
38516 --
38517 -- PRIVATE FUNCTION
38518 -- AcctLineType_69
38519 --
38520 ---------------------------------------
38521 PROCEDURE AcctLineType_69 (
38522 p_application_id IN NUMBER
38523 ,p_event_id IN NUMBER
38524 ,p_calculate_acctd_flag IN VARCHAR2
38525 ,p_calculate_g_l_flag IN VARCHAR2
38526 ,p_actual_flag IN OUT VARCHAR2
38527 ,p_balance_type_code OUT VARCHAR2
38528 ,p_gain_or_loss_ref OUT VARCHAR2
38529
38530 --Project Name
38531 , p_source_3 IN VARCHAR2
38532 --Task Name
38533 , p_source_4 IN VARCHAR2
38534 --Project Expenditure Organization Identifier
38535 , p_source_5 IN NUMBER
38536 --Expenditure Type
38537 , p_source_6 IN VARCHAR2
38538 --Main Or Backing Code
38539 , p_source_13 IN VARCHAR2
38540 --Accounting Reversal Flag
38541 , p_source_16 IN VARCHAR2
38542 --Allocated to Application Identifier
38543 , p_source_17 IN NUMBER
38544 --Allocated to Distribution Type
38545 , p_source_18 IN VARCHAR2
38546 --Allocated to Entity Code
38547 , p_source_19 IN VARCHAR2
38548 --Allocated to First Distribution Identifier
38549 , p_source_20 IN NUMBER
38550 --Allocated to First System Transaction Identifier
38551 , p_source_21 IN NUMBER
38552 --PO Distribution Identifier
38553 , p_source_29 IN NUMBER
38554 --Line Type Name
38555 , p_source_30 IN VARCHAR2
38556 --Encumbrance Upgrade Credit Accounting Class
38557 , p_source_31 IN VARCHAR2
38558 --Encumbrance Upgrade Credit Account
38559 , p_source_32 IN NUMBER
38560 --Entered Amount
38561 , p_source_33 IN NUMBER
38562 --Currency Code
38563 , p_source_34 IN VARCHAR2
38564 --Accounted Amount
38565 , p_source_35 IN NUMBER
38566 --Encumbrance Upgrade Debit Accounting Class
38567 , p_source_36 IN VARCHAR2
38568 --Encumbrance Upgrade Debit Account
38569 , p_source_37 IN NUMBER
38570 --Use Encumbrances Upgrade Attributes Flag
38571 , p_source_38 IN VARCHAR2
38572 --Encumbrance Upgrade Credit Encumbrance Type
38573 , p_source_39 IN NUMBER
38574 --Encumbrance Upgrade Debit Encumbrance Type
38575 , p_source_40 IN NUMBER
38576 --Project Encumbrance Applied to Application Identifier
38577 , p_source_68 IN NUMBER
38578 --Project Encumbrance Applied to Distribution Type
38579 , p_source_69 IN VARCHAR2
38580 --Project Encumbrance Applied to Entity Code
38581 , p_source_70 IN VARCHAR2
38582 --Project Encumbrance Applied to First Distribution Identifier
38583 , p_source_71 IN NUMBER
38584 --Project Encumbrance Applied to First System Transaction Identifier
38585 , p_source_72 IN NUMBER
38586 --Project Encumbrance Applied to Second Distribution Identifier
38587 , p_source_73 IN VARCHAR2
38588 )
38589 IS
38590
38591 l_component_type VARCHAR2(80);
38592 l_component_code VARCHAR2(30);
38593 l_component_type_code VARCHAR2(1);
38594 l_component_appl_id INTEGER;
38595 l_amb_context_code VARCHAR2(30);
38596 l_entity_code VARCHAR2(30);
38597 l_event_class_code VARCHAR2(30);
38598 l_ae_header_id NUMBER;
38599 l_event_type_code VARCHAR2(30);
38600 l_line_definition_code VARCHAR2(30);
38601 l_line_definition_owner_code VARCHAR2(1);
38602 --
38603 -- adr variables
38604 l_segment VARCHAR2(30);
38605 l_ccid NUMBER;
38606 l_adr_transaction_coa_id NUMBER;
38607 l_adr_accounting_coa_id NUMBER;
38608 l_adr_flexfield_segment_code VARCHAR2(30);
38609 l_adr_flex_value_set_id NUMBER;
38610 l_adr_value_type_code VARCHAR2(30);
38611 l_adr_value_combination_id NUMBER;
38612 l_adr_value_segment_code VARCHAR2(30);
38613
38614 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
38615 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
38616 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
38617 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
38618
38619 -- 4262811 Variables ------------------------------------------------------------------------------------------
38620 l_entered_amt_idx NUMBER;
38621 l_accted_amt_idx NUMBER;
38622 l_acc_rev_flag VARCHAR2(1);
38623 l_accrual_line_num NUMBER;
38624 l_tmp_amt NUMBER;
38625 l_acc_rev_natural_side_code VARCHAR2(1);
38626
38627 l_num_entries NUMBER;
38628 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
38629 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
38630 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
38631 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
38632 l_recog_line_1 NUMBER;
38633 l_recog_line_2 NUMBER;
38634
38635 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
38636 l_bflow_applied_to_amt NUMBER; -- 5132302
38637 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
38638
38639 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
38640
38641 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
38642 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
38643
38644 ---------------------------------------------------------------------------------------------------------------
38645
38646
38647 --
38648 -- bulk performance
38649 --
38650 l_balance_type_code VARCHAR2(1);
38651 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
38652 l_log_module VARCHAR2(240);
38653
38654 --
38655 -- Upgrade strategy
38656 --
38657 l_actual_upg_option VARCHAR2(1);
38658 l_enc_upg_option VARCHAR2(1);
38659
38660 --
38661 BEGIN
38662 --
38663 IF g_log_enabled THEN
38664 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_69';
38665 END IF;
38666 --
38667 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38668
38669 trace
38670 (p_msg => 'BEGIN of AcctLineType_69'
38671 ,p_level => C_LEVEL_PROCEDURE
38672 ,p_module => l_log_module);
38673
38674 END IF;
38675 --
38676 l_component_type := 'AMB_JLT';
38677 l_component_code := 'RESERVE_PROJ_ENC';
38678 l_component_type_code := 'S';
38679 l_component_appl_id := 201;
38680 l_amb_context_code := 'DEFAULT';
38681 l_entity_code := 'PURCHASE_ORDER';
38682 l_event_class_code := 'PO_BURDEN';
38683 l_event_type_code := 'PO_BURDEN_ALL';
38684 l_line_definition_owner_code := 'S';
38685 l_line_definition_code := 'PO_BURDEN_ENC_ALL';
38686 --
38687 l_balance_type_code := 'E';
38688 l_segment := NULL;
38689 l_ccid := NULL;
38690 l_adr_transaction_coa_id := NULL;
38691 l_adr_accounting_coa_id := NULL;
38692 l_adr_flexfield_segment_code := NULL;
38693 l_adr_flex_value_set_id := NULL;
38694 l_adr_value_type_code := NULL;
38695 l_adr_value_combination_id := NULL;
38696 l_adr_value_segment_code := NULL;
38697
38698 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
38699 l_bflow_class_code := 'PA_BUDGET_ENC'; -- 4219869 Business Flow
38700 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
38701 l_budgetary_control_flag := 'Y';
38702
38703 l_bflow_applied_to_amt_idx := NULL; -- 5132302
38704 l_bflow_applied_to_amt := NULL; -- 5132302
38705 l_entered_amt_idx := NULL; -- 4262811
38706 l_accted_amt_idx := NULL; -- 4262811
38707 l_acc_rev_flag := NULL; -- 4262811
38708 l_accrual_line_num := NULL; -- 4262811
38709 l_tmp_amt := NULL; -- 4262811
38710 --
38711
38712 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
38713 l_balance_type_code <> 'B' THEN
38714 IF ((NVL(
38715 xla_ae_sources_pkg.GetSystemSourceChar(
38716 p_source_code => 'XLA_EVENT_TYPE_CODE'
38717 , p_source_type_code => 'Y'
38718 , p_source_application_id => 602
38719 ),'
38720 ') = 'PO_BURDEN_UNRESERVED' OR
38721 NVL(
38722 xla_ae_sources_pkg.GetSystemSourceChar(
38723 p_source_code => 'XLA_EVENT_TYPE_CODE'
38724 , p_source_type_code => 'Y'
38725 , p_source_application_id => 602
38726 ),'
38727 ') = 'PO_BURDEN_REJECTED' OR
38728 NVL(
38729 xla_ae_sources_pkg.GetSystemSourceChar(
38730 p_source_code => 'XLA_EVENT_TYPE_CODE'
38731 , p_source_type_code => 'Y'
38732 , p_source_application_id => 602
38733 ),'
38734 ') = 'PO_BURDEN_FINAL_CLOSED' OR
38735 NVL(
38736 xla_ae_sources_pkg.GetSystemSourceChar(
38737 p_source_code => 'XLA_EVENT_TYPE_CODE'
38738 , p_source_type_code => 'Y'
38739 , p_source_application_id => 602
38740 ),'
38741 ') = 'PO_BURDEN_INV_CANCELLED') AND
38742 (NVL(p_source_13,'
38743 ') = 'M')
38744 ) OR ((NVL(
38745 xla_ae_sources_pkg.GetSystemSourceChar(
38746 p_source_code => 'XLA_EVENT_TYPE_CODE'
38747 , p_source_type_code => 'Y'
38748 , p_source_application_id => 602
38749 ),'
38750 ') = 'PO_BURDEN_CANCELLED' OR
38751 NVL(
38752 xla_ae_sources_pkg.GetSystemSourceChar(
38753 p_source_code => 'XLA_EVENT_TYPE_CODE'
38754 , p_source_type_code => 'Y'
38755 , p_source_application_id => 602
38756 ),'
38757 ') = 'PO_BURDEN_CR_MEMO_CANCELLED' OR
38758 NVL(
38759 xla_ae_sources_pkg.GetSystemSourceChar(
38760 p_source_code => 'XLA_EVENT_TYPE_CODE'
38761 , p_source_type_code => 'Y'
38762 , p_source_application_id => 602
38763 ),'
38764 ') = 'PO_BURDEN_RESERVED') AND
38765 (NVL(p_source_13,'
38766 ') = 'B_REQ')
38767 ) THEN
38768
38769 --
38770 XLA_AE_LINES_PKG.SetNewLine;
38771
38772 p_balance_type_code := l_balance_type_code;
38773 -- set the flag so later we will know whether the gain loss line needs to be created
38774
38775 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
38776 p_actual_flag :='A';
38777 END IF;
38778
38779 --
38780 -- bulk performance
38781 --
38782 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
38783 p_header_num => 0); -- 4262811
38784 --
38785 -- set accounting line options
38786 --
38787 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
38788 p_natural_side_code => 'D'
38789 , p_gain_or_loss_flag => 'N'
38790 , p_gl_transfer_mode_code => 'S'
38791 , p_acct_entry_type_code => 'E'
38792 , p_switch_side_flag => 'N'
38793 , p_merge_duplicate_code => 'N'
38794 );
38795 --
38796 l_acc_rev_natural_side_code := 'C'; -- 4262811
38797 --
38798 --
38799 -- set accounting line type info
38800 --
38801 xla_ae_lines_pkg.SetAcctLineType
38802 (p_component_type => l_component_type
38803 ,p_event_type_code => l_event_type_code
38804 ,p_line_definition_owner_code => l_line_definition_owner_code
38805 ,p_line_definition_code => l_line_definition_code
38806 ,p_accounting_line_code => l_component_code
38807 ,p_accounting_line_type_code => l_component_type_code
38808 ,p_accounting_line_appl_id => l_component_appl_id
38809 ,p_amb_context_code => l_amb_context_code
38810 ,p_entity_code => l_entity_code
38811 ,p_event_class_code => l_event_class_code);
38812 --
38813 -- set accounting class
38814 --
38815 xla_ae_lines_pkg.SetAcctClass(
38816 p_accounting_class_code => 'PA_BUDGET_ENC'
38817 , p_ae_header_id => l_ae_header_id
38818 );
38819
38820 --
38821 -- set rounding class
38822 --
38823 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
38824 'PA_BUDGET_ENC';
38825
38826 --
38827 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
38828 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
38829 --
38830 -- bulk performance
38831 --
38832 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
38833
38834 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
38835 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
38836
38837 -- 4955764
38838 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38839 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
38840
38841 -- 4458381 Public Sector Enh
38842
38843 --
38844 -- set accounting attributes for the line type
38845 --
38846 l_entered_amt_idx := 27;
38847 l_accted_amt_idx := 29;
38848 l_bflow_applied_to_amt_idx := NULL; -- 5132302
38849 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
38850 l_rec_acct_attrs.array_char_value(1) := p_source_16;
38851 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
38852 l_rec_acct_attrs.array_num_value(2) := p_source_17;
38853 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
38854 l_rec_acct_attrs.array_char_value(3) := p_source_18;
38855 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
38856 l_rec_acct_attrs.array_char_value(4) := p_source_19;
38857 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
38858 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
38859 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
38860 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
38861 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
38862 l_rec_acct_attrs.array_num_value(7) := p_source_68;
38863 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
38864 l_rec_acct_attrs.array_char_value(8) := p_source_69;
38865 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
38866 l_rec_acct_attrs.array_char_value(9) := p_source_70;
38867 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
38868 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_71);
38869 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
38870 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_72);
38871 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
38872 l_rec_acct_attrs.array_char_value(12) := p_source_73;
38873 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
38874 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_29);
38875 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
38876 l_rec_acct_attrs.array_char_value(14) := p_source_6;
38877 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
38878 l_rec_acct_attrs.array_char_value(15) := p_source_30;
38879 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
38880 l_rec_acct_attrs.array_char_value(16) := p_source_31;
38881 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
38882 l_rec_acct_attrs.array_num_value(17) := p_source_32;
38883 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
38884 l_rec_acct_attrs.array_num_value(18) := p_source_33;
38885 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
38886 l_rec_acct_attrs.array_char_value(19) := p_source_34;
38887 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
38888 l_rec_acct_attrs.array_num_value(20) := p_source_35;
38889 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
38890 l_rec_acct_attrs.array_char_value(21) := p_source_36;
38891 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
38892 l_rec_acct_attrs.array_num_value(22) := p_source_37;
38893 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
38894 l_rec_acct_attrs.array_num_value(23) := p_source_33;
38895 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
38896 l_rec_acct_attrs.array_char_value(24) := p_source_34;
38897 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
38898 l_rec_acct_attrs.array_num_value(25) := p_source_35;
38899 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
38900 l_rec_acct_attrs.array_char_value(26) := p_source_38;
38901 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
38902 l_rec_acct_attrs.array_num_value(27) := p_source_33;
38903 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
38904 l_rec_acct_attrs.array_char_value(28) := p_source_34;
38905 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
38906 l_rec_acct_attrs.array_num_value(29) := p_source_35;
38907 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
38908 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_29);
38909 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
38910 l_rec_acct_attrs.array_char_value(31) := p_source_6;
38911 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
38912 l_rec_acct_attrs.array_char_value(32) := p_source_30;
38913 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
38914 l_rec_acct_attrs.array_num_value(33) := p_source_39;
38915 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
38916 l_rec_acct_attrs.array_num_value(34) := p_source_40;
38917
38918 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
38919 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
38920
38921 ---------------------------------------------------------------------------------------------------------------
38922 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
38923 ---------------------------------------------------------------------------------------------------------------
38924 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
38925
38926 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38927 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38928
38929 IF xla_accounting_cache_pkg.GetValueChar
38930 (p_source_code => 'LEDGER_CATEGORY_CODE'
38931 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
38932 AND l_bflow_method_code = 'PRIOR_ENTRY'
38933 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
38934 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
38935 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
38936 )
38937 THEN
38938 xla_ae_lines_pkg.BflowUpgEntry
38939 (p_business_method_code => l_bflow_method_code
38940 ,p_business_class_code => l_bflow_class_code
38941 ,p_balance_type => l_balance_type_code);
38942 ELSE
38943 NULL;
38944 XLA_AE_LINES_PKG.business_flow_validation(
38945 p_business_method_code => l_bflow_method_code
38946 ,p_business_class_code => l_bflow_class_code
38947 ,p_inherit_description_flag => l_inherit_desc_flag);
38948 END IF;
38949
38950 --
38951 -- call analytical criteria
38952 --
38953 -- Inherited Analytical Criteria for business flow method of Prior Entry.
38954 --
38955 -- call description
38956 --
38957
38958 xla_ae_lines_pkg.SetLineDescription(
38959 p_ae_header_id => l_ae_header_id
38960 ,p_description => Description_2 (
38961 p_application_id => p_application_id
38962 , p_ae_header_id => l_ae_header_id
38963 , p_source_3 => p_source_3
38964 , p_source_4 => p_source_4
38965 , p_source_5 => p_source_5
38966 , p_source_6 => p_source_6
38967 )
38968 );
38969
38970
38971 --
38972 -- call ADRs
38973 -- Bug 4922099
38974 --
38975 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38976 (NVL(l_actual_upg_option, 'N') = 'O') OR
38977 (NVL(l_enc_upg_option, 'N') = 'O')
38978 )
38979 THEN
38980 NULL;
38981 --
38982 --
38983
38984 --
38985 --
38986 END IF;
38987 --
38988 -- Bug 4922099
38989 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
38990 (NVL(l_enc_upg_option, 'N') = 'O')
38991 ) AND
38992 (l_bflow_method_code = 'PRIOR_ENTRY')
38993 )
38994 THEN
38995 IF
38996 --
38997 1 = 1
38998 --
38999 THEN
39000 xla_accounting_err_pkg.build_message
39001 (p_appli_s_name => 'XLA'
39002 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39003 ,p_token_1 => 'LINE_NUMBER'
39004 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
39005 ,p_token_2 => 'LINE_TYPE_NAME'
39006 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
39007 l_component_type
39008 ,l_component_code
39009 ,l_component_type_code
39010 ,l_component_appl_id
39011 ,l_amb_context_code
39012 ,l_entity_code
39013 ,l_event_class_code
39014 )
39015 ,p_token_3 => 'OWNER'
39016 ,p_value_3 => xla_lookups_pkg.get_meaning(
39017 p_lookup_type => 'XLA_OWNER_TYPE'
39018 ,p_lookup_code => l_component_type_code
39019 )
39020 ,p_token_4 => 'PRODUCT_NAME'
39021 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
39022 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
39023 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
39024 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
39025 ,p_ae_header_id => NULL
39026 );
39027
39028 IF (C_LEVEL_ERROR>= g_log_level) THEN
39029 trace
39030 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39031 ,p_level => C_LEVEL_ERROR
39032 ,p_module => l_log_module);
39033 END IF;
39034 END IF;
39035 END IF;
39036 --
39037 --
39038 ------------------------------------------------------------------------------------------------
39039 -- 4219869 Business Flow
39040 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
39041 -- Prior Entry. Currently, the following code is always generated.
39042 ------------------------------------------------------------------------------------------------
39043 -- No ValidateCurrentLine for business flow method of Prior Entry
39044
39045 ------------------------------------------------------------------------------------
39046 -- 4219869 Business Flow
39047 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
39048 ------------------------------------------------------------------------------------
39049 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39050
39051 ----------------------------------------------------------------------------------
39052 -- 4219869 Business Flow
39053 -- Update journal entry status -- Need to generate this within IF <condition>
39054 ----------------------------------------------------------------------------------
39055 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39056 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
39057 ,p_balance_type_code => l_balance_type_code
39058 );
39059
39060 -------------------------------------------------------------------------------------------
39061 -- 4262811 - Generate the Accrual Reversal lines
39062 -------------------------------------------------------------------------------------------
39063 BEGIN
39064 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
39065 (g_array_event(p_event_id).array_value_num('header_index'));
39066 IF l_acc_rev_flag IS NULL THEN
39067 l_acc_rev_flag := 'N';
39068 END IF;
39069 EXCEPTION
39070 WHEN OTHERS THEN
39071 l_acc_rev_flag := 'N';
39072 END;
39073 --
39074 IF (l_acc_rev_flag = 'Y') THEN
39075
39076 -- 4645092 ------------------------------------------------------------------------------
39077 -- To allow MPA report to determine if it should generate report process
39078 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
39079 ------------------------------------------------------------------------------------------
39080
39081 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
39082 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
39083
39084 --
39085 -- Update the line information that should be overwritten
39086 --
39087 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
39088 p_header_num => 1);
39089 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
39090
39091 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
39092
39093 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
39094 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
39095 END IF;
39096
39097 --
39098 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
39099 --
39100 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
39101 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
39102 ELSE
39103 ---------------------------------------------------------------------------------------------------
39104 -- 4262811a Switch Sign
39105 ---------------------------------------------------------------------------------------------------
39106 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
39107 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39108 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39109 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39110 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39111 -- 5132302
39112 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
39113 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39114
39115 END IF;
39116
39117 -- 4955764
39118 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39119 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
39120
39121
39122 XLA_AE_LINES_PKG.ValidateCurrentLine;
39123 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39124
39125 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39126 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
39127 ,p_balance_type_code => l_balance_type_code);
39128
39129 END IF;
39130
39131 -----------------------------------------------------------------------------------------
39132 -- 4262811 Multiperiod Accounting
39133 -----------------------------------------------------------------------------------------
39134 -- No MPA option is assigned.
39135
39136
39137 END IF;
39138 END IF;
39139 --
39140
39141 --
39142 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39143 trace
39144 (p_msg => 'END of AcctLineType_69'
39145 ,p_level => C_LEVEL_PROCEDURE
39146 ,p_module => l_log_module);
39147 END IF;
39148 --
39149 EXCEPTION
39150 WHEN xla_exceptions_pkg.application_exception THEN
39151 RAISE;
39152 WHEN OTHERS THEN
39153 xla_exceptions_pkg.raise_message
39154 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_69');
39155 END AcctLineType_69;
39156 --
39157
39158 ---------------------------------------
39159 --
39160 -- PRIVATE FUNCTION
39161 -- AcctLineType_70
39162 --
39163 ---------------------------------------
39164 PROCEDURE AcctLineType_70 (
39165 p_application_id IN NUMBER
39166 ,p_event_id IN NUMBER
39167 ,p_calculate_acctd_flag IN VARCHAR2
39168 ,p_calculate_g_l_flag IN VARCHAR2
39169 ,p_actual_flag IN OUT VARCHAR2
39170 ,p_balance_type_code OUT VARCHAR2
39171 ,p_gain_or_loss_ref OUT VARCHAR2
39172
39173 --Project Name
39174 , p_source_3 IN VARCHAR2
39175 --Task Name
39176 , p_source_4 IN VARCHAR2
39177 --Project Expenditure Organization Identifier
39178 , p_source_5 IN NUMBER
39179 --Expenditure Type
39180 , p_source_6 IN VARCHAR2
39181 --Main Or Backing Code
39182 , p_source_13 IN VARCHAR2
39183 --Accounting Reversal Flag
39184 , p_source_16 IN VARCHAR2
39185 --Allocated to Application Identifier
39186 , p_source_17 IN NUMBER
39187 --Allocated to Distribution Type
39188 , p_source_18 IN VARCHAR2
39189 --Allocated to Entity Code
39190 , p_source_19 IN VARCHAR2
39191 --Allocated to First Distribution Identifier
39192 , p_source_20 IN NUMBER
39193 --Allocated to First System Transaction Identifier
39194 , p_source_21 IN NUMBER
39195 --Allocated to Second Distribution Identifier
39196 , p_source_22 IN VARCHAR2
39197 --Line Type Name
39198 , p_source_30 IN VARCHAR2
39199 --Encumbrance Upgrade Credit Accounting Class
39200 , p_source_31 IN VARCHAR2
39201 --Encumbrance Upgrade Credit Account
39202 , p_source_32 IN NUMBER
39203 --Entered Amount
39204 , p_source_33 IN NUMBER
39205 --Currency Code
39206 , p_source_34 IN VARCHAR2
39207 --Accounted Amount
39208 , p_source_35 IN NUMBER
39209 --Encumbrance Upgrade Debit Accounting Class
39210 , p_source_36 IN VARCHAR2
39211 --Encumbrance Upgrade Debit Account
39212 , p_source_37 IN NUMBER
39213 --Use Encumbrances Upgrade Attributes Flag
39214 , p_source_38 IN VARCHAR2
39215 --Encumbrance Upgrade Credit Encumbrance Type
39216 , p_source_39 IN NUMBER
39217 --Encumbrance Upgrade Debit Encumbrance Type
39218 , p_source_40 IN NUMBER
39219 --Requisition Distribution Identifier
39220 , p_source_47 IN NUMBER
39221 --Project Encumbrance Applied to Application Identifier
39222 , p_source_68 IN NUMBER
39223 --Project Encumbrance Applied to Distribution Type
39224 , p_source_69 IN VARCHAR2
39225 --Project Encumbrance Applied to Entity Code
39226 , p_source_70 IN VARCHAR2
39227 --Project Encumbrance Applied to First Distribution Identifier
39228 , p_source_71 IN NUMBER
39229 --Project Encumbrance Applied to First System Transaction Identifier
39230 , p_source_72 IN NUMBER
39231 --Project Encumbrance Applied to Second Distribution Identifier
39232 , p_source_73 IN VARCHAR2
39233 --Document Distribution Type
39234 , p_source_74 IN VARCHAR2
39235 )
39236 IS
39237
39238 l_component_type VARCHAR2(80);
39239 l_component_code VARCHAR2(30);
39240 l_component_type_code VARCHAR2(1);
39241 l_component_appl_id INTEGER;
39242 l_amb_context_code VARCHAR2(30);
39243 l_entity_code VARCHAR2(30);
39244 l_event_class_code VARCHAR2(30);
39245 l_ae_header_id NUMBER;
39246 l_event_type_code VARCHAR2(30);
39247 l_line_definition_code VARCHAR2(30);
39248 l_line_definition_owner_code VARCHAR2(1);
39249 --
39250 -- adr variables
39251 l_segment VARCHAR2(30);
39252 l_ccid NUMBER;
39253 l_adr_transaction_coa_id NUMBER;
39254 l_adr_accounting_coa_id NUMBER;
39255 l_adr_flexfield_segment_code VARCHAR2(30);
39256 l_adr_flex_value_set_id NUMBER;
39257 l_adr_value_type_code VARCHAR2(30);
39258 l_adr_value_combination_id NUMBER;
39259 l_adr_value_segment_code VARCHAR2(30);
39260
39261 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
39262 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
39263 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
39264 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
39265
39266 -- 4262811 Variables ------------------------------------------------------------------------------------------
39267 l_entered_amt_idx NUMBER;
39268 l_accted_amt_idx NUMBER;
39269 l_acc_rev_flag VARCHAR2(1);
39270 l_accrual_line_num NUMBER;
39271 l_tmp_amt NUMBER;
39272 l_acc_rev_natural_side_code VARCHAR2(1);
39273
39274 l_num_entries NUMBER;
39275 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
39276 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
39277 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
39278 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
39279 l_recog_line_1 NUMBER;
39280 l_recog_line_2 NUMBER;
39281
39282 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
39283 l_bflow_applied_to_amt NUMBER; -- 5132302
39284 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
39285
39286 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
39287
39288 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
39289 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
39290
39291 ---------------------------------------------------------------------------------------------------------------
39292
39293
39294 --
39295 -- bulk performance
39296 --
39297 l_balance_type_code VARCHAR2(1);
39298 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
39299 l_log_module VARCHAR2(240);
39300
39301 --
39302 -- Upgrade strategy
39303 --
39304 l_actual_upg_option VARCHAR2(1);
39305 l_enc_upg_option VARCHAR2(1);
39306
39307 --
39308 BEGIN
39309 --
39310 IF g_log_enabled THEN
39311 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_70';
39312 END IF;
39313 --
39314 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39315
39316 trace
39317 (p_msg => 'BEGIN of AcctLineType_70'
39318 ,p_level => C_LEVEL_PROCEDURE
39319 ,p_module => l_log_module);
39320
39321 END IF;
39322 --
39323 l_component_type := 'AMB_JLT';
39324 l_component_code := 'RESERVE_PROJ_ENC';
39325 l_component_type_code := 'S';
39326 l_component_appl_id := 201;
39327 l_amb_context_code := 'DEFAULT';
39328 l_entity_code := 'REQUISITION';
39329 l_event_class_code := 'REQUISITION_BURDEN';
39330 l_event_type_code := 'REQUISITION_BURDEN_ALL';
39331 l_line_definition_owner_code := 'S';
39332 l_line_definition_code := 'REQ_BURDEN_ENC_ALL';
39333 --
39334 l_balance_type_code := 'E';
39335 l_segment := NULL;
39336 l_ccid := NULL;
39337 l_adr_transaction_coa_id := NULL;
39338 l_adr_accounting_coa_id := NULL;
39339 l_adr_flexfield_segment_code := NULL;
39340 l_adr_flex_value_set_id := NULL;
39341 l_adr_value_type_code := NULL;
39342 l_adr_value_combination_id := NULL;
39343 l_adr_value_segment_code := NULL;
39344
39345 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
39346 l_bflow_class_code := 'PA_BUDGET_ENC'; -- 4219869 Business Flow
39347 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
39348 l_budgetary_control_flag := 'Y';
39349
39350 l_bflow_applied_to_amt_idx := NULL; -- 5132302
39351 l_bflow_applied_to_amt := NULL; -- 5132302
39352 l_entered_amt_idx := NULL; -- 4262811
39353 l_accted_amt_idx := NULL; -- 4262811
39354 l_acc_rev_flag := NULL; -- 4262811
39355 l_accrual_line_num := NULL; -- 4262811
39356 l_tmp_amt := NULL; -- 4262811
39357 --
39358
39359 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
39360 l_balance_type_code <> 'B' THEN
39361 IF ((NVL(
39362 xla_ae_sources_pkg.GetSystemSourceChar(
39363 p_source_code => 'XLA_EVENT_TYPE_CODE'
39364 , p_source_type_code => 'Y'
39365 , p_source_application_id => 602
39366 ),'
39367 ') = 'REQ_BURDEN_ADJUSTED' AND
39368 NVL(p_source_74,'
39369 ') <> 'REQUISITION_ADJUSTED_NEW') OR
39370 NVL(
39371 xla_ae_sources_pkg.GetSystemSourceChar(
39372 p_source_code => 'XLA_EVENT_TYPE_CODE'
39373 , p_source_type_code => 'Y'
39374 , p_source_application_id => 602
39375 ),'
39376 ') = 'REQ_BURDEN_UNRESERVED' OR
39377 NVL(
39378 xla_ae_sources_pkg.GetSystemSourceChar(
39379 p_source_code => 'XLA_EVENT_TYPE_CODE'
39380 , p_source_type_code => 'Y'
39381 , p_source_application_id => 602
39382 ),'
39383 ') = 'REQ_BURDEN_REJECTED' OR
39384 NVL(
39385 xla_ae_sources_pkg.GetSystemSourceChar(
39386 p_source_code => 'XLA_EVENT_TYPE_CODE'
39387 , p_source_type_code => 'Y'
39388 , p_source_application_id => 602
39389 ),'
39390 ') = 'REQ_BURDEN_RETURNED' OR
39391 NVL(
39392 xla_ae_sources_pkg.GetSystemSourceChar(
39393 p_source_code => 'XLA_EVENT_TYPE_CODE'
39394 , p_source_type_code => 'Y'
39395 , p_source_application_id => 602
39396 ),'
39397 ') = 'REQ_BURDEN_FINAL_CLOSED') AND
39398 NVL(p_source_13,'
39399 ') = 'M'
39400 THEN
39401
39402 --
39403 XLA_AE_LINES_PKG.SetNewLine;
39404
39405 p_balance_type_code := l_balance_type_code;
39406 -- set the flag so later we will know whether the gain loss line needs to be created
39407
39408 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
39409 p_actual_flag :='A';
39410 END IF;
39411
39412 --
39413 -- bulk performance
39414 --
39415 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
39416 p_header_num => 0); -- 4262811
39417 --
39418 -- set accounting line options
39419 --
39420 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
39421 p_natural_side_code => 'D'
39422 , p_gain_or_loss_flag => 'N'
39423 , p_gl_transfer_mode_code => 'S'
39424 , p_acct_entry_type_code => 'E'
39425 , p_switch_side_flag => 'N'
39426 , p_merge_duplicate_code => 'N'
39427 );
39428 --
39429 l_acc_rev_natural_side_code := 'C'; -- 4262811
39430 --
39431 --
39432 -- set accounting line type info
39433 --
39434 xla_ae_lines_pkg.SetAcctLineType
39435 (p_component_type => l_component_type
39436 ,p_event_type_code => l_event_type_code
39437 ,p_line_definition_owner_code => l_line_definition_owner_code
39438 ,p_line_definition_code => l_line_definition_code
39439 ,p_accounting_line_code => l_component_code
39440 ,p_accounting_line_type_code => l_component_type_code
39441 ,p_accounting_line_appl_id => l_component_appl_id
39442 ,p_amb_context_code => l_amb_context_code
39443 ,p_entity_code => l_entity_code
39444 ,p_event_class_code => l_event_class_code);
39445 --
39446 -- set accounting class
39447 --
39448 xla_ae_lines_pkg.SetAcctClass(
39449 p_accounting_class_code => 'PA_BUDGET_ENC'
39450 , p_ae_header_id => l_ae_header_id
39451 );
39452
39453 --
39454 -- set rounding class
39455 --
39456 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
39457 'PA_BUDGET_ENC';
39458
39459 --
39460 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
39461 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
39462 --
39463 -- bulk performance
39464 --
39465 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
39466
39467 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
39468 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
39469
39470 -- 4955764
39471 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39472 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
39473
39474 -- 4458381 Public Sector Enh
39475
39476 --
39477 -- set accounting attributes for the line type
39478 --
39479 l_entered_amt_idx := 28;
39480 l_accted_amt_idx := 30;
39481 l_bflow_applied_to_amt_idx := NULL; -- 5132302
39482 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
39483 l_rec_acct_attrs.array_char_value(1) := p_source_16;
39484 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
39485 l_rec_acct_attrs.array_num_value(2) := p_source_17;
39486 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
39487 l_rec_acct_attrs.array_char_value(3) := p_source_18;
39488 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
39489 l_rec_acct_attrs.array_char_value(4) := p_source_19;
39490 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
39491 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
39492 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
39493 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
39494 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
39495 l_rec_acct_attrs.array_char_value(7) := p_source_22;
39496 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
39497 l_rec_acct_attrs.array_num_value(8) := p_source_68;
39498 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
39499 l_rec_acct_attrs.array_char_value(9) := p_source_69;
39500 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
39501 l_rec_acct_attrs.array_char_value(10) := p_source_70;
39502 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
39503 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_71);
39504 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
39505 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_72);
39506 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
39507 l_rec_acct_attrs.array_char_value(13) := p_source_73;
39508 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
39509 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_47);
39510 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
39511 l_rec_acct_attrs.array_char_value(15) := p_source_6;
39512 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
39513 l_rec_acct_attrs.array_char_value(16) := p_source_30;
39514 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
39515 l_rec_acct_attrs.array_char_value(17) := p_source_31;
39516 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
39517 l_rec_acct_attrs.array_num_value(18) := p_source_32;
39518 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
39519 l_rec_acct_attrs.array_num_value(19) := p_source_33;
39520 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
39521 l_rec_acct_attrs.array_char_value(20) := p_source_34;
39522 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
39523 l_rec_acct_attrs.array_num_value(21) := p_source_35;
39524 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
39525 l_rec_acct_attrs.array_char_value(22) := p_source_36;
39526 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
39527 l_rec_acct_attrs.array_num_value(23) := p_source_37;
39528 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
39529 l_rec_acct_attrs.array_num_value(24) := p_source_33;
39530 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
39531 l_rec_acct_attrs.array_char_value(25) := p_source_34;
39532 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
39533 l_rec_acct_attrs.array_num_value(26) := p_source_35;
39534 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
39535 l_rec_acct_attrs.array_char_value(27) := p_source_38;
39536 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
39537 l_rec_acct_attrs.array_num_value(28) := p_source_33;
39538 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
39539 l_rec_acct_attrs.array_char_value(29) := p_source_34;
39540 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
39541 l_rec_acct_attrs.array_num_value(30) := p_source_35;
39542 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
39543 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_47);
39544 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
39545 l_rec_acct_attrs.array_char_value(32) := p_source_6;
39546 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
39547 l_rec_acct_attrs.array_char_value(33) := p_source_30;
39548 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
39549 l_rec_acct_attrs.array_num_value(34) := p_source_39;
39550 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
39551 l_rec_acct_attrs.array_num_value(35) := p_source_40;
39552
39553 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
39554 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
39555
39556 ---------------------------------------------------------------------------------------------------------------
39557 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
39558 ---------------------------------------------------------------------------------------------------------------
39559 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
39560
39561 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39562 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39563
39564 IF xla_accounting_cache_pkg.GetValueChar
39565 (p_source_code => 'LEDGER_CATEGORY_CODE'
39566 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
39567 AND l_bflow_method_code = 'PRIOR_ENTRY'
39568 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
39569 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
39570 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
39571 )
39572 THEN
39573 xla_ae_lines_pkg.BflowUpgEntry
39574 (p_business_method_code => l_bflow_method_code
39575 ,p_business_class_code => l_bflow_class_code
39576 ,p_balance_type => l_balance_type_code);
39577 ELSE
39578 NULL;
39579 XLA_AE_LINES_PKG.business_flow_validation(
39580 p_business_method_code => l_bflow_method_code
39581 ,p_business_class_code => l_bflow_class_code
39582 ,p_inherit_description_flag => l_inherit_desc_flag);
39583 END IF;
39584
39585 --
39586 -- call analytical criteria
39587 --
39588 -- Inherited Analytical Criteria for business flow method of Prior Entry.
39589 --
39590 -- call description
39591 --
39592
39593 xla_ae_lines_pkg.SetLineDescription(
39594 p_ae_header_id => l_ae_header_id
39595 ,p_description => Description_2 (
39596 p_application_id => p_application_id
39597 , p_ae_header_id => l_ae_header_id
39598 , p_source_3 => p_source_3
39599 , p_source_4 => p_source_4
39600 , p_source_5 => p_source_5
39601 , p_source_6 => p_source_6
39602 )
39603 );
39604
39605
39606 --
39607 -- call ADRs
39608 -- Bug 4922099
39609 --
39610 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39611 (NVL(l_actual_upg_option, 'N') = 'O') OR
39612 (NVL(l_enc_upg_option, 'N') = 'O')
39613 )
39614 THEN
39615 NULL;
39616 --
39617 --
39618
39619 --
39620 --
39621 END IF;
39622 --
39623 -- Bug 4922099
39624 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
39625 (NVL(l_enc_upg_option, 'N') = 'O')
39626 ) AND
39627 (l_bflow_method_code = 'PRIOR_ENTRY')
39628 )
39629 THEN
39630 IF
39631 --
39632 1 = 1
39633 --
39634 THEN
39635 xla_accounting_err_pkg.build_message
39636 (p_appli_s_name => 'XLA'
39637 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39638 ,p_token_1 => 'LINE_NUMBER'
39639 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
39640 ,p_token_2 => 'LINE_TYPE_NAME'
39641 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
39642 l_component_type
39643 ,l_component_code
39644 ,l_component_type_code
39645 ,l_component_appl_id
39646 ,l_amb_context_code
39647 ,l_entity_code
39648 ,l_event_class_code
39649 )
39650 ,p_token_3 => 'OWNER'
39651 ,p_value_3 => xla_lookups_pkg.get_meaning(
39652 p_lookup_type => 'XLA_OWNER_TYPE'
39653 ,p_lookup_code => l_component_type_code
39654 )
39655 ,p_token_4 => 'PRODUCT_NAME'
39656 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
39657 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
39658 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
39659 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
39660 ,p_ae_header_id => NULL
39661 );
39662
39663 IF (C_LEVEL_ERROR>= g_log_level) THEN
39664 trace
39665 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39666 ,p_level => C_LEVEL_ERROR
39667 ,p_module => l_log_module);
39668 END IF;
39669 END IF;
39670 END IF;
39671 --
39672 --
39673 ------------------------------------------------------------------------------------------------
39674 -- 4219869 Business Flow
39675 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
39676 -- Prior Entry. Currently, the following code is always generated.
39677 ------------------------------------------------------------------------------------------------
39678 -- No ValidateCurrentLine for business flow method of Prior Entry
39679
39680 ------------------------------------------------------------------------------------
39681 -- 4219869 Business Flow
39682 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
39683 ------------------------------------------------------------------------------------
39684 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39685
39686 ----------------------------------------------------------------------------------
39687 -- 4219869 Business Flow
39688 -- Update journal entry status -- Need to generate this within IF <condition>
39689 ----------------------------------------------------------------------------------
39690 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39691 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
39692 ,p_balance_type_code => l_balance_type_code
39693 );
39694
39695 -------------------------------------------------------------------------------------------
39696 -- 4262811 - Generate the Accrual Reversal lines
39697 -------------------------------------------------------------------------------------------
39698 BEGIN
39699 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
39700 (g_array_event(p_event_id).array_value_num('header_index'));
39701 IF l_acc_rev_flag IS NULL THEN
39702 l_acc_rev_flag := 'N';
39703 END IF;
39704 EXCEPTION
39705 WHEN OTHERS THEN
39706 l_acc_rev_flag := 'N';
39707 END;
39708 --
39709 IF (l_acc_rev_flag = 'Y') THEN
39710
39711 -- 4645092 ------------------------------------------------------------------------------
39712 -- To allow MPA report to determine if it should generate report process
39713 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
39714 ------------------------------------------------------------------------------------------
39715
39716 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
39717 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
39718
39719 --
39720 -- Update the line information that should be overwritten
39721 --
39722 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
39723 p_header_num => 1);
39724 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
39725
39726 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
39727
39728 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
39729 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
39730 END IF;
39731
39732 --
39733 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
39734 --
39735 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
39736 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
39737 ELSE
39738 ---------------------------------------------------------------------------------------------------
39739 -- 4262811a Switch Sign
39740 ---------------------------------------------------------------------------------------------------
39741 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
39742 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39743 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39744 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39745 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39746 -- 5132302
39747 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
39748 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39749
39750 END IF;
39751
39752 -- 4955764
39753 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39754 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
39755
39756
39757 XLA_AE_LINES_PKG.ValidateCurrentLine;
39758 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39759
39760 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39761 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
39762 ,p_balance_type_code => l_balance_type_code);
39763
39764 END IF;
39765
39766 -----------------------------------------------------------------------------------------
39767 -- 4262811 Multiperiod Accounting
39768 -----------------------------------------------------------------------------------------
39769 -- No MPA option is assigned.
39770
39771
39772 END IF;
39773 END IF;
39774 --
39775
39776 --
39777 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39778 trace
39779 (p_msg => 'END of AcctLineType_70'
39780 ,p_level => C_LEVEL_PROCEDURE
39781 ,p_module => l_log_module);
39782 END IF;
39783 --
39784 EXCEPTION
39785 WHEN xla_exceptions_pkg.application_exception THEN
39786 RAISE;
39787 WHEN OTHERS THEN
39788 xla_exceptions_pkg.raise_message
39789 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_70');
39790 END AcctLineType_70;
39791 --
39792
39793 ---------------------------------------
39794 --
39795 -- PRIVATE FUNCTION
39796 -- AcctLineType_71
39797 --
39798 ---------------------------------------
39799 PROCEDURE AcctLineType_71 (
39800 p_application_id IN NUMBER
39801 ,p_event_id IN NUMBER
39802 ,p_calculate_acctd_flag IN VARCHAR2
39803 ,p_calculate_g_l_flag IN VARCHAR2
39804 ,p_actual_flag IN OUT VARCHAR2
39805 ,p_balance_type_code OUT VARCHAR2
39806 ,p_gain_or_loss_ref OUT VARCHAR2
39807
39808 --Journal entry Line Description
39809 , p_source_7 IN VARCHAR2
39810 --Budget Account
39811 , p_source_11 IN NUMBER
39812 --Main Or Backing Code
39813 , p_source_13 IN VARCHAR2
39814 --Accounting Reversal Flag
39815 , p_source_16 IN VARCHAR2
39816 --PO Distribution Identifier
39817 , p_source_29 IN NUMBER
39818 --Entered Amount
39819 , p_source_33 IN NUMBER
39820 --Currency Code
39821 , p_source_34 IN VARCHAR2
39822 --Accounted Amount
39823 , p_source_35 IN NUMBER
39824 --Applied To Application Identifier
39825 , p_source_53 IN NUMBER
39826 --Applied To Distribution Link Type
39827 , p_source_54 IN VARCHAR2
39828 --Applied To Entity Code
39829 , p_source_55 IN VARCHAR2
39830 --Applied To Distribution Identifier 1
39831 , p_source_56 IN NUMBER
39832 --Applied To Header Identifier 1
39833 , p_source_57 IN NUMBER
39834 --Distribution Link Type
39835 , p_source_58 IN VARCHAR2
39836 --PO Encumbrance Upgrade Option
39837 , p_source_59 IN VARCHAR2
39838 --JFMIP Reference
39839 , p_source_60 IN VARCHAR2
39840 --PO Upgrade Encumbrance Type Identifier
39841 , p_source_61 IN NUMBER
39842 --Currency Conversion Date
39843 , p_source_62 IN DATE
39844 --Currency Conversion Rate
39845 , p_source_63 IN NUMBER
39846 --Currency Conversion Type
39847 , p_source_64 IN VARCHAR2
39848 --PO Release Identifier
39849 , p_source_66 IN NUMBER
39850 --Adjustment Status
39851 , p_source_75 IN VARCHAR2
39852 )
39853 IS
39854
39855 l_component_type VARCHAR2(80);
39856 l_component_code VARCHAR2(30);
39857 l_component_type_code VARCHAR2(1);
39858 l_component_appl_id INTEGER;
39859 l_amb_context_code VARCHAR2(30);
39860 l_entity_code VARCHAR2(30);
39861 l_event_class_code VARCHAR2(30);
39862 l_ae_header_id NUMBER;
39863 l_event_type_code VARCHAR2(30);
39864 l_line_definition_code VARCHAR2(30);
39865 l_line_definition_owner_code VARCHAR2(1);
39866 --
39867 -- adr variables
39868 l_segment VARCHAR2(30);
39869 l_ccid NUMBER;
39870 l_adr_transaction_coa_id NUMBER;
39871 l_adr_accounting_coa_id NUMBER;
39872 l_adr_flexfield_segment_code VARCHAR2(30);
39873 l_adr_flex_value_set_id NUMBER;
39874 l_adr_value_type_code VARCHAR2(30);
39875 l_adr_value_combination_id NUMBER;
39876 l_adr_value_segment_code VARCHAR2(30);
39877
39878 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
39879 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
39880 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
39881 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
39882
39883 -- 4262811 Variables ------------------------------------------------------------------------------------------
39884 l_entered_amt_idx NUMBER;
39885 l_accted_amt_idx NUMBER;
39886 l_acc_rev_flag VARCHAR2(1);
39887 l_accrual_line_num NUMBER;
39888 l_tmp_amt NUMBER;
39889 l_acc_rev_natural_side_code VARCHAR2(1);
39890
39891 l_num_entries NUMBER;
39892 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
39893 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
39894 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
39895 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
39896 l_recog_line_1 NUMBER;
39897 l_recog_line_2 NUMBER;
39898
39899 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
39900 l_bflow_applied_to_amt NUMBER; -- 5132302
39901 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
39902
39903 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
39904
39905 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
39906 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
39907
39908 ---------------------------------------------------------------------------------------------------------------
39909
39910
39911 --
39912 -- bulk performance
39913 --
39914 l_balance_type_code VARCHAR2(1);
39915 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
39916 l_log_module VARCHAR2(240);
39917
39918 --
39919 -- Upgrade strategy
39920 --
39921 l_actual_upg_option VARCHAR2(1);
39922 l_enc_upg_option VARCHAR2(1);
39923
39924 --
39925 BEGIN
39926 --
39927 IF g_log_enabled THEN
39928 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_71';
39929 END IF;
39930 --
39931 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39932
39933 trace
39934 (p_msg => 'BEGIN of AcctLineType_71'
39935 ,p_level => C_LEVEL_PROCEDURE
39936 ,p_module => l_log_module);
39937
39938 END IF;
39939 --
39940 l_component_type := 'AMB_JLT';
39941 l_component_code := 'RESERVE_RELEASE_ENCUMBRANCE';
39942 l_component_type_code := 'S';
39943 l_component_appl_id := 201;
39944 l_amb_context_code := 'DEFAULT';
39945 l_entity_code := 'RELEASE';
39946 l_event_class_code := 'RELEASE';
39947 l_event_type_code := 'RELEASE_ALL';
39948 l_line_definition_owner_code := 'S';
39949 l_line_definition_code := 'RELEASE_ENC_ALL';
39950 --
39951 l_balance_type_code := 'E';
39952 l_segment := NULL;
39953 l_ccid := NULL;
39954 l_adr_transaction_coa_id := NULL;
39955 l_adr_accounting_coa_id := NULL;
39956 l_adr_flexfield_segment_code := NULL;
39957 l_adr_flex_value_set_id := NULL;
39958 l_adr_value_type_code := NULL;
39959 l_adr_value_combination_id := NULL;
39960 l_adr_value_segment_code := NULL;
39961
39962 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
39963 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
39964 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
39965 l_budgetary_control_flag := 'Y';
39966
39967 l_bflow_applied_to_amt_idx := NULL; -- 5132302
39968 l_bflow_applied_to_amt := NULL; -- 5132302
39969 l_entered_amt_idx := NULL; -- 4262811
39970 l_accted_amt_idx := NULL; -- 4262811
39971 l_acc_rev_flag := NULL; -- 4262811
39972 l_accrual_line_num := NULL; -- 4262811
39973 l_tmp_amt := NULL; -- 4262811
39974 --
39975
39976 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
39977 l_balance_type_code <> 'B' THEN
39978 IF (NVL(
39979 xla_ae_sources_pkg.GetSystemSourceChar(
39980 p_source_code => 'XLA_EVENT_TYPE_CODE'
39981 , p_source_type_code => 'Y'
39982 , p_source_application_id => 602
39983 ),'
39984 ') = 'RELEASE_RESERVED' OR
39985 (NVL(
39986 xla_ae_sources_pkg.GetSystemSourceChar(
39987 p_source_code => 'XLA_EVENT_TYPE_CODE'
39988 , p_source_type_code => 'Y'
39989 , p_source_application_id => 602
39990 ),'
39991 ') = 'RELEASE_ADJUSTED' AND
39992 NVL(p_source_75,'
39993 ') = 'NEW')
39994 ) AND NVL(p_source_13,'
39995 ') = 'M'
39996 THEN
39997
39998 --
39999 XLA_AE_LINES_PKG.SetNewLine;
40000
40001 p_balance_type_code := l_balance_type_code;
40002 -- set the flag so later we will know whether the gain loss line needs to be created
40003
40004 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
40005 p_actual_flag :='A';
40006 END IF;
40007
40008 --
40009 -- bulk performance
40010 --
40011 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
40012 p_header_num => 0); -- 4262811
40013 --
40014 -- set accounting line options
40015 --
40016 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
40017 p_natural_side_code => 'D'
40018 , p_gain_or_loss_flag => 'N'
40019 , p_gl_transfer_mode_code => 'S'
40020 , p_acct_entry_type_code => 'E'
40021 , p_switch_side_flag => 'N'
40022 , p_merge_duplicate_code => 'N'
40023 );
40024 --
40025 l_acc_rev_natural_side_code := 'C'; -- 4262811
40026 --
40027 --
40028 -- set accounting line type info
40029 --
40030 xla_ae_lines_pkg.SetAcctLineType
40031 (p_component_type => l_component_type
40032 ,p_event_type_code => l_event_type_code
40033 ,p_line_definition_owner_code => l_line_definition_owner_code
40034 ,p_line_definition_code => l_line_definition_code
40035 ,p_accounting_line_code => l_component_code
40036 ,p_accounting_line_type_code => l_component_type_code
40037 ,p_accounting_line_appl_id => l_component_appl_id
40038 ,p_amb_context_code => l_amb_context_code
40039 ,p_entity_code => l_entity_code
40040 ,p_event_class_code => l_event_class_code);
40041 --
40042 -- set accounting class
40043 --
40044 xla_ae_lines_pkg.SetAcctClass(
40045 p_accounting_class_code => 'PURCHASE_ORDER'
40046 , p_ae_header_id => l_ae_header_id
40047 );
40048
40049 --
40050 -- set rounding class
40051 --
40052 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
40053 'PURCHASE_ORDER';
40054
40055 --
40056 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
40057 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
40058 --
40059 -- bulk performance
40060 --
40061 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
40062
40063 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
40064 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
40065
40066 -- 4955764
40067 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40068 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
40069
40070 -- 4458381 Public Sector Enh
40071 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1001;
40072 --
40073 -- set accounting attributes for the line type
40074 --
40075 l_entered_amt_idx := 23;
40076 l_accted_amt_idx := 28;
40077 l_bflow_applied_to_amt_idx := NULL; -- 5132302
40078 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
40079 l_rec_acct_attrs.array_char_value(1) := p_source_16;
40080 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
40081 l_rec_acct_attrs.array_num_value(2) :=
40082 xla_ae_sources_pkg.GetSystemSourceNum(
40083 p_source_code => 'XLA_EVENT_APPL_ID'
40084 , p_source_type_code => 'Y'
40085 , p_source_application_id => 602
40086 );
40087 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
40088 l_rec_acct_attrs.array_char_value(3) := p_source_58;
40089 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
40090 l_rec_acct_attrs.array_char_value(4) :=
40091 xla_ae_sources_pkg.GetSystemSourceChar(
40092 p_source_code => 'XLA_ENTITY_CODE'
40093 , p_source_type_code => 'Y'
40094 , p_source_application_id => 602
40095 );
40096 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
40097 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_29);
40098 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
40099 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_66);
40100 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
40101 l_rec_acct_attrs.array_num_value(7) := p_source_53;
40102 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
40103 l_rec_acct_attrs.array_char_value(8) := p_source_54;
40104 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
40105 l_rec_acct_attrs.array_char_value(9) := p_source_55;
40106 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
40107 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_56);
40108 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
40109 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_57);
40110 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
40111 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_29);
40112 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
40113 l_rec_acct_attrs.array_char_value(13) := p_source_58;
40114 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
40115 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_11);
40116 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
40117 l_rec_acct_attrs.array_num_value(15) := p_source_33;
40118 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
40119 l_rec_acct_attrs.array_char_value(16) := p_source_34;
40120 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
40121 l_rec_acct_attrs.array_num_value(17) := p_source_35;
40122 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
40123 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_11);
40124 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
40125 l_rec_acct_attrs.array_num_value(19) := p_source_33;
40126 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
40127 l_rec_acct_attrs.array_char_value(20) := p_source_34;
40128 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
40129 l_rec_acct_attrs.array_num_value(21) := p_source_35;
40130 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
40131 l_rec_acct_attrs.array_char_value(22) := p_source_59;
40132 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
40133 l_rec_acct_attrs.array_num_value(23) := p_source_33;
40134 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
40135 l_rec_acct_attrs.array_char_value(24) := p_source_34;
40136 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
40137 l_rec_acct_attrs.array_date_value(25) := p_source_62;
40138 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
40139 l_rec_acct_attrs.array_num_value(26) := p_source_63;
40140 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
40141 l_rec_acct_attrs.array_char_value(27) := p_source_64;
40142 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
40143 l_rec_acct_attrs.array_num_value(28) := p_source_35;
40144 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
40145 l_rec_acct_attrs.array_char_value(29) := p_source_60;
40146 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
40147 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_56);
40148 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
40149 l_rec_acct_attrs.array_char_value(31) := p_source_54;
40150 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
40151 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_66);
40152 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
40153 l_rec_acct_attrs.array_num_value(33) := p_source_61;
40154 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
40155 l_rec_acct_attrs.array_num_value(34) := p_source_61;
40156
40157 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
40158 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
40159
40160 ---------------------------------------------------------------------------------------------------------------
40161 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
40162 ---------------------------------------------------------------------------------------------------------------
40163 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
40164
40165 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40166 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40167
40168 IF xla_accounting_cache_pkg.GetValueChar
40169 (p_source_code => 'LEDGER_CATEGORY_CODE'
40170 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
40171 AND l_bflow_method_code = 'PRIOR_ENTRY'
40172 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
40173 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
40174 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
40175 )
40176 THEN
40177 xla_ae_lines_pkg.BflowUpgEntry
40178 (p_business_method_code => l_bflow_method_code
40179 ,p_business_class_code => l_bflow_class_code
40180 ,p_balance_type => l_balance_type_code);
40181 ELSE
40182 NULL;
40183 -- No business flow processing for business flow method of NONE.
40184 END IF;
40185
40186 --
40187 -- call analytical criteria
40188 --
40189
40190 --
40191 -- call description
40192 --
40193
40194 xla_ae_lines_pkg.SetLineDescription(
40195 p_ae_header_id => l_ae_header_id
40196 ,p_description => Description_3 (
40197 p_application_id => p_application_id
40198 , p_ae_header_id => l_ae_header_id
40199 , p_source_7 => p_source_7
40200 )
40201 );
40202
40203
40204 --
40205 -- call ADRs
40206 -- Bug 4922099
40207 --
40208 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40209 (NVL(l_actual_upg_option, 'N') = 'O') OR
40210 (NVL(l_enc_upg_option, 'N') = 'O')
40211 )
40212 THEN
40213 NULL;
40214 --
40215 --
40216
40217 l_ccid := AcctDerRule_8(
40218 p_application_id => p_application_id
40219 , p_ae_header_id => l_ae_header_id
40220 , p_source_11 => p_source_11
40221 , x_transaction_coa_id => l_adr_transaction_coa_id
40222 , x_accounting_coa_id => l_adr_accounting_coa_id
40223 , x_value_type_code => l_adr_value_type_code
40224 , p_side => 'NA'
40225 );
40226
40227 xla_ae_lines_pkg.set_ccid(
40228 p_code_combination_id => l_ccid
40229 , p_value_type_code => l_adr_value_type_code
40230 , p_transaction_coa_id => l_adr_transaction_coa_id
40231 , p_accounting_coa_id => l_adr_accounting_coa_id
40232 , p_adr_code => 'PURCHASING_ENCUMBRANCE_ADR'
40233 , p_adr_type_code => 'S'
40234 , p_component_type => l_component_type
40235 , p_component_code => l_component_code
40236 , p_component_type_code => l_component_type_code
40237 , p_component_appl_id => l_component_appl_id
40238 , p_amb_context_code => l_amb_context_code
40239 , p_side => 'NA'
40240 );
40241
40242
40243 --
40244 --
40245 END IF;
40246 --
40247 -- Bug 4922099
40248 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
40249 (NVL(l_enc_upg_option, 'N') = 'O')
40250 ) AND
40251 (l_bflow_method_code = 'PRIOR_ENTRY')
40252 )
40253 THEN
40254 IF
40255 --
40256 1 = 2
40257 --
40258 THEN
40259 xla_accounting_err_pkg.build_message
40260 (p_appli_s_name => 'XLA'
40261 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40262 ,p_token_1 => 'LINE_NUMBER'
40263 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
40264 ,p_token_2 => 'LINE_TYPE_NAME'
40265 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
40266 l_component_type
40267 ,l_component_code
40268 ,l_component_type_code
40269 ,l_component_appl_id
40270 ,l_amb_context_code
40271 ,l_entity_code
40272 ,l_event_class_code
40273 )
40274 ,p_token_3 => 'OWNER'
40275 ,p_value_3 => xla_lookups_pkg.get_meaning(
40276 p_lookup_type => 'XLA_OWNER_TYPE'
40277 ,p_lookup_code => l_component_type_code
40278 )
40279 ,p_token_4 => 'PRODUCT_NAME'
40280 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
40281 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
40282 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
40283 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
40284 ,p_ae_header_id => NULL
40285 );
40286
40287 IF (C_LEVEL_ERROR>= g_log_level) THEN
40288 trace
40289 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40290 ,p_level => C_LEVEL_ERROR
40291 ,p_module => l_log_module);
40292 END IF;
40293 END IF;
40294 END IF;
40295 --
40296 --
40297 ------------------------------------------------------------------------------------------------
40298 -- 4219869 Business Flow
40299 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
40300 -- Prior Entry. Currently, the following code is always generated.
40301 ------------------------------------------------------------------------------------------------
40302 XLA_AE_LINES_PKG.ValidateCurrentLine;
40303
40304 ------------------------------------------------------------------------------------
40305 -- 4219869 Business Flow
40306 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
40307 ------------------------------------------------------------------------------------
40308 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40309
40310 ----------------------------------------------------------------------------------
40311 -- 4219869 Business Flow
40312 -- Update journal entry status -- Need to generate this within IF <condition>
40313 ----------------------------------------------------------------------------------
40314 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40315 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
40316 ,p_balance_type_code => l_balance_type_code
40317 );
40318
40319 -------------------------------------------------------------------------------------------
40320 -- 4262811 - Generate the Accrual Reversal lines
40321 -------------------------------------------------------------------------------------------
40322 BEGIN
40323 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
40324 (g_array_event(p_event_id).array_value_num('header_index'));
40325 IF l_acc_rev_flag IS NULL THEN
40326 l_acc_rev_flag := 'N';
40327 END IF;
40328 EXCEPTION
40329 WHEN OTHERS THEN
40330 l_acc_rev_flag := 'N';
40331 END;
40332 --
40333 IF (l_acc_rev_flag = 'Y') THEN
40334
40335 -- 4645092 ------------------------------------------------------------------------------
40336 -- To allow MPA report to determine if it should generate report process
40337 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
40338 ------------------------------------------------------------------------------------------
40339
40340 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
40341 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
40342
40343 --
40344 -- Update the line information that should be overwritten
40345 --
40346 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
40347 p_header_num => 1);
40348 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
40349
40350 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
40351
40352 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
40353 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
40354 END IF;
40355
40356 --
40357 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
40358 --
40359 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
40360 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
40361 ELSE
40362 ---------------------------------------------------------------------------------------------------
40363 -- 4262811a Switch Sign
40364 ---------------------------------------------------------------------------------------------------
40365 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
40366 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40367 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40368 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40369 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40370 -- 5132302
40371 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
40372 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40373
40374 END IF;
40375
40376 -- 4955764
40377 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40378 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
40379
40380
40381 XLA_AE_LINES_PKG.ValidateCurrentLine;
40382 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40383
40384 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40385 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
40386 ,p_balance_type_code => l_balance_type_code);
40387
40388 END IF;
40389
40390 -----------------------------------------------------------------------------------------
40391 -- 4262811 Multiperiod Accounting
40392 -----------------------------------------------------------------------------------------
40393 -- No MPA option is assigned.
40394
40395
40396 END IF;
40397 END IF;
40398 --
40399
40400 --
40401 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40402 trace
40403 (p_msg => 'END of AcctLineType_71'
40404 ,p_level => C_LEVEL_PROCEDURE
40405 ,p_module => l_log_module);
40406 END IF;
40407 --
40408 EXCEPTION
40409 WHEN xla_exceptions_pkg.application_exception THEN
40410 RAISE;
40411 WHEN OTHERS THEN
40412 xla_exceptions_pkg.raise_message
40413 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_71');
40414 END AcctLineType_71;
40415 --
40416
40417 ---------------------------------------
40418 --
40419 -- PRIVATE FUNCTION
40420 -- AcctLineType_72
40421 --
40422 ---------------------------------------
40423 PROCEDURE AcctLineType_72 (
40424 p_application_id IN NUMBER
40425 ,p_event_id IN NUMBER
40426 ,p_calculate_acctd_flag IN VARCHAR2
40427 ,p_calculate_g_l_flag IN VARCHAR2
40428 ,p_actual_flag IN OUT VARCHAR2
40429 ,p_balance_type_code OUT VARCHAR2
40430 ,p_gain_or_loss_ref OUT VARCHAR2
40431
40432 --Journal entry Line Description
40433 , p_source_7 IN VARCHAR2
40434 --Budget Account
40435 , p_source_11 IN NUMBER
40436 --Main Or Backing Code
40437 , p_source_13 IN VARCHAR2
40438 --Accounting Reversal Flag
40439 , p_source_16 IN VARCHAR2
40440 --Entered Amount
40441 , p_source_33 IN NUMBER
40442 --Currency Code
40443 , p_source_34 IN VARCHAR2
40444 --Accounted Amount
40445 , p_source_35 IN NUMBER
40446 --Requisition Distribution Identifier
40447 , p_source_47 IN NUMBER
40448 --Applied To Application Identifier
40449 , p_source_53 IN NUMBER
40450 --Applied To Distribution Link Type
40451 , p_source_54 IN VARCHAR2
40452 --Applied To Entity Code
40453 , p_source_55 IN VARCHAR2
40454 --Applied To Distribution Identifier 1
40455 , p_source_56 IN NUMBER
40456 --Applied To Header Identifier 1
40457 , p_source_57 IN NUMBER
40458 --Distribution Link Type
40459 , p_source_58 IN VARCHAR2
40460 --JFMIP Reference
40461 , p_source_60 IN VARCHAR2
40462 --Currency Conversion Date
40463 , p_source_62 IN DATE
40464 --Currency Conversion Rate
40465 , p_source_63 IN NUMBER
40466 --Currency Conversion Type
40467 , p_source_64 IN VARCHAR2
40468 --Adjustment Status
40469 , p_source_75 IN VARCHAR2
40470 --Requisition Identifier
40471 , p_source_76 IN NUMBER
40472 --Requisition Encumbrance Upgrade Option
40473 , p_source_77 IN VARCHAR2
40474 --Requisition Upgrade Encumbrance Type Identifier
40475 , p_source_78 IN NUMBER
40476 )
40477 IS
40478
40479 l_component_type VARCHAR2(80);
40480 l_component_code VARCHAR2(30);
40481 l_component_type_code VARCHAR2(1);
40482 l_component_appl_id INTEGER;
40483 l_amb_context_code VARCHAR2(30);
40484 l_entity_code VARCHAR2(30);
40485 l_event_class_code VARCHAR2(30);
40486 l_ae_header_id NUMBER;
40487 l_event_type_code VARCHAR2(30);
40488 l_line_definition_code VARCHAR2(30);
40489 l_line_definition_owner_code VARCHAR2(1);
40490 --
40491 -- adr variables
40492 l_segment VARCHAR2(30);
40493 l_ccid NUMBER;
40494 l_adr_transaction_coa_id NUMBER;
40495 l_adr_accounting_coa_id NUMBER;
40496 l_adr_flexfield_segment_code VARCHAR2(30);
40497 l_adr_flex_value_set_id NUMBER;
40498 l_adr_value_type_code VARCHAR2(30);
40499 l_adr_value_combination_id NUMBER;
40500 l_adr_value_segment_code VARCHAR2(30);
40501
40502 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
40503 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
40504 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
40505 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
40506
40507 -- 4262811 Variables ------------------------------------------------------------------------------------------
40508 l_entered_amt_idx NUMBER;
40509 l_accted_amt_idx NUMBER;
40510 l_acc_rev_flag VARCHAR2(1);
40511 l_accrual_line_num NUMBER;
40512 l_tmp_amt NUMBER;
40513 l_acc_rev_natural_side_code VARCHAR2(1);
40514
40515 l_num_entries NUMBER;
40516 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
40517 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
40518 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
40519 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
40520 l_recog_line_1 NUMBER;
40521 l_recog_line_2 NUMBER;
40522
40523 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
40524 l_bflow_applied_to_amt NUMBER; -- 5132302
40525 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
40526
40527 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
40528
40529 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
40530 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
40531
40532 ---------------------------------------------------------------------------------------------------------------
40533
40534
40535 --
40536 -- bulk performance
40537 --
40538 l_balance_type_code VARCHAR2(1);
40539 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
40540 l_log_module VARCHAR2(240);
40541
40542 --
40543 -- Upgrade strategy
40544 --
40545 l_actual_upg_option VARCHAR2(1);
40546 l_enc_upg_option VARCHAR2(1);
40547
40548 --
40549 BEGIN
40550 --
40551 IF g_log_enabled THEN
40552 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_72';
40553 END IF;
40554 --
40555 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40556
40557 trace
40558 (p_msg => 'BEGIN of AcctLineType_72'
40559 ,p_level => C_LEVEL_PROCEDURE
40560 ,p_module => l_log_module);
40561
40562 END IF;
40563 --
40564 l_component_type := 'AMB_JLT';
40565 l_component_code := 'RESERVE_REQ_ENCUMBRANCE';
40566 l_component_type_code := 'S';
40567 l_component_appl_id := 201;
40568 l_amb_context_code := 'DEFAULT';
40569 l_entity_code := 'REQUISITION';
40570 l_event_class_code := 'REQUISITION';
40571 l_event_type_code := 'REQUISITION_ALL';
40572 l_line_definition_owner_code := 'S';
40573 l_line_definition_code := 'REQ_ENC_ALL';
40574 --
40575 l_balance_type_code := 'E';
40576 l_segment := NULL;
40577 l_ccid := NULL;
40578 l_adr_transaction_coa_id := NULL;
40579 l_adr_accounting_coa_id := NULL;
40580 l_adr_flexfield_segment_code := NULL;
40581 l_adr_flex_value_set_id := NULL;
40582 l_adr_value_type_code := NULL;
40583 l_adr_value_combination_id := NULL;
40584 l_adr_value_segment_code := NULL;
40585
40586 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
40587 l_bflow_class_code := 'REQ_ENCUMBRANCE'; -- 4219869 Business Flow
40588 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
40589 l_budgetary_control_flag := 'Y';
40590
40591 l_bflow_applied_to_amt_idx := NULL; -- 5132302
40592 l_bflow_applied_to_amt := NULL; -- 5132302
40593 l_entered_amt_idx := NULL; -- 4262811
40594 l_accted_amt_idx := NULL; -- 4262811
40595 l_acc_rev_flag := NULL; -- 4262811
40596 l_accrual_line_num := NULL; -- 4262811
40597 l_tmp_amt := NULL; -- 4262811
40598 --
40599
40600 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
40601 l_balance_type_code <> 'B' THEN
40602 IF (NVL(
40603 xla_ae_sources_pkg.GetSystemSourceChar(
40604 p_source_code => 'XLA_EVENT_TYPE_CODE'
40605 , p_source_type_code => 'Y'
40606 , p_source_application_id => 602
40607 ),'
40608 ') = 'REQ_RESERVED' OR
40609 NVL(
40610 xla_ae_sources_pkg.GetSystemSourceChar(
40611 p_source_code => 'XLA_EVENT_TYPE_CODE'
40612 , p_source_type_code => 'Y'
40613 , p_source_application_id => 602
40614 ),'
40615 ') = 'REQ_ADJUSTED' AND
40616 NVL(p_source_75,'
40617 ') = 'NEW') AND
40618 NVL(p_source_13,'
40619 ') = 'M'
40620 THEN
40621
40622 --
40623 XLA_AE_LINES_PKG.SetNewLine;
40624
40625 p_balance_type_code := l_balance_type_code;
40626 -- set the flag so later we will know whether the gain loss line needs to be created
40627
40628 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
40629 p_actual_flag :='A';
40630 END IF;
40631
40632 --
40633 -- bulk performance
40634 --
40635 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
40636 p_header_num => 0); -- 4262811
40637 --
40638 -- set accounting line options
40639 --
40640 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
40641 p_natural_side_code => 'D'
40642 , p_gain_or_loss_flag => 'N'
40643 , p_gl_transfer_mode_code => 'S'
40644 , p_acct_entry_type_code => 'E'
40645 , p_switch_side_flag => 'N'
40646 , p_merge_duplicate_code => 'N'
40647 );
40648 --
40649 l_acc_rev_natural_side_code := 'C'; -- 4262811
40650 --
40651 --
40652 -- set accounting line type info
40653 --
40654 xla_ae_lines_pkg.SetAcctLineType
40655 (p_component_type => l_component_type
40656 ,p_event_type_code => l_event_type_code
40657 ,p_line_definition_owner_code => l_line_definition_owner_code
40658 ,p_line_definition_code => l_line_definition_code
40659 ,p_accounting_line_code => l_component_code
40660 ,p_accounting_line_type_code => l_component_type_code
40661 ,p_accounting_line_appl_id => l_component_appl_id
40662 ,p_amb_context_code => l_amb_context_code
40663 ,p_entity_code => l_entity_code
40664 ,p_event_class_code => l_event_class_code);
40665 --
40666 -- set accounting class
40667 --
40668 xla_ae_lines_pkg.SetAcctClass(
40669 p_accounting_class_code => 'REQUISITION'
40670 , p_ae_header_id => l_ae_header_id
40671 );
40672
40673 --
40674 -- set rounding class
40675 --
40676 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
40677 'REQUISITION';
40678
40679 --
40680 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
40681 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
40682 --
40683 -- bulk performance
40684 --
40685 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
40686
40687 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
40688 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
40689
40690 -- 4955764
40691 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40692 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
40693
40694 -- 4458381 Public Sector Enh
40695 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1000;
40696 --
40697 -- set accounting attributes for the line type
40698 --
40699 l_entered_amt_idx := 23;
40700 l_accted_amt_idx := 28;
40701 l_bflow_applied_to_amt_idx := NULL; -- 5132302
40702 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
40703 l_rec_acct_attrs.array_char_value(1) := p_source_16;
40704 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
40705 l_rec_acct_attrs.array_num_value(2) :=
40706 xla_ae_sources_pkg.GetSystemSourceNum(
40707 p_source_code => 'XLA_EVENT_APPL_ID'
40708 , p_source_type_code => 'Y'
40709 , p_source_application_id => 602
40710 );
40711 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
40712 l_rec_acct_attrs.array_char_value(3) := p_source_58;
40713 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
40714 l_rec_acct_attrs.array_char_value(4) :=
40715 xla_ae_sources_pkg.GetSystemSourceChar(
40716 p_source_code => 'XLA_ENTITY_CODE'
40717 , p_source_type_code => 'Y'
40718 , p_source_application_id => 602
40719 );
40720 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
40721 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_47);
40722 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
40723 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_76);
40724 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
40725 l_rec_acct_attrs.array_num_value(7) := p_source_53;
40726 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
40727 l_rec_acct_attrs.array_char_value(8) := p_source_54;
40728 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
40729 l_rec_acct_attrs.array_char_value(9) := p_source_55;
40730 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
40731 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_56);
40732 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
40733 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_57);
40734 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
40735 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_47);
40736 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
40737 l_rec_acct_attrs.array_char_value(13) := p_source_58;
40738 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
40739 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_11);
40740 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
40741 l_rec_acct_attrs.array_num_value(15) := p_source_33;
40742 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
40743 l_rec_acct_attrs.array_char_value(16) := p_source_34;
40744 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
40745 l_rec_acct_attrs.array_num_value(17) := p_source_35;
40746 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
40747 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_11);
40748 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
40749 l_rec_acct_attrs.array_num_value(19) := p_source_33;
40750 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
40751 l_rec_acct_attrs.array_char_value(20) := p_source_34;
40752 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
40753 l_rec_acct_attrs.array_num_value(21) := p_source_35;
40754 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
40755 l_rec_acct_attrs.array_char_value(22) := p_source_77;
40756 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
40757 l_rec_acct_attrs.array_num_value(23) := p_source_33;
40758 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
40759 l_rec_acct_attrs.array_char_value(24) := p_source_34;
40760 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
40761 l_rec_acct_attrs.array_date_value(25) := p_source_62;
40762 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
40763 l_rec_acct_attrs.array_num_value(26) := p_source_63;
40764 l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
40765 l_rec_acct_attrs.array_char_value(27) := p_source_64;
40766 l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
40767 l_rec_acct_attrs.array_num_value(28) := p_source_35;
40768 l_rec_acct_attrs.array_acct_attr_code(29) := 'RECON_REF';
40769 l_rec_acct_attrs.array_char_value(29) := p_source_60;
40770 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
40771 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_56);
40772 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
40773 l_rec_acct_attrs.array_char_value(31) := p_source_54;
40774 l_rec_acct_attrs.array_acct_attr_code(32) := 'TRX_ROUNDING_REF';
40775 l_rec_acct_attrs.array_num_value(32) := to_char(p_source_47);
40776 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
40777 l_rec_acct_attrs.array_num_value(33) := p_source_78;
40778 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
40779 l_rec_acct_attrs.array_num_value(34) := p_source_78;
40780
40781 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
40782 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
40783
40784 ---------------------------------------------------------------------------------------------------------------
40785 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
40786 ---------------------------------------------------------------------------------------------------------------
40787 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
40788
40789 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40790 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40791
40792 IF xla_accounting_cache_pkg.GetValueChar
40793 (p_source_code => 'LEDGER_CATEGORY_CODE'
40794 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
40795 AND l_bflow_method_code = 'PRIOR_ENTRY'
40796 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
40797 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
40798 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
40799 )
40800 THEN
40801 xla_ae_lines_pkg.BflowUpgEntry
40802 (p_business_method_code => l_bflow_method_code
40803 ,p_business_class_code => l_bflow_class_code
40804 ,p_balance_type => l_balance_type_code);
40805 ELSE
40806 NULL;
40807 -- No business flow processing for business flow method of NONE.
40808 END IF;
40809
40810 --
40811 -- call analytical criteria
40812 --
40813
40814 --
40815 -- call description
40816 --
40817
40818 xla_ae_lines_pkg.SetLineDescription(
40819 p_ae_header_id => l_ae_header_id
40820 ,p_description => Description_3 (
40821 p_application_id => p_application_id
40822 , p_ae_header_id => l_ae_header_id
40823 , p_source_7 => p_source_7
40824 )
40825 );
40826
40827
40828 --
40829 -- call ADRs
40830 -- Bug 4922099
40831 --
40832 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40833 (NVL(l_actual_upg_option, 'N') = 'O') OR
40834 (NVL(l_enc_upg_option, 'N') = 'O')
40835 )
40836 THEN
40837 NULL;
40838 --
40839 --
40840
40841 l_ccid := AcctDerRule_8(
40842 p_application_id => p_application_id
40843 , p_ae_header_id => l_ae_header_id
40844 , p_source_11 => p_source_11
40845 , x_transaction_coa_id => l_adr_transaction_coa_id
40846 , x_accounting_coa_id => l_adr_accounting_coa_id
40847 , x_value_type_code => l_adr_value_type_code
40848 , p_side => 'NA'
40849 );
40850
40851 xla_ae_lines_pkg.set_ccid(
40852 p_code_combination_id => l_ccid
40853 , p_value_type_code => l_adr_value_type_code
40854 , p_transaction_coa_id => l_adr_transaction_coa_id
40855 , p_accounting_coa_id => l_adr_accounting_coa_id
40856 , p_adr_code => 'PURCHASING_ENCUMBRANCE_ADR'
40857 , p_adr_type_code => 'S'
40858 , p_component_type => l_component_type
40859 , p_component_code => l_component_code
40860 , p_component_type_code => l_component_type_code
40861 , p_component_appl_id => l_component_appl_id
40862 , p_amb_context_code => l_amb_context_code
40863 , p_side => 'NA'
40864 );
40865
40866
40867 --
40868 --
40869 END IF;
40870 --
40871 -- Bug 4922099
40872 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
40873 (NVL(l_enc_upg_option, 'N') = 'O')
40874 ) AND
40875 (l_bflow_method_code = 'PRIOR_ENTRY')
40876 )
40877 THEN
40878 IF
40879 --
40880 1 = 2
40881 --
40882 THEN
40883 xla_accounting_err_pkg.build_message
40884 (p_appli_s_name => 'XLA'
40885 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40886 ,p_token_1 => 'LINE_NUMBER'
40887 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
40888 ,p_token_2 => 'LINE_TYPE_NAME'
40889 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
40890 l_component_type
40891 ,l_component_code
40892 ,l_component_type_code
40893 ,l_component_appl_id
40894 ,l_amb_context_code
40895 ,l_entity_code
40896 ,l_event_class_code
40897 )
40898 ,p_token_3 => 'OWNER'
40899 ,p_value_3 => xla_lookups_pkg.get_meaning(
40900 p_lookup_type => 'XLA_OWNER_TYPE'
40901 ,p_lookup_code => l_component_type_code
40902 )
40903 ,p_token_4 => 'PRODUCT_NAME'
40904 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
40905 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
40906 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
40907 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
40908 ,p_ae_header_id => NULL
40909 );
40910
40911 IF (C_LEVEL_ERROR>= g_log_level) THEN
40912 trace
40913 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40914 ,p_level => C_LEVEL_ERROR
40915 ,p_module => l_log_module);
40916 END IF;
40917 END IF;
40918 END IF;
40919 --
40920 --
40921 ------------------------------------------------------------------------------------------------
40922 -- 4219869 Business Flow
40923 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
40924 -- Prior Entry. Currently, the following code is always generated.
40925 ------------------------------------------------------------------------------------------------
40926 XLA_AE_LINES_PKG.ValidateCurrentLine;
40927
40928 ------------------------------------------------------------------------------------
40929 -- 4219869 Business Flow
40930 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
40931 ------------------------------------------------------------------------------------
40932 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40933
40934 ----------------------------------------------------------------------------------
40935 -- 4219869 Business Flow
40936 -- Update journal entry status -- Need to generate this within IF <condition>
40937 ----------------------------------------------------------------------------------
40938 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40939 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
40940 ,p_balance_type_code => l_balance_type_code
40941 );
40942
40943 -------------------------------------------------------------------------------------------
40944 -- 4262811 - Generate the Accrual Reversal lines
40945 -------------------------------------------------------------------------------------------
40946 BEGIN
40947 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
40948 (g_array_event(p_event_id).array_value_num('header_index'));
40949 IF l_acc_rev_flag IS NULL THEN
40950 l_acc_rev_flag := 'N';
40951 END IF;
40952 EXCEPTION
40953 WHEN OTHERS THEN
40954 l_acc_rev_flag := 'N';
40955 END;
40956 --
40957 IF (l_acc_rev_flag = 'Y') THEN
40958
40959 -- 4645092 ------------------------------------------------------------------------------
40960 -- To allow MPA report to determine if it should generate report process
40961 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
40962 ------------------------------------------------------------------------------------------
40963
40964 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
40965 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
40966
40967 --
40968 -- Update the line information that should be overwritten
40969 --
40970 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
40971 p_header_num => 1);
40972 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
40973
40974 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
40975
40976 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
40977 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
40978 END IF;
40979
40980 --
40981 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
40982 --
40983 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
40984 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
40985 ELSE
40986 ---------------------------------------------------------------------------------------------------
40987 -- 4262811a Switch Sign
40988 ---------------------------------------------------------------------------------------------------
40989 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
40990 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40991 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40992 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40993 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40994 -- 5132302
40995 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
40996 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40997
40998 END IF;
40999
41000 -- 4955764
41001 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41002 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
41003
41004
41005 XLA_AE_LINES_PKG.ValidateCurrentLine;
41006 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41007
41008 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41009 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
41010 ,p_balance_type_code => l_balance_type_code);
41011
41012 END IF;
41013
41014 -----------------------------------------------------------------------------------------
41015 -- 4262811 Multiperiod Accounting
41016 -----------------------------------------------------------------------------------------
41017 -- No MPA option is assigned.
41018
41019
41020 END IF;
41021 END IF;
41022 --
41023
41024 --
41025 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41026 trace
41027 (p_msg => 'END of AcctLineType_72'
41028 ,p_level => C_LEVEL_PROCEDURE
41029 ,p_module => l_log_module);
41030 END IF;
41031 --
41032 EXCEPTION
41033 WHEN xla_exceptions_pkg.application_exception THEN
41034 RAISE;
41035 WHEN OTHERS THEN
41036 xla_exceptions_pkg.raise_message
41037 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_72');
41038 END AcctLineType_72;
41039 --
41040
41041 ---------------------------------------
41042 --
41043 -- PRIVATE FUNCTION
41044 -- AcctLineType_73
41045 --
41046 ---------------------------------------
41047 PROCEDURE AcctLineType_73 (
41048 p_application_id IN NUMBER
41049 ,p_event_id IN NUMBER
41050 ,p_calculate_acctd_flag IN VARCHAR2
41051 ,p_calculate_g_l_flag IN VARCHAR2
41052 ,p_actual_flag IN OUT VARCHAR2
41053 ,p_balance_type_code OUT VARCHAR2
41054 ,p_gain_or_loss_ref OUT VARCHAR2
41055
41056 --Budget Account
41057 , p_source_11 IN NUMBER
41058 --Main Or Backing Code
41059 , p_source_13 IN VARCHAR2
41060 --Accounting Reversal Flag
41061 , p_source_16 IN VARCHAR2
41062 --PO Distribution Identifier
41063 , p_source_29 IN NUMBER
41064 --Entered Amount
41065 , p_source_33 IN NUMBER
41066 --Currency Code
41067 , p_source_34 IN VARCHAR2
41068 --Accounted Amount
41069 , p_source_35 IN NUMBER
41070 --PO Header Identifier
41071 , p_source_52 IN NUMBER
41072 --Applied To Application Identifier
41073 , p_source_53 IN NUMBER
41074 --Applied To Distribution Link Type
41075 , p_source_54 IN VARCHAR2
41076 --Applied To Entity Code
41077 , p_source_55 IN VARCHAR2
41078 --Applied To Distribution Identifier 1
41079 , p_source_56 IN NUMBER
41080 --Applied To Header Identifier 1
41081 , p_source_57 IN NUMBER
41082 --Distribution Link Type
41083 , p_source_58 IN VARCHAR2
41084 --PO Encumbrance Upgrade Option
41085 , p_source_59 IN VARCHAR2
41086 --JFMIP Reference
41087 , p_source_60 IN VARCHAR2
41088 --PO Upgrade Encumbrance Type Identifier
41089 , p_source_61 IN NUMBER
41090 --Adjustment Status
41091 , p_source_75 IN VARCHAR2
41092 )
41093 IS
41094
41095 l_component_type VARCHAR2(80);
41096 l_component_code VARCHAR2(30);
41097 l_component_type_code VARCHAR2(1);
41098 l_component_appl_id INTEGER;
41099 l_amb_context_code VARCHAR2(30);
41100 l_entity_code VARCHAR2(30);
41101 l_event_class_code VARCHAR2(30);
41102 l_ae_header_id NUMBER;
41103 l_event_type_code VARCHAR2(30);
41104 l_line_definition_code VARCHAR2(30);
41105 l_line_definition_owner_code VARCHAR2(1);
41106 --
41107 -- adr variables
41108 l_segment VARCHAR2(30);
41109 l_ccid NUMBER;
41110 l_adr_transaction_coa_id NUMBER;
41111 l_adr_accounting_coa_id NUMBER;
41112 l_adr_flexfield_segment_code VARCHAR2(30);
41113 l_adr_flex_value_set_id NUMBER;
41114 l_adr_value_type_code VARCHAR2(30);
41115 l_adr_value_combination_id NUMBER;
41116 l_adr_value_segment_code VARCHAR2(30);
41117
41118 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
41119 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
41120 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
41121 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
41122
41123 -- 4262811 Variables ------------------------------------------------------------------------------------------
41124 l_entered_amt_idx NUMBER;
41125 l_accted_amt_idx NUMBER;
41126 l_acc_rev_flag VARCHAR2(1);
41127 l_accrual_line_num NUMBER;
41128 l_tmp_amt NUMBER;
41129 l_acc_rev_natural_side_code VARCHAR2(1);
41130
41131 l_num_entries NUMBER;
41132 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
41133 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
41134 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
41135 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
41136 l_recog_line_1 NUMBER;
41137 l_recog_line_2 NUMBER;
41138
41139 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
41140 l_bflow_applied_to_amt NUMBER; -- 5132302
41141 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
41142
41143 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
41144
41145 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
41146 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
41147
41148 ---------------------------------------------------------------------------------------------------------------
41149
41150
41151 --
41152 -- bulk performance
41153 --
41154 l_balance_type_code VARCHAR2(1);
41155 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
41156 l_log_module VARCHAR2(240);
41157
41158 --
41159 -- Upgrade strategy
41160 --
41161 l_actual_upg_option VARCHAR2(1);
41162 l_enc_upg_option VARCHAR2(1);
41163
41164 --
41165 BEGIN
41166 --
41167 IF g_log_enabled THEN
41168 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_73';
41169 END IF;
41170 --
41171 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41172
41173 trace
41174 (p_msg => 'BEGIN of AcctLineType_73'
41175 ,p_level => C_LEVEL_PROCEDURE
41176 ,p_module => l_log_module);
41177
41178 END IF;
41179 --
41180 l_component_type := 'AMB_JLT';
41181 l_component_code := 'REVERSE_PO_PA_ENCUMBRANCE_CR';
41182 l_component_type_code := 'S';
41183 l_component_appl_id := 201;
41184 l_amb_context_code := 'DEFAULT';
41185 l_entity_code := 'PURCHASE_ORDER';
41186 l_event_class_code := 'PO_PA';
41187 l_event_type_code := 'PO_PA_ALL';
41188 l_line_definition_owner_code := 'S';
41189 l_line_definition_code := 'PO_PA_ENC_ALL';
41190 --
41191 l_balance_type_code := 'E';
41192 l_segment := NULL;
41193 l_ccid := NULL;
41194 l_adr_transaction_coa_id := NULL;
41195 l_adr_accounting_coa_id := NULL;
41196 l_adr_flexfield_segment_code := NULL;
41197 l_adr_flex_value_set_id := NULL;
41198 l_adr_value_type_code := NULL;
41199 l_adr_value_combination_id := NULL;
41200 l_adr_value_segment_code := NULL;
41201
41202 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
41203 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
41204 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
41205 l_budgetary_control_flag := 'Y';
41206
41207 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41208 l_bflow_applied_to_amt := NULL; -- 5132302
41209 l_entered_amt_idx := NULL; -- 4262811
41210 l_accted_amt_idx := NULL; -- 4262811
41211 l_acc_rev_flag := NULL; -- 4262811
41212 l_accrual_line_num := NULL; -- 4262811
41213 l_tmp_amt := NULL; -- 4262811
41214 --
41215
41216 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
41217 l_balance_type_code <> 'B' THEN
41218 IF (NVL(
41219 xla_ae_sources_pkg.GetSystemSourceChar(
41220 p_source_code => 'XLA_EVENT_TYPE_CODE'
41221 , p_source_type_code => 'Y'
41222 , p_source_application_id => 602
41223 ),'
41224 ') = 'PO_PA_UNRESERVED' OR
41225 NVL(
41226 xla_ae_sources_pkg.GetSystemSourceChar(
41227 p_source_code => 'XLA_EVENT_TYPE_CODE'
41228 , p_source_type_code => 'Y'
41229 , p_source_application_id => 602
41230 ),'
41231 ') = 'PO_PA_REJECTED' OR
41232 NVL(
41233 xla_ae_sources_pkg.GetSystemSourceChar(
41234 p_source_code => 'XLA_EVENT_TYPE_CODE'
41235 , p_source_type_code => 'Y'
41236 , p_source_application_id => 602
41237 ),'
41238 ') = 'PO_PA_FINAL_CLOSED' OR
41239 NVL(
41240 xla_ae_sources_pkg.GetSystemSourceChar(
41241 p_source_code => 'XLA_EVENT_TYPE_CODE'
41242 , p_source_type_code => 'Y'
41243 , p_source_application_id => 602
41244 ),'
41245 ') = 'PO_PA_INV_CANCELLED' OR
41246 (NVL(
41247 xla_ae_sources_pkg.GetSystemSourceChar(
41248 p_source_code => 'XLA_EVENT_TYPE_CODE'
41249 , p_source_type_code => 'Y'
41250 , p_source_application_id => 602
41251 ),'
41252 ') = 'PO_PA_ADJUSTED' AND
41253 NVL(p_source_75,'
41254 ') = 'OLD')
41255 ) AND NVL(p_source_13,'
41256 ') = 'M'
41257 THEN
41258
41259 --
41260 XLA_AE_LINES_PKG.SetNewLine;
41261
41262 p_balance_type_code := l_balance_type_code;
41263 -- set the flag so later we will know whether the gain loss line needs to be created
41264
41265 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
41266 p_actual_flag :='A';
41267 END IF;
41268
41269 --
41270 -- bulk performance
41271 --
41272 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
41273 p_header_num => 0); -- 4262811
41274 --
41275 -- set accounting line options
41276 --
41277 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
41278 p_natural_side_code => 'C'
41279 , p_gain_or_loss_flag => 'N'
41280 , p_gl_transfer_mode_code => 'S'
41281 , p_acct_entry_type_code => 'E'
41282 , p_switch_side_flag => 'N'
41283 , p_merge_duplicate_code => 'N'
41284 );
41285 --
41286 l_acc_rev_natural_side_code := 'D'; -- 4262811
41287 --
41288 --
41289 -- set accounting line type info
41290 --
41291 xla_ae_lines_pkg.SetAcctLineType
41292 (p_component_type => l_component_type
41293 ,p_event_type_code => l_event_type_code
41294 ,p_line_definition_owner_code => l_line_definition_owner_code
41295 ,p_line_definition_code => l_line_definition_code
41296 ,p_accounting_line_code => l_component_code
41297 ,p_accounting_line_type_code => l_component_type_code
41298 ,p_accounting_line_appl_id => l_component_appl_id
41299 ,p_amb_context_code => l_amb_context_code
41300 ,p_entity_code => l_entity_code
41301 ,p_event_class_code => l_event_class_code);
41302 --
41303 -- set accounting class
41304 --
41305 xla_ae_lines_pkg.SetAcctClass(
41306 p_accounting_class_code => 'PURCHASE_ORDER'
41307 , p_ae_header_id => l_ae_header_id
41308 );
41309
41310 --
41311 -- set rounding class
41312 --
41313 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
41314 'PURCHASE_ORDER';
41315
41316 --
41317 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
41318 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
41319 --
41320 -- bulk performance
41321 --
41322 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
41323
41324 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
41325 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
41326
41327 -- 4955764
41328 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41329 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
41330
41331 -- 4458381 Public Sector Enh
41332
41333 --
41334 -- set accounting attributes for the line type
41335 --
41336 l_entered_amt_idx := 23;
41337 l_accted_amt_idx := 25;
41338 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41339 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
41340 l_rec_acct_attrs.array_char_value(1) := p_source_16;
41341 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
41342 l_rec_acct_attrs.array_num_value(2) :=
41343 xla_ae_sources_pkg.GetSystemSourceNum(
41344 p_source_code => 'XLA_EVENT_APPL_ID'
41345 , p_source_type_code => 'Y'
41346 , p_source_application_id => 602
41347 );
41348 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
41349 l_rec_acct_attrs.array_char_value(3) := p_source_58;
41350 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
41351 l_rec_acct_attrs.array_char_value(4) :=
41352 xla_ae_sources_pkg.GetSystemSourceChar(
41353 p_source_code => 'XLA_ENTITY_CODE'
41354 , p_source_type_code => 'Y'
41355 , p_source_application_id => 602
41356 );
41357 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
41358 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_29);
41359 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
41360 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_52);
41361 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
41362 l_rec_acct_attrs.array_num_value(7) := p_source_53;
41363 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
41364 l_rec_acct_attrs.array_char_value(8) := p_source_54;
41365 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
41366 l_rec_acct_attrs.array_char_value(9) := p_source_55;
41367 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
41368 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_56);
41369 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
41370 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_57);
41371 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
41372 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_29);
41373 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
41374 l_rec_acct_attrs.array_char_value(13) := p_source_58;
41375 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
41376 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_11);
41377 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
41378 l_rec_acct_attrs.array_num_value(15) := p_source_33;
41379 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
41380 l_rec_acct_attrs.array_char_value(16) := p_source_34;
41381 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
41382 l_rec_acct_attrs.array_num_value(17) := p_source_35;
41383 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
41384 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_11);
41385 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
41386 l_rec_acct_attrs.array_num_value(19) := p_source_33;
41387 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
41388 l_rec_acct_attrs.array_char_value(20) := p_source_34;
41389 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
41390 l_rec_acct_attrs.array_num_value(21) := p_source_35;
41391 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
41392 l_rec_acct_attrs.array_char_value(22) := p_source_59;
41393 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
41394 l_rec_acct_attrs.array_num_value(23) := p_source_33;
41395 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
41396 l_rec_acct_attrs.array_char_value(24) := p_source_34;
41397 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
41398 l_rec_acct_attrs.array_num_value(25) := p_source_35;
41399 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
41400 l_rec_acct_attrs.array_char_value(26) := p_source_60;
41401 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
41402 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_56);
41403 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
41404 l_rec_acct_attrs.array_char_value(28) := p_source_54;
41405 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
41406 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_29);
41407 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
41408 l_rec_acct_attrs.array_num_value(30) := p_source_61;
41409 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
41410 l_rec_acct_attrs.array_num_value(31) := p_source_61;
41411
41412 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
41413 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
41414
41415 ---------------------------------------------------------------------------------------------------------------
41416 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
41417 ---------------------------------------------------------------------------------------------------------------
41418 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
41419
41420 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41421 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41422
41423 IF xla_accounting_cache_pkg.GetValueChar
41424 (p_source_code => 'LEDGER_CATEGORY_CODE'
41425 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
41426 AND l_bflow_method_code = 'PRIOR_ENTRY'
41427 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
41428 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
41429 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
41430 )
41431 THEN
41432 xla_ae_lines_pkg.BflowUpgEntry
41433 (p_business_method_code => l_bflow_method_code
41434 ,p_business_class_code => l_bflow_class_code
41435 ,p_balance_type => l_balance_type_code);
41436 ELSE
41437 NULL;
41438 XLA_AE_LINES_PKG.business_flow_validation(
41439 p_business_method_code => l_bflow_method_code
41440 ,p_business_class_code => l_bflow_class_code
41441 ,p_inherit_description_flag => l_inherit_desc_flag);
41442 END IF;
41443
41444 --
41445 -- call analytical criteria
41446 --
41447 -- Inherited Analytical Criteria for business flow method of Prior Entry.
41448 --
41449 -- call description
41450 --
41451 -- No description or it is inherited.
41452 --
41453 -- call ADRs
41454 -- Bug 4922099
41455 --
41456 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41457 (NVL(l_actual_upg_option, 'N') = 'O') OR
41458 (NVL(l_enc_upg_option, 'N') = 'O')
41459 )
41460 THEN
41461 NULL;
41462 --
41463 --
41464
41465 --
41466 --
41467 END IF;
41468 --
41469 -- Bug 4922099
41470 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
41471 (NVL(l_enc_upg_option, 'N') = 'O')
41472 ) AND
41473 (l_bflow_method_code = 'PRIOR_ENTRY')
41474 )
41475 THEN
41476 IF
41477 --
41478 1 = 1
41479 --
41480 THEN
41481 xla_accounting_err_pkg.build_message
41482 (p_appli_s_name => 'XLA'
41483 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41484 ,p_token_1 => 'LINE_NUMBER'
41485 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
41486 ,p_token_2 => 'LINE_TYPE_NAME'
41487 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
41488 l_component_type
41489 ,l_component_code
41490 ,l_component_type_code
41491 ,l_component_appl_id
41492 ,l_amb_context_code
41493 ,l_entity_code
41494 ,l_event_class_code
41495 )
41496 ,p_token_3 => 'OWNER'
41497 ,p_value_3 => xla_lookups_pkg.get_meaning(
41498 p_lookup_type => 'XLA_OWNER_TYPE'
41499 ,p_lookup_code => l_component_type_code
41500 )
41501 ,p_token_4 => 'PRODUCT_NAME'
41502 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
41503 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
41504 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
41505 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
41506 ,p_ae_header_id => NULL
41507 );
41508
41509 IF (C_LEVEL_ERROR>= g_log_level) THEN
41510 trace
41511 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41512 ,p_level => C_LEVEL_ERROR
41513 ,p_module => l_log_module);
41514 END IF;
41515 END IF;
41516 END IF;
41517 --
41518 --
41519 ------------------------------------------------------------------------------------------------
41520 -- 4219869 Business Flow
41521 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
41522 -- Prior Entry. Currently, the following code is always generated.
41523 ------------------------------------------------------------------------------------------------
41524 -- No ValidateCurrentLine for business flow method of Prior Entry
41525
41526 ------------------------------------------------------------------------------------
41527 -- 4219869 Business Flow
41528 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
41529 ------------------------------------------------------------------------------------
41530 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41531
41532 ----------------------------------------------------------------------------------
41533 -- 4219869 Business Flow
41534 -- Update journal entry status -- Need to generate this within IF <condition>
41535 ----------------------------------------------------------------------------------
41536 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41537 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
41538 ,p_balance_type_code => l_balance_type_code
41539 );
41540
41541 -------------------------------------------------------------------------------------------
41542 -- 4262811 - Generate the Accrual Reversal lines
41543 -------------------------------------------------------------------------------------------
41544 BEGIN
41545 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
41546 (g_array_event(p_event_id).array_value_num('header_index'));
41547 IF l_acc_rev_flag IS NULL THEN
41548 l_acc_rev_flag := 'N';
41549 END IF;
41550 EXCEPTION
41551 WHEN OTHERS THEN
41552 l_acc_rev_flag := 'N';
41553 END;
41554 --
41555 IF (l_acc_rev_flag = 'Y') THEN
41556
41557 -- 4645092 ------------------------------------------------------------------------------
41558 -- To allow MPA report to determine if it should generate report process
41559 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
41560 ------------------------------------------------------------------------------------------
41561
41562 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
41563 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
41564
41565 --
41566 -- Update the line information that should be overwritten
41567 --
41568 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
41569 p_header_num => 1);
41570 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
41571
41572 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
41573
41574 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
41575 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
41576 END IF;
41577
41578 --
41579 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
41580 --
41581 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
41582 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
41583 ELSE
41584 ---------------------------------------------------------------------------------------------------
41585 -- 4262811a Switch Sign
41586 ---------------------------------------------------------------------------------------------------
41587 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
41588 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41589 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41590 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41591 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41592 -- 5132302
41593 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
41594 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41595
41596 END IF;
41597
41598 -- 4955764
41599 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41600 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
41601
41602
41603 XLA_AE_LINES_PKG.ValidateCurrentLine;
41604 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41605
41606 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41607 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
41608 ,p_balance_type_code => l_balance_type_code);
41609
41610 END IF;
41611
41612 -----------------------------------------------------------------------------------------
41613 -- 4262811 Multiperiod Accounting
41614 -----------------------------------------------------------------------------------------
41615 -- No MPA option is assigned.
41616
41617
41618 END IF;
41619 END IF;
41620 --
41621
41622 --
41623 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41624 trace
41625 (p_msg => 'END of AcctLineType_73'
41626 ,p_level => C_LEVEL_PROCEDURE
41627 ,p_module => l_log_module);
41628 END IF;
41629 --
41630 EXCEPTION
41631 WHEN xla_exceptions_pkg.application_exception THEN
41632 RAISE;
41633 WHEN OTHERS THEN
41634 xla_exceptions_pkg.raise_message
41635 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_73');
41636 END AcctLineType_73;
41637 --
41638
41639 ---------------------------------------
41640 --
41641 -- PRIVATE FUNCTION
41642 -- AcctLineType_74
41643 --
41644 ---------------------------------------
41645 PROCEDURE AcctLineType_74 (
41646 p_application_id IN NUMBER
41647 ,p_event_id IN NUMBER
41648 ,p_calculate_acctd_flag IN VARCHAR2
41649 ,p_calculate_g_l_flag IN VARCHAR2
41650 ,p_actual_flag IN OUT VARCHAR2
41651 ,p_balance_type_code OUT VARCHAR2
41652 ,p_gain_or_loss_ref OUT VARCHAR2
41653
41654 --Budget Account
41655 , p_source_11 IN NUMBER
41656 --Main Or Backing Code
41657 , p_source_13 IN VARCHAR2
41658 --Accounting Reversal Flag
41659 , p_source_16 IN VARCHAR2
41660 --PO Distribution Identifier
41661 , p_source_29 IN NUMBER
41662 --Entered Amount
41663 , p_source_33 IN NUMBER
41664 --Currency Code
41665 , p_source_34 IN VARCHAR2
41666 --Accounted Amount
41667 , p_source_35 IN NUMBER
41668 --PO Header Identifier
41669 , p_source_52 IN NUMBER
41670 --Applied To Application Identifier
41671 , p_source_53 IN NUMBER
41672 --Applied To Distribution Link Type
41673 , p_source_54 IN VARCHAR2
41674 --Applied To Entity Code
41675 , p_source_55 IN VARCHAR2
41676 --Applied To Distribution Identifier 1
41677 , p_source_56 IN NUMBER
41678 --Applied To Header Identifier 1
41679 , p_source_57 IN NUMBER
41680 --Distribution Link Type
41681 , p_source_58 IN VARCHAR2
41682 --PO Encumbrance Upgrade Option
41683 , p_source_59 IN VARCHAR2
41684 --JFMIP Reference
41685 , p_source_60 IN VARCHAR2
41686 --PO Upgrade Encumbrance Type Identifier
41687 , p_source_61 IN NUMBER
41688 )
41689 IS
41690
41691 l_component_type VARCHAR2(80);
41692 l_component_code VARCHAR2(30);
41693 l_component_type_code VARCHAR2(1);
41694 l_component_appl_id INTEGER;
41695 l_amb_context_code VARCHAR2(30);
41696 l_entity_code VARCHAR2(30);
41697 l_event_class_code VARCHAR2(30);
41698 l_ae_header_id NUMBER;
41699 l_event_type_code VARCHAR2(30);
41700 l_line_definition_code VARCHAR2(30);
41701 l_line_definition_owner_code VARCHAR2(1);
41702 --
41703 -- adr variables
41704 l_segment VARCHAR2(30);
41705 l_ccid NUMBER;
41706 l_adr_transaction_coa_id NUMBER;
41707 l_adr_accounting_coa_id NUMBER;
41708 l_adr_flexfield_segment_code VARCHAR2(30);
41709 l_adr_flex_value_set_id NUMBER;
41710 l_adr_value_type_code VARCHAR2(30);
41711 l_adr_value_combination_id NUMBER;
41712 l_adr_value_segment_code VARCHAR2(30);
41713
41714 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
41715 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
41716 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
41717 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
41718
41719 -- 4262811 Variables ------------------------------------------------------------------------------------------
41720 l_entered_amt_idx NUMBER;
41721 l_accted_amt_idx NUMBER;
41722 l_acc_rev_flag VARCHAR2(1);
41723 l_accrual_line_num NUMBER;
41724 l_tmp_amt NUMBER;
41725 l_acc_rev_natural_side_code VARCHAR2(1);
41726
41727 l_num_entries NUMBER;
41728 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
41729 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
41730 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
41731 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
41732 l_recog_line_1 NUMBER;
41733 l_recog_line_2 NUMBER;
41734
41735 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
41736 l_bflow_applied_to_amt NUMBER; -- 5132302
41737 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
41738
41739 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
41740
41741 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
41742 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
41743
41744 ---------------------------------------------------------------------------------------------------------------
41745
41746
41747 --
41748 -- bulk performance
41749 --
41750 l_balance_type_code VARCHAR2(1);
41751 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
41752 l_log_module VARCHAR2(240);
41753
41754 --
41755 -- Upgrade strategy
41756 --
41757 l_actual_upg_option VARCHAR2(1);
41758 l_enc_upg_option VARCHAR2(1);
41759
41760 --
41761 BEGIN
41762 --
41763 IF g_log_enabled THEN
41764 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_74';
41765 END IF;
41766 --
41767 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41768
41769 trace
41770 (p_msg => 'BEGIN of AcctLineType_74'
41771 ,p_level => C_LEVEL_PROCEDURE
41772 ,p_module => l_log_module);
41773
41774 END IF;
41775 --
41776 l_component_type := 'AMB_JLT';
41777 l_component_code := 'REVERSE_PO_PA_ENCUMBRANCE_DR';
41778 l_component_type_code := 'S';
41779 l_component_appl_id := 201;
41780 l_amb_context_code := 'DEFAULT';
41781 l_entity_code := 'PURCHASE_ORDER';
41782 l_event_class_code := 'PO_PA';
41783 l_event_type_code := 'PO_PA_ALL';
41784 l_line_definition_owner_code := 'S';
41785 l_line_definition_code := 'PO_PA_ENC_ALL';
41786 --
41787 l_balance_type_code := 'E';
41788 l_segment := NULL;
41789 l_ccid := NULL;
41790 l_adr_transaction_coa_id := NULL;
41791 l_adr_accounting_coa_id := NULL;
41792 l_adr_flexfield_segment_code := NULL;
41793 l_adr_flex_value_set_id := NULL;
41794 l_adr_value_type_code := NULL;
41795 l_adr_value_combination_id := NULL;
41796 l_adr_value_segment_code := NULL;
41797
41798 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
41799 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
41800 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
41801 l_budgetary_control_flag := 'Y';
41802
41803 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41804 l_bflow_applied_to_amt := NULL; -- 5132302
41805 l_entered_amt_idx := NULL; -- 4262811
41806 l_accted_amt_idx := NULL; -- 4262811
41807 l_acc_rev_flag := NULL; -- 4262811
41808 l_accrual_line_num := NULL; -- 4262811
41809 l_tmp_amt := NULL; -- 4262811
41810 --
41811
41812 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
41813 l_balance_type_code <> 'B' THEN
41814 IF (NVL(
41815 xla_ae_sources_pkg.GetSystemSourceChar(
41816 p_source_code => 'XLA_EVENT_TYPE_CODE'
41817 , p_source_type_code => 'Y'
41818 , p_source_application_id => 602
41819 ),'
41820 ') = 'PO_PA_CANCELLED' OR
41821 NVL(
41822 xla_ae_sources_pkg.GetSystemSourceChar(
41823 p_source_code => 'XLA_EVENT_TYPE_CODE'
41824 , p_source_type_code => 'Y'
41825 , p_source_application_id => 602
41826 ),'
41827 ') = 'PO_PA_CR_MEMO_CANCELLED') AND
41828 NVL(p_source_13,'
41829 ') = 'M'
41830 THEN
41831
41832 --
41833 XLA_AE_LINES_PKG.SetNewLine;
41834
41835 p_balance_type_code := l_balance_type_code;
41836 -- set the flag so later we will know whether the gain loss line needs to be created
41837
41838 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
41839 p_actual_flag :='A';
41840 END IF;
41841
41842 --
41843 -- bulk performance
41844 --
41845 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
41846 p_header_num => 0); -- 4262811
41847 --
41848 -- set accounting line options
41849 --
41850 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
41851 p_natural_side_code => 'D'
41852 , p_gain_or_loss_flag => 'N'
41853 , p_gl_transfer_mode_code => 'S'
41854 , p_acct_entry_type_code => 'E'
41855 , p_switch_side_flag => 'N'
41856 , p_merge_duplicate_code => 'N'
41857 );
41858 --
41859 l_acc_rev_natural_side_code := 'C'; -- 4262811
41860 --
41861 --
41862 -- set accounting line type info
41863 --
41864 xla_ae_lines_pkg.SetAcctLineType
41865 (p_component_type => l_component_type
41866 ,p_event_type_code => l_event_type_code
41867 ,p_line_definition_owner_code => l_line_definition_owner_code
41868 ,p_line_definition_code => l_line_definition_code
41869 ,p_accounting_line_code => l_component_code
41870 ,p_accounting_line_type_code => l_component_type_code
41871 ,p_accounting_line_appl_id => l_component_appl_id
41872 ,p_amb_context_code => l_amb_context_code
41873 ,p_entity_code => l_entity_code
41874 ,p_event_class_code => l_event_class_code);
41875 --
41876 -- set accounting class
41877 --
41878 xla_ae_lines_pkg.SetAcctClass(
41879 p_accounting_class_code => 'PURCHASE_ORDER'
41880 , p_ae_header_id => l_ae_header_id
41881 );
41882
41883 --
41884 -- set rounding class
41885 --
41886 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
41887 'PURCHASE_ORDER';
41888
41889 --
41890 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
41891 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
41892 --
41893 -- bulk performance
41894 --
41895 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
41896
41897 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
41898 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
41899
41900 -- 4955764
41901 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41902 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
41903
41904 -- 4458381 Public Sector Enh
41905
41906 --
41907 -- set accounting attributes for the line type
41908 --
41909 l_entered_amt_idx := 23;
41910 l_accted_amt_idx := 25;
41911 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41912 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
41913 l_rec_acct_attrs.array_char_value(1) := p_source_16;
41914 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
41915 l_rec_acct_attrs.array_num_value(2) :=
41916 xla_ae_sources_pkg.GetSystemSourceNum(
41917 p_source_code => 'XLA_EVENT_APPL_ID'
41918 , p_source_type_code => 'Y'
41919 , p_source_application_id => 602
41920 );
41921 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
41922 l_rec_acct_attrs.array_char_value(3) := p_source_58;
41923 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
41924 l_rec_acct_attrs.array_char_value(4) :=
41925 xla_ae_sources_pkg.GetSystemSourceChar(
41926 p_source_code => 'XLA_ENTITY_CODE'
41927 , p_source_type_code => 'Y'
41928 , p_source_application_id => 602
41929 );
41930 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
41931 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_29);
41932 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
41933 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_52);
41934 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
41935 l_rec_acct_attrs.array_num_value(7) := p_source_53;
41936 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
41937 l_rec_acct_attrs.array_char_value(8) := p_source_54;
41938 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
41939 l_rec_acct_attrs.array_char_value(9) := p_source_55;
41940 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
41941 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_56);
41942 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
41943 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_57);
41944 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
41945 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_29);
41946 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
41947 l_rec_acct_attrs.array_char_value(13) := p_source_58;
41948 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
41949 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_11);
41950 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
41951 l_rec_acct_attrs.array_num_value(15) := p_source_33;
41952 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
41953 l_rec_acct_attrs.array_char_value(16) := p_source_34;
41954 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
41955 l_rec_acct_attrs.array_num_value(17) := p_source_35;
41956 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
41957 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_11);
41958 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
41959 l_rec_acct_attrs.array_num_value(19) := p_source_33;
41960 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
41961 l_rec_acct_attrs.array_char_value(20) := p_source_34;
41962 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
41963 l_rec_acct_attrs.array_num_value(21) := p_source_35;
41964 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
41965 l_rec_acct_attrs.array_char_value(22) := p_source_59;
41966 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
41967 l_rec_acct_attrs.array_num_value(23) := p_source_33;
41968 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
41969 l_rec_acct_attrs.array_char_value(24) := p_source_34;
41970 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
41971 l_rec_acct_attrs.array_num_value(25) := p_source_35;
41972 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
41973 l_rec_acct_attrs.array_char_value(26) := p_source_60;
41974 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
41975 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_56);
41976 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
41977 l_rec_acct_attrs.array_char_value(28) := p_source_54;
41978 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
41979 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_29);
41980 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
41981 l_rec_acct_attrs.array_num_value(30) := p_source_61;
41982 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
41983 l_rec_acct_attrs.array_num_value(31) := p_source_61;
41984
41985 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
41986 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
41987
41988 ---------------------------------------------------------------------------------------------------------------
41989 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
41990 ---------------------------------------------------------------------------------------------------------------
41991 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
41992
41993 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41994 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41995
41996 IF xla_accounting_cache_pkg.GetValueChar
41997 (p_source_code => 'LEDGER_CATEGORY_CODE'
41998 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
41999 AND l_bflow_method_code = 'PRIOR_ENTRY'
42000 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
42001 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
42002 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
42003 )
42004 THEN
42005 xla_ae_lines_pkg.BflowUpgEntry
42006 (p_business_method_code => l_bflow_method_code
42007 ,p_business_class_code => l_bflow_class_code
42008 ,p_balance_type => l_balance_type_code);
42009 ELSE
42010 NULL;
42011 XLA_AE_LINES_PKG.business_flow_validation(
42012 p_business_method_code => l_bflow_method_code
42013 ,p_business_class_code => l_bflow_class_code
42014 ,p_inherit_description_flag => l_inherit_desc_flag);
42015 END IF;
42016
42017 --
42018 -- call analytical criteria
42019 --
42020 -- Inherited Analytical Criteria for business flow method of Prior Entry.
42021 --
42022 -- call description
42023 --
42024 -- No description or it is inherited.
42025 --
42026 -- call ADRs
42027 -- Bug 4922099
42028 --
42029 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42030 (NVL(l_actual_upg_option, 'N') = 'O') OR
42031 (NVL(l_enc_upg_option, 'N') = 'O')
42032 )
42033 THEN
42034 NULL;
42035 --
42036 --
42037
42038 --
42039 --
42040 END IF;
42041 --
42042 -- Bug 4922099
42043 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
42044 (NVL(l_enc_upg_option, 'N') = 'O')
42045 ) AND
42046 (l_bflow_method_code = 'PRIOR_ENTRY')
42047 )
42048 THEN
42049 IF
42050 --
42051 1 = 1
42052 --
42053 THEN
42054 xla_accounting_err_pkg.build_message
42055 (p_appli_s_name => 'XLA'
42056 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42057 ,p_token_1 => 'LINE_NUMBER'
42058 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
42059 ,p_token_2 => 'LINE_TYPE_NAME'
42060 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
42061 l_component_type
42062 ,l_component_code
42063 ,l_component_type_code
42064 ,l_component_appl_id
42065 ,l_amb_context_code
42066 ,l_entity_code
42067 ,l_event_class_code
42068 )
42069 ,p_token_3 => 'OWNER'
42070 ,p_value_3 => xla_lookups_pkg.get_meaning(
42071 p_lookup_type => 'XLA_OWNER_TYPE'
42072 ,p_lookup_code => l_component_type_code
42073 )
42074 ,p_token_4 => 'PRODUCT_NAME'
42075 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
42076 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
42077 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
42078 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
42079 ,p_ae_header_id => NULL
42080 );
42081
42082 IF (C_LEVEL_ERROR>= g_log_level) THEN
42083 trace
42084 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42085 ,p_level => C_LEVEL_ERROR
42086 ,p_module => l_log_module);
42087 END IF;
42088 END IF;
42089 END IF;
42090 --
42091 --
42092 ------------------------------------------------------------------------------------------------
42093 -- 4219869 Business Flow
42094 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
42095 -- Prior Entry. Currently, the following code is always generated.
42096 ------------------------------------------------------------------------------------------------
42097 -- No ValidateCurrentLine for business flow method of Prior Entry
42098
42099 ------------------------------------------------------------------------------------
42100 -- 4219869 Business Flow
42101 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
42102 ------------------------------------------------------------------------------------
42103 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42104
42105 ----------------------------------------------------------------------------------
42106 -- 4219869 Business Flow
42107 -- Update journal entry status -- Need to generate this within IF <condition>
42108 ----------------------------------------------------------------------------------
42109 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42110 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
42111 ,p_balance_type_code => l_balance_type_code
42112 );
42113
42114 -------------------------------------------------------------------------------------------
42115 -- 4262811 - Generate the Accrual Reversal lines
42116 -------------------------------------------------------------------------------------------
42117 BEGIN
42118 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
42119 (g_array_event(p_event_id).array_value_num('header_index'));
42120 IF l_acc_rev_flag IS NULL THEN
42121 l_acc_rev_flag := 'N';
42122 END IF;
42123 EXCEPTION
42124 WHEN OTHERS THEN
42125 l_acc_rev_flag := 'N';
42126 END;
42127 --
42128 IF (l_acc_rev_flag = 'Y') THEN
42129
42130 -- 4645092 ------------------------------------------------------------------------------
42131 -- To allow MPA report to determine if it should generate report process
42132 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
42133 ------------------------------------------------------------------------------------------
42134
42135 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
42136 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
42137
42138 --
42139 -- Update the line information that should be overwritten
42140 --
42141 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
42142 p_header_num => 1);
42143 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
42144
42145 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
42146
42147 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
42148 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
42149 END IF;
42150
42151 --
42152 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
42153 --
42154 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
42155 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
42156 ELSE
42157 ---------------------------------------------------------------------------------------------------
42158 -- 4262811a Switch Sign
42159 ---------------------------------------------------------------------------------------------------
42160 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
42161 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42162 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42163 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42164 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42165 -- 5132302
42166 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
42167 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42168
42169 END IF;
42170
42171 -- 4955764
42172 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42173 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
42174
42175
42176 XLA_AE_LINES_PKG.ValidateCurrentLine;
42177 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42178
42179 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42180 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
42181 ,p_balance_type_code => l_balance_type_code);
42182
42183 END IF;
42184
42185 -----------------------------------------------------------------------------------------
42186 -- 4262811 Multiperiod Accounting
42187 -----------------------------------------------------------------------------------------
42188 -- No MPA option is assigned.
42189
42190
42191 END IF;
42192 END IF;
42193 --
42194
42195 --
42196 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42197 trace
42198 (p_msg => 'END of AcctLineType_74'
42199 ,p_level => C_LEVEL_PROCEDURE
42200 ,p_module => l_log_module);
42201 END IF;
42202 --
42203 EXCEPTION
42204 WHEN xla_exceptions_pkg.application_exception THEN
42205 RAISE;
42206 WHEN OTHERS THEN
42207 xla_exceptions_pkg.raise_message
42208 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_74');
42209 END AcctLineType_74;
42210 --
42211
42212 ---------------------------------------
42213 --
42214 -- PRIVATE FUNCTION
42215 -- AcctLineType_75
42216 --
42217 ---------------------------------------
42218 PROCEDURE AcctLineType_75 (
42219 p_application_id IN NUMBER
42220 ,p_event_id IN NUMBER
42221 ,p_calculate_acctd_flag IN VARCHAR2
42222 ,p_calculate_g_l_flag IN VARCHAR2
42223 ,p_actual_flag IN OUT VARCHAR2
42224 ,p_balance_type_code OUT VARCHAR2
42225 ,p_gain_or_loss_ref OUT VARCHAR2
42226
42227 --Budget Account
42228 , p_source_11 IN NUMBER
42229 --Main Or Backing Code
42230 , p_source_13 IN VARCHAR2
42231 --Accounting Reversal Flag
42232 , p_source_16 IN VARCHAR2
42233 --PO Distribution Identifier
42234 , p_source_29 IN NUMBER
42235 --Entered Amount
42236 , p_source_33 IN NUMBER
42237 --Currency Code
42238 , p_source_34 IN VARCHAR2
42239 --Accounted Amount
42240 , p_source_35 IN NUMBER
42241 --Applied To Application Identifier
42242 , p_source_53 IN NUMBER
42243 --Applied To Distribution Link Type
42244 , p_source_54 IN VARCHAR2
42245 --Applied To Entity Code
42246 , p_source_55 IN VARCHAR2
42247 --Applied To Distribution Identifier 1
42248 , p_source_56 IN NUMBER
42249 --Applied To Header Identifier 1
42250 , p_source_57 IN NUMBER
42251 --Distribution Link Type
42252 , p_source_58 IN VARCHAR2
42253 --PO Encumbrance Upgrade Option
42254 , p_source_59 IN VARCHAR2
42255 --JFMIP Reference
42256 , p_source_60 IN VARCHAR2
42257 --PO Upgrade Encumbrance Type Identifier
42258 , p_source_61 IN NUMBER
42259 --PO Release Identifier
42260 , p_source_66 IN NUMBER
42261 --Adjustment Status
42262 , p_source_75 IN VARCHAR2
42263 )
42264 IS
42265
42266 l_component_type VARCHAR2(80);
42267 l_component_code VARCHAR2(30);
42268 l_component_type_code VARCHAR2(1);
42269 l_component_appl_id INTEGER;
42270 l_amb_context_code VARCHAR2(30);
42271 l_entity_code VARCHAR2(30);
42272 l_event_class_code VARCHAR2(30);
42273 l_ae_header_id NUMBER;
42274 l_event_type_code VARCHAR2(30);
42275 l_line_definition_code VARCHAR2(30);
42276 l_line_definition_owner_code VARCHAR2(1);
42277 --
42278 -- adr variables
42279 l_segment VARCHAR2(30);
42280 l_ccid NUMBER;
42281 l_adr_transaction_coa_id NUMBER;
42282 l_adr_accounting_coa_id NUMBER;
42283 l_adr_flexfield_segment_code VARCHAR2(30);
42284 l_adr_flex_value_set_id NUMBER;
42285 l_adr_value_type_code VARCHAR2(30);
42286 l_adr_value_combination_id NUMBER;
42287 l_adr_value_segment_code VARCHAR2(30);
42288
42289 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
42290 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
42291 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
42292 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
42293
42294 -- 4262811 Variables ------------------------------------------------------------------------------------------
42295 l_entered_amt_idx NUMBER;
42296 l_accted_amt_idx NUMBER;
42297 l_acc_rev_flag VARCHAR2(1);
42298 l_accrual_line_num NUMBER;
42299 l_tmp_amt NUMBER;
42300 l_acc_rev_natural_side_code VARCHAR2(1);
42301
42302 l_num_entries NUMBER;
42303 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
42304 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
42305 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
42306 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
42307 l_recog_line_1 NUMBER;
42308 l_recog_line_2 NUMBER;
42309
42310 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
42311 l_bflow_applied_to_amt NUMBER; -- 5132302
42312 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
42313
42314 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
42315
42316 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
42317 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
42318
42319 ---------------------------------------------------------------------------------------------------------------
42320
42321
42322 --
42323 -- bulk performance
42324 --
42325 l_balance_type_code VARCHAR2(1);
42326 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
42327 l_log_module VARCHAR2(240);
42328
42329 --
42330 -- Upgrade strategy
42331 --
42332 l_actual_upg_option VARCHAR2(1);
42333 l_enc_upg_option VARCHAR2(1);
42334
42335 --
42336 BEGIN
42337 --
42338 IF g_log_enabled THEN
42339 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_75';
42340 END IF;
42341 --
42342 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42343
42344 trace
42345 (p_msg => 'BEGIN of AcctLineType_75'
42346 ,p_level => C_LEVEL_PROCEDURE
42347 ,p_module => l_log_module);
42348
42349 END IF;
42350 --
42351 l_component_type := 'AMB_JLT';
42352 l_component_code := 'REVERSE_RELEASE_ENCUMBRANCE_CR';
42353 l_component_type_code := 'S';
42354 l_component_appl_id := 201;
42355 l_amb_context_code := 'DEFAULT';
42356 l_entity_code := 'RELEASE';
42357 l_event_class_code := 'RELEASE';
42358 l_event_type_code := 'RELEASE_ALL';
42359 l_line_definition_owner_code := 'S';
42360 l_line_definition_code := 'RELEASE_ENC_ALL';
42361 --
42362 l_balance_type_code := 'E';
42363 l_segment := NULL;
42364 l_ccid := NULL;
42365 l_adr_transaction_coa_id := NULL;
42366 l_adr_accounting_coa_id := NULL;
42367 l_adr_flexfield_segment_code := NULL;
42368 l_adr_flex_value_set_id := NULL;
42369 l_adr_value_type_code := NULL;
42370 l_adr_value_combination_id := NULL;
42371 l_adr_value_segment_code := NULL;
42372
42373 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
42374 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
42375 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
42376 l_budgetary_control_flag := 'Y';
42377
42378 l_bflow_applied_to_amt_idx := NULL; -- 5132302
42379 l_bflow_applied_to_amt := NULL; -- 5132302
42380 l_entered_amt_idx := NULL; -- 4262811
42381 l_accted_amt_idx := NULL; -- 4262811
42382 l_acc_rev_flag := NULL; -- 4262811
42383 l_accrual_line_num := NULL; -- 4262811
42384 l_tmp_amt := NULL; -- 4262811
42385 --
42386
42387 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
42388 l_balance_type_code <> 'B' THEN
42389 IF (NVL(
42390 xla_ae_sources_pkg.GetSystemSourceChar(
42391 p_source_code => 'XLA_EVENT_TYPE_CODE'
42392 , p_source_type_code => 'Y'
42393 , p_source_application_id => 602
42394 ),'
42395 ') = 'RELEASE_REJECTED' OR
42396 NVL(
42397 xla_ae_sources_pkg.GetSystemSourceChar(
42398 p_source_code => 'XLA_EVENT_TYPE_CODE'
42399 , p_source_type_code => 'Y'
42400 , p_source_application_id => 602
42401 ),'
42402 ') = 'RELEASE_UNRESERVED' OR
42403 NVL(
42404 xla_ae_sources_pkg.GetSystemSourceChar(
42405 p_source_code => 'XLA_EVENT_TYPE_CODE'
42406 , p_source_type_code => 'Y'
42407 , p_source_application_id => 602
42408 ),'
42409 ') = 'RELEASE_FINAL_CLOSED' OR
42410 NVL(
42411 xla_ae_sources_pkg.GetSystemSourceChar(
42412 p_source_code => 'XLA_EVENT_TYPE_CODE'
42413 , p_source_type_code => 'Y'
42414 , p_source_application_id => 602
42415 ),'
42416 ') = 'RELEASE_INV_CANCELLED' OR
42417 (NVL(
42418 xla_ae_sources_pkg.GetSystemSourceChar(
42419 p_source_code => 'XLA_EVENT_TYPE_CODE'
42420 , p_source_type_code => 'Y'
42421 , p_source_application_id => 602
42422 ),'
42423 ') = 'RELEASE_ADJUSTED' AND
42424 NVL(p_source_75,'
42425 ') = 'OLD')
42426 ) AND NVL(p_source_13,'
42427 ') = 'M'
42428 THEN
42429
42430 --
42431 XLA_AE_LINES_PKG.SetNewLine;
42432
42433 p_balance_type_code := l_balance_type_code;
42434 -- set the flag so later we will know whether the gain loss line needs to be created
42435
42436 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
42437 p_actual_flag :='A';
42438 END IF;
42439
42440 --
42441 -- bulk performance
42442 --
42443 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
42444 p_header_num => 0); -- 4262811
42445 --
42446 -- set accounting line options
42447 --
42448 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
42449 p_natural_side_code => 'C'
42450 , p_gain_or_loss_flag => 'N'
42451 , p_gl_transfer_mode_code => 'S'
42452 , p_acct_entry_type_code => 'E'
42453 , p_switch_side_flag => 'N'
42454 , p_merge_duplicate_code => 'N'
42455 );
42456 --
42457 l_acc_rev_natural_side_code := 'D'; -- 4262811
42458 --
42459 --
42460 -- set accounting line type info
42461 --
42462 xla_ae_lines_pkg.SetAcctLineType
42463 (p_component_type => l_component_type
42464 ,p_event_type_code => l_event_type_code
42465 ,p_line_definition_owner_code => l_line_definition_owner_code
42466 ,p_line_definition_code => l_line_definition_code
42467 ,p_accounting_line_code => l_component_code
42468 ,p_accounting_line_type_code => l_component_type_code
42469 ,p_accounting_line_appl_id => l_component_appl_id
42470 ,p_amb_context_code => l_amb_context_code
42471 ,p_entity_code => l_entity_code
42472 ,p_event_class_code => l_event_class_code);
42473 --
42474 -- set accounting class
42475 --
42476 xla_ae_lines_pkg.SetAcctClass(
42477 p_accounting_class_code => 'PURCHASE_ORDER'
42478 , p_ae_header_id => l_ae_header_id
42479 );
42480
42481 --
42482 -- set rounding class
42483 --
42484 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
42485 'PURCHASE_ORDER';
42486
42487 --
42488 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
42489 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
42490 --
42491 -- bulk performance
42492 --
42493 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
42494
42495 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
42496 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
42497
42498 -- 4955764
42499 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42500 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
42501
42502 -- 4458381 Public Sector Enh
42503
42504 --
42505 -- set accounting attributes for the line type
42506 --
42507 l_entered_amt_idx := 23;
42508 l_accted_amt_idx := 25;
42509 l_bflow_applied_to_amt_idx := NULL; -- 5132302
42510 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
42511 l_rec_acct_attrs.array_char_value(1) := p_source_16;
42512 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
42513 l_rec_acct_attrs.array_num_value(2) :=
42514 xla_ae_sources_pkg.GetSystemSourceNum(
42515 p_source_code => 'XLA_EVENT_APPL_ID'
42516 , p_source_type_code => 'Y'
42517 , p_source_application_id => 602
42518 );
42519 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
42520 l_rec_acct_attrs.array_char_value(3) := p_source_58;
42521 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
42522 l_rec_acct_attrs.array_char_value(4) :=
42523 xla_ae_sources_pkg.GetSystemSourceChar(
42524 p_source_code => 'XLA_ENTITY_CODE'
42525 , p_source_type_code => 'Y'
42526 , p_source_application_id => 602
42527 );
42528 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
42529 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_29);
42530 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
42531 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_66);
42532 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
42533 l_rec_acct_attrs.array_num_value(7) := p_source_53;
42534 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
42535 l_rec_acct_attrs.array_char_value(8) := p_source_54;
42536 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
42537 l_rec_acct_attrs.array_char_value(9) := p_source_55;
42538 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
42539 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_56);
42540 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
42541 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_57);
42542 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
42543 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_29);
42544 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
42545 l_rec_acct_attrs.array_char_value(13) := p_source_58;
42546 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
42547 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_11);
42548 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
42549 l_rec_acct_attrs.array_num_value(15) := p_source_33;
42550 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
42551 l_rec_acct_attrs.array_char_value(16) := p_source_34;
42552 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
42553 l_rec_acct_attrs.array_num_value(17) := p_source_35;
42554 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
42555 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_11);
42556 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
42557 l_rec_acct_attrs.array_num_value(19) := p_source_33;
42558 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
42559 l_rec_acct_attrs.array_char_value(20) := p_source_34;
42560 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
42561 l_rec_acct_attrs.array_num_value(21) := p_source_35;
42562 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
42563 l_rec_acct_attrs.array_char_value(22) := p_source_59;
42564 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
42565 l_rec_acct_attrs.array_num_value(23) := p_source_33;
42566 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
42567 l_rec_acct_attrs.array_char_value(24) := p_source_34;
42568 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
42569 l_rec_acct_attrs.array_num_value(25) := p_source_35;
42570 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
42571 l_rec_acct_attrs.array_char_value(26) := p_source_60;
42572 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
42573 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_56);
42574 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
42575 l_rec_acct_attrs.array_char_value(28) := p_source_54;
42576 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
42577 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_66);
42578 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
42579 l_rec_acct_attrs.array_num_value(30) := p_source_61;
42580 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
42581 l_rec_acct_attrs.array_num_value(31) := p_source_61;
42582
42583 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
42584 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
42585
42586 ---------------------------------------------------------------------------------------------------------------
42587 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
42588 ---------------------------------------------------------------------------------------------------------------
42589 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
42590
42591 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42592 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42593
42594 IF xla_accounting_cache_pkg.GetValueChar
42595 (p_source_code => 'LEDGER_CATEGORY_CODE'
42596 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
42597 AND l_bflow_method_code = 'PRIOR_ENTRY'
42598 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
42599 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
42600 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
42601 )
42602 THEN
42603 xla_ae_lines_pkg.BflowUpgEntry
42604 (p_business_method_code => l_bflow_method_code
42605 ,p_business_class_code => l_bflow_class_code
42606 ,p_balance_type => l_balance_type_code);
42607 ELSE
42608 NULL;
42609 XLA_AE_LINES_PKG.business_flow_validation(
42610 p_business_method_code => l_bflow_method_code
42611 ,p_business_class_code => l_bflow_class_code
42612 ,p_inherit_description_flag => l_inherit_desc_flag);
42613 END IF;
42614
42615 --
42616 -- call analytical criteria
42617 --
42618 -- Inherited Analytical Criteria for business flow method of Prior Entry.
42619 --
42620 -- call description
42621 --
42622 -- No description or it is inherited.
42623 --
42624 -- call ADRs
42625 -- Bug 4922099
42626 --
42627 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42628 (NVL(l_actual_upg_option, 'N') = 'O') OR
42629 (NVL(l_enc_upg_option, 'N') = 'O')
42630 )
42631 THEN
42632 NULL;
42633 --
42634 --
42635
42636 --
42637 --
42638 END IF;
42639 --
42640 -- Bug 4922099
42641 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
42642 (NVL(l_enc_upg_option, 'N') = 'O')
42643 ) AND
42644 (l_bflow_method_code = 'PRIOR_ENTRY')
42645 )
42646 THEN
42647 IF
42648 --
42649 1 = 1
42650 --
42651 THEN
42652 xla_accounting_err_pkg.build_message
42653 (p_appli_s_name => 'XLA'
42654 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42655 ,p_token_1 => 'LINE_NUMBER'
42656 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
42657 ,p_token_2 => 'LINE_TYPE_NAME'
42658 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
42659 l_component_type
42660 ,l_component_code
42661 ,l_component_type_code
42662 ,l_component_appl_id
42663 ,l_amb_context_code
42664 ,l_entity_code
42665 ,l_event_class_code
42666 )
42667 ,p_token_3 => 'OWNER'
42668 ,p_value_3 => xla_lookups_pkg.get_meaning(
42669 p_lookup_type => 'XLA_OWNER_TYPE'
42670 ,p_lookup_code => l_component_type_code
42671 )
42672 ,p_token_4 => 'PRODUCT_NAME'
42673 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
42674 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
42675 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
42676 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
42677 ,p_ae_header_id => NULL
42678 );
42679
42680 IF (C_LEVEL_ERROR>= g_log_level) THEN
42681 trace
42682 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42683 ,p_level => C_LEVEL_ERROR
42684 ,p_module => l_log_module);
42685 END IF;
42686 END IF;
42687 END IF;
42688 --
42689 --
42690 ------------------------------------------------------------------------------------------------
42691 -- 4219869 Business Flow
42692 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
42693 -- Prior Entry. Currently, the following code is always generated.
42694 ------------------------------------------------------------------------------------------------
42695 -- No ValidateCurrentLine for business flow method of Prior Entry
42696
42697 ------------------------------------------------------------------------------------
42698 -- 4219869 Business Flow
42699 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
42700 ------------------------------------------------------------------------------------
42701 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42702
42703 ----------------------------------------------------------------------------------
42704 -- 4219869 Business Flow
42705 -- Update journal entry status -- Need to generate this within IF <condition>
42706 ----------------------------------------------------------------------------------
42707 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42708 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
42709 ,p_balance_type_code => l_balance_type_code
42710 );
42711
42712 -------------------------------------------------------------------------------------------
42713 -- 4262811 - Generate the Accrual Reversal lines
42714 -------------------------------------------------------------------------------------------
42715 BEGIN
42716 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
42717 (g_array_event(p_event_id).array_value_num('header_index'));
42718 IF l_acc_rev_flag IS NULL THEN
42719 l_acc_rev_flag := 'N';
42720 END IF;
42721 EXCEPTION
42722 WHEN OTHERS THEN
42723 l_acc_rev_flag := 'N';
42724 END;
42725 --
42726 IF (l_acc_rev_flag = 'Y') THEN
42727
42728 -- 4645092 ------------------------------------------------------------------------------
42729 -- To allow MPA report to determine if it should generate report process
42730 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
42731 ------------------------------------------------------------------------------------------
42732
42733 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
42734 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
42735
42736 --
42737 -- Update the line information that should be overwritten
42738 --
42739 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
42740 p_header_num => 1);
42741 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
42742
42743 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
42744
42745 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
42746 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
42747 END IF;
42748
42749 --
42750 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
42751 --
42752 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
42753 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
42754 ELSE
42755 ---------------------------------------------------------------------------------------------------
42756 -- 4262811a Switch Sign
42757 ---------------------------------------------------------------------------------------------------
42758 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
42759 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42760 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42761 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42762 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42763 -- 5132302
42764 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
42765 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42766
42767 END IF;
42768
42769 -- 4955764
42770 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42771 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
42772
42773
42774 XLA_AE_LINES_PKG.ValidateCurrentLine;
42775 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42776
42777 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42778 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
42779 ,p_balance_type_code => l_balance_type_code);
42780
42781 END IF;
42782
42783 -----------------------------------------------------------------------------------------
42784 -- 4262811 Multiperiod Accounting
42785 -----------------------------------------------------------------------------------------
42786 -- No MPA option is assigned.
42787
42788
42789 END IF;
42790 END IF;
42791 --
42792
42793 --
42794 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42795 trace
42796 (p_msg => 'END of AcctLineType_75'
42797 ,p_level => C_LEVEL_PROCEDURE
42798 ,p_module => l_log_module);
42799 END IF;
42800 --
42801 EXCEPTION
42802 WHEN xla_exceptions_pkg.application_exception THEN
42803 RAISE;
42804 WHEN OTHERS THEN
42805 xla_exceptions_pkg.raise_message
42806 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_75');
42807 END AcctLineType_75;
42808 --
42809
42810 ---------------------------------------
42811 --
42812 -- PRIVATE FUNCTION
42813 -- AcctLineType_76
42814 --
42815 ---------------------------------------
42816 PROCEDURE AcctLineType_76 (
42817 p_application_id IN NUMBER
42818 ,p_event_id IN NUMBER
42819 ,p_calculate_acctd_flag IN VARCHAR2
42820 ,p_calculate_g_l_flag IN VARCHAR2
42821 ,p_actual_flag IN OUT VARCHAR2
42822 ,p_balance_type_code OUT VARCHAR2
42823 ,p_gain_or_loss_ref OUT VARCHAR2
42824
42825 --Budget Account
42826 , p_source_11 IN NUMBER
42827 --Main Or Backing Code
42828 , p_source_13 IN VARCHAR2
42829 --Accounting Reversal Flag
42830 , p_source_16 IN VARCHAR2
42831 --PO Distribution Identifier
42832 , p_source_29 IN NUMBER
42833 --Entered Amount
42834 , p_source_33 IN NUMBER
42835 --Currency Code
42836 , p_source_34 IN VARCHAR2
42837 --Accounted Amount
42838 , p_source_35 IN NUMBER
42839 --Applied To Application Identifier
42840 , p_source_53 IN NUMBER
42841 --Applied To Distribution Link Type
42842 , p_source_54 IN VARCHAR2
42843 --Applied To Entity Code
42844 , p_source_55 IN VARCHAR2
42845 --Applied To Distribution Identifier 1
42846 , p_source_56 IN NUMBER
42847 --Applied To Header Identifier 1
42848 , p_source_57 IN NUMBER
42849 --Distribution Link Type
42850 , p_source_58 IN VARCHAR2
42851 --PO Encumbrance Upgrade Option
42852 , p_source_59 IN VARCHAR2
42853 --JFMIP Reference
42854 , p_source_60 IN VARCHAR2
42855 --PO Upgrade Encumbrance Type Identifier
42856 , p_source_61 IN NUMBER
42857 --PO Release Identifier
42858 , p_source_66 IN NUMBER
42859 )
42860 IS
42861
42862 l_component_type VARCHAR2(80);
42863 l_component_code VARCHAR2(30);
42864 l_component_type_code VARCHAR2(1);
42865 l_component_appl_id INTEGER;
42866 l_amb_context_code VARCHAR2(30);
42867 l_entity_code VARCHAR2(30);
42868 l_event_class_code VARCHAR2(30);
42869 l_ae_header_id NUMBER;
42870 l_event_type_code VARCHAR2(30);
42871 l_line_definition_code VARCHAR2(30);
42872 l_line_definition_owner_code VARCHAR2(1);
42873 --
42874 -- adr variables
42875 l_segment VARCHAR2(30);
42876 l_ccid NUMBER;
42877 l_adr_transaction_coa_id NUMBER;
42878 l_adr_accounting_coa_id NUMBER;
42879 l_adr_flexfield_segment_code VARCHAR2(30);
42880 l_adr_flex_value_set_id NUMBER;
42881 l_adr_value_type_code VARCHAR2(30);
42882 l_adr_value_combination_id NUMBER;
42883 l_adr_value_segment_code VARCHAR2(30);
42884
42885 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
42886 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
42887 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
42888 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
42889
42890 -- 4262811 Variables ------------------------------------------------------------------------------------------
42891 l_entered_amt_idx NUMBER;
42892 l_accted_amt_idx NUMBER;
42893 l_acc_rev_flag VARCHAR2(1);
42894 l_accrual_line_num NUMBER;
42895 l_tmp_amt NUMBER;
42896 l_acc_rev_natural_side_code VARCHAR2(1);
42897
42898 l_num_entries NUMBER;
42899 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
42900 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
42901 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
42902 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
42903 l_recog_line_1 NUMBER;
42904 l_recog_line_2 NUMBER;
42905
42906 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
42907 l_bflow_applied_to_amt NUMBER; -- 5132302
42908 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
42909
42910 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
42911
42912 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
42913 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
42914
42915 ---------------------------------------------------------------------------------------------------------------
42916
42917
42918 --
42919 -- bulk performance
42920 --
42921 l_balance_type_code VARCHAR2(1);
42922 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
42923 l_log_module VARCHAR2(240);
42924
42925 --
42926 -- Upgrade strategy
42927 --
42928 l_actual_upg_option VARCHAR2(1);
42929 l_enc_upg_option VARCHAR2(1);
42930
42931 --
42932 BEGIN
42933 --
42934 IF g_log_enabled THEN
42935 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_76';
42936 END IF;
42937 --
42938 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42939
42940 trace
42941 (p_msg => 'BEGIN of AcctLineType_76'
42942 ,p_level => C_LEVEL_PROCEDURE
42943 ,p_module => l_log_module);
42944
42945 END IF;
42946 --
42947 l_component_type := 'AMB_JLT';
42948 l_component_code := 'REVERSE_RELEASE_ENCUMBRANCE_DR';
42949 l_component_type_code := 'S';
42950 l_component_appl_id := 201;
42951 l_amb_context_code := 'DEFAULT';
42952 l_entity_code := 'RELEASE';
42953 l_event_class_code := 'RELEASE';
42954 l_event_type_code := 'RELEASE_ALL';
42955 l_line_definition_owner_code := 'S';
42956 l_line_definition_code := 'RELEASE_ENC_ALL';
42957 --
42958 l_balance_type_code := 'E';
42959 l_segment := NULL;
42960 l_ccid := NULL;
42961 l_adr_transaction_coa_id := NULL;
42962 l_adr_accounting_coa_id := NULL;
42963 l_adr_flexfield_segment_code := NULL;
42964 l_adr_flex_value_set_id := NULL;
42965 l_adr_value_type_code := NULL;
42966 l_adr_value_combination_id := NULL;
42967 l_adr_value_segment_code := NULL;
42968
42969 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
42970 l_bflow_class_code := 'PO_ENCUMBRANCE'; -- 4219869 Business Flow
42971 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
42972 l_budgetary_control_flag := 'Y';
42973
42974 l_bflow_applied_to_amt_idx := NULL; -- 5132302
42975 l_bflow_applied_to_amt := NULL; -- 5132302
42976 l_entered_amt_idx := NULL; -- 4262811
42977 l_accted_amt_idx := NULL; -- 4262811
42978 l_acc_rev_flag := NULL; -- 4262811
42979 l_accrual_line_num := NULL; -- 4262811
42980 l_tmp_amt := NULL; -- 4262811
42981 --
42982
42983 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
42984 l_balance_type_code <> 'B' THEN
42985 IF (NVL(
42986 xla_ae_sources_pkg.GetSystemSourceChar(
42987 p_source_code => 'XLA_EVENT_TYPE_CODE'
42988 , p_source_type_code => 'Y'
42989 , p_source_application_id => 602
42990 ),'
42991 ') = 'RELEASE_CANCELLED' OR
42992 NVL(
42993 xla_ae_sources_pkg.GetSystemSourceChar(
42994 p_source_code => 'XLA_EVENT_TYPE_CODE'
42995 , p_source_type_code => 'Y'
42996 , p_source_application_id => 602
42997 ),'
42998 ') = 'RELEASE_CR_MEMO_CANCELLED') AND
42999 NVL(p_source_13,'
43000 ') = 'M'
43001 THEN
43002
43003 --
43004 XLA_AE_LINES_PKG.SetNewLine;
43005
43006 p_balance_type_code := l_balance_type_code;
43007 -- set the flag so later we will know whether the gain loss line needs to be created
43008
43009 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
43010 p_actual_flag :='A';
43011 END IF;
43012
43013 --
43014 -- bulk performance
43015 --
43016 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
43017 p_header_num => 0); -- 4262811
43018 --
43019 -- set accounting line options
43020 --
43021 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
43022 p_natural_side_code => 'D'
43023 , p_gain_or_loss_flag => 'N'
43024 , p_gl_transfer_mode_code => 'S'
43025 , p_acct_entry_type_code => 'E'
43026 , p_switch_side_flag => 'N'
43027 , p_merge_duplicate_code => 'N'
43028 );
43029 --
43030 l_acc_rev_natural_side_code := 'C'; -- 4262811
43031 --
43032 --
43033 -- set accounting line type info
43034 --
43035 xla_ae_lines_pkg.SetAcctLineType
43036 (p_component_type => l_component_type
43037 ,p_event_type_code => l_event_type_code
43038 ,p_line_definition_owner_code => l_line_definition_owner_code
43039 ,p_line_definition_code => l_line_definition_code
43040 ,p_accounting_line_code => l_component_code
43041 ,p_accounting_line_type_code => l_component_type_code
43042 ,p_accounting_line_appl_id => l_component_appl_id
43043 ,p_amb_context_code => l_amb_context_code
43044 ,p_entity_code => l_entity_code
43045 ,p_event_class_code => l_event_class_code);
43046 --
43047 -- set accounting class
43048 --
43049 xla_ae_lines_pkg.SetAcctClass(
43050 p_accounting_class_code => 'PURCHASE_ORDER'
43051 , p_ae_header_id => l_ae_header_id
43052 );
43053
43054 --
43055 -- set rounding class
43056 --
43057 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
43058 'PURCHASE_ORDER';
43059
43060 --
43061 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
43062 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
43063 --
43064 -- bulk performance
43065 --
43066 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
43067
43068 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
43069 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
43070
43071 -- 4955764
43072 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43073 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
43074
43075 -- 4458381 Public Sector Enh
43076
43077 --
43078 -- set accounting attributes for the line type
43079 --
43080 l_entered_amt_idx := 23;
43081 l_accted_amt_idx := 25;
43082 l_bflow_applied_to_amt_idx := NULL; -- 5132302
43083 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
43084 l_rec_acct_attrs.array_char_value(1) := p_source_16;
43085 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
43086 l_rec_acct_attrs.array_num_value(2) :=
43087 xla_ae_sources_pkg.GetSystemSourceNum(
43088 p_source_code => 'XLA_EVENT_APPL_ID'
43089 , p_source_type_code => 'Y'
43090 , p_source_application_id => 602
43091 );
43092 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
43093 l_rec_acct_attrs.array_char_value(3) := p_source_58;
43094 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
43095 l_rec_acct_attrs.array_char_value(4) :=
43096 xla_ae_sources_pkg.GetSystemSourceChar(
43097 p_source_code => 'XLA_ENTITY_CODE'
43098 , p_source_type_code => 'Y'
43099 , p_source_application_id => 602
43100 );
43101 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
43102 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_29);
43103 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
43104 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_66);
43105 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
43106 l_rec_acct_attrs.array_num_value(7) := p_source_53;
43107 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
43108 l_rec_acct_attrs.array_char_value(8) := p_source_54;
43109 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
43110 l_rec_acct_attrs.array_char_value(9) := p_source_55;
43111 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
43112 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_56);
43113 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
43114 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_57);
43115 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
43116 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_29);
43117 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
43118 l_rec_acct_attrs.array_char_value(13) := p_source_58;
43119 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
43120 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_11);
43121 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
43122 l_rec_acct_attrs.array_num_value(15) := p_source_33;
43123 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
43124 l_rec_acct_attrs.array_char_value(16) := p_source_34;
43125 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
43126 l_rec_acct_attrs.array_num_value(17) := p_source_35;
43127 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
43128 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_11);
43129 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
43130 l_rec_acct_attrs.array_num_value(19) := p_source_33;
43131 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
43132 l_rec_acct_attrs.array_char_value(20) := p_source_34;
43133 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
43134 l_rec_acct_attrs.array_num_value(21) := p_source_35;
43135 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
43136 l_rec_acct_attrs.array_char_value(22) := p_source_59;
43137 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
43138 l_rec_acct_attrs.array_num_value(23) := p_source_33;
43139 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
43140 l_rec_acct_attrs.array_char_value(24) := p_source_34;
43141 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
43142 l_rec_acct_attrs.array_num_value(25) := p_source_35;
43143 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
43144 l_rec_acct_attrs.array_char_value(26) := p_source_60;
43145 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
43146 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_56);
43147 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
43148 l_rec_acct_attrs.array_char_value(28) := p_source_54;
43149 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
43150 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_66);
43151 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
43152 l_rec_acct_attrs.array_num_value(30) := p_source_61;
43153 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
43154 l_rec_acct_attrs.array_num_value(31) := p_source_61;
43155
43156 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
43157 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
43158
43159 ---------------------------------------------------------------------------------------------------------------
43160 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
43161 ---------------------------------------------------------------------------------------------------------------
43162 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
43163
43164 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43165 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43166
43167 IF xla_accounting_cache_pkg.GetValueChar
43168 (p_source_code => 'LEDGER_CATEGORY_CODE'
43169 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
43170 AND l_bflow_method_code = 'PRIOR_ENTRY'
43171 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
43172 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
43173 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
43174 )
43175 THEN
43176 xla_ae_lines_pkg.BflowUpgEntry
43177 (p_business_method_code => l_bflow_method_code
43178 ,p_business_class_code => l_bflow_class_code
43179 ,p_balance_type => l_balance_type_code);
43180 ELSE
43181 NULL;
43182 XLA_AE_LINES_PKG.business_flow_validation(
43183 p_business_method_code => l_bflow_method_code
43184 ,p_business_class_code => l_bflow_class_code
43185 ,p_inherit_description_flag => l_inherit_desc_flag);
43186 END IF;
43187
43188 --
43189 -- call analytical criteria
43190 --
43191 -- Inherited Analytical Criteria for business flow method of Prior Entry.
43192 --
43193 -- call description
43194 --
43195 -- No description or it is inherited.
43196 --
43197 -- call ADRs
43198 -- Bug 4922099
43199 --
43200 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43201 (NVL(l_actual_upg_option, 'N') = 'O') OR
43202 (NVL(l_enc_upg_option, 'N') = 'O')
43203 )
43204 THEN
43205 NULL;
43206 --
43207 --
43208
43209 --
43210 --
43211 END IF;
43212 --
43213 -- Bug 4922099
43214 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
43215 (NVL(l_enc_upg_option, 'N') = 'O')
43216 ) AND
43217 (l_bflow_method_code = 'PRIOR_ENTRY')
43218 )
43219 THEN
43220 IF
43221 --
43222 1 = 1
43223 --
43224 THEN
43225 xla_accounting_err_pkg.build_message
43226 (p_appli_s_name => 'XLA'
43227 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43228 ,p_token_1 => 'LINE_NUMBER'
43229 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
43230 ,p_token_2 => 'LINE_TYPE_NAME'
43231 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
43232 l_component_type
43233 ,l_component_code
43234 ,l_component_type_code
43235 ,l_component_appl_id
43236 ,l_amb_context_code
43237 ,l_entity_code
43238 ,l_event_class_code
43239 )
43240 ,p_token_3 => 'OWNER'
43241 ,p_value_3 => xla_lookups_pkg.get_meaning(
43242 p_lookup_type => 'XLA_OWNER_TYPE'
43243 ,p_lookup_code => l_component_type_code
43244 )
43245 ,p_token_4 => 'PRODUCT_NAME'
43246 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
43247 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
43248 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
43249 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
43250 ,p_ae_header_id => NULL
43251 );
43252
43253 IF (C_LEVEL_ERROR>= g_log_level) THEN
43254 trace
43255 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43256 ,p_level => C_LEVEL_ERROR
43257 ,p_module => l_log_module);
43258 END IF;
43259 END IF;
43260 END IF;
43261 --
43262 --
43263 ------------------------------------------------------------------------------------------------
43264 -- 4219869 Business Flow
43265 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
43266 -- Prior Entry. Currently, the following code is always generated.
43267 ------------------------------------------------------------------------------------------------
43268 -- No ValidateCurrentLine for business flow method of Prior Entry
43269
43270 ------------------------------------------------------------------------------------
43271 -- 4219869 Business Flow
43272 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
43273 ------------------------------------------------------------------------------------
43274 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43275
43276 ----------------------------------------------------------------------------------
43277 -- 4219869 Business Flow
43278 -- Update journal entry status -- Need to generate this within IF <condition>
43279 ----------------------------------------------------------------------------------
43280 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43281 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
43282 ,p_balance_type_code => l_balance_type_code
43283 );
43284
43285 -------------------------------------------------------------------------------------------
43286 -- 4262811 - Generate the Accrual Reversal lines
43287 -------------------------------------------------------------------------------------------
43288 BEGIN
43289 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
43290 (g_array_event(p_event_id).array_value_num('header_index'));
43291 IF l_acc_rev_flag IS NULL THEN
43292 l_acc_rev_flag := 'N';
43293 END IF;
43294 EXCEPTION
43295 WHEN OTHERS THEN
43296 l_acc_rev_flag := 'N';
43297 END;
43298 --
43299 IF (l_acc_rev_flag = 'Y') THEN
43300
43301 -- 4645092 ------------------------------------------------------------------------------
43302 -- To allow MPA report to determine if it should generate report process
43303 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
43304 ------------------------------------------------------------------------------------------
43305
43306 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
43307 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
43308
43309 --
43310 -- Update the line information that should be overwritten
43311 --
43312 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
43313 p_header_num => 1);
43314 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
43315
43316 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
43317
43318 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
43319 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
43320 END IF;
43321
43322 --
43323 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
43324 --
43325 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
43326 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
43327 ELSE
43328 ---------------------------------------------------------------------------------------------------
43329 -- 4262811a Switch Sign
43330 ---------------------------------------------------------------------------------------------------
43331 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
43332 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43333 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43334 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43335 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43336 -- 5132302
43337 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
43338 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43339
43340 END IF;
43341
43342 -- 4955764
43343 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43344 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
43345
43346
43347 XLA_AE_LINES_PKG.ValidateCurrentLine;
43348 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43349
43350 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43351 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
43352 ,p_balance_type_code => l_balance_type_code);
43353
43354 END IF;
43355
43356 -----------------------------------------------------------------------------------------
43357 -- 4262811 Multiperiod Accounting
43358 -----------------------------------------------------------------------------------------
43359 -- No MPA option is assigned.
43360
43361
43362 END IF;
43363 END IF;
43364 --
43365
43366 --
43367 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43368 trace
43369 (p_msg => 'END of AcctLineType_76'
43370 ,p_level => C_LEVEL_PROCEDURE
43371 ,p_module => l_log_module);
43372 END IF;
43373 --
43374 EXCEPTION
43375 WHEN xla_exceptions_pkg.application_exception THEN
43376 RAISE;
43377 WHEN OTHERS THEN
43378 xla_exceptions_pkg.raise_message
43379 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_76');
43380 END AcctLineType_76;
43381 --
43382
43383 ---------------------------------------
43384 --
43385 -- PRIVATE FUNCTION
43386 -- AcctLineType_77
43387 --
43388 ---------------------------------------
43389 PROCEDURE AcctLineType_77 (
43390 p_application_id IN NUMBER
43391 ,p_event_id IN NUMBER
43392 ,p_calculate_acctd_flag IN VARCHAR2
43393 ,p_calculate_g_l_flag IN VARCHAR2
43394 ,p_actual_flag IN OUT VARCHAR2
43395 ,p_balance_type_code OUT VARCHAR2
43396 ,p_gain_or_loss_ref OUT VARCHAR2
43397
43398 --Budget Account
43399 , p_source_11 IN NUMBER
43400 --Main Or Backing Code
43401 , p_source_13 IN VARCHAR2
43402 --Accounting Reversal Flag
43403 , p_source_16 IN VARCHAR2
43404 --Entered Amount
43405 , p_source_33 IN NUMBER
43406 --Currency Code
43407 , p_source_34 IN VARCHAR2
43408 --Accounted Amount
43409 , p_source_35 IN NUMBER
43410 --Requisition Distribution Identifier
43411 , p_source_47 IN NUMBER
43412 --Applied To Application Identifier
43413 , p_source_53 IN NUMBER
43414 --Applied To Distribution Link Type
43415 , p_source_54 IN VARCHAR2
43416 --Applied To Entity Code
43417 , p_source_55 IN VARCHAR2
43418 --Applied To Distribution Identifier 1
43419 , p_source_56 IN NUMBER
43420 --Applied To Header Identifier 1
43421 , p_source_57 IN NUMBER
43422 --Distribution Link Type
43423 , p_source_58 IN VARCHAR2
43424 --JFMIP Reference
43425 , p_source_60 IN VARCHAR2
43426 --Adjustment Status
43427 , p_source_75 IN VARCHAR2
43428 --Requisition Identifier
43429 , p_source_76 IN NUMBER
43430 --Requisition Encumbrance Upgrade Option
43431 , p_source_77 IN VARCHAR2
43432 --Requisition Upgrade Encumbrance Type Identifier
43433 , p_source_78 IN NUMBER
43434 )
43435 IS
43436
43437 l_component_type VARCHAR2(80);
43438 l_component_code VARCHAR2(30);
43439 l_component_type_code VARCHAR2(1);
43440 l_component_appl_id INTEGER;
43441 l_amb_context_code VARCHAR2(30);
43442 l_entity_code VARCHAR2(30);
43443 l_event_class_code VARCHAR2(30);
43444 l_ae_header_id NUMBER;
43445 l_event_type_code VARCHAR2(30);
43446 l_line_definition_code VARCHAR2(30);
43447 l_line_definition_owner_code VARCHAR2(1);
43448 --
43449 -- adr variables
43450 l_segment VARCHAR2(30);
43451 l_ccid NUMBER;
43452 l_adr_transaction_coa_id NUMBER;
43453 l_adr_accounting_coa_id NUMBER;
43454 l_adr_flexfield_segment_code VARCHAR2(30);
43455 l_adr_flex_value_set_id NUMBER;
43456 l_adr_value_type_code VARCHAR2(30);
43457 l_adr_value_combination_id NUMBER;
43458 l_adr_value_segment_code VARCHAR2(30);
43459
43460 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
43461 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
43462 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
43463 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
43464
43465 -- 4262811 Variables ------------------------------------------------------------------------------------------
43466 l_entered_amt_idx NUMBER;
43467 l_accted_amt_idx NUMBER;
43468 l_acc_rev_flag VARCHAR2(1);
43469 l_accrual_line_num NUMBER;
43470 l_tmp_amt NUMBER;
43471 l_acc_rev_natural_side_code VARCHAR2(1);
43472
43473 l_num_entries NUMBER;
43474 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
43475 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
43476 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
43477 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
43478 l_recog_line_1 NUMBER;
43479 l_recog_line_2 NUMBER;
43480
43481 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
43482 l_bflow_applied_to_amt NUMBER; -- 5132302
43483 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
43484
43485 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
43486
43487 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
43488 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
43489
43490 ---------------------------------------------------------------------------------------------------------------
43491
43492
43493 --
43494 -- bulk performance
43495 --
43496 l_balance_type_code VARCHAR2(1);
43497 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
43498 l_log_module VARCHAR2(240);
43499
43500 --
43501 -- Upgrade strategy
43502 --
43503 l_actual_upg_option VARCHAR2(1);
43504 l_enc_upg_option VARCHAR2(1);
43505
43506 --
43507 BEGIN
43508 --
43509 IF g_log_enabled THEN
43510 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_77';
43511 END IF;
43512 --
43513 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43514
43515 trace
43516 (p_msg => 'BEGIN of AcctLineType_77'
43517 ,p_level => C_LEVEL_PROCEDURE
43518 ,p_module => l_log_module);
43519
43520 END IF;
43521 --
43522 l_component_type := 'AMB_JLT';
43523 l_component_code := 'REVERSE_REQ_ENCUMBRANCE_CR';
43524 l_component_type_code := 'S';
43525 l_component_appl_id := 201;
43526 l_amb_context_code := 'DEFAULT';
43527 l_entity_code := 'REQUISITION';
43528 l_event_class_code := 'REQUISITION';
43529 l_event_type_code := 'REQUISITION_ALL';
43530 l_line_definition_owner_code := 'S';
43531 l_line_definition_code := 'REQ_ENC_ALL';
43532 --
43533 l_balance_type_code := 'E';
43534 l_segment := NULL;
43535 l_ccid := NULL;
43536 l_adr_transaction_coa_id := NULL;
43537 l_adr_accounting_coa_id := NULL;
43538 l_adr_flexfield_segment_code := NULL;
43539 l_adr_flex_value_set_id := NULL;
43540 l_adr_value_type_code := NULL;
43541 l_adr_value_combination_id := NULL;
43542 l_adr_value_segment_code := NULL;
43543
43544 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
43545 l_bflow_class_code := 'REQ_ENCUMBRANCE'; -- 4219869 Business Flow
43546 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
43547 l_budgetary_control_flag := 'Y';
43548
43549 l_bflow_applied_to_amt_idx := NULL; -- 5132302
43550 l_bflow_applied_to_amt := NULL; -- 5132302
43551 l_entered_amt_idx := NULL; -- 4262811
43552 l_accted_amt_idx := NULL; -- 4262811
43553 l_acc_rev_flag := NULL; -- 4262811
43554 l_accrual_line_num := NULL; -- 4262811
43555 l_tmp_amt := NULL; -- 4262811
43556 --
43557
43558 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
43559 l_balance_type_code <> 'B' THEN
43560 IF (NVL(
43561 xla_ae_sources_pkg.GetSystemSourceChar(
43562 p_source_code => 'XLA_EVENT_TYPE_CODE'
43563 , p_source_type_code => 'Y'
43564 , p_source_application_id => 602
43565 ),'
43566 ') = 'REQ_UNRESERVED' OR
43567 NVL(
43568 xla_ae_sources_pkg.GetSystemSourceChar(
43569 p_source_code => 'XLA_EVENT_TYPE_CODE'
43570 , p_source_type_code => 'Y'
43571 , p_source_application_id => 602
43572 ),'
43573 ') = 'REQ_FINAL_CLOSED' OR
43574 (NVL(
43575 xla_ae_sources_pkg.GetSystemSourceChar(
43576 p_source_code => 'XLA_EVENT_TYPE_CODE'
43577 , p_source_type_code => 'Y'
43578 , p_source_application_id => 602
43579 ),'
43580 ') = 'REQ_ADJUSTED' AND
43581 NVL(p_source_75,'
43582 ') = 'OLD') OR
43583 NVL(
43584 xla_ae_sources_pkg.GetSystemSourceChar(
43585 p_source_code => 'XLA_EVENT_TYPE_CODE'
43586 , p_source_type_code => 'Y'
43587 , p_source_application_id => 602
43588 ),'
43589 ') = 'REQ_REJECTED' OR
43590 NVL(
43591 xla_ae_sources_pkg.GetSystemSourceChar(
43592 p_source_code => 'XLA_EVENT_TYPE_CODE'
43593 , p_source_type_code => 'Y'
43594 , p_source_application_id => 602
43595 ),'
43596 ') = 'REQ_RETURNED') AND
43597 NVL(p_source_13,'
43598 ') = 'M'
43599 THEN
43600
43601 --
43602 XLA_AE_LINES_PKG.SetNewLine;
43603
43604 p_balance_type_code := l_balance_type_code;
43605 -- set the flag so later we will know whether the gain loss line needs to be created
43606
43607 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
43608 p_actual_flag :='A';
43609 END IF;
43610
43611 --
43612 -- bulk performance
43613 --
43614 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
43615 p_header_num => 0); -- 4262811
43616 --
43617 -- set accounting line options
43618 --
43619 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
43620 p_natural_side_code => 'C'
43621 , p_gain_or_loss_flag => 'N'
43622 , p_gl_transfer_mode_code => 'S'
43623 , p_acct_entry_type_code => 'E'
43624 , p_switch_side_flag => 'N'
43625 , p_merge_duplicate_code => 'N'
43626 );
43627 --
43628 l_acc_rev_natural_side_code := 'D'; -- 4262811
43629 --
43630 --
43631 -- set accounting line type info
43632 --
43633 xla_ae_lines_pkg.SetAcctLineType
43634 (p_component_type => l_component_type
43635 ,p_event_type_code => l_event_type_code
43636 ,p_line_definition_owner_code => l_line_definition_owner_code
43637 ,p_line_definition_code => l_line_definition_code
43638 ,p_accounting_line_code => l_component_code
43639 ,p_accounting_line_type_code => l_component_type_code
43640 ,p_accounting_line_appl_id => l_component_appl_id
43641 ,p_amb_context_code => l_amb_context_code
43642 ,p_entity_code => l_entity_code
43643 ,p_event_class_code => l_event_class_code);
43644 --
43645 -- set accounting class
43646 --
43647 xla_ae_lines_pkg.SetAcctClass(
43648 p_accounting_class_code => 'REQUISITION'
43649 , p_ae_header_id => l_ae_header_id
43650 );
43651
43652 --
43653 -- set rounding class
43654 --
43655 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
43656 'REQUISITION';
43657
43658 --
43659 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
43660 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
43661 --
43662 -- bulk performance
43663 --
43664 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
43665
43666 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
43667 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
43668
43669 -- 4955764
43670 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43671 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
43672
43673 -- 4458381 Public Sector Enh
43674
43675 --
43676 -- set accounting attributes for the line type
43677 --
43678 l_entered_amt_idx := 23;
43679 l_accted_amt_idx := 25;
43680 l_bflow_applied_to_amt_idx := NULL; -- 5132302
43681 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
43682 l_rec_acct_attrs.array_char_value(1) := p_source_16;
43683 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
43684 l_rec_acct_attrs.array_num_value(2) :=
43685 xla_ae_sources_pkg.GetSystemSourceNum(
43686 p_source_code => 'XLA_EVENT_APPL_ID'
43687 , p_source_type_code => 'Y'
43688 , p_source_application_id => 602
43689 );
43690 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
43691 l_rec_acct_attrs.array_char_value(3) := p_source_58;
43692 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
43693 l_rec_acct_attrs.array_char_value(4) :=
43694 xla_ae_sources_pkg.GetSystemSourceChar(
43695 p_source_code => 'XLA_ENTITY_CODE'
43696 , p_source_type_code => 'Y'
43697 , p_source_application_id => 602
43698 );
43699 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
43700 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_47);
43701 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
43702 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_76);
43703 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
43704 l_rec_acct_attrs.array_num_value(7) := p_source_53;
43705 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
43706 l_rec_acct_attrs.array_char_value(8) := p_source_54;
43707 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
43708 l_rec_acct_attrs.array_char_value(9) := p_source_55;
43709 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
43710 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_56);
43711 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
43712 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_57);
43713 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
43714 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_47);
43715 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
43716 l_rec_acct_attrs.array_char_value(13) := p_source_58;
43717 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
43718 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_11);
43719 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
43720 l_rec_acct_attrs.array_num_value(15) := p_source_33;
43721 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
43722 l_rec_acct_attrs.array_char_value(16) := p_source_34;
43723 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
43724 l_rec_acct_attrs.array_num_value(17) := p_source_35;
43725 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
43726 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_11);
43727 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
43728 l_rec_acct_attrs.array_num_value(19) := p_source_33;
43729 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
43730 l_rec_acct_attrs.array_char_value(20) := p_source_34;
43731 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
43732 l_rec_acct_attrs.array_num_value(21) := p_source_35;
43733 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
43734 l_rec_acct_attrs.array_char_value(22) := p_source_77;
43735 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
43736 l_rec_acct_attrs.array_num_value(23) := p_source_33;
43737 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
43738 l_rec_acct_attrs.array_char_value(24) := p_source_34;
43739 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
43740 l_rec_acct_attrs.array_num_value(25) := p_source_35;
43741 l_rec_acct_attrs.array_acct_attr_code(26) := 'RECON_REF';
43742 l_rec_acct_attrs.array_char_value(26) := p_source_60;
43743 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_ID1';
43744 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_56);
43745 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_TYPE';
43746 l_rec_acct_attrs.array_char_value(28) := p_source_54;
43747 l_rec_acct_attrs.array_acct_attr_code(29) := 'TRX_ROUNDING_REF';
43748 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_47);
43749 l_rec_acct_attrs.array_acct_attr_code(30) := 'UPG_CR_ENC_TYPE_ID';
43750 l_rec_acct_attrs.array_num_value(30) := p_source_78;
43751 l_rec_acct_attrs.array_acct_attr_code(31) := 'UPG_DR_ENC_TYPE_ID';
43752 l_rec_acct_attrs.array_num_value(31) := p_source_78;
43753
43754 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
43755 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
43756
43757 ---------------------------------------------------------------------------------------------------------------
43758 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
43759 ---------------------------------------------------------------------------------------------------------------
43760 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
43761
43762 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43763 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43764
43765 IF xla_accounting_cache_pkg.GetValueChar
43766 (p_source_code => 'LEDGER_CATEGORY_CODE'
43767 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
43768 AND l_bflow_method_code = 'PRIOR_ENTRY'
43769 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
43770 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
43771 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
43772 )
43773 THEN
43774 xla_ae_lines_pkg.BflowUpgEntry
43775 (p_business_method_code => l_bflow_method_code
43776 ,p_business_class_code => l_bflow_class_code
43777 ,p_balance_type => l_balance_type_code);
43778 ELSE
43779 NULL;
43780 XLA_AE_LINES_PKG.business_flow_validation(
43781 p_business_method_code => l_bflow_method_code
43782 ,p_business_class_code => l_bflow_class_code
43783 ,p_inherit_description_flag => l_inherit_desc_flag);
43784 END IF;
43785
43786 --
43787 -- call analytical criteria
43788 --
43789 -- Inherited Analytical Criteria for business flow method of Prior Entry.
43790 --
43791 -- call description
43792 --
43793 -- No description or it is inherited.
43794 --
43795 -- call ADRs
43796 -- Bug 4922099
43797 --
43798 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43799 (NVL(l_actual_upg_option, 'N') = 'O') OR
43800 (NVL(l_enc_upg_option, 'N') = 'O')
43801 )
43802 THEN
43803 NULL;
43804 --
43805 --
43806
43807 --
43808 --
43809 END IF;
43810 --
43811 -- Bug 4922099
43812 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
43813 (NVL(l_enc_upg_option, 'N') = 'O')
43814 ) AND
43815 (l_bflow_method_code = 'PRIOR_ENTRY')
43816 )
43817 THEN
43818 IF
43819 --
43820 1 = 1
43821 --
43822 THEN
43823 xla_accounting_err_pkg.build_message
43824 (p_appli_s_name => 'XLA'
43825 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43826 ,p_token_1 => 'LINE_NUMBER'
43827 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
43828 ,p_token_2 => 'LINE_TYPE_NAME'
43829 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
43830 l_component_type
43831 ,l_component_code
43832 ,l_component_type_code
43833 ,l_component_appl_id
43834 ,l_amb_context_code
43835 ,l_entity_code
43836 ,l_event_class_code
43837 )
43838 ,p_token_3 => 'OWNER'
43839 ,p_value_3 => xla_lookups_pkg.get_meaning(
43840 p_lookup_type => 'XLA_OWNER_TYPE'
43841 ,p_lookup_code => l_component_type_code
43842 )
43843 ,p_token_4 => 'PRODUCT_NAME'
43844 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
43845 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
43846 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
43847 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
43848 ,p_ae_header_id => NULL
43849 );
43850
43851 IF (C_LEVEL_ERROR>= g_log_level) THEN
43852 trace
43853 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43854 ,p_level => C_LEVEL_ERROR
43855 ,p_module => l_log_module);
43856 END IF;
43857 END IF;
43858 END IF;
43859 --
43860 --
43861 ------------------------------------------------------------------------------------------------
43862 -- 4219869 Business Flow
43863 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
43864 -- Prior Entry. Currently, the following code is always generated.
43865 ------------------------------------------------------------------------------------------------
43866 -- No ValidateCurrentLine for business flow method of Prior Entry
43867
43868 ------------------------------------------------------------------------------------
43869 -- 4219869 Business Flow
43870 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
43871 ------------------------------------------------------------------------------------
43872 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43873
43874 ----------------------------------------------------------------------------------
43875 -- 4219869 Business Flow
43876 -- Update journal entry status -- Need to generate this within IF <condition>
43877 ----------------------------------------------------------------------------------
43878 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43879 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
43880 ,p_balance_type_code => l_balance_type_code
43881 );
43882
43883 -------------------------------------------------------------------------------------------
43884 -- 4262811 - Generate the Accrual Reversal lines
43885 -------------------------------------------------------------------------------------------
43886 BEGIN
43887 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
43888 (g_array_event(p_event_id).array_value_num('header_index'));
43889 IF l_acc_rev_flag IS NULL THEN
43890 l_acc_rev_flag := 'N';
43891 END IF;
43892 EXCEPTION
43893 WHEN OTHERS THEN
43894 l_acc_rev_flag := 'N';
43895 END;
43896 --
43897 IF (l_acc_rev_flag = 'Y') THEN
43898
43899 -- 4645092 ------------------------------------------------------------------------------
43900 -- To allow MPA report to determine if it should generate report process
43901 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
43902 ------------------------------------------------------------------------------------------
43903
43904 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
43905 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
43906
43907 --
43908 -- Update the line information that should be overwritten
43909 --
43910 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
43911 p_header_num => 1);
43912 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
43913
43914 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
43915
43916 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
43917 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
43918 END IF;
43919
43920 --
43921 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
43922 --
43923 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
43924 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
43925 ELSE
43926 ---------------------------------------------------------------------------------------------------
43927 -- 4262811a Switch Sign
43928 ---------------------------------------------------------------------------------------------------
43929 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
43930 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43931 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43932 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43933 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43934 -- 5132302
43935 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
43936 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43937
43938 END IF;
43939
43940 -- 4955764
43941 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43942 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
43943
43944
43945 XLA_AE_LINES_PKG.ValidateCurrentLine;
43946 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43947
43948 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43949 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
43950 ,p_balance_type_code => l_balance_type_code);
43951
43952 END IF;
43953
43954 -----------------------------------------------------------------------------------------
43955 -- 4262811 Multiperiod Accounting
43956 -----------------------------------------------------------------------------------------
43957 -- No MPA option is assigned.
43958
43959
43960 END IF;
43961 END IF;
43962 --
43963
43964 --
43965 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43966 trace
43967 (p_msg => 'END of AcctLineType_77'
43968 ,p_level => C_LEVEL_PROCEDURE
43969 ,p_module => l_log_module);
43970 END IF;
43971 --
43972 EXCEPTION
43973 WHEN xla_exceptions_pkg.application_exception THEN
43974 RAISE;
43975 WHEN OTHERS THEN
43976 xla_exceptions_pkg.raise_message
43977 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_77');
43978 END AcctLineType_77;
43979 --
43980
43981 ---------------------------------------
43982 --
43983 -- PRIVATE FUNCTION
43984 -- AcctLineType_78
43985 --
43986 ---------------------------------------
43987 PROCEDURE AcctLineType_78 (
43988 p_application_id IN NUMBER
43989 ,p_event_id IN NUMBER
43990 ,p_calculate_acctd_flag IN VARCHAR2
43991 ,p_calculate_g_l_flag IN VARCHAR2
43992 ,p_actual_flag IN OUT VARCHAR2
43993 ,p_balance_type_code OUT VARCHAR2
43994 ,p_gain_or_loss_ref OUT VARCHAR2
43995
43996 --Budget Account
43997 , p_source_11 IN NUMBER
43998 --Accounting Reversal Flag
43999 , p_source_16 IN VARCHAR2
44000 --Entered Amount
44001 , p_source_33 IN NUMBER
44002 --Currency Code
44003 , p_source_34 IN VARCHAR2
44004 --Accounted Amount
44005 , p_source_35 IN NUMBER
44006 --Requisition Distribution Identifier
44007 , p_source_47 IN NUMBER
44008 --Applied To Application Identifier
44009 , p_source_53 IN NUMBER
44010 --Applied To Distribution Link Type
44011 , p_source_54 IN VARCHAR2
44012 --Applied To Entity Code
44013 , p_source_55 IN VARCHAR2
44014 --Applied To Distribution Identifier 1
44015 , p_source_56 IN NUMBER
44016 --Applied To Header Identifier 1
44017 , p_source_57 IN NUMBER
44018 --Distribution Link Type
44019 , p_source_58 IN VARCHAR2
44020 --Requisition Identifier
44021 , p_source_76 IN NUMBER
44022 --Requisition Encumbrance Upgrade Option
44023 , p_source_77 IN VARCHAR2
44024 --Requisition Upgrade Encumbrance Type Identifier
44025 , p_source_78 IN NUMBER
44026 )
44027 IS
44028
44029 l_component_type VARCHAR2(80);
44030 l_component_code VARCHAR2(30);
44031 l_component_type_code VARCHAR2(1);
44032 l_component_appl_id INTEGER;
44033 l_amb_context_code VARCHAR2(30);
44034 l_entity_code VARCHAR2(30);
44035 l_event_class_code VARCHAR2(30);
44036 l_ae_header_id NUMBER;
44037 l_event_type_code VARCHAR2(30);
44038 l_line_definition_code VARCHAR2(30);
44039 l_line_definition_owner_code VARCHAR2(1);
44040 --
44041 -- adr variables
44042 l_segment VARCHAR2(30);
44043 l_ccid NUMBER;
44044 l_adr_transaction_coa_id NUMBER;
44045 l_adr_accounting_coa_id NUMBER;
44046 l_adr_flexfield_segment_code VARCHAR2(30);
44047 l_adr_flex_value_set_id NUMBER;
44048 l_adr_value_type_code VARCHAR2(30);
44049 l_adr_value_combination_id NUMBER;
44050 l_adr_value_segment_code VARCHAR2(30);
44051
44052 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
44053 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
44054 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
44055 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
44056
44057 -- 4262811 Variables ------------------------------------------------------------------------------------------
44058 l_entered_amt_idx NUMBER;
44059 l_accted_amt_idx NUMBER;
44060 l_acc_rev_flag VARCHAR2(1);
44061 l_accrual_line_num NUMBER;
44062 l_tmp_amt NUMBER;
44063 l_acc_rev_natural_side_code VARCHAR2(1);
44064
44065 l_num_entries NUMBER;
44066 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
44067 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
44068 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
44069 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
44070 l_recog_line_1 NUMBER;
44071 l_recog_line_2 NUMBER;
44072
44073 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
44074 l_bflow_applied_to_amt NUMBER; -- 5132302
44075 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
44076
44077 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
44078
44079 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
44080 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
44081
44082 ---------------------------------------------------------------------------------------------------------------
44083
44084
44085 --
44086 -- bulk performance
44087 --
44088 l_balance_type_code VARCHAR2(1);
44089 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
44090 l_log_module VARCHAR2(240);
44091
44092 --
44093 -- Upgrade strategy
44094 --
44095 l_actual_upg_option VARCHAR2(1);
44096 l_enc_upg_option VARCHAR2(1);
44097
44098 --
44099 BEGIN
44100 --
44101 IF g_log_enabled THEN
44102 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_78';
44103 END IF;
44104 --
44105 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44106
44107 trace
44108 (p_msg => 'BEGIN of AcctLineType_78'
44109 ,p_level => C_LEVEL_PROCEDURE
44110 ,p_module => l_log_module);
44111
44112 END IF;
44113 --
44114 l_component_type := 'AMB_JLT';
44115 l_component_code := 'REVERSE_REQ_ENCUMBRANCE_DR';
44116 l_component_type_code := 'S';
44117 l_component_appl_id := 201;
44118 l_amb_context_code := 'DEFAULT';
44119 l_entity_code := 'REQUISITION';
44120 l_event_class_code := 'REQUISITION';
44121 l_event_type_code := 'REQUISITION_ALL';
44122 l_line_definition_owner_code := 'S';
44123 l_line_definition_code := 'REQ_ENC_ALL';
44124 --
44125 l_balance_type_code := 'E';
44126 l_segment := NULL;
44127 l_ccid := NULL;
44128 l_adr_transaction_coa_id := NULL;
44129 l_adr_accounting_coa_id := NULL;
44130 l_adr_flexfield_segment_code := NULL;
44131 l_adr_flex_value_set_id := NULL;
44132 l_adr_value_type_code := NULL;
44133 l_adr_value_combination_id := NULL;
44134 l_adr_value_segment_code := NULL;
44135
44136 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
44137 l_bflow_class_code := 'REQ_ENCUMBRANCE'; -- 4219869 Business Flow
44138 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
44139 l_budgetary_control_flag := 'Y';
44140
44141 l_bflow_applied_to_amt_idx := NULL; -- 5132302
44142 l_bflow_applied_to_amt := NULL; -- 5132302
44143 l_entered_amt_idx := NULL; -- 4262811
44144 l_accted_amt_idx := NULL; -- 4262811
44145 l_acc_rev_flag := NULL; -- 4262811
44146 l_accrual_line_num := NULL; -- 4262811
44147 l_tmp_amt := NULL; -- 4262811
44148 --
44149
44150 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
44151 l_balance_type_code <> 'B' THEN
44152 IF NVL(
44153 xla_ae_sources_pkg.GetSystemSourceChar(
44154 p_source_code => 'XLA_EVENT_TYPE_CODE'
44155 , p_source_type_code => 'Y'
44156 , p_source_application_id => 602
44157 ),'
44158 ') = 'REQ_CANCELLED'
44159 THEN
44160
44161 --
44162 XLA_AE_LINES_PKG.SetNewLine;
44163
44164 p_balance_type_code := l_balance_type_code;
44165 -- set the flag so later we will know whether the gain loss line needs to be created
44166
44167 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
44168 p_actual_flag :='A';
44169 END IF;
44170
44171 --
44172 -- bulk performance
44173 --
44174 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
44175 p_header_num => 0); -- 4262811
44176 --
44177 -- set accounting line options
44178 --
44179 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
44180 p_natural_side_code => 'D'
44181 , p_gain_or_loss_flag => 'N'
44182 , p_gl_transfer_mode_code => 'S'
44183 , p_acct_entry_type_code => 'E'
44184 , p_switch_side_flag => 'N'
44185 , p_merge_duplicate_code => 'N'
44186 );
44187 --
44188 l_acc_rev_natural_side_code := 'C'; -- 4262811
44189 --
44190 --
44191 -- set accounting line type info
44192 --
44193 xla_ae_lines_pkg.SetAcctLineType
44194 (p_component_type => l_component_type
44195 ,p_event_type_code => l_event_type_code
44196 ,p_line_definition_owner_code => l_line_definition_owner_code
44197 ,p_line_definition_code => l_line_definition_code
44198 ,p_accounting_line_code => l_component_code
44199 ,p_accounting_line_type_code => l_component_type_code
44200 ,p_accounting_line_appl_id => l_component_appl_id
44201 ,p_amb_context_code => l_amb_context_code
44202 ,p_entity_code => l_entity_code
44203 ,p_event_class_code => l_event_class_code);
44204 --
44205 -- set accounting class
44206 --
44207 xla_ae_lines_pkg.SetAcctClass(
44208 p_accounting_class_code => 'REQUISITION'
44209 , p_ae_header_id => l_ae_header_id
44210 );
44211
44212 --
44213 -- set rounding class
44214 --
44215 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
44216 'REQUISITION';
44217
44218 --
44219 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
44220 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
44221 --
44222 -- bulk performance
44223 --
44224 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
44225
44226 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
44227 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
44228
44229 -- 4955764
44230 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44231 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
44232
44233 -- 4458381 Public Sector Enh
44234
44235 --
44236 -- set accounting attributes for the line type
44237 --
44238 l_entered_amt_idx := 23;
44239 l_accted_amt_idx := 25;
44240 l_bflow_applied_to_amt_idx := NULL; -- 5132302
44241 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
44242 l_rec_acct_attrs.array_char_value(1) := p_source_16;
44243 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
44244 l_rec_acct_attrs.array_num_value(2) :=
44245 xla_ae_sources_pkg.GetSystemSourceNum(
44246 p_source_code => 'XLA_EVENT_APPL_ID'
44247 , p_source_type_code => 'Y'
44248 , p_source_application_id => 602
44249 );
44250 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
44251 l_rec_acct_attrs.array_char_value(3) := p_source_58;
44252 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
44253 l_rec_acct_attrs.array_char_value(4) :=
44254 xla_ae_sources_pkg.GetSystemSourceChar(
44255 p_source_code => 'XLA_ENTITY_CODE'
44256 , p_source_type_code => 'Y'
44257 , p_source_application_id => 602
44258 );
44259 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
44260 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_47);
44261 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
44262 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_76);
44263 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
44264 l_rec_acct_attrs.array_num_value(7) := p_source_53;
44265 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
44266 l_rec_acct_attrs.array_char_value(8) := p_source_54;
44267 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
44268 l_rec_acct_attrs.array_char_value(9) := p_source_55;
44269 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
44270 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_56);
44271 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
44272 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_57);
44273 l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
44274 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_47);
44275 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
44276 l_rec_acct_attrs.array_char_value(13) := p_source_58;
44277 l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
44278 l_rec_acct_attrs.array_num_value(14) := TO_NUMBER(p_source_11);
44279 l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
44280 l_rec_acct_attrs.array_num_value(15) := p_source_33;
44281 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
44282 l_rec_acct_attrs.array_char_value(16) := p_source_34;
44283 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
44284 l_rec_acct_attrs.array_num_value(17) := p_source_35;
44285 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
44286 l_rec_acct_attrs.array_num_value(18) := TO_NUMBER(p_source_11);
44287 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
44288 l_rec_acct_attrs.array_num_value(19) := p_source_33;
44289 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
44290 l_rec_acct_attrs.array_char_value(20) := p_source_34;
44291 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
44292 l_rec_acct_attrs.array_num_value(21) := p_source_35;
44293 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
44294 l_rec_acct_attrs.array_char_value(22) := p_source_77;
44295 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
44296 l_rec_acct_attrs.array_num_value(23) := p_source_33;
44297 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
44298 l_rec_acct_attrs.array_char_value(24) := p_source_34;
44299 l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
44300 l_rec_acct_attrs.array_num_value(25) := p_source_35;
44301 l_rec_acct_attrs.array_acct_attr_code(26) := 'REVERSED_DISTRIBUTION_ID1';
44302 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_56);
44303 l_rec_acct_attrs.array_acct_attr_code(27) := 'REVERSED_DISTRIBUTION_TYPE';
44304 l_rec_acct_attrs.array_char_value(27) := p_source_54;
44305 l_rec_acct_attrs.array_acct_attr_code(28) := 'UPG_CR_ENC_TYPE_ID';
44306 l_rec_acct_attrs.array_num_value(28) := p_source_78;
44307 l_rec_acct_attrs.array_acct_attr_code(29) := 'UPG_DR_ENC_TYPE_ID';
44308 l_rec_acct_attrs.array_num_value(29) := p_source_78;
44309
44310 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
44311 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
44312
44313 ---------------------------------------------------------------------------------------------------------------
44314 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
44315 ---------------------------------------------------------------------------------------------------------------
44316 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
44317
44318 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44319 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44320
44321 IF xla_accounting_cache_pkg.GetValueChar
44322 (p_source_code => 'LEDGER_CATEGORY_CODE'
44323 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
44324 AND l_bflow_method_code = 'PRIOR_ENTRY'
44325 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
44326 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
44327 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
44328 )
44329 THEN
44330 xla_ae_lines_pkg.BflowUpgEntry
44331 (p_business_method_code => l_bflow_method_code
44332 ,p_business_class_code => l_bflow_class_code
44333 ,p_balance_type => l_balance_type_code);
44334 ELSE
44335 NULL;
44336 XLA_AE_LINES_PKG.business_flow_validation(
44337 p_business_method_code => l_bflow_method_code
44338 ,p_business_class_code => l_bflow_class_code
44339 ,p_inherit_description_flag => l_inherit_desc_flag);
44340 END IF;
44341
44342 --
44343 -- call analytical criteria
44344 --
44345 -- Inherited Analytical Criteria for business flow method of Prior Entry.
44346 --
44347 -- call description
44348 --
44349 -- No description or it is inherited.
44350 --
44351 -- call ADRs
44352 -- Bug 4922099
44353 --
44354 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44355 (NVL(l_actual_upg_option, 'N') = 'O') OR
44356 (NVL(l_enc_upg_option, 'N') = 'O')
44357 )
44358 THEN
44359 NULL;
44360 --
44361 --
44362
44363 --
44364 --
44365 END IF;
44366 --
44367 -- Bug 4922099
44368 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
44369 (NVL(l_enc_upg_option, 'N') = 'O')
44370 ) AND
44371 (l_bflow_method_code = 'PRIOR_ENTRY')
44372 )
44373 THEN
44374 IF
44375 --
44376 1 = 1
44377 --
44378 THEN
44379 xla_accounting_err_pkg.build_message
44380 (p_appli_s_name => 'XLA'
44381 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44382 ,p_token_1 => 'LINE_NUMBER'
44383 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
44384 ,p_token_2 => 'LINE_TYPE_NAME'
44385 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
44386 l_component_type
44387 ,l_component_code
44388 ,l_component_type_code
44389 ,l_component_appl_id
44390 ,l_amb_context_code
44391 ,l_entity_code
44392 ,l_event_class_code
44393 )
44394 ,p_token_3 => 'OWNER'
44395 ,p_value_3 => xla_lookups_pkg.get_meaning(
44396 p_lookup_type => 'XLA_OWNER_TYPE'
44397 ,p_lookup_code => l_component_type_code
44398 )
44399 ,p_token_4 => 'PRODUCT_NAME'
44400 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
44401 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
44402 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
44403 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
44404 ,p_ae_header_id => NULL
44405 );
44406
44407 IF (C_LEVEL_ERROR>= g_log_level) THEN
44408 trace
44409 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44410 ,p_level => C_LEVEL_ERROR
44411 ,p_module => l_log_module);
44412 END IF;
44413 END IF;
44414 END IF;
44415 --
44416 --
44417 ------------------------------------------------------------------------------------------------
44418 -- 4219869 Business Flow
44419 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
44420 -- Prior Entry. Currently, the following code is always generated.
44421 ------------------------------------------------------------------------------------------------
44422 -- No ValidateCurrentLine for business flow method of Prior Entry
44423
44424 ------------------------------------------------------------------------------------
44425 -- 4219869 Business Flow
44426 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
44427 ------------------------------------------------------------------------------------
44428 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44429
44430 ----------------------------------------------------------------------------------
44431 -- 4219869 Business Flow
44432 -- Update journal entry status -- Need to generate this within IF <condition>
44433 ----------------------------------------------------------------------------------
44434 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44435 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
44436 ,p_balance_type_code => l_balance_type_code
44437 );
44438
44439 -------------------------------------------------------------------------------------------
44440 -- 4262811 - Generate the Accrual Reversal lines
44441 -------------------------------------------------------------------------------------------
44442 BEGIN
44443 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
44444 (g_array_event(p_event_id).array_value_num('header_index'));
44445 IF l_acc_rev_flag IS NULL THEN
44446 l_acc_rev_flag := 'N';
44447 END IF;
44448 EXCEPTION
44449 WHEN OTHERS THEN
44450 l_acc_rev_flag := 'N';
44451 END;
44452 --
44453 IF (l_acc_rev_flag = 'Y') THEN
44454
44455 -- 4645092 ------------------------------------------------------------------------------
44456 -- To allow MPA report to determine if it should generate report process
44457 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
44458 ------------------------------------------------------------------------------------------
44459
44460 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
44461 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
44462
44463 --
44464 -- Update the line information that should be overwritten
44465 --
44466 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
44467 p_header_num => 1);
44468 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
44469
44470 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
44471
44472 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
44473 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
44474 END IF;
44475
44476 --
44477 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
44478 --
44479 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
44480 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
44481 ELSE
44482 ---------------------------------------------------------------------------------------------------
44483 -- 4262811a Switch Sign
44484 ---------------------------------------------------------------------------------------------------
44485 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
44486 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44487 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44488 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44489 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44490 -- 5132302
44491 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
44492 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44493
44494 END IF;
44495
44496 -- 4955764
44497 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44498 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
44499
44500
44501 XLA_AE_LINES_PKG.ValidateCurrentLine;
44502 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44503
44504 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44505 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
44506 ,p_balance_type_code => l_balance_type_code);
44507
44508 END IF;
44509
44510 -----------------------------------------------------------------------------------------
44511 -- 4262811 Multiperiod Accounting
44512 -----------------------------------------------------------------------------------------
44513 -- No MPA option is assigned.
44514
44515
44516 END IF;
44517 END IF;
44518 --
44519
44520 --
44521 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44522 trace
44523 (p_msg => 'END of AcctLineType_78'
44524 ,p_level => C_LEVEL_PROCEDURE
44525 ,p_module => l_log_module);
44526 END IF;
44527 --
44528 EXCEPTION
44529 WHEN xla_exceptions_pkg.application_exception THEN
44530 RAISE;
44531 WHEN OTHERS THEN
44532 xla_exceptions_pkg.raise_message
44533 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_78');
44534 END AcctLineType_78;
44535 --
44536
44537 ---------------------------------------
44538 --
44539 -- PRIVATE FUNCTION
44540 -- AcctLineType_79
44541 --
44542 ---------------------------------------
44543 PROCEDURE AcctLineType_79 (
44544 p_application_id IN NUMBER
44545 ,p_event_id IN NUMBER
44546 ,p_calculate_acctd_flag IN VARCHAR2
44547 ,p_calculate_g_l_flag IN VARCHAR2
44548 ,p_actual_flag IN OUT VARCHAR2
44549 ,p_balance_type_code OUT VARCHAR2
44550 ,p_gain_or_loss_ref OUT VARCHAR2
44551
44552 --Project Name
44553 , p_source_3 IN VARCHAR2
44554 --Task Name
44555 , p_source_4 IN VARCHAR2
44556 --Project Expenditure Organization Identifier
44557 , p_source_5 IN NUMBER
44558 --Expenditure Type
44559 , p_source_6 IN VARCHAR2
44560 --Document Type
44561 , p_source_9 IN VARCHAR2
44562 --Main Or Backing Code
44563 , p_source_13 IN VARCHAR2
44564 --Burden Record Identifier
44565 , p_source_14 IN VARCHAR2
44566 , p_source_14_meaning IN VARCHAR2
44567 --Burden Amount Display Method
44568 , p_source_15 IN VARCHAR2
44569 --Accounting Reversal Flag
44570 , p_source_16 IN VARCHAR2
44571 --Allocated to Application Identifier
44572 , p_source_17 IN NUMBER
44573 --Allocated to Distribution Type
44574 , p_source_18 IN VARCHAR2
44575 --Allocated to Entity Code
44576 , p_source_19 IN VARCHAR2
44577 --Allocated to First Distribution Identifier
44578 , p_source_20 IN NUMBER
44579 --Allocated to First System Transaction Identifier
44580 , p_source_21 IN NUMBER
44581 --Purchase Order Burden Applied to Application Identifier
44582 , p_source_23 IN NUMBER
44583 --PO Distribution Type
44584 , p_source_24 IN VARCHAR2
44585 --Purchase Order Burden Applied to Entity Code
44586 , p_source_25 IN VARCHAR2
44587 --Purchase Order Burden Applied to First Distribution Identifier
44588 , p_source_26 IN NUMBER
44589 --Purchase Order Burden Applied to First System Transaction Identifier
44590 , p_source_27 IN NUMBER
44591 --Purchase Order Burden Applied to Second Distribution Identifier
44592 , p_source_28 IN VARCHAR2
44593 --PO Distribution Identifier
44594 , p_source_29 IN NUMBER
44595 --Line Type Name
44596 , p_source_30 IN VARCHAR2
44597 --Encumbrance Upgrade Credit Accounting Class
44598 , p_source_31 IN VARCHAR2
44599 --Encumbrance Upgrade Credit Account
44600 , p_source_32 IN NUMBER
44601 --Entered Amount
44602 , p_source_33 IN NUMBER
44603 --Currency Code
44604 , p_source_34 IN VARCHAR2
44605 --Accounted Amount
44606 , p_source_35 IN NUMBER
44607 --Encumbrance Upgrade Debit Accounting Class
44608 , p_source_36 IN VARCHAR2
44609 --Encumbrance Upgrade Debit Account
44610 , p_source_37 IN NUMBER
44611 --Use Encumbrances Upgrade Attributes Flag
44612 , p_source_38 IN VARCHAR2
44613 --Encumbrance Upgrade Credit Encumbrance Type
44614 , p_source_39 IN NUMBER
44615 --Encumbrance Upgrade Debit Encumbrance Type
44616 , p_source_40 IN NUMBER
44617 )
44618 IS
44619
44620 l_component_type VARCHAR2(80);
44621 l_component_code VARCHAR2(30);
44622 l_component_type_code VARCHAR2(1);
44623 l_component_appl_id INTEGER;
44624 l_amb_context_code VARCHAR2(30);
44625 l_entity_code VARCHAR2(30);
44626 l_event_class_code VARCHAR2(30);
44627 l_ae_header_id NUMBER;
44628 l_event_type_code VARCHAR2(30);
44629 l_line_definition_code VARCHAR2(30);
44630 l_line_definition_owner_code VARCHAR2(1);
44631 --
44632 -- adr variables
44633 l_segment VARCHAR2(30);
44634 l_ccid NUMBER;
44635 l_adr_transaction_coa_id NUMBER;
44636 l_adr_accounting_coa_id NUMBER;
44637 l_adr_flexfield_segment_code VARCHAR2(30);
44638 l_adr_flex_value_set_id NUMBER;
44639 l_adr_value_type_code VARCHAR2(30);
44640 l_adr_value_combination_id NUMBER;
44641 l_adr_value_segment_code VARCHAR2(30);
44642
44643 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
44644 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
44645 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
44646 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
44647
44648 -- 4262811 Variables ------------------------------------------------------------------------------------------
44649 l_entered_amt_idx NUMBER;
44650 l_accted_amt_idx NUMBER;
44651 l_acc_rev_flag VARCHAR2(1);
44652 l_accrual_line_num NUMBER;
44653 l_tmp_amt NUMBER;
44654 l_acc_rev_natural_side_code VARCHAR2(1);
44655
44656 l_num_entries NUMBER;
44657 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
44658 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
44659 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
44660 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
44661 l_recog_line_1 NUMBER;
44662 l_recog_line_2 NUMBER;
44663
44664 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
44665 l_bflow_applied_to_amt NUMBER; -- 5132302
44666 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
44667
44668 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
44669
44670 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
44671 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
44672
44673 ---------------------------------------------------------------------------------------------------------------
44674
44675
44676 --
44677 -- bulk performance
44678 --
44679 l_balance_type_code VARCHAR2(1);
44680 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
44681 l_log_module VARCHAR2(240);
44682
44683 --
44684 -- Upgrade strategy
44685 --
44686 l_actual_upg_option VARCHAR2(1);
44687 l_enc_upg_option VARCHAR2(1);
44688
44689 --
44690 BEGIN
44691 --
44692 IF g_log_enabled THEN
44693 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_79';
44694 END IF;
44695 --
44696 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44697
44698 trace
44699 (p_msg => 'BEGIN of AcctLineType_79'
44700 ,p_level => C_LEVEL_PROCEDURE
44701 ,p_module => l_log_module);
44702
44703 END IF;
44704 --
44705 l_component_type := 'AMB_JLT';
44706 l_component_code := 'UNRESERVE_BURDENED_PO_ENC';
44707 l_component_type_code := 'S';
44708 l_component_appl_id := 201;
44709 l_amb_context_code := 'DEFAULT';
44710 l_entity_code := 'PURCHASE_ORDER';
44711 l_event_class_code := 'PO_BURDEN';
44712 l_event_type_code := 'PO_BURDEN_ALL';
44713 l_line_definition_owner_code := 'S';
44714 l_line_definition_code := 'PO_BURDEN_ENC_ALL';
44715 --
44716 l_balance_type_code := 'E';
44717 l_segment := NULL;
44718 l_ccid := NULL;
44719 l_adr_transaction_coa_id := NULL;
44720 l_adr_accounting_coa_id := NULL;
44721 l_adr_flexfield_segment_code := NULL;
44722 l_adr_flex_value_set_id := NULL;
44723 l_adr_value_type_code := NULL;
44724 l_adr_value_combination_id := NULL;
44725 l_adr_value_segment_code := NULL;
44726
44727 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
44728 l_bflow_class_code := 'PO_PA_BURDENED_ENC'; -- 4219869 Business Flow
44729 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
44730 l_budgetary_control_flag := 'Y';
44731
44732 l_bflow_applied_to_amt_idx := NULL; -- 5132302
44733 l_bflow_applied_to_amt := NULL; -- 5132302
44734 l_entered_amt_idx := NULL; -- 4262811
44735 l_accted_amt_idx := NULL; -- 4262811
44736 l_acc_rev_flag := NULL; -- 4262811
44737 l_accrual_line_num := NULL; -- 4262811
44738 l_tmp_amt := NULL; -- 4262811
44739 --
44740
44741 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
44742 l_balance_type_code <> 'B' THEN
44743 IF (NVL(
44744 xla_ae_sources_pkg.GetSystemSourceChar(
44745 p_source_code => 'XLA_EVENT_TYPE_CODE'
44746 , p_source_type_code => 'Y'
44747 , p_source_application_id => 602
44748 ),'
44749 ') = 'PO_BURDEN_FINAL_CLOSED' OR
44750 NVL(
44751 xla_ae_sources_pkg.GetSystemSourceChar(
44752 p_source_code => 'XLA_EVENT_TYPE_CODE'
44753 , p_source_type_code => 'Y'
44754 , p_source_application_id => 602
44755 ),'
44756 ') = 'PO_BURDEN_REJECTED' OR
44757 NVL(
44758 xla_ae_sources_pkg.GetSystemSourceChar(
44759 p_source_code => 'XLA_EVENT_TYPE_CODE'
44760 , p_source_type_code => 'Y'
44761 , p_source_application_id => 602
44762 ),'
44763 ') = 'PO_BURDEN_UNRESERVED' OR
44764 NVL(
44765 xla_ae_sources_pkg.GetSystemSourceChar(
44766 p_source_code => 'XLA_EVENT_TYPE_CODE'
44767 , p_source_type_code => 'Y'
44768 , p_source_application_id => 602
44769 ),'
44770 ') = 'PO_BURDEN_INV_CANCELLED') AND
44771 NVL(p_source_13,'
44772 ') = 'M' AND
44773 (NVL(p_source_14,'
44774 ') = 'N' OR
44775 NVL(p_source_14,'
44776 ') = 'O') AND
44777 NVL(p_source_9,'
44778 ') = 'PO' AND
44779 NVL(p_source_15,'
44780 ') = 'S'
44781 THEN
44782
44783 --
44784 XLA_AE_LINES_PKG.SetNewLine;
44785
44786 p_balance_type_code := l_balance_type_code;
44787 -- set the flag so later we will know whether the gain loss line needs to be created
44788
44789 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
44790 p_actual_flag :='A';
44791 END IF;
44792
44793 --
44794 -- bulk performance
44795 --
44796 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
44797 p_header_num => 0); -- 4262811
44798 --
44799 -- set accounting line options
44800 --
44801 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
44802 p_natural_side_code => 'C'
44803 , p_gain_or_loss_flag => 'N'
44804 , p_gl_transfer_mode_code => 'S'
44805 , p_acct_entry_type_code => 'E'
44806 , p_switch_side_flag => 'N'
44807 , p_merge_duplicate_code => 'N'
44808 );
44809 --
44810 l_acc_rev_natural_side_code := 'D'; -- 4262811
44811 --
44812 --
44813 -- set accounting line type info
44814 --
44815 xla_ae_lines_pkg.SetAcctLineType
44816 (p_component_type => l_component_type
44817 ,p_event_type_code => l_event_type_code
44818 ,p_line_definition_owner_code => l_line_definition_owner_code
44819 ,p_line_definition_code => l_line_definition_code
44820 ,p_accounting_line_code => l_component_code
44821 ,p_accounting_line_type_code => l_component_type_code
44822 ,p_accounting_line_appl_id => l_component_appl_id
44823 ,p_amb_context_code => l_amb_context_code
44824 ,p_entity_code => l_entity_code
44825 ,p_event_class_code => l_event_class_code);
44826 --
44827 -- set accounting class
44828 --
44829 xla_ae_lines_pkg.SetAcctClass(
44830 p_accounting_class_code => 'PO_PA_BURDENED'
44831 , p_ae_header_id => l_ae_header_id
44832 );
44833
44834 --
44835 -- set rounding class
44836 --
44837 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
44838 'PO_PA_BURDENED';
44839
44840 --
44841 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
44842 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
44843 --
44844 -- bulk performance
44845 --
44846 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
44847
44848 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
44849 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
44850
44851 -- 4955764
44852 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44853 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
44854
44855 -- 4458381 Public Sector Enh
44856
44857 --
44858 -- set accounting attributes for the line type
44859 --
44860 l_entered_amt_idx := 27;
44861 l_accted_amt_idx := 29;
44862 l_bflow_applied_to_amt_idx := NULL; -- 5132302
44863 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
44864 l_rec_acct_attrs.array_char_value(1) := p_source_16;
44865 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
44866 l_rec_acct_attrs.array_num_value(2) := p_source_17;
44867 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
44868 l_rec_acct_attrs.array_char_value(3) := p_source_18;
44869 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
44870 l_rec_acct_attrs.array_char_value(4) := p_source_19;
44871 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
44872 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
44873 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
44874 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
44875 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
44876 l_rec_acct_attrs.array_num_value(7) := p_source_23;
44877 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
44878 l_rec_acct_attrs.array_char_value(8) := p_source_24;
44879 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
44880 l_rec_acct_attrs.array_char_value(9) := p_source_25;
44881 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
44882 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_26);
44883 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
44884 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_27);
44885 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
44886 l_rec_acct_attrs.array_char_value(12) := p_source_28;
44887 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
44888 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_29);
44889 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
44890 l_rec_acct_attrs.array_char_value(14) := p_source_6;
44891 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
44892 l_rec_acct_attrs.array_char_value(15) := p_source_30;
44893 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
44894 l_rec_acct_attrs.array_char_value(16) := p_source_31;
44895 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
44896 l_rec_acct_attrs.array_num_value(17) := p_source_32;
44897 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
44898 l_rec_acct_attrs.array_num_value(18) := p_source_33;
44899 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
44900 l_rec_acct_attrs.array_char_value(19) := p_source_34;
44901 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
44902 l_rec_acct_attrs.array_num_value(20) := p_source_35;
44903 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
44904 l_rec_acct_attrs.array_char_value(21) := p_source_36;
44905 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
44906 l_rec_acct_attrs.array_num_value(22) := p_source_37;
44907 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
44908 l_rec_acct_attrs.array_num_value(23) := p_source_33;
44909 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
44910 l_rec_acct_attrs.array_char_value(24) := p_source_34;
44911 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
44912 l_rec_acct_attrs.array_num_value(25) := p_source_35;
44913 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
44914 l_rec_acct_attrs.array_char_value(26) := p_source_38;
44915 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
44916 l_rec_acct_attrs.array_num_value(27) := p_source_33;
44917 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
44918 l_rec_acct_attrs.array_char_value(28) := p_source_34;
44919 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
44920 l_rec_acct_attrs.array_num_value(29) := p_source_35;
44921 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
44922 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_29);
44923 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
44924 l_rec_acct_attrs.array_char_value(31) := p_source_6;
44925 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
44926 l_rec_acct_attrs.array_char_value(32) := p_source_30;
44927 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
44928 l_rec_acct_attrs.array_num_value(33) := p_source_39;
44929 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
44930 l_rec_acct_attrs.array_num_value(34) := p_source_40;
44931
44932 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
44933 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
44934
44935 ---------------------------------------------------------------------------------------------------------------
44936 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
44937 ---------------------------------------------------------------------------------------------------------------
44938 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
44939
44940 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44941 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44942
44943 IF xla_accounting_cache_pkg.GetValueChar
44944 (p_source_code => 'LEDGER_CATEGORY_CODE'
44945 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
44946 AND l_bflow_method_code = 'PRIOR_ENTRY'
44947 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
44948 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
44949 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
44950 )
44951 THEN
44952 xla_ae_lines_pkg.BflowUpgEntry
44953 (p_business_method_code => l_bflow_method_code
44954 ,p_business_class_code => l_bflow_class_code
44955 ,p_balance_type => l_balance_type_code);
44956 ELSE
44957 NULL;
44958 XLA_AE_LINES_PKG.business_flow_validation(
44959 p_business_method_code => l_bflow_method_code
44960 ,p_business_class_code => l_bflow_class_code
44961 ,p_inherit_description_flag => l_inherit_desc_flag);
44962 END IF;
44963
44964 --
44965 -- call analytical criteria
44966 --
44967 -- Inherited Analytical Criteria for business flow method of Prior Entry.
44968 --
44969 -- call description
44970 --
44971
44972 xla_ae_lines_pkg.SetLineDescription(
44973 p_ae_header_id => l_ae_header_id
44974 ,p_description => Description_2 (
44975 p_application_id => p_application_id
44976 , p_ae_header_id => l_ae_header_id
44977 , p_source_3 => p_source_3
44978 , p_source_4 => p_source_4
44979 , p_source_5 => p_source_5
44980 , p_source_6 => p_source_6
44981 )
44982 );
44983
44984
44985 --
44986 -- call ADRs
44987 -- Bug 4922099
44988 --
44989 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44990 (NVL(l_actual_upg_option, 'N') = 'O') OR
44991 (NVL(l_enc_upg_option, 'N') = 'O')
44992 )
44993 THEN
44994 NULL;
44995 --
44996 --
44997
44998 --
44999 --
45000 END IF;
45001 --
45002 -- Bug 4922099
45003 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
45004 (NVL(l_enc_upg_option, 'N') = 'O')
45005 ) AND
45006 (l_bflow_method_code = 'PRIOR_ENTRY')
45007 )
45008 THEN
45009 IF
45010 --
45011 1 = 1
45012 --
45013 THEN
45014 xla_accounting_err_pkg.build_message
45015 (p_appli_s_name => 'XLA'
45016 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45017 ,p_token_1 => 'LINE_NUMBER'
45018 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
45019 ,p_token_2 => 'LINE_TYPE_NAME'
45020 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
45021 l_component_type
45022 ,l_component_code
45023 ,l_component_type_code
45024 ,l_component_appl_id
45025 ,l_amb_context_code
45026 ,l_entity_code
45027 ,l_event_class_code
45028 )
45029 ,p_token_3 => 'OWNER'
45030 ,p_value_3 => xla_lookups_pkg.get_meaning(
45031 p_lookup_type => 'XLA_OWNER_TYPE'
45032 ,p_lookup_code => l_component_type_code
45033 )
45034 ,p_token_4 => 'PRODUCT_NAME'
45035 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
45036 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
45037 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
45038 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
45039 ,p_ae_header_id => NULL
45040 );
45041
45042 IF (C_LEVEL_ERROR>= g_log_level) THEN
45043 trace
45044 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45045 ,p_level => C_LEVEL_ERROR
45046 ,p_module => l_log_module);
45047 END IF;
45048 END IF;
45049 END IF;
45050 --
45051 --
45052 ------------------------------------------------------------------------------------------------
45053 -- 4219869 Business Flow
45054 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
45055 -- Prior Entry. Currently, the following code is always generated.
45056 ------------------------------------------------------------------------------------------------
45057 -- No ValidateCurrentLine for business flow method of Prior Entry
45058
45059 ------------------------------------------------------------------------------------
45060 -- 4219869 Business Flow
45061 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
45062 ------------------------------------------------------------------------------------
45063 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45064
45065 ----------------------------------------------------------------------------------
45066 -- 4219869 Business Flow
45067 -- Update journal entry status -- Need to generate this within IF <condition>
45068 ----------------------------------------------------------------------------------
45069 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45070 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
45071 ,p_balance_type_code => l_balance_type_code
45072 );
45073
45074 -------------------------------------------------------------------------------------------
45075 -- 4262811 - Generate the Accrual Reversal lines
45076 -------------------------------------------------------------------------------------------
45077 BEGIN
45078 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
45079 (g_array_event(p_event_id).array_value_num('header_index'));
45080 IF l_acc_rev_flag IS NULL THEN
45081 l_acc_rev_flag := 'N';
45082 END IF;
45083 EXCEPTION
45084 WHEN OTHERS THEN
45085 l_acc_rev_flag := 'N';
45086 END;
45087 --
45088 IF (l_acc_rev_flag = 'Y') THEN
45089
45090 -- 4645092 ------------------------------------------------------------------------------
45091 -- To allow MPA report to determine if it should generate report process
45092 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
45093 ------------------------------------------------------------------------------------------
45094
45095 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
45096 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
45097
45098 --
45099 -- Update the line information that should be overwritten
45100 --
45101 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
45102 p_header_num => 1);
45103 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
45104
45105 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
45106
45107 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
45108 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
45109 END IF;
45110
45111 --
45112 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
45113 --
45114 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
45115 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
45116 ELSE
45117 ---------------------------------------------------------------------------------------------------
45118 -- 4262811a Switch Sign
45119 ---------------------------------------------------------------------------------------------------
45120 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
45121 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45122 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45123 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45124 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45125 -- 5132302
45126 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
45127 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45128
45129 END IF;
45130
45131 -- 4955764
45132 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45133 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
45134
45135
45136 XLA_AE_LINES_PKG.ValidateCurrentLine;
45137 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45138
45139 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45140 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
45141 ,p_balance_type_code => l_balance_type_code);
45142
45143 END IF;
45144
45145 -----------------------------------------------------------------------------------------
45146 -- 4262811 Multiperiod Accounting
45147 -----------------------------------------------------------------------------------------
45148 -- No MPA option is assigned.
45149
45150
45151 END IF;
45152 END IF;
45153 --
45154
45155 --
45156 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45157 trace
45158 (p_msg => 'END of AcctLineType_79'
45159 ,p_level => C_LEVEL_PROCEDURE
45160 ,p_module => l_log_module);
45161 END IF;
45162 --
45163 EXCEPTION
45164 WHEN xla_exceptions_pkg.application_exception THEN
45165 RAISE;
45166 WHEN OTHERS THEN
45167 xla_exceptions_pkg.raise_message
45168 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_79');
45169 END AcctLineType_79;
45170 --
45171
45172 ---------------------------------------
45173 --
45174 -- PRIVATE FUNCTION
45175 -- AcctLineType_80
45176 --
45177 ---------------------------------------
45178 PROCEDURE AcctLineType_80 (
45179 p_application_id IN NUMBER
45180 ,p_event_id IN NUMBER
45181 ,p_calculate_acctd_flag IN VARCHAR2
45182 ,p_calculate_g_l_flag IN VARCHAR2
45183 ,p_actual_flag IN OUT VARCHAR2
45184 ,p_balance_type_code OUT VARCHAR2
45185 ,p_gain_or_loss_ref OUT VARCHAR2
45186
45187 --Project Name
45188 , p_source_3 IN VARCHAR2
45189 --Task Name
45190 , p_source_4 IN VARCHAR2
45191 --Project Expenditure Organization Identifier
45192 , p_source_5 IN NUMBER
45193 --Expenditure Type
45194 , p_source_6 IN VARCHAR2
45195 --Document Type
45196 , p_source_9 IN VARCHAR2
45197 --Main Or Backing Code
45198 , p_source_13 IN VARCHAR2
45199 --Burden Record Identifier
45200 , p_source_14 IN VARCHAR2
45201 , p_source_14_meaning IN VARCHAR2
45202 --Burden Amount Display Method
45203 , p_source_15 IN VARCHAR2
45204 --Accounting Reversal Flag
45205 , p_source_16 IN VARCHAR2
45206 --Allocated to Application Identifier
45207 , p_source_17 IN NUMBER
45208 --Allocated to Distribution Type
45209 , p_source_18 IN VARCHAR2
45210 --Allocated to Entity Code
45211 , p_source_19 IN VARCHAR2
45212 --Allocated to First Distribution Identifier
45213 , p_source_20 IN NUMBER
45214 --Allocated to First System Transaction Identifier
45215 , p_source_21 IN NUMBER
45216 --Allocated to Second Distribution Identifier
45217 , p_source_22 IN VARCHAR2
45218 --Purchase Order Burden Applied to Application Identifier
45219 , p_source_23 IN NUMBER
45220 --PO Distribution Type
45221 , p_source_24 IN VARCHAR2
45222 --Purchase Order Burden Applied to Entity Code
45223 , p_source_25 IN VARCHAR2
45224 --Purchase Order Burden Applied to First Distribution Identifier
45225 , p_source_26 IN NUMBER
45226 --Purchase Order Burden Applied to First System Transaction Identifier
45227 , p_source_27 IN NUMBER
45228 --Purchase Order Burden Applied to Second Distribution Identifier
45229 , p_source_28 IN VARCHAR2
45230 --PO Distribution Identifier
45231 , p_source_29 IN NUMBER
45232 --Line Type Name
45233 , p_source_30 IN VARCHAR2
45234 --Encumbrance Upgrade Credit Accounting Class
45235 , p_source_31 IN VARCHAR2
45236 --Encumbrance Upgrade Credit Account
45237 , p_source_32 IN NUMBER
45238 --Entered Amount
45239 , p_source_33 IN NUMBER
45240 --Currency Code
45241 , p_source_34 IN VARCHAR2
45242 --Accounted Amount
45243 , p_source_35 IN NUMBER
45244 --Encumbrance Upgrade Debit Accounting Class
45245 , p_source_36 IN VARCHAR2
45246 --Encumbrance Upgrade Debit Account
45247 , p_source_37 IN NUMBER
45248 --Use Encumbrances Upgrade Attributes Flag
45249 , p_source_38 IN VARCHAR2
45250 --Encumbrance Upgrade Credit Encumbrance Type
45251 , p_source_39 IN NUMBER
45252 --Encumbrance Upgrade Debit Encumbrance Type
45253 , p_source_40 IN NUMBER
45254 )
45255 IS
45256
45257 l_component_type VARCHAR2(80);
45258 l_component_code VARCHAR2(30);
45259 l_component_type_code VARCHAR2(1);
45260 l_component_appl_id INTEGER;
45261 l_amb_context_code VARCHAR2(30);
45262 l_entity_code VARCHAR2(30);
45263 l_event_class_code VARCHAR2(30);
45264 l_ae_header_id NUMBER;
45265 l_event_type_code VARCHAR2(30);
45266 l_line_definition_code VARCHAR2(30);
45267 l_line_definition_owner_code VARCHAR2(1);
45268 --
45269 -- adr variables
45270 l_segment VARCHAR2(30);
45271 l_ccid NUMBER;
45272 l_adr_transaction_coa_id NUMBER;
45273 l_adr_accounting_coa_id NUMBER;
45274 l_adr_flexfield_segment_code VARCHAR2(30);
45275 l_adr_flex_value_set_id NUMBER;
45276 l_adr_value_type_code VARCHAR2(30);
45277 l_adr_value_combination_id NUMBER;
45278 l_adr_value_segment_code VARCHAR2(30);
45279
45280 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
45281 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
45282 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
45283 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
45284
45285 -- 4262811 Variables ------------------------------------------------------------------------------------------
45286 l_entered_amt_idx NUMBER;
45287 l_accted_amt_idx NUMBER;
45288 l_acc_rev_flag VARCHAR2(1);
45289 l_accrual_line_num NUMBER;
45290 l_tmp_amt NUMBER;
45291 l_acc_rev_natural_side_code VARCHAR2(1);
45292
45293 l_num_entries NUMBER;
45294 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
45295 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
45296 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
45297 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
45298 l_recog_line_1 NUMBER;
45299 l_recog_line_2 NUMBER;
45300
45301 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
45302 l_bflow_applied_to_amt NUMBER; -- 5132302
45303 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
45304
45305 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
45306
45307 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
45308 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
45309
45310 ---------------------------------------------------------------------------------------------------------------
45311
45312
45313 --
45314 -- bulk performance
45315 --
45316 l_balance_type_code VARCHAR2(1);
45317 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
45318 l_log_module VARCHAR2(240);
45319
45320 --
45321 -- Upgrade strategy
45322 --
45323 l_actual_upg_option VARCHAR2(1);
45324 l_enc_upg_option VARCHAR2(1);
45325
45326 --
45327 BEGIN
45328 --
45329 IF g_log_enabled THEN
45330 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_80';
45331 END IF;
45332 --
45333 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45334
45335 trace
45336 (p_msg => 'BEGIN of AcctLineType_80'
45337 ,p_level => C_LEVEL_PROCEDURE
45338 ,p_module => l_log_module);
45339
45340 END IF;
45341 --
45342 l_component_type := 'AMB_JLT';
45343 l_component_code := 'UNRESERVE_BURDENED_REL_ENC';
45344 l_component_type_code := 'S';
45345 l_component_appl_id := 201;
45346 l_amb_context_code := 'DEFAULT';
45347 l_entity_code := 'RELEASE';
45348 l_event_class_code := 'RELEASE_BURDEN';
45349 l_event_type_code := 'RELEASE_BURDEN_ALL';
45350 l_line_definition_owner_code := 'S';
45351 l_line_definition_code := 'REL_BURDEN_ENC_ALL';
45352 --
45353 l_balance_type_code := 'E';
45354 l_segment := NULL;
45355 l_ccid := NULL;
45356 l_adr_transaction_coa_id := NULL;
45357 l_adr_accounting_coa_id := NULL;
45358 l_adr_flexfield_segment_code := NULL;
45359 l_adr_flex_value_set_id := NULL;
45360 l_adr_value_type_code := NULL;
45361 l_adr_value_combination_id := NULL;
45362 l_adr_value_segment_code := NULL;
45363
45364 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
45365 l_bflow_class_code := 'REL_PA_BURDENED_ENC'; -- 4219869 Business Flow
45366 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
45367 l_budgetary_control_flag := 'Y';
45368
45369 l_bflow_applied_to_amt_idx := NULL; -- 5132302
45370 l_bflow_applied_to_amt := NULL; -- 5132302
45371 l_entered_amt_idx := NULL; -- 4262811
45372 l_accted_amt_idx := NULL; -- 4262811
45373 l_acc_rev_flag := NULL; -- 4262811
45374 l_accrual_line_num := NULL; -- 4262811
45375 l_tmp_amt := NULL; -- 4262811
45376 --
45377
45378 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
45379 l_balance_type_code <> 'B' THEN
45380 IF (NVL(
45381 xla_ae_sources_pkg.GetSystemSourceChar(
45382 p_source_code => 'XLA_EVENT_TYPE_CODE'
45383 , p_source_type_code => 'Y'
45384 , p_source_application_id => 602
45385 ),'
45386 ') = 'REL_BURDEN_FINAL_CLOSED' OR
45387 NVL(
45388 xla_ae_sources_pkg.GetSystemSourceChar(
45389 p_source_code => 'XLA_EVENT_TYPE_CODE'
45390 , p_source_type_code => 'Y'
45391 , p_source_application_id => 602
45392 ),'
45393 ') = 'REL_BURDEN_UNRESERVED' OR
45394 NVL(
45395 xla_ae_sources_pkg.GetSystemSourceChar(
45396 p_source_code => 'XLA_EVENT_TYPE_CODE'
45397 , p_source_type_code => 'Y'
45398 , p_source_application_id => 602
45399 ),'
45400 ') = 'REL_BURDEN_REJECTED' OR
45401 NVL(
45402 xla_ae_sources_pkg.GetSystemSourceChar(
45403 p_source_code => 'XLA_EVENT_TYPE_CODE'
45404 , p_source_type_code => 'Y'
45405 , p_source_application_id => 602
45406 ),'
45407 ') = 'REL_BURDEN_INV_CANCELLED') AND
45408 NVL(p_source_13,'
45409 ') = 'M' AND
45410 (NVL(p_source_14,'
45411 ') = 'N' OR
45412 NVL(p_source_14,'
45413 ') = 'O') AND
45414 NVL(p_source_9,'
45415 ') = 'PO' AND
45416 NVL(p_source_15,'
45417 ') = 'S'
45418 THEN
45419
45420 --
45421 XLA_AE_LINES_PKG.SetNewLine;
45422
45423 p_balance_type_code := l_balance_type_code;
45424 -- set the flag so later we will know whether the gain loss line needs to be created
45425
45426 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
45427 p_actual_flag :='A';
45428 END IF;
45429
45430 --
45431 -- bulk performance
45432 --
45433 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
45434 p_header_num => 0); -- 4262811
45435 --
45436 -- set accounting line options
45437 --
45438 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
45439 p_natural_side_code => 'C'
45440 , p_gain_or_loss_flag => 'N'
45441 , p_gl_transfer_mode_code => 'S'
45442 , p_acct_entry_type_code => 'E'
45443 , p_switch_side_flag => 'N'
45444 , p_merge_duplicate_code => 'N'
45445 );
45446 --
45447 l_acc_rev_natural_side_code := 'D'; -- 4262811
45448 --
45449 --
45450 -- set accounting line type info
45451 --
45452 xla_ae_lines_pkg.SetAcctLineType
45453 (p_component_type => l_component_type
45454 ,p_event_type_code => l_event_type_code
45455 ,p_line_definition_owner_code => l_line_definition_owner_code
45456 ,p_line_definition_code => l_line_definition_code
45457 ,p_accounting_line_code => l_component_code
45458 ,p_accounting_line_type_code => l_component_type_code
45459 ,p_accounting_line_appl_id => l_component_appl_id
45460 ,p_amb_context_code => l_amb_context_code
45461 ,p_entity_code => l_entity_code
45462 ,p_event_class_code => l_event_class_code);
45463 --
45464 -- set accounting class
45465 --
45466 xla_ae_lines_pkg.SetAcctClass(
45467 p_accounting_class_code => 'PO_PA_BURDENED'
45468 , p_ae_header_id => l_ae_header_id
45469 );
45470
45471 --
45472 -- set rounding class
45473 --
45474 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
45475 'PO_PA_BURDENED';
45476
45477 --
45478 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
45479 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
45480 --
45481 -- bulk performance
45482 --
45483 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
45484
45485 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
45486 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
45487
45488 -- 4955764
45489 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45490 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
45491
45492 -- 4458381 Public Sector Enh
45493
45494 --
45495 -- set accounting attributes for the line type
45496 --
45497 l_entered_amt_idx := 28;
45498 l_accted_amt_idx := 30;
45499 l_bflow_applied_to_amt_idx := NULL; -- 5132302
45500 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
45501 l_rec_acct_attrs.array_char_value(1) := p_source_16;
45502 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
45503 l_rec_acct_attrs.array_num_value(2) := p_source_17;
45504 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
45505 l_rec_acct_attrs.array_char_value(3) := p_source_18;
45506 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
45507 l_rec_acct_attrs.array_char_value(4) := p_source_19;
45508 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
45509 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
45510 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
45511 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
45512 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
45513 l_rec_acct_attrs.array_char_value(7) := p_source_22;
45514 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
45515 l_rec_acct_attrs.array_num_value(8) := p_source_23;
45516 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
45517 l_rec_acct_attrs.array_char_value(9) := p_source_24;
45518 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
45519 l_rec_acct_attrs.array_char_value(10) := p_source_25;
45520 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
45521 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_26);
45522 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
45523 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_27);
45524 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
45525 l_rec_acct_attrs.array_char_value(13) := p_source_28;
45526 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
45527 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_29);
45528 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
45529 l_rec_acct_attrs.array_char_value(15) := p_source_6;
45530 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
45531 l_rec_acct_attrs.array_char_value(16) := p_source_30;
45532 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
45533 l_rec_acct_attrs.array_char_value(17) := p_source_31;
45534 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
45535 l_rec_acct_attrs.array_num_value(18) := p_source_32;
45536 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
45537 l_rec_acct_attrs.array_num_value(19) := p_source_33;
45538 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
45539 l_rec_acct_attrs.array_char_value(20) := p_source_34;
45540 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
45541 l_rec_acct_attrs.array_num_value(21) := p_source_35;
45542 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
45543 l_rec_acct_attrs.array_char_value(22) := p_source_36;
45544 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
45545 l_rec_acct_attrs.array_num_value(23) := p_source_37;
45546 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
45547 l_rec_acct_attrs.array_num_value(24) := p_source_33;
45548 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
45549 l_rec_acct_attrs.array_char_value(25) := p_source_34;
45550 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
45551 l_rec_acct_attrs.array_num_value(26) := p_source_35;
45552 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
45553 l_rec_acct_attrs.array_char_value(27) := p_source_38;
45554 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
45555 l_rec_acct_attrs.array_num_value(28) := p_source_33;
45556 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
45557 l_rec_acct_attrs.array_char_value(29) := p_source_34;
45558 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
45559 l_rec_acct_attrs.array_num_value(30) := p_source_35;
45560 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
45561 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_29);
45562 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
45563 l_rec_acct_attrs.array_char_value(32) := p_source_6;
45564 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
45565 l_rec_acct_attrs.array_char_value(33) := p_source_30;
45566 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
45567 l_rec_acct_attrs.array_num_value(34) := p_source_39;
45568 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
45569 l_rec_acct_attrs.array_num_value(35) := p_source_40;
45570
45571 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
45572 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
45573
45574 ---------------------------------------------------------------------------------------------------------------
45575 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
45576 ---------------------------------------------------------------------------------------------------------------
45577 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
45578
45579 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45580 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45581
45582 IF xla_accounting_cache_pkg.GetValueChar
45583 (p_source_code => 'LEDGER_CATEGORY_CODE'
45584 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
45585 AND l_bflow_method_code = 'PRIOR_ENTRY'
45586 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
45587 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
45588 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
45589 )
45590 THEN
45591 xla_ae_lines_pkg.BflowUpgEntry
45592 (p_business_method_code => l_bflow_method_code
45593 ,p_business_class_code => l_bflow_class_code
45594 ,p_balance_type => l_balance_type_code);
45595 ELSE
45596 NULL;
45597 XLA_AE_LINES_PKG.business_flow_validation(
45598 p_business_method_code => l_bflow_method_code
45599 ,p_business_class_code => l_bflow_class_code
45600 ,p_inherit_description_flag => l_inherit_desc_flag);
45601 END IF;
45602
45603 --
45604 -- call analytical criteria
45605 --
45606 -- Inherited Analytical Criteria for business flow method of Prior Entry.
45607 --
45608 -- call description
45609 --
45610
45611 xla_ae_lines_pkg.SetLineDescription(
45612 p_ae_header_id => l_ae_header_id
45613 ,p_description => Description_2 (
45614 p_application_id => p_application_id
45615 , p_ae_header_id => l_ae_header_id
45616 , p_source_3 => p_source_3
45617 , p_source_4 => p_source_4
45618 , p_source_5 => p_source_5
45619 , p_source_6 => p_source_6
45620 )
45621 );
45622
45623
45624 --
45625 -- call ADRs
45626 -- Bug 4922099
45627 --
45628 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45629 (NVL(l_actual_upg_option, 'N') = 'O') OR
45630 (NVL(l_enc_upg_option, 'N') = 'O')
45631 )
45632 THEN
45633 NULL;
45634 --
45635 --
45636
45637 --
45638 --
45639 END IF;
45640 --
45641 -- Bug 4922099
45642 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
45643 (NVL(l_enc_upg_option, 'N') = 'O')
45644 ) AND
45645 (l_bflow_method_code = 'PRIOR_ENTRY')
45646 )
45647 THEN
45648 IF
45649 --
45650 1 = 1
45651 --
45652 THEN
45653 xla_accounting_err_pkg.build_message
45654 (p_appli_s_name => 'XLA'
45655 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45656 ,p_token_1 => 'LINE_NUMBER'
45657 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
45658 ,p_token_2 => 'LINE_TYPE_NAME'
45659 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
45660 l_component_type
45661 ,l_component_code
45662 ,l_component_type_code
45663 ,l_component_appl_id
45664 ,l_amb_context_code
45665 ,l_entity_code
45666 ,l_event_class_code
45667 )
45668 ,p_token_3 => 'OWNER'
45669 ,p_value_3 => xla_lookups_pkg.get_meaning(
45670 p_lookup_type => 'XLA_OWNER_TYPE'
45671 ,p_lookup_code => l_component_type_code
45672 )
45673 ,p_token_4 => 'PRODUCT_NAME'
45674 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
45675 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
45676 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
45677 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
45678 ,p_ae_header_id => NULL
45679 );
45680
45681 IF (C_LEVEL_ERROR>= g_log_level) THEN
45682 trace
45683 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45684 ,p_level => C_LEVEL_ERROR
45685 ,p_module => l_log_module);
45686 END IF;
45687 END IF;
45688 END IF;
45689 --
45690 --
45691 ------------------------------------------------------------------------------------------------
45692 -- 4219869 Business Flow
45693 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
45694 -- Prior Entry. Currently, the following code is always generated.
45695 ------------------------------------------------------------------------------------------------
45696 -- No ValidateCurrentLine for business flow method of Prior Entry
45697
45698 ------------------------------------------------------------------------------------
45699 -- 4219869 Business Flow
45700 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
45701 ------------------------------------------------------------------------------------
45702 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45703
45704 ----------------------------------------------------------------------------------
45705 -- 4219869 Business Flow
45706 -- Update journal entry status -- Need to generate this within IF <condition>
45707 ----------------------------------------------------------------------------------
45708 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45709 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
45710 ,p_balance_type_code => l_balance_type_code
45711 );
45712
45713 -------------------------------------------------------------------------------------------
45714 -- 4262811 - Generate the Accrual Reversal lines
45715 -------------------------------------------------------------------------------------------
45716 BEGIN
45717 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
45718 (g_array_event(p_event_id).array_value_num('header_index'));
45719 IF l_acc_rev_flag IS NULL THEN
45720 l_acc_rev_flag := 'N';
45721 END IF;
45722 EXCEPTION
45723 WHEN OTHERS THEN
45724 l_acc_rev_flag := 'N';
45725 END;
45726 --
45727 IF (l_acc_rev_flag = 'Y') THEN
45728
45729 -- 4645092 ------------------------------------------------------------------------------
45730 -- To allow MPA report to determine if it should generate report process
45731 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
45732 ------------------------------------------------------------------------------------------
45733
45734 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
45735 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
45736
45737 --
45738 -- Update the line information that should be overwritten
45739 --
45740 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
45741 p_header_num => 1);
45742 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
45743
45744 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
45745
45746 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
45747 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
45748 END IF;
45749
45750 --
45751 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
45752 --
45753 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
45754 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
45755 ELSE
45756 ---------------------------------------------------------------------------------------------------
45757 -- 4262811a Switch Sign
45758 ---------------------------------------------------------------------------------------------------
45759 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
45760 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45761 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45762 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45763 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45764 -- 5132302
45765 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
45766 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45767
45768 END IF;
45769
45770 -- 4955764
45771 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45772 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
45773
45774
45775 XLA_AE_LINES_PKG.ValidateCurrentLine;
45776 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45777
45778 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45779 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
45780 ,p_balance_type_code => l_balance_type_code);
45781
45782 END IF;
45783
45784 -----------------------------------------------------------------------------------------
45785 -- 4262811 Multiperiod Accounting
45786 -----------------------------------------------------------------------------------------
45787 -- No MPA option is assigned.
45788
45789
45790 END IF;
45791 END IF;
45792 --
45793
45794 --
45795 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45796 trace
45797 (p_msg => 'END of AcctLineType_80'
45798 ,p_level => C_LEVEL_PROCEDURE
45799 ,p_module => l_log_module);
45800 END IF;
45801 --
45802 EXCEPTION
45803 WHEN xla_exceptions_pkg.application_exception THEN
45804 RAISE;
45805 WHEN OTHERS THEN
45806 xla_exceptions_pkg.raise_message
45807 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_80');
45808 END AcctLineType_80;
45809 --
45810
45811 ---------------------------------------
45812 --
45813 -- PRIVATE FUNCTION
45814 -- AcctLineType_81
45815 --
45816 ---------------------------------------
45817 PROCEDURE AcctLineType_81 (
45818 p_application_id IN NUMBER
45819 ,p_event_id IN NUMBER
45820 ,p_calculate_acctd_flag IN VARCHAR2
45821 ,p_calculate_g_l_flag IN VARCHAR2
45822 ,p_actual_flag IN OUT VARCHAR2
45823 ,p_balance_type_code OUT VARCHAR2
45824 ,p_gain_or_loss_ref OUT VARCHAR2
45825
45826 --Project Name
45827 , p_source_3 IN VARCHAR2
45828 --Task Name
45829 , p_source_4 IN VARCHAR2
45830 --Project Expenditure Organization Identifier
45831 , p_source_5 IN NUMBER
45832 --Expenditure Type
45833 , p_source_6 IN VARCHAR2
45834 --Main Or Backing Code
45835 , p_source_13 IN VARCHAR2
45836 --Burden Record Identifier
45837 , p_source_14 IN VARCHAR2
45838 , p_source_14_meaning IN VARCHAR2
45839 --Burden Amount Display Method
45840 , p_source_15 IN VARCHAR2
45841 --Accounting Reversal Flag
45842 , p_source_16 IN VARCHAR2
45843 --Allocated to Application Identifier
45844 , p_source_17 IN NUMBER
45845 --Allocated to Distribution Type
45846 , p_source_18 IN VARCHAR2
45847 --Allocated to Entity Code
45848 , p_source_19 IN VARCHAR2
45849 --Allocated to First Distribution Identifier
45850 , p_source_20 IN NUMBER
45851 --Allocated to First System Transaction Identifier
45852 , p_source_21 IN NUMBER
45853 --Allocated to Second Distribution Identifier
45854 , p_source_22 IN VARCHAR2
45855 --Line Type Name
45856 , p_source_30 IN VARCHAR2
45857 --Encumbrance Upgrade Credit Accounting Class
45858 , p_source_31 IN VARCHAR2
45859 --Encumbrance Upgrade Credit Account
45860 , p_source_32 IN NUMBER
45861 --Entered Amount
45862 , p_source_33 IN NUMBER
45863 --Currency Code
45864 , p_source_34 IN VARCHAR2
45865 --Accounted Amount
45866 , p_source_35 IN NUMBER
45867 --Encumbrance Upgrade Debit Accounting Class
45868 , p_source_36 IN VARCHAR2
45869 --Encumbrance Upgrade Debit Account
45870 , p_source_37 IN NUMBER
45871 --Use Encumbrances Upgrade Attributes Flag
45872 , p_source_38 IN VARCHAR2
45873 --Encumbrance Upgrade Credit Encumbrance Type
45874 , p_source_39 IN NUMBER
45875 --Encumbrance Upgrade Debit Encumbrance Type
45876 , p_source_40 IN NUMBER
45877 --Requisition Burden Applied to Application Identifier
45878 , p_source_41 IN NUMBER
45879 --Requisition Distribution Type
45880 , p_source_42 IN VARCHAR2
45881 --Requisition Burden Applied to Entity Code
45882 , p_source_43 IN VARCHAR2
45883 --Requisition Burden Applied to First Distribution Identifier
45884 , p_source_44 IN NUMBER
45885 --Requisition Burden Applied to First System Transaction Identifier
45886 , p_source_45 IN NUMBER
45887 --Requisition Burden Applied to Second Distribution Identifier
45888 , p_source_46 IN VARCHAR2
45889 --Requisition Distribution Identifier
45890 , p_source_47 IN NUMBER
45891 --Document Distribution Type
45892 , p_source_74 IN VARCHAR2
45893 )
45894 IS
45895
45896 l_component_type VARCHAR2(80);
45897 l_component_code VARCHAR2(30);
45898 l_component_type_code VARCHAR2(1);
45899 l_component_appl_id INTEGER;
45900 l_amb_context_code VARCHAR2(30);
45901 l_entity_code VARCHAR2(30);
45902 l_event_class_code VARCHAR2(30);
45903 l_ae_header_id NUMBER;
45904 l_event_type_code VARCHAR2(30);
45905 l_line_definition_code VARCHAR2(30);
45906 l_line_definition_owner_code VARCHAR2(1);
45907 --
45908 -- adr variables
45909 l_segment VARCHAR2(30);
45910 l_ccid NUMBER;
45911 l_adr_transaction_coa_id NUMBER;
45912 l_adr_accounting_coa_id NUMBER;
45913 l_adr_flexfield_segment_code VARCHAR2(30);
45914 l_adr_flex_value_set_id NUMBER;
45915 l_adr_value_type_code VARCHAR2(30);
45916 l_adr_value_combination_id NUMBER;
45917 l_adr_value_segment_code VARCHAR2(30);
45918
45919 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
45920 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
45921 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
45922 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
45923
45924 -- 4262811 Variables ------------------------------------------------------------------------------------------
45925 l_entered_amt_idx NUMBER;
45926 l_accted_amt_idx NUMBER;
45927 l_acc_rev_flag VARCHAR2(1);
45928 l_accrual_line_num NUMBER;
45929 l_tmp_amt NUMBER;
45930 l_acc_rev_natural_side_code VARCHAR2(1);
45931
45932 l_num_entries NUMBER;
45933 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
45934 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
45935 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
45936 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
45937 l_recog_line_1 NUMBER;
45938 l_recog_line_2 NUMBER;
45939
45940 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
45941 l_bflow_applied_to_amt NUMBER; -- 5132302
45942 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
45943
45944 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
45945
45946 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
45947 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
45948
45949 ---------------------------------------------------------------------------------------------------------------
45950
45951
45952 --
45953 -- bulk performance
45954 --
45955 l_balance_type_code VARCHAR2(1);
45956 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
45957 l_log_module VARCHAR2(240);
45958
45959 --
45960 -- Upgrade strategy
45961 --
45962 l_actual_upg_option VARCHAR2(1);
45963 l_enc_upg_option VARCHAR2(1);
45964
45965 --
45966 BEGIN
45967 --
45968 IF g_log_enabled THEN
45969 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_81';
45970 END IF;
45971 --
45972 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45973
45974 trace
45975 (p_msg => 'BEGIN of AcctLineType_81'
45976 ,p_level => C_LEVEL_PROCEDURE
45977 ,p_module => l_log_module);
45978
45979 END IF;
45980 --
45981 l_component_type := 'AMB_JLT';
45982 l_component_code := 'UNRESERVE_BURDENED_REQ_ENC';
45983 l_component_type_code := 'S';
45984 l_component_appl_id := 201;
45985 l_amb_context_code := 'DEFAULT';
45986 l_entity_code := 'REQUISITION';
45987 l_event_class_code := 'REQUISITION_BURDEN';
45988 l_event_type_code := 'REQUISITION_BURDEN_ALL';
45989 l_line_definition_owner_code := 'S';
45990 l_line_definition_code := 'REQ_BURDEN_ENC_ALL';
45991 --
45992 l_balance_type_code := 'E';
45993 l_segment := NULL;
45994 l_ccid := NULL;
45995 l_adr_transaction_coa_id := NULL;
45996 l_adr_accounting_coa_id := NULL;
45997 l_adr_flexfield_segment_code := NULL;
45998 l_adr_flex_value_set_id := NULL;
45999 l_adr_value_type_code := NULL;
46000 l_adr_value_combination_id := NULL;
46001 l_adr_value_segment_code := NULL;
46002
46003 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
46004 l_bflow_class_code := 'REQ_PA_BURDENED_ENC'; -- 4219869 Business Flow
46005 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
46006 l_budgetary_control_flag := 'Y';
46007
46008 l_bflow_applied_to_amt_idx := NULL; -- 5132302
46009 l_bflow_applied_to_amt := NULL; -- 5132302
46010 l_entered_amt_idx := NULL; -- 4262811
46011 l_accted_amt_idx := NULL; -- 4262811
46012 l_acc_rev_flag := NULL; -- 4262811
46013 l_accrual_line_num := NULL; -- 4262811
46014 l_tmp_amt := NULL; -- 4262811
46015 --
46016
46017 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
46018 l_balance_type_code <> 'B' THEN
46019 IF ((NVL(
46020 xla_ae_sources_pkg.GetSystemSourceChar(
46021 p_source_code => 'XLA_EVENT_TYPE_CODE'
46022 , p_source_type_code => 'Y'
46023 , p_source_application_id => 602
46024 ),'
46025 ') = 'REQ_BURDEN_ADJUSTED' AND
46026 NVL(p_source_74,'
46027 ') <> 'REQUISITION_ADJUSTED_NEW') OR
46028 NVL(
46029 xla_ae_sources_pkg.GetSystemSourceChar(
46030 p_source_code => 'XLA_EVENT_TYPE_CODE'
46031 , p_source_type_code => 'Y'
46032 , p_source_application_id => 602
46033 ),'
46034 ') = 'REQ_BURDEN_REJECTED' OR
46035 NVL(
46036 xla_ae_sources_pkg.GetSystemSourceChar(
46037 p_source_code => 'XLA_EVENT_TYPE_CODE'
46038 , p_source_type_code => 'Y'
46039 , p_source_application_id => 602
46040 ),'
46041 ') = 'REQ_BURDEN_RETURNED' OR
46042 NVL(
46043 xla_ae_sources_pkg.GetSystemSourceChar(
46044 p_source_code => 'XLA_EVENT_TYPE_CODE'
46045 , p_source_type_code => 'Y'
46046 , p_source_application_id => 602
46047 ),'
46048 ') = 'REQ_BURDEN_UNRESERVED' OR
46049 NVL(
46050 xla_ae_sources_pkg.GetSystemSourceChar(
46051 p_source_code => 'XLA_EVENT_TYPE_CODE'
46052 , p_source_type_code => 'Y'
46053 , p_source_application_id => 602
46054 ),'
46055 ') = 'REQ_BURDEN_FINAL_CLOSED' AND
46056 NVL(p_source_13,'
46057 ') = 'M') AND
46058 (NVL(p_source_14,'
46059 ') = 'N' OR
46060 NVL(p_source_14,'
46061 ') = 'O') AND
46062 NVL(p_source_15,'
46063 ') = 'S'
46064 THEN
46065
46066 --
46067 XLA_AE_LINES_PKG.SetNewLine;
46068
46069 p_balance_type_code := l_balance_type_code;
46070 -- set the flag so later we will know whether the gain loss line needs to be created
46071
46072 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
46073 p_actual_flag :='A';
46074 END IF;
46075
46076 --
46077 -- bulk performance
46078 --
46079 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
46080 p_header_num => 0); -- 4262811
46081 --
46082 -- set accounting line options
46083 --
46084 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
46085 p_natural_side_code => 'C'
46086 , p_gain_or_loss_flag => 'N'
46087 , p_gl_transfer_mode_code => 'S'
46088 , p_acct_entry_type_code => 'E'
46089 , p_switch_side_flag => 'N'
46090 , p_merge_duplicate_code => 'N'
46091 );
46092 --
46093 l_acc_rev_natural_side_code := 'D'; -- 4262811
46094 --
46095 --
46096 -- set accounting line type info
46097 --
46098 xla_ae_lines_pkg.SetAcctLineType
46099 (p_component_type => l_component_type
46100 ,p_event_type_code => l_event_type_code
46101 ,p_line_definition_owner_code => l_line_definition_owner_code
46102 ,p_line_definition_code => l_line_definition_code
46103 ,p_accounting_line_code => l_component_code
46104 ,p_accounting_line_type_code => l_component_type_code
46105 ,p_accounting_line_appl_id => l_component_appl_id
46106 ,p_amb_context_code => l_amb_context_code
46107 ,p_entity_code => l_entity_code
46108 ,p_event_class_code => l_event_class_code);
46109 --
46110 -- set accounting class
46111 --
46112 xla_ae_lines_pkg.SetAcctClass(
46113 p_accounting_class_code => 'REQ_PA_BURDENED'
46114 , p_ae_header_id => l_ae_header_id
46115 );
46116
46117 --
46118 -- set rounding class
46119 --
46120 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
46121 'REQ_PA_BURDENED';
46122
46123 --
46124 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
46125 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
46126 --
46127 -- bulk performance
46128 --
46129 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
46130
46131 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
46132 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
46133
46134 -- 4955764
46135 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46136 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
46137
46138 -- 4458381 Public Sector Enh
46139
46140 --
46141 -- set accounting attributes for the line type
46142 --
46143 l_entered_amt_idx := 28;
46144 l_accted_amt_idx := 30;
46145 l_bflow_applied_to_amt_idx := NULL; -- 5132302
46146 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
46147 l_rec_acct_attrs.array_char_value(1) := p_source_16;
46148 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
46149 l_rec_acct_attrs.array_num_value(2) := p_source_17;
46150 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
46151 l_rec_acct_attrs.array_char_value(3) := p_source_18;
46152 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
46153 l_rec_acct_attrs.array_char_value(4) := p_source_19;
46154 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
46155 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
46156 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
46157 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
46158 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
46159 l_rec_acct_attrs.array_char_value(7) := p_source_22;
46160 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
46161 l_rec_acct_attrs.array_num_value(8) := p_source_41;
46162 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
46163 l_rec_acct_attrs.array_char_value(9) := p_source_42;
46164 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
46165 l_rec_acct_attrs.array_char_value(10) := p_source_43;
46166 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
46167 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_44);
46168 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
46169 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_45);
46170 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
46171 l_rec_acct_attrs.array_char_value(13) := p_source_46;
46172 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
46173 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_47);
46174 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
46175 l_rec_acct_attrs.array_char_value(15) := p_source_6;
46176 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
46177 l_rec_acct_attrs.array_char_value(16) := p_source_30;
46178 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
46179 l_rec_acct_attrs.array_char_value(17) := p_source_31;
46180 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
46181 l_rec_acct_attrs.array_num_value(18) := p_source_32;
46182 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
46183 l_rec_acct_attrs.array_num_value(19) := p_source_33;
46184 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
46185 l_rec_acct_attrs.array_char_value(20) := p_source_34;
46186 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
46187 l_rec_acct_attrs.array_num_value(21) := p_source_35;
46188 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
46189 l_rec_acct_attrs.array_char_value(22) := p_source_36;
46190 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
46191 l_rec_acct_attrs.array_num_value(23) := p_source_37;
46192 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
46193 l_rec_acct_attrs.array_num_value(24) := p_source_33;
46194 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
46195 l_rec_acct_attrs.array_char_value(25) := p_source_34;
46196 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
46197 l_rec_acct_attrs.array_num_value(26) := p_source_35;
46198 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
46199 l_rec_acct_attrs.array_char_value(27) := p_source_38;
46200 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
46201 l_rec_acct_attrs.array_num_value(28) := p_source_33;
46202 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
46203 l_rec_acct_attrs.array_char_value(29) := p_source_34;
46204 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
46205 l_rec_acct_attrs.array_num_value(30) := p_source_35;
46206 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
46207 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_47);
46208 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
46209 l_rec_acct_attrs.array_char_value(32) := p_source_6;
46210 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
46211 l_rec_acct_attrs.array_char_value(33) := p_source_30;
46212 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
46213 l_rec_acct_attrs.array_num_value(34) := p_source_39;
46214 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
46215 l_rec_acct_attrs.array_num_value(35) := p_source_40;
46216
46217 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
46218 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
46219
46220 ---------------------------------------------------------------------------------------------------------------
46221 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
46222 ---------------------------------------------------------------------------------------------------------------
46223 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
46224
46225 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46226 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46227
46228 IF xla_accounting_cache_pkg.GetValueChar
46229 (p_source_code => 'LEDGER_CATEGORY_CODE'
46230 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
46231 AND l_bflow_method_code = 'PRIOR_ENTRY'
46232 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
46233 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
46234 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
46235 )
46236 THEN
46237 xla_ae_lines_pkg.BflowUpgEntry
46238 (p_business_method_code => l_bflow_method_code
46239 ,p_business_class_code => l_bflow_class_code
46240 ,p_balance_type => l_balance_type_code);
46241 ELSE
46242 NULL;
46243 XLA_AE_LINES_PKG.business_flow_validation(
46244 p_business_method_code => l_bflow_method_code
46245 ,p_business_class_code => l_bflow_class_code
46246 ,p_inherit_description_flag => l_inherit_desc_flag);
46247 END IF;
46248
46249 --
46250 -- call analytical criteria
46251 --
46252 -- Inherited Analytical Criteria for business flow method of Prior Entry.
46253 --
46254 -- call description
46255 --
46256
46257 xla_ae_lines_pkg.SetLineDescription(
46258 p_ae_header_id => l_ae_header_id
46259 ,p_description => Description_2 (
46260 p_application_id => p_application_id
46261 , p_ae_header_id => l_ae_header_id
46262 , p_source_3 => p_source_3
46263 , p_source_4 => p_source_4
46264 , p_source_5 => p_source_5
46265 , p_source_6 => p_source_6
46266 )
46267 );
46268
46269
46270 --
46271 -- call ADRs
46272 -- Bug 4922099
46273 --
46274 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46275 (NVL(l_actual_upg_option, 'N') = 'O') OR
46276 (NVL(l_enc_upg_option, 'N') = 'O')
46277 )
46278 THEN
46279 NULL;
46280 --
46281 --
46282
46283 --
46284 --
46285 END IF;
46286 --
46287 -- Bug 4922099
46288 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
46289 (NVL(l_enc_upg_option, 'N') = 'O')
46290 ) AND
46291 (l_bflow_method_code = 'PRIOR_ENTRY')
46292 )
46293 THEN
46294 IF
46295 --
46296 1 = 1
46297 --
46298 THEN
46299 xla_accounting_err_pkg.build_message
46300 (p_appli_s_name => 'XLA'
46301 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46302 ,p_token_1 => 'LINE_NUMBER'
46303 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
46304 ,p_token_2 => 'LINE_TYPE_NAME'
46305 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
46306 l_component_type
46307 ,l_component_code
46308 ,l_component_type_code
46309 ,l_component_appl_id
46310 ,l_amb_context_code
46311 ,l_entity_code
46312 ,l_event_class_code
46313 )
46314 ,p_token_3 => 'OWNER'
46315 ,p_value_3 => xla_lookups_pkg.get_meaning(
46316 p_lookup_type => 'XLA_OWNER_TYPE'
46317 ,p_lookup_code => l_component_type_code
46318 )
46319 ,p_token_4 => 'PRODUCT_NAME'
46320 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
46321 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
46322 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
46323 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
46324 ,p_ae_header_id => NULL
46325 );
46326
46327 IF (C_LEVEL_ERROR>= g_log_level) THEN
46328 trace
46329 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46330 ,p_level => C_LEVEL_ERROR
46331 ,p_module => l_log_module);
46332 END IF;
46333 END IF;
46334 END IF;
46335 --
46336 --
46337 ------------------------------------------------------------------------------------------------
46338 -- 4219869 Business Flow
46339 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
46340 -- Prior Entry. Currently, the following code is always generated.
46341 ------------------------------------------------------------------------------------------------
46342 -- No ValidateCurrentLine for business flow method of Prior Entry
46343
46344 ------------------------------------------------------------------------------------
46345 -- 4219869 Business Flow
46346 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
46347 ------------------------------------------------------------------------------------
46348 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46349
46350 ----------------------------------------------------------------------------------
46351 -- 4219869 Business Flow
46352 -- Update journal entry status -- Need to generate this within IF <condition>
46353 ----------------------------------------------------------------------------------
46354 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46355 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
46356 ,p_balance_type_code => l_balance_type_code
46357 );
46358
46359 -------------------------------------------------------------------------------------------
46360 -- 4262811 - Generate the Accrual Reversal lines
46361 -------------------------------------------------------------------------------------------
46362 BEGIN
46363 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
46364 (g_array_event(p_event_id).array_value_num('header_index'));
46365 IF l_acc_rev_flag IS NULL THEN
46366 l_acc_rev_flag := 'N';
46367 END IF;
46368 EXCEPTION
46369 WHEN OTHERS THEN
46370 l_acc_rev_flag := 'N';
46371 END;
46372 --
46373 IF (l_acc_rev_flag = 'Y') THEN
46374
46375 -- 4645092 ------------------------------------------------------------------------------
46376 -- To allow MPA report to determine if it should generate report process
46377 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
46378 ------------------------------------------------------------------------------------------
46379
46380 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
46381 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
46382
46383 --
46384 -- Update the line information that should be overwritten
46385 --
46386 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
46387 p_header_num => 1);
46388 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
46389
46390 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
46391
46392 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
46393 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
46394 END IF;
46395
46396 --
46397 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
46398 --
46399 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
46400 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
46401 ELSE
46402 ---------------------------------------------------------------------------------------------------
46403 -- 4262811a Switch Sign
46404 ---------------------------------------------------------------------------------------------------
46405 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
46406 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46407 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46408 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46409 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46410 -- 5132302
46411 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
46412 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46413
46414 END IF;
46415
46416 -- 4955764
46417 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46418 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
46419
46420
46421 XLA_AE_LINES_PKG.ValidateCurrentLine;
46422 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46423
46424 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46425 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
46426 ,p_balance_type_code => l_balance_type_code);
46427
46428 END IF;
46429
46430 -----------------------------------------------------------------------------------------
46431 -- 4262811 Multiperiod Accounting
46432 -----------------------------------------------------------------------------------------
46433 -- No MPA option is assigned.
46434
46435
46436 END IF;
46437 END IF;
46438 --
46439
46440 --
46441 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46442 trace
46443 (p_msg => 'END of AcctLineType_81'
46444 ,p_level => C_LEVEL_PROCEDURE
46445 ,p_module => l_log_module);
46446 END IF;
46447 --
46448 EXCEPTION
46449 WHEN xla_exceptions_pkg.application_exception THEN
46450 RAISE;
46451 WHEN OTHERS THEN
46452 xla_exceptions_pkg.raise_message
46453 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_81');
46454 END AcctLineType_81;
46455 --
46456
46457 ---------------------------------------
46458 --
46459 -- PRIVATE FUNCTION
46460 -- AcctLineType_82
46461 --
46462 ---------------------------------------
46463 PROCEDURE AcctLineType_82 (
46464 p_application_id IN NUMBER
46465 ,p_event_id IN NUMBER
46466 ,p_calculate_acctd_flag IN VARCHAR2
46467 ,p_calculate_g_l_flag IN VARCHAR2
46468 ,p_actual_flag IN OUT VARCHAR2
46469 ,p_balance_type_code OUT VARCHAR2
46470 ,p_gain_or_loss_ref OUT VARCHAR2
46471
46472 --Project Name
46473 , p_source_3 IN VARCHAR2
46474 --Task Name
46475 , p_source_4 IN VARCHAR2
46476 --Project Expenditure Organization Identifier
46477 , p_source_5 IN NUMBER
46478 --Expenditure Type
46479 , p_source_6 IN VARCHAR2
46480 --Document Type
46481 , p_source_9 IN VARCHAR2
46482 --Main Or Backing Code
46483 , p_source_13 IN VARCHAR2
46484 --Burden Record Identifier
46485 , p_source_14 IN VARCHAR2
46486 , p_source_14_meaning IN VARCHAR2
46487 --Burden Amount Display Method
46488 , p_source_15 IN VARCHAR2
46489 --Accounting Reversal Flag
46490 , p_source_16 IN VARCHAR2
46491 --Allocated to Application Identifier
46492 , p_source_17 IN NUMBER
46493 --Allocated to Distribution Type
46494 , p_source_18 IN VARCHAR2
46495 --Allocated to Entity Code
46496 , p_source_19 IN VARCHAR2
46497 --Allocated to First Distribution Identifier
46498 , p_source_20 IN NUMBER
46499 --Allocated to First System Transaction Identifier
46500 , p_source_21 IN NUMBER
46501 --Purchase Order Burden Applied to Application Identifier
46502 , p_source_23 IN NUMBER
46503 --PO Distribution Type
46504 , p_source_24 IN VARCHAR2
46505 --Purchase Order Burden Applied to Entity Code
46506 , p_source_25 IN VARCHAR2
46507 --Purchase Order Burden Applied to First Distribution Identifier
46508 , p_source_26 IN NUMBER
46509 --Purchase Order Burden Applied to First System Transaction Identifier
46510 , p_source_27 IN NUMBER
46511 --Purchase Order Burden Applied to Second Distribution Identifier
46512 , p_source_28 IN VARCHAR2
46513 --PO Distribution Identifier
46514 , p_source_29 IN NUMBER
46515 --Line Type Name
46516 , p_source_30 IN VARCHAR2
46517 --Encumbrance Upgrade Credit Accounting Class
46518 , p_source_31 IN VARCHAR2
46519 --Encumbrance Upgrade Credit Account
46520 , p_source_32 IN NUMBER
46521 --Entered Amount
46522 , p_source_33 IN NUMBER
46523 --Currency Code
46524 , p_source_34 IN VARCHAR2
46525 --Accounted Amount
46526 , p_source_35 IN NUMBER
46527 --Encumbrance Upgrade Debit Accounting Class
46528 , p_source_36 IN VARCHAR2
46529 --Encumbrance Upgrade Debit Account
46530 , p_source_37 IN NUMBER
46531 --Use Encumbrances Upgrade Attributes Flag
46532 , p_source_38 IN VARCHAR2
46533 --Encumbrance Upgrade Credit Encumbrance Type
46534 , p_source_39 IN NUMBER
46535 --Encumbrance Upgrade Debit Encumbrance Type
46536 , p_source_40 IN NUMBER
46537 )
46538 IS
46539
46540 l_component_type VARCHAR2(80);
46541 l_component_code VARCHAR2(30);
46542 l_component_type_code VARCHAR2(1);
46543 l_component_appl_id INTEGER;
46544 l_amb_context_code VARCHAR2(30);
46545 l_entity_code VARCHAR2(30);
46546 l_event_class_code VARCHAR2(30);
46547 l_ae_header_id NUMBER;
46548 l_event_type_code VARCHAR2(30);
46549 l_line_definition_code VARCHAR2(30);
46550 l_line_definition_owner_code VARCHAR2(1);
46551 --
46552 -- adr variables
46553 l_segment VARCHAR2(30);
46554 l_ccid NUMBER;
46555 l_adr_transaction_coa_id NUMBER;
46556 l_adr_accounting_coa_id NUMBER;
46557 l_adr_flexfield_segment_code VARCHAR2(30);
46558 l_adr_flex_value_set_id NUMBER;
46559 l_adr_value_type_code VARCHAR2(30);
46560 l_adr_value_combination_id NUMBER;
46561 l_adr_value_segment_code VARCHAR2(30);
46562
46563 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
46564 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
46565 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
46566 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
46567
46568 -- 4262811 Variables ------------------------------------------------------------------------------------------
46569 l_entered_amt_idx NUMBER;
46570 l_accted_amt_idx NUMBER;
46571 l_acc_rev_flag VARCHAR2(1);
46572 l_accrual_line_num NUMBER;
46573 l_tmp_amt NUMBER;
46574 l_acc_rev_natural_side_code VARCHAR2(1);
46575
46576 l_num_entries NUMBER;
46577 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
46578 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
46579 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
46580 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
46581 l_recog_line_1 NUMBER;
46582 l_recog_line_2 NUMBER;
46583
46584 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
46585 l_bflow_applied_to_amt NUMBER; -- 5132302
46586 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
46587
46588 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
46589
46590 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
46591 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
46592
46593 ---------------------------------------------------------------------------------------------------------------
46594
46595
46596 --
46597 -- bulk performance
46598 --
46599 l_balance_type_code VARCHAR2(1);
46600 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
46601 l_log_module VARCHAR2(240);
46602
46603 --
46604 -- Upgrade strategy
46605 --
46606 l_actual_upg_option VARCHAR2(1);
46607 l_enc_upg_option VARCHAR2(1);
46608
46609 --
46610 BEGIN
46611 --
46612 IF g_log_enabled THEN
46613 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_82';
46614 END IF;
46615 --
46616 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46617
46618 trace
46619 (p_msg => 'BEGIN of AcctLineType_82'
46620 ,p_level => C_LEVEL_PROCEDURE
46621 ,p_module => l_log_module);
46622
46623 END IF;
46624 --
46625 l_component_type := 'AMB_JLT';
46626 l_component_code := 'UNRESERVE_BURDEN_PO_ENC';
46627 l_component_type_code := 'S';
46628 l_component_appl_id := 201;
46629 l_amb_context_code := 'DEFAULT';
46630 l_entity_code := 'PURCHASE_ORDER';
46631 l_event_class_code := 'PO_BURDEN';
46632 l_event_type_code := 'PO_BURDEN_ALL';
46633 l_line_definition_owner_code := 'S';
46634 l_line_definition_code := 'PO_BURDEN_ENC_ALL';
46635 --
46636 l_balance_type_code := 'E';
46637 l_segment := NULL;
46638 l_ccid := NULL;
46639 l_adr_transaction_coa_id := NULL;
46640 l_adr_accounting_coa_id := NULL;
46641 l_adr_flexfield_segment_code := NULL;
46642 l_adr_flex_value_set_id := NULL;
46643 l_adr_value_type_code := NULL;
46644 l_adr_value_combination_id := NULL;
46645 l_adr_value_segment_code := NULL;
46646
46647 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
46648 l_bflow_class_code := 'PO_PA_BURDEN_ENC'; -- 4219869 Business Flow
46649 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
46650 l_budgetary_control_flag := 'Y';
46651
46652 l_bflow_applied_to_amt_idx := NULL; -- 5132302
46653 l_bflow_applied_to_amt := NULL; -- 5132302
46654 l_entered_amt_idx := NULL; -- 4262811
46655 l_accted_amt_idx := NULL; -- 4262811
46656 l_acc_rev_flag := NULL; -- 4262811
46657 l_accrual_line_num := NULL; -- 4262811
46658 l_tmp_amt := NULL; -- 4262811
46659 --
46660
46661 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
46662 l_balance_type_code <> 'B' THEN
46663 IF (NVL(
46664 xla_ae_sources_pkg.GetSystemSourceChar(
46665 p_source_code => 'XLA_EVENT_TYPE_CODE'
46666 , p_source_type_code => 'Y'
46667 , p_source_application_id => 602
46668 ),'
46669 ') = 'PO_BURDEN_FINAL_CLOSED' OR
46670 NVL(
46671 xla_ae_sources_pkg.GetSystemSourceChar(
46672 p_source_code => 'XLA_EVENT_TYPE_CODE'
46673 , p_source_type_code => 'Y'
46674 , p_source_application_id => 602
46675 ),'
46676 ') = 'PO_BURDEN_REJECTED' OR
46677 NVL(
46678 xla_ae_sources_pkg.GetSystemSourceChar(
46679 p_source_code => 'XLA_EVENT_TYPE_CODE'
46680 , p_source_type_code => 'Y'
46681 , p_source_application_id => 602
46682 ),'
46683 ') = 'PO_BURDEN_UNRESERVED' OR
46684 NVL(
46685 xla_ae_sources_pkg.GetSystemSourceChar(
46686 p_source_code => 'XLA_EVENT_TYPE_CODE'
46687 , p_source_type_code => 'Y'
46688 , p_source_application_id => 602
46689 ),'
46690 ') = 'PO_BURDEN_INV_CANCELLED') AND
46691 NVL(p_source_13,'
46692 ') = 'M' AND
46693 NVL(p_source_14,'
46694 ') = 'O' AND
46695 NVL(p_source_9,'
46696 ') = 'PO' AND
46697 NVL(p_source_15,'
46698 ') = 'D'
46699 THEN
46700
46701 --
46702 XLA_AE_LINES_PKG.SetNewLine;
46703
46704 p_balance_type_code := l_balance_type_code;
46705 -- set the flag so later we will know whether the gain loss line needs to be created
46706
46707 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
46708 p_actual_flag :='A';
46709 END IF;
46710
46711 --
46712 -- bulk performance
46713 --
46714 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
46715 p_header_num => 0); -- 4262811
46716 --
46717 -- set accounting line options
46718 --
46719 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
46720 p_natural_side_code => 'C'
46721 , p_gain_or_loss_flag => 'N'
46722 , p_gl_transfer_mode_code => 'S'
46723 , p_acct_entry_type_code => 'E'
46724 , p_switch_side_flag => 'N'
46725 , p_merge_duplicate_code => 'N'
46726 );
46727 --
46728 l_acc_rev_natural_side_code := 'D'; -- 4262811
46729 --
46730 --
46731 -- set accounting line type info
46732 --
46733 xla_ae_lines_pkg.SetAcctLineType
46734 (p_component_type => l_component_type
46735 ,p_event_type_code => l_event_type_code
46736 ,p_line_definition_owner_code => l_line_definition_owner_code
46737 ,p_line_definition_code => l_line_definition_code
46738 ,p_accounting_line_code => l_component_code
46739 ,p_accounting_line_type_code => l_component_type_code
46740 ,p_accounting_line_appl_id => l_component_appl_id
46741 ,p_amb_context_code => l_amb_context_code
46742 ,p_entity_code => l_entity_code
46743 ,p_event_class_code => l_event_class_code);
46744 --
46745 -- set accounting class
46746 --
46747 xla_ae_lines_pkg.SetAcctClass(
46748 p_accounting_class_code => 'PO_PA_BURDEN'
46749 , p_ae_header_id => l_ae_header_id
46750 );
46751
46752 --
46753 -- set rounding class
46754 --
46755 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
46756 'PO_PA_BURDEN';
46757
46758 --
46759 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
46760 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
46761 --
46762 -- bulk performance
46763 --
46764 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
46765
46766 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
46767 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
46768
46769 -- 4955764
46770 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46771 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
46772
46773 -- 4458381 Public Sector Enh
46774
46775 --
46776 -- set accounting attributes for the line type
46777 --
46778 l_entered_amt_idx := 27;
46779 l_accted_amt_idx := 29;
46780 l_bflow_applied_to_amt_idx := NULL; -- 5132302
46781 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
46782 l_rec_acct_attrs.array_char_value(1) := p_source_16;
46783 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
46784 l_rec_acct_attrs.array_num_value(2) := p_source_17;
46785 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
46786 l_rec_acct_attrs.array_char_value(3) := p_source_18;
46787 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
46788 l_rec_acct_attrs.array_char_value(4) := p_source_19;
46789 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
46790 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
46791 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
46792 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
46793 l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
46794 l_rec_acct_attrs.array_num_value(7) := p_source_23;
46795 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
46796 l_rec_acct_attrs.array_char_value(8) := p_source_24;
46797 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
46798 l_rec_acct_attrs.array_char_value(9) := p_source_25;
46799 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
46800 l_rec_acct_attrs.array_num_value(10) := to_char(p_source_26);
46801 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
46802 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_27);
46803 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_SECOND_DIST_ID';
46804 l_rec_acct_attrs.array_char_value(12) := p_source_28;
46805 l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
46806 l_rec_acct_attrs.array_num_value(13) := to_char(p_source_29);
46807 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_2';
46808 l_rec_acct_attrs.array_char_value(14) := p_source_6;
46809 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_TYPE';
46810 l_rec_acct_attrs.array_char_value(15) := p_source_30;
46811 l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ACCT_CLASS';
46812 l_rec_acct_attrs.array_char_value(16) := p_source_31;
46813 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_CCID';
46814 l_rec_acct_attrs.array_num_value(17) := p_source_32;
46815 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_ENTERED_AMT';
46816 l_rec_acct_attrs.array_num_value(18) := p_source_33;
46817 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_CURR';
46818 l_rec_acct_attrs.array_char_value(19) := p_source_34;
46819 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_LEDGER_AMT';
46820 l_rec_acct_attrs.array_num_value(20) := p_source_35;
46821 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ACCT_CLASS';
46822 l_rec_acct_attrs.array_char_value(21) := p_source_36;
46823 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_CCID';
46824 l_rec_acct_attrs.array_num_value(22) := p_source_37;
46825 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ENTERED_AMT';
46826 l_rec_acct_attrs.array_num_value(23) := p_source_33;
46827 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_CURR';
46828 l_rec_acct_attrs.array_char_value(24) := p_source_34;
46829 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_LEDGER_AMT';
46830 l_rec_acct_attrs.array_num_value(25) := p_source_35;
46831 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_OPTION';
46832 l_rec_acct_attrs.array_char_value(26) := p_source_38;
46833 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENTERED_CURRENCY_AMOUNT';
46834 l_rec_acct_attrs.array_num_value(27) := p_source_33;
46835 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_CODE';
46836 l_rec_acct_attrs.array_char_value(28) := p_source_34;
46837 l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
46838 l_rec_acct_attrs.array_num_value(29) := p_source_35;
46839 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID1';
46840 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_29);
46841 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID2';
46842 l_rec_acct_attrs.array_char_value(31) := p_source_6;
46843 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
46844 l_rec_acct_attrs.array_char_value(32) := p_source_30;
46845 l_rec_acct_attrs.array_acct_attr_code(33) := 'UPG_CR_ENC_TYPE_ID';
46846 l_rec_acct_attrs.array_num_value(33) := p_source_39;
46847 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_DR_ENC_TYPE_ID';
46848 l_rec_acct_attrs.array_num_value(34) := p_source_40;
46849
46850 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
46851 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
46852
46853 ---------------------------------------------------------------------------------------------------------------
46854 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
46855 ---------------------------------------------------------------------------------------------------------------
46856 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
46857
46858 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46859 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46860
46861 IF xla_accounting_cache_pkg.GetValueChar
46862 (p_source_code => 'LEDGER_CATEGORY_CODE'
46863 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
46864 AND l_bflow_method_code = 'PRIOR_ENTRY'
46865 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
46866 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
46867 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
46868 )
46869 THEN
46870 xla_ae_lines_pkg.BflowUpgEntry
46871 (p_business_method_code => l_bflow_method_code
46872 ,p_business_class_code => l_bflow_class_code
46873 ,p_balance_type => l_balance_type_code);
46874 ELSE
46875 NULL;
46876 XLA_AE_LINES_PKG.business_flow_validation(
46877 p_business_method_code => l_bflow_method_code
46878 ,p_business_class_code => l_bflow_class_code
46879 ,p_inherit_description_flag => l_inherit_desc_flag);
46880 END IF;
46881
46882 --
46883 -- call analytical criteria
46884 --
46885 -- Inherited Analytical Criteria for business flow method of Prior Entry.
46886 --
46887 -- call description
46888 --
46889
46890 xla_ae_lines_pkg.SetLineDescription(
46891 p_ae_header_id => l_ae_header_id
46892 ,p_description => Description_2 (
46893 p_application_id => p_application_id
46894 , p_ae_header_id => l_ae_header_id
46895 , p_source_3 => p_source_3
46896 , p_source_4 => p_source_4
46897 , p_source_5 => p_source_5
46898 , p_source_6 => p_source_6
46899 )
46900 );
46901
46902
46903 --
46904 -- call ADRs
46905 -- Bug 4922099
46906 --
46907 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46908 (NVL(l_actual_upg_option, 'N') = 'O') OR
46909 (NVL(l_enc_upg_option, 'N') = 'O')
46910 )
46911 THEN
46912 NULL;
46913 --
46914 --
46915
46916 --
46917 --
46918 END IF;
46919 --
46920 -- Bug 4922099
46921 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
46922 (NVL(l_enc_upg_option, 'N') = 'O')
46923 ) AND
46924 (l_bflow_method_code = 'PRIOR_ENTRY')
46925 )
46926 THEN
46927 IF
46928 --
46929 1 = 1
46930 --
46931 THEN
46932 xla_accounting_err_pkg.build_message
46933 (p_appli_s_name => 'XLA'
46934 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46935 ,p_token_1 => 'LINE_NUMBER'
46936 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
46937 ,p_token_2 => 'LINE_TYPE_NAME'
46938 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
46939 l_component_type
46940 ,l_component_code
46941 ,l_component_type_code
46942 ,l_component_appl_id
46943 ,l_amb_context_code
46944 ,l_entity_code
46945 ,l_event_class_code
46946 )
46947 ,p_token_3 => 'OWNER'
46948 ,p_value_3 => xla_lookups_pkg.get_meaning(
46949 p_lookup_type => 'XLA_OWNER_TYPE'
46950 ,p_lookup_code => l_component_type_code
46951 )
46952 ,p_token_4 => 'PRODUCT_NAME'
46953 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
46954 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
46955 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
46956 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
46957 ,p_ae_header_id => NULL
46958 );
46959
46960 IF (C_LEVEL_ERROR>= g_log_level) THEN
46961 trace
46962 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46963 ,p_level => C_LEVEL_ERROR
46964 ,p_module => l_log_module);
46965 END IF;
46966 END IF;
46967 END IF;
46968 --
46969 --
46970 ------------------------------------------------------------------------------------------------
46971 -- 4219869 Business Flow
46972 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
46973 -- Prior Entry. Currently, the following code is always generated.
46974 ------------------------------------------------------------------------------------------------
46975 -- No ValidateCurrentLine for business flow method of Prior Entry
46976
46977 ------------------------------------------------------------------------------------
46978 -- 4219869 Business Flow
46979 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
46980 ------------------------------------------------------------------------------------
46981 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46982
46983 ----------------------------------------------------------------------------------
46984 -- 4219869 Business Flow
46985 -- Update journal entry status -- Need to generate this within IF <condition>
46986 ----------------------------------------------------------------------------------
46987 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46988 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
46989 ,p_balance_type_code => l_balance_type_code
46990 );
46991
46992 -------------------------------------------------------------------------------------------
46993 -- 4262811 - Generate the Accrual Reversal lines
46994 -------------------------------------------------------------------------------------------
46995 BEGIN
46996 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
46997 (g_array_event(p_event_id).array_value_num('header_index'));
46998 IF l_acc_rev_flag IS NULL THEN
46999 l_acc_rev_flag := 'N';
47000 END IF;
47001 EXCEPTION
47002 WHEN OTHERS THEN
47003 l_acc_rev_flag := 'N';
47004 END;
47005 --
47006 IF (l_acc_rev_flag = 'Y') THEN
47007
47008 -- 4645092 ------------------------------------------------------------------------------
47009 -- To allow MPA report to determine if it should generate report process
47010 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
47011 ------------------------------------------------------------------------------------------
47012
47013 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
47014 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
47015
47016 --
47017 -- Update the line information that should be overwritten
47018 --
47019 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
47020 p_header_num => 1);
47021 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
47022
47023 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
47024
47025 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
47026 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
47027 END IF;
47028
47029 --
47030 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
47031 --
47032 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47033 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
47034 ELSE
47035 ---------------------------------------------------------------------------------------------------
47036 -- 4262811a Switch Sign
47037 ---------------------------------------------------------------------------------------------------
47038 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
47039 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47040 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47041 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47042 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47043 -- 5132302
47044 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47045 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47046
47047 END IF;
47048
47049 -- 4955764
47050 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47051 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47052
47053
47054 XLA_AE_LINES_PKG.ValidateCurrentLine;
47055 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47056
47057 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47058 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47059 ,p_balance_type_code => l_balance_type_code);
47060
47061 END IF;
47062
47063 -----------------------------------------------------------------------------------------
47064 -- 4262811 Multiperiod Accounting
47065 -----------------------------------------------------------------------------------------
47066 -- No MPA option is assigned.
47067
47068
47069 END IF;
47070 END IF;
47071 --
47072
47073 --
47074 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47075 trace
47076 (p_msg => 'END of AcctLineType_82'
47077 ,p_level => C_LEVEL_PROCEDURE
47078 ,p_module => l_log_module);
47079 END IF;
47080 --
47081 EXCEPTION
47082 WHEN xla_exceptions_pkg.application_exception THEN
47083 RAISE;
47084 WHEN OTHERS THEN
47085 xla_exceptions_pkg.raise_message
47086 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_82');
47087 END AcctLineType_82;
47088 --
47089
47090 ---------------------------------------
47091 --
47092 -- PRIVATE FUNCTION
47093 -- AcctLineType_83
47094 --
47095 ---------------------------------------
47096 PROCEDURE AcctLineType_83 (
47097 p_application_id IN NUMBER
47098 ,p_event_id IN NUMBER
47099 ,p_calculate_acctd_flag IN VARCHAR2
47100 ,p_calculate_g_l_flag IN VARCHAR2
47101 ,p_actual_flag IN OUT VARCHAR2
47102 ,p_balance_type_code OUT VARCHAR2
47103 ,p_gain_or_loss_ref OUT VARCHAR2
47104
47105 --Project Name
47106 , p_source_3 IN VARCHAR2
47107 --Task Name
47108 , p_source_4 IN VARCHAR2
47109 --Project Expenditure Organization Identifier
47110 , p_source_5 IN NUMBER
47111 --Expenditure Type
47112 , p_source_6 IN VARCHAR2
47113 --Document Type
47114 , p_source_9 IN VARCHAR2
47115 --Main Or Backing Code
47116 , p_source_13 IN VARCHAR2
47117 --Burden Record Identifier
47118 , p_source_14 IN VARCHAR2
47119 , p_source_14_meaning IN VARCHAR2
47120 --Burden Amount Display Method
47121 , p_source_15 IN VARCHAR2
47122 --Accounting Reversal Flag
47123 , p_source_16 IN VARCHAR2
47124 --Allocated to Application Identifier
47125 , p_source_17 IN NUMBER
47126 --Allocated to Distribution Type
47127 , p_source_18 IN VARCHAR2
47128 --Allocated to Entity Code
47129 , p_source_19 IN VARCHAR2
47130 --Allocated to First Distribution Identifier
47131 , p_source_20 IN NUMBER
47132 --Allocated to First System Transaction Identifier
47133 , p_source_21 IN NUMBER
47134 --Allocated to Second Distribution Identifier
47135 , p_source_22 IN VARCHAR2
47136 --Purchase Order Burden Applied to Application Identifier
47137 , p_source_23 IN NUMBER
47138 --PO Distribution Type
47139 , p_source_24 IN VARCHAR2
47140 --Purchase Order Burden Applied to Entity Code
47141 , p_source_25 IN VARCHAR2
47142 --Purchase Order Burden Applied to First Distribution Identifier
47143 , p_source_26 IN NUMBER
47144 --Purchase Order Burden Applied to First System Transaction Identifier
47145 , p_source_27 IN NUMBER
47146 --Purchase Order Burden Applied to Second Distribution Identifier
47147 , p_source_28 IN VARCHAR2
47148 --PO Distribution Identifier
47149 , p_source_29 IN NUMBER
47150 --Line Type Name
47151 , p_source_30 IN VARCHAR2
47152 --Encumbrance Upgrade Credit Accounting Class
47153 , p_source_31 IN VARCHAR2
47154 --Encumbrance Upgrade Credit Account
47155 , p_source_32 IN NUMBER
47156 --Entered Amount
47157 , p_source_33 IN NUMBER
47158 --Currency Code
47159 , p_source_34 IN VARCHAR2
47160 --Accounted Amount
47161 , p_source_35 IN NUMBER
47162 --Encumbrance Upgrade Debit Accounting Class
47163 , p_source_36 IN VARCHAR2
47164 --Encumbrance Upgrade Debit Account
47165 , p_source_37 IN NUMBER
47166 --Use Encumbrances Upgrade Attributes Flag
47167 , p_source_38 IN VARCHAR2
47168 --Encumbrance Upgrade Credit Encumbrance Type
47169 , p_source_39 IN NUMBER
47170 --Encumbrance Upgrade Debit Encumbrance Type
47171 , p_source_40 IN NUMBER
47172 )
47173 IS
47174
47175 l_component_type VARCHAR2(80);
47176 l_component_code VARCHAR2(30);
47177 l_component_type_code VARCHAR2(1);
47178 l_component_appl_id INTEGER;
47179 l_amb_context_code VARCHAR2(30);
47180 l_entity_code VARCHAR2(30);
47181 l_event_class_code VARCHAR2(30);
47182 l_ae_header_id NUMBER;
47183 l_event_type_code VARCHAR2(30);
47184 l_line_definition_code VARCHAR2(30);
47185 l_line_definition_owner_code VARCHAR2(1);
47186 --
47187 -- adr variables
47188 l_segment VARCHAR2(30);
47189 l_ccid NUMBER;
47190 l_adr_transaction_coa_id NUMBER;
47191 l_adr_accounting_coa_id NUMBER;
47192 l_adr_flexfield_segment_code VARCHAR2(30);
47193 l_adr_flex_value_set_id NUMBER;
47194 l_adr_value_type_code VARCHAR2(30);
47195 l_adr_value_combination_id NUMBER;
47196 l_adr_value_segment_code VARCHAR2(30);
47197
47198 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
47199 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
47200 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
47201 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
47202
47203 -- 4262811 Variables ------------------------------------------------------------------------------------------
47204 l_entered_amt_idx NUMBER;
47205 l_accted_amt_idx NUMBER;
47206 l_acc_rev_flag VARCHAR2(1);
47207 l_accrual_line_num NUMBER;
47208 l_tmp_amt NUMBER;
47209 l_acc_rev_natural_side_code VARCHAR2(1);
47210
47211 l_num_entries NUMBER;
47212 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
47213 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
47214 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
47215 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
47216 l_recog_line_1 NUMBER;
47217 l_recog_line_2 NUMBER;
47218
47219 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
47220 l_bflow_applied_to_amt NUMBER; -- 5132302
47221 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
47222
47223 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
47224
47225 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
47226 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
47227
47228 ---------------------------------------------------------------------------------------------------------------
47229
47230
47231 --
47232 -- bulk performance
47233 --
47234 l_balance_type_code VARCHAR2(1);
47235 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
47236 l_log_module VARCHAR2(240);
47237
47238 --
47239 -- Upgrade strategy
47240 --
47241 l_actual_upg_option VARCHAR2(1);
47242 l_enc_upg_option VARCHAR2(1);
47243
47244 --
47245 BEGIN
47246 --
47247 IF g_log_enabled THEN
47248 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_83';
47249 END IF;
47250 --
47251 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47252
47253 trace
47254 (p_msg => 'BEGIN of AcctLineType_83'
47255 ,p_level => C_LEVEL_PROCEDURE
47256 ,p_module => l_log_module);
47257
47258 END IF;
47259 --
47260 l_component_type := 'AMB_JLT';
47261 l_component_code := 'UNRESERVE_BURDEN_REL_ENC';
47262 l_component_type_code := 'S';
47263 l_component_appl_id := 201;
47264 l_amb_context_code := 'DEFAULT';
47265 l_entity_code := 'RELEASE';
47266 l_event_class_code := 'RELEASE_BURDEN';
47267 l_event_type_code := 'RELEASE_BURDEN_ALL';
47268 l_line_definition_owner_code := 'S';
47269 l_line_definition_code := 'REL_BURDEN_ENC_ALL';
47270 --
47271 l_balance_type_code := 'E';
47272 l_segment := NULL;
47273 l_ccid := NULL;
47274 l_adr_transaction_coa_id := NULL;
47275 l_adr_accounting_coa_id := NULL;
47276 l_adr_flexfield_segment_code := NULL;
47277 l_adr_flex_value_set_id := NULL;
47278 l_adr_value_type_code := NULL;
47279 l_adr_value_combination_id := NULL;
47280 l_adr_value_segment_code := NULL;
47281
47282 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
47283 l_bflow_class_code := 'REL_PA_BURDEN_ENC'; -- 4219869 Business Flow
47284 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
47285 l_budgetary_control_flag := 'Y';
47286
47287 l_bflow_applied_to_amt_idx := NULL; -- 5132302
47288 l_bflow_applied_to_amt := NULL; -- 5132302
47289 l_entered_amt_idx := NULL; -- 4262811
47290 l_accted_amt_idx := NULL; -- 4262811
47291 l_acc_rev_flag := NULL; -- 4262811
47292 l_accrual_line_num := NULL; -- 4262811
47293 l_tmp_amt := NULL; -- 4262811
47294 --
47295
47296 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
47297 l_balance_type_code <> 'B' THEN
47298 IF (NVL(
47299 xla_ae_sources_pkg.GetSystemSourceChar(
47300 p_source_code => 'XLA_EVENT_TYPE_CODE'
47301 , p_source_type_code => 'Y'
47302 , p_source_application_id => 602
47303 ),'
47304 ') = 'REL_BURDEN_FINAL_CLOSED' OR
47305 NVL(
47306 xla_ae_sources_pkg.GetSystemSourceChar(
47307 p_source_code => 'XLA_EVENT_TYPE_CODE'
47308 , p_source_type_code => 'Y'
47309 , p_source_application_id => 602
47310 ),'
47311 ') = 'REL_BURDEN_UNRESERVED' OR
47312 NVL(
47313 xla_ae_sources_pkg.GetSystemSourceChar(
47314 p_source_code => 'XLA_EVENT_TYPE_CODE'
47315 , p_source_type_code => 'Y'
47316 , p_source_application_id => 602
47317 ),'
47318 ') = 'REL_BURDEN_REJECTED' OR
47319 NVL(
47320 xla_ae_sources_pkg.GetSystemSourceChar(
47321 p_source_code => 'XLA_EVENT_TYPE_CODE'
47322 , p_source_type_code => 'Y'
47323 , p_source_application_id => 602
47324 ),'
47325 ') = 'REL_BURDEN_INV_CANCELLED') AND
47326 NVL(p_source_13,'
47327 ') = 'M' AND
47328 NVL(p_source_14,'
47329 ') = 'O' AND
47330 NVL(p_source_9,'
47331 ') = 'PO' AND
47332 NVL(p_source_15,'
47333 ') = 'D'
47334 THEN
47335
47336 --
47337 XLA_AE_LINES_PKG.SetNewLine;
47338
47339 p_balance_type_code := l_balance_type_code;
47340 -- set the flag so later we will know whether the gain loss line needs to be created
47341
47342 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
47343 p_actual_flag :='A';
47344 END IF;
47345
47346 --
47347 -- bulk performance
47348 --
47349 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
47350 p_header_num => 0); -- 4262811
47351 --
47352 -- set accounting line options
47353 --
47354 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
47355 p_natural_side_code => 'C'
47356 , p_gain_or_loss_flag => 'N'
47357 , p_gl_transfer_mode_code => 'S'
47358 , p_acct_entry_type_code => 'E'
47359 , p_switch_side_flag => 'N'
47360 , p_merge_duplicate_code => 'N'
47361 );
47362 --
47363 l_acc_rev_natural_side_code := 'D'; -- 4262811
47364 --
47365 --
47366 -- set accounting line type info
47367 --
47368 xla_ae_lines_pkg.SetAcctLineType
47369 (p_component_type => l_component_type
47370 ,p_event_type_code => l_event_type_code
47371 ,p_line_definition_owner_code => l_line_definition_owner_code
47372 ,p_line_definition_code => l_line_definition_code
47373 ,p_accounting_line_code => l_component_code
47374 ,p_accounting_line_type_code => l_component_type_code
47375 ,p_accounting_line_appl_id => l_component_appl_id
47376 ,p_amb_context_code => l_amb_context_code
47377 ,p_entity_code => l_entity_code
47378 ,p_event_class_code => l_event_class_code);
47379 --
47380 -- set accounting class
47381 --
47382 xla_ae_lines_pkg.SetAcctClass(
47383 p_accounting_class_code => 'PO_PA_BURDEN'
47384 , p_ae_header_id => l_ae_header_id
47385 );
47386
47387 --
47388 -- set rounding class
47389 --
47390 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
47391 'PO_PA_BURDEN';
47392
47393 --
47394 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
47395 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
47396 --
47397 -- bulk performance
47398 --
47399 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
47400
47401 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
47402 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
47403
47404 -- 4955764
47405 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47406 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
47407
47408 -- 4458381 Public Sector Enh
47409
47410 --
47411 -- set accounting attributes for the line type
47412 --
47413 l_entered_amt_idx := 28;
47414 l_accted_amt_idx := 30;
47415 l_bflow_applied_to_amt_idx := NULL; -- 5132302
47416 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
47417 l_rec_acct_attrs.array_char_value(1) := p_source_16;
47418 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
47419 l_rec_acct_attrs.array_num_value(2) := p_source_17;
47420 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
47421 l_rec_acct_attrs.array_char_value(3) := p_source_18;
47422 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
47423 l_rec_acct_attrs.array_char_value(4) := p_source_19;
47424 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
47425 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
47426 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
47427 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
47428 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
47429 l_rec_acct_attrs.array_char_value(7) := p_source_22;
47430 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
47431 l_rec_acct_attrs.array_num_value(8) := p_source_23;
47432 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
47433 l_rec_acct_attrs.array_char_value(9) := p_source_24;
47434 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
47435 l_rec_acct_attrs.array_char_value(10) := p_source_25;
47436 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
47437 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_26);
47438 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
47439 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_27);
47440 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
47441 l_rec_acct_attrs.array_char_value(13) := p_source_28;
47442 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
47443 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_29);
47444 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
47445 l_rec_acct_attrs.array_char_value(15) := p_source_6;
47446 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
47447 l_rec_acct_attrs.array_char_value(16) := p_source_30;
47448 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
47449 l_rec_acct_attrs.array_char_value(17) := p_source_31;
47450 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
47451 l_rec_acct_attrs.array_num_value(18) := p_source_32;
47452 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
47453 l_rec_acct_attrs.array_num_value(19) := p_source_33;
47454 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
47455 l_rec_acct_attrs.array_char_value(20) := p_source_34;
47456 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
47457 l_rec_acct_attrs.array_num_value(21) := p_source_35;
47458 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
47459 l_rec_acct_attrs.array_char_value(22) := p_source_36;
47460 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
47461 l_rec_acct_attrs.array_num_value(23) := p_source_37;
47462 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
47463 l_rec_acct_attrs.array_num_value(24) := p_source_33;
47464 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
47465 l_rec_acct_attrs.array_char_value(25) := p_source_34;
47466 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
47467 l_rec_acct_attrs.array_num_value(26) := p_source_35;
47468 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
47469 l_rec_acct_attrs.array_char_value(27) := p_source_38;
47470 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
47471 l_rec_acct_attrs.array_num_value(28) := p_source_33;
47472 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
47473 l_rec_acct_attrs.array_char_value(29) := p_source_34;
47474 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
47475 l_rec_acct_attrs.array_num_value(30) := p_source_35;
47476 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
47477 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_29);
47478 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
47479 l_rec_acct_attrs.array_char_value(32) := p_source_6;
47480 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
47481 l_rec_acct_attrs.array_char_value(33) := p_source_30;
47482 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
47483 l_rec_acct_attrs.array_num_value(34) := p_source_39;
47484 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
47485 l_rec_acct_attrs.array_num_value(35) := p_source_40;
47486
47487 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
47488 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
47489
47490 ---------------------------------------------------------------------------------------------------------------
47491 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
47492 ---------------------------------------------------------------------------------------------------------------
47493 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
47494
47495 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47496 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47497
47498 IF xla_accounting_cache_pkg.GetValueChar
47499 (p_source_code => 'LEDGER_CATEGORY_CODE'
47500 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
47501 AND l_bflow_method_code = 'PRIOR_ENTRY'
47502 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
47503 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
47504 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
47505 )
47506 THEN
47507 xla_ae_lines_pkg.BflowUpgEntry
47508 (p_business_method_code => l_bflow_method_code
47509 ,p_business_class_code => l_bflow_class_code
47510 ,p_balance_type => l_balance_type_code);
47511 ELSE
47512 NULL;
47513 XLA_AE_LINES_PKG.business_flow_validation(
47514 p_business_method_code => l_bflow_method_code
47515 ,p_business_class_code => l_bflow_class_code
47516 ,p_inherit_description_flag => l_inherit_desc_flag);
47517 END IF;
47518
47519 --
47520 -- call analytical criteria
47521 --
47522 -- Inherited Analytical Criteria for business flow method of Prior Entry.
47523 --
47524 -- call description
47525 --
47526
47527 xla_ae_lines_pkg.SetLineDescription(
47528 p_ae_header_id => l_ae_header_id
47529 ,p_description => Description_2 (
47530 p_application_id => p_application_id
47531 , p_ae_header_id => l_ae_header_id
47532 , p_source_3 => p_source_3
47533 , p_source_4 => p_source_4
47534 , p_source_5 => p_source_5
47535 , p_source_6 => p_source_6
47536 )
47537 );
47538
47539
47540 --
47541 -- call ADRs
47542 -- Bug 4922099
47543 --
47544 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47545 (NVL(l_actual_upg_option, 'N') = 'O') OR
47546 (NVL(l_enc_upg_option, 'N') = 'O')
47547 )
47548 THEN
47549 NULL;
47550 --
47551 --
47552
47553 --
47554 --
47555 END IF;
47556 --
47557 -- Bug 4922099
47558 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
47559 (NVL(l_enc_upg_option, 'N') = 'O')
47560 ) AND
47561 (l_bflow_method_code = 'PRIOR_ENTRY')
47562 )
47563 THEN
47564 IF
47565 --
47566 1 = 1
47567 --
47568 THEN
47569 xla_accounting_err_pkg.build_message
47570 (p_appli_s_name => 'XLA'
47571 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47572 ,p_token_1 => 'LINE_NUMBER'
47573 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
47574 ,p_token_2 => 'LINE_TYPE_NAME'
47575 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
47576 l_component_type
47577 ,l_component_code
47578 ,l_component_type_code
47579 ,l_component_appl_id
47580 ,l_amb_context_code
47581 ,l_entity_code
47582 ,l_event_class_code
47583 )
47584 ,p_token_3 => 'OWNER'
47585 ,p_value_3 => xla_lookups_pkg.get_meaning(
47586 p_lookup_type => 'XLA_OWNER_TYPE'
47587 ,p_lookup_code => l_component_type_code
47588 )
47589 ,p_token_4 => 'PRODUCT_NAME'
47590 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
47591 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
47592 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
47593 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
47594 ,p_ae_header_id => NULL
47595 );
47596
47597 IF (C_LEVEL_ERROR>= g_log_level) THEN
47598 trace
47599 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47600 ,p_level => C_LEVEL_ERROR
47601 ,p_module => l_log_module);
47602 END IF;
47603 END IF;
47604 END IF;
47605 --
47606 --
47607 ------------------------------------------------------------------------------------------------
47608 -- 4219869 Business Flow
47609 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
47610 -- Prior Entry. Currently, the following code is always generated.
47611 ------------------------------------------------------------------------------------------------
47612 -- No ValidateCurrentLine for business flow method of Prior Entry
47613
47614 ------------------------------------------------------------------------------------
47615 -- 4219869 Business Flow
47616 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
47617 ------------------------------------------------------------------------------------
47618 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47619
47620 ----------------------------------------------------------------------------------
47621 -- 4219869 Business Flow
47622 -- Update journal entry status -- Need to generate this within IF <condition>
47623 ----------------------------------------------------------------------------------
47624 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47625 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
47626 ,p_balance_type_code => l_balance_type_code
47627 );
47628
47629 -------------------------------------------------------------------------------------------
47630 -- 4262811 - Generate the Accrual Reversal lines
47631 -------------------------------------------------------------------------------------------
47632 BEGIN
47633 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
47634 (g_array_event(p_event_id).array_value_num('header_index'));
47635 IF l_acc_rev_flag IS NULL THEN
47636 l_acc_rev_flag := 'N';
47637 END IF;
47638 EXCEPTION
47639 WHEN OTHERS THEN
47640 l_acc_rev_flag := 'N';
47641 END;
47642 --
47643 IF (l_acc_rev_flag = 'Y') THEN
47644
47645 -- 4645092 ------------------------------------------------------------------------------
47646 -- To allow MPA report to determine if it should generate report process
47647 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
47648 ------------------------------------------------------------------------------------------
47649
47650 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
47651 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
47652
47653 --
47654 -- Update the line information that should be overwritten
47655 --
47656 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
47657 p_header_num => 1);
47658 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
47659
47660 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
47661
47662 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
47663 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
47664 END IF;
47665
47666 --
47667 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
47668 --
47669 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47670 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
47671 ELSE
47672 ---------------------------------------------------------------------------------------------------
47673 -- 4262811a Switch Sign
47674 ---------------------------------------------------------------------------------------------------
47675 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
47676 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47677 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47678 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47679 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47680 -- 5132302
47681 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47682 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47683
47684 END IF;
47685
47686 -- 4955764
47687 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47688 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47689
47690
47691 XLA_AE_LINES_PKG.ValidateCurrentLine;
47692 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47693
47694 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47695 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47696 ,p_balance_type_code => l_balance_type_code);
47697
47698 END IF;
47699
47700 -----------------------------------------------------------------------------------------
47701 -- 4262811 Multiperiod Accounting
47702 -----------------------------------------------------------------------------------------
47703 -- No MPA option is assigned.
47704
47705
47706 END IF;
47707 END IF;
47708 --
47709
47710 --
47711 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47712 trace
47713 (p_msg => 'END of AcctLineType_83'
47714 ,p_level => C_LEVEL_PROCEDURE
47715 ,p_module => l_log_module);
47716 END IF;
47717 --
47718 EXCEPTION
47719 WHEN xla_exceptions_pkg.application_exception THEN
47720 RAISE;
47721 WHEN OTHERS THEN
47722 xla_exceptions_pkg.raise_message
47723 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_83');
47724 END AcctLineType_83;
47725 --
47726
47727 ---------------------------------------
47728 --
47729 -- PRIVATE FUNCTION
47730 -- AcctLineType_84
47731 --
47732 ---------------------------------------
47733 PROCEDURE AcctLineType_84 (
47734 p_application_id IN NUMBER
47735 ,p_event_id IN NUMBER
47736 ,p_calculate_acctd_flag IN VARCHAR2
47737 ,p_calculate_g_l_flag IN VARCHAR2
47738 ,p_actual_flag IN OUT VARCHAR2
47739 ,p_balance_type_code OUT VARCHAR2
47740 ,p_gain_or_loss_ref OUT VARCHAR2
47741
47742 --Project Name
47743 , p_source_3 IN VARCHAR2
47744 --Task Name
47745 , p_source_4 IN VARCHAR2
47746 --Project Expenditure Organization Identifier
47747 , p_source_5 IN NUMBER
47748 --Expenditure Type
47749 , p_source_6 IN VARCHAR2
47750 --Main Or Backing Code
47751 , p_source_13 IN VARCHAR2
47752 --Burden Record Identifier
47753 , p_source_14 IN VARCHAR2
47754 , p_source_14_meaning IN VARCHAR2
47755 --Burden Amount Display Method
47756 , p_source_15 IN VARCHAR2
47757 --Accounting Reversal Flag
47758 , p_source_16 IN VARCHAR2
47759 --Allocated to Application Identifier
47760 , p_source_17 IN NUMBER
47761 --Allocated to Distribution Type
47762 , p_source_18 IN VARCHAR2
47763 --Allocated to Entity Code
47764 , p_source_19 IN VARCHAR2
47765 --Allocated to First Distribution Identifier
47766 , p_source_20 IN NUMBER
47767 --Allocated to First System Transaction Identifier
47768 , p_source_21 IN NUMBER
47769 --Allocated to Second Distribution Identifier
47770 , p_source_22 IN VARCHAR2
47771 --Line Type Name
47772 , p_source_30 IN VARCHAR2
47773 --Encumbrance Upgrade Credit Accounting Class
47774 , p_source_31 IN VARCHAR2
47775 --Encumbrance Upgrade Credit Account
47776 , p_source_32 IN NUMBER
47777 --Entered Amount
47778 , p_source_33 IN NUMBER
47779 --Currency Code
47780 , p_source_34 IN VARCHAR2
47781 --Accounted Amount
47782 , p_source_35 IN NUMBER
47783 --Encumbrance Upgrade Debit Accounting Class
47784 , p_source_36 IN VARCHAR2
47785 --Encumbrance Upgrade Debit Account
47786 , p_source_37 IN NUMBER
47787 --Use Encumbrances Upgrade Attributes Flag
47788 , p_source_38 IN VARCHAR2
47789 --Encumbrance Upgrade Credit Encumbrance Type
47790 , p_source_39 IN NUMBER
47791 --Encumbrance Upgrade Debit Encumbrance Type
47792 , p_source_40 IN NUMBER
47793 --Requisition Burden Applied to Application Identifier
47794 , p_source_41 IN NUMBER
47795 --Requisition Distribution Type
47796 , p_source_42 IN VARCHAR2
47797 --Requisition Burden Applied to Entity Code
47798 , p_source_43 IN VARCHAR2
47799 --Requisition Burden Applied to First Distribution Identifier
47800 , p_source_44 IN NUMBER
47801 --Requisition Burden Applied to First System Transaction Identifier
47802 , p_source_45 IN NUMBER
47803 --Requisition Burden Applied to Second Distribution Identifier
47804 , p_source_46 IN VARCHAR2
47805 --Requisition Distribution Identifier
47806 , p_source_47 IN NUMBER
47807 --Document Distribution Type
47808 , p_source_74 IN VARCHAR2
47809 )
47810 IS
47811
47812 l_component_type VARCHAR2(80);
47813 l_component_code VARCHAR2(30);
47814 l_component_type_code VARCHAR2(1);
47815 l_component_appl_id INTEGER;
47816 l_amb_context_code VARCHAR2(30);
47817 l_entity_code VARCHAR2(30);
47818 l_event_class_code VARCHAR2(30);
47819 l_ae_header_id NUMBER;
47820 l_event_type_code VARCHAR2(30);
47821 l_line_definition_code VARCHAR2(30);
47822 l_line_definition_owner_code VARCHAR2(1);
47823 --
47824 -- adr variables
47825 l_segment VARCHAR2(30);
47826 l_ccid NUMBER;
47827 l_adr_transaction_coa_id NUMBER;
47828 l_adr_accounting_coa_id NUMBER;
47829 l_adr_flexfield_segment_code VARCHAR2(30);
47830 l_adr_flex_value_set_id NUMBER;
47831 l_adr_value_type_code VARCHAR2(30);
47832 l_adr_value_combination_id NUMBER;
47833 l_adr_value_segment_code VARCHAR2(30);
47834
47835 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
47836 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
47837 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
47838 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
47839
47840 -- 4262811 Variables ------------------------------------------------------------------------------------------
47841 l_entered_amt_idx NUMBER;
47842 l_accted_amt_idx NUMBER;
47843 l_acc_rev_flag VARCHAR2(1);
47844 l_accrual_line_num NUMBER;
47845 l_tmp_amt NUMBER;
47846 l_acc_rev_natural_side_code VARCHAR2(1);
47847
47848 l_num_entries NUMBER;
47849 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
47850 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
47851 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
47852 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
47853 l_recog_line_1 NUMBER;
47854 l_recog_line_2 NUMBER;
47855
47856 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
47857 l_bflow_applied_to_amt NUMBER; -- 5132302
47858 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
47859
47860 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
47861
47862 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
47863 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
47864
47865 ---------------------------------------------------------------------------------------------------------------
47866
47867
47868 --
47869 -- bulk performance
47870 --
47871 l_balance_type_code VARCHAR2(1);
47872 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
47873 l_log_module VARCHAR2(240);
47874
47875 --
47876 -- Upgrade strategy
47877 --
47878 l_actual_upg_option VARCHAR2(1);
47879 l_enc_upg_option VARCHAR2(1);
47880
47881 --
47882 BEGIN
47883 --
47884 IF g_log_enabled THEN
47885 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_84';
47886 END IF;
47887 --
47888 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47889
47890 trace
47891 (p_msg => 'BEGIN of AcctLineType_84'
47892 ,p_level => C_LEVEL_PROCEDURE
47893 ,p_module => l_log_module);
47894
47895 END IF;
47896 --
47897 l_component_type := 'AMB_JLT';
47898 l_component_code := 'UNRESERVE_BURDEN_REQ_ENC';
47899 l_component_type_code := 'S';
47900 l_component_appl_id := 201;
47901 l_amb_context_code := 'DEFAULT';
47902 l_entity_code := 'REQUISITION';
47903 l_event_class_code := 'REQUISITION_BURDEN';
47904 l_event_type_code := 'REQUISITION_BURDEN_ALL';
47905 l_line_definition_owner_code := 'S';
47906 l_line_definition_code := 'REQ_BURDEN_ENC_ALL';
47907 --
47908 l_balance_type_code := 'E';
47909 l_segment := NULL;
47910 l_ccid := NULL;
47911 l_adr_transaction_coa_id := NULL;
47912 l_adr_accounting_coa_id := NULL;
47913 l_adr_flexfield_segment_code := NULL;
47914 l_adr_flex_value_set_id := NULL;
47915 l_adr_value_type_code := NULL;
47916 l_adr_value_combination_id := NULL;
47917 l_adr_value_segment_code := NULL;
47918
47919 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
47920 l_bflow_class_code := 'REQ_PA_BURDEN_ENC'; -- 4219869 Business Flow
47921 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
47922 l_budgetary_control_flag := 'Y';
47923
47924 l_bflow_applied_to_amt_idx := NULL; -- 5132302
47925 l_bflow_applied_to_amt := NULL; -- 5132302
47926 l_entered_amt_idx := NULL; -- 4262811
47927 l_accted_amt_idx := NULL; -- 4262811
47928 l_acc_rev_flag := NULL; -- 4262811
47929 l_accrual_line_num := NULL; -- 4262811
47930 l_tmp_amt := NULL; -- 4262811
47931 --
47932
47933 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
47934 l_balance_type_code <> 'B' THEN
47935 IF ((NVL(
47936 xla_ae_sources_pkg.GetSystemSourceChar(
47937 p_source_code => 'XLA_EVENT_TYPE_CODE'
47938 , p_source_type_code => 'Y'
47939 , p_source_application_id => 602
47940 ),'
47941 ') = 'REQ_BURDEN_ADJUSTED' AND
47942 NVL(p_source_74,'
47943 ') <> 'REQUISITION_ADJUSTED_NEW') OR
47944 NVL(
47945 xla_ae_sources_pkg.GetSystemSourceChar(
47946 p_source_code => 'XLA_EVENT_TYPE_CODE'
47947 , p_source_type_code => 'Y'
47948 , p_source_application_id => 602
47949 ),'
47950 ') = 'REQ_BURDEN_REJECTED' OR
47951 NVL(
47952 xla_ae_sources_pkg.GetSystemSourceChar(
47953 p_source_code => 'XLA_EVENT_TYPE_CODE'
47954 , p_source_type_code => 'Y'
47955 , p_source_application_id => 602
47956 ),'
47957 ') = 'REQ_BURDEN_RETURNED' OR
47958 NVL(
47959 xla_ae_sources_pkg.GetSystemSourceChar(
47960 p_source_code => 'XLA_EVENT_TYPE_CODE'
47961 , p_source_type_code => 'Y'
47962 , p_source_application_id => 602
47963 ),'
47964 ') = 'REQ_BURDEN_UNRESERVED' OR
47965 NVL(
47966 xla_ae_sources_pkg.GetSystemSourceChar(
47967 p_source_code => 'XLA_EVENT_TYPE_CODE'
47968 , p_source_type_code => 'Y'
47969 , p_source_application_id => 602
47970 ),'
47971 ') = 'REQ_BURDEN_FINAL_CLOSED' AND
47972 NVL(p_source_13,'
47973 ') = 'M') AND
47974 NVL(p_source_14,'
47975 ') = 'O' AND
47976 NVL(p_source_15,'
47977 ') = 'D'
47978 THEN
47979
47980 --
47981 XLA_AE_LINES_PKG.SetNewLine;
47982
47983 p_balance_type_code := l_balance_type_code;
47984 -- set the flag so later we will know whether the gain loss line needs to be created
47985
47986 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
47987 p_actual_flag :='A';
47988 END IF;
47989
47990 --
47991 -- bulk performance
47992 --
47993 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
47994 p_header_num => 0); -- 4262811
47995 --
47996 -- set accounting line options
47997 --
47998 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
47999 p_natural_side_code => 'C'
48000 , p_gain_or_loss_flag => 'N'
48001 , p_gl_transfer_mode_code => 'S'
48002 , p_acct_entry_type_code => 'E'
48003 , p_switch_side_flag => 'N'
48004 , p_merge_duplicate_code => 'N'
48005 );
48006 --
48007 l_acc_rev_natural_side_code := 'D'; -- 4262811
48008 --
48009 --
48010 -- set accounting line type info
48011 --
48012 xla_ae_lines_pkg.SetAcctLineType
48013 (p_component_type => l_component_type
48014 ,p_event_type_code => l_event_type_code
48015 ,p_line_definition_owner_code => l_line_definition_owner_code
48016 ,p_line_definition_code => l_line_definition_code
48017 ,p_accounting_line_code => l_component_code
48018 ,p_accounting_line_type_code => l_component_type_code
48019 ,p_accounting_line_appl_id => l_component_appl_id
48020 ,p_amb_context_code => l_amb_context_code
48021 ,p_entity_code => l_entity_code
48022 ,p_event_class_code => l_event_class_code);
48023 --
48024 -- set accounting class
48025 --
48026 xla_ae_lines_pkg.SetAcctClass(
48027 p_accounting_class_code => 'REQ_PA_BURDEN'
48028 , p_ae_header_id => l_ae_header_id
48029 );
48030
48031 --
48032 -- set rounding class
48033 --
48034 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
48035 'REQ_PA_BURDEN';
48036
48037 --
48038 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
48039 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
48040 --
48041 -- bulk performance
48042 --
48043 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
48044
48045 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
48046 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
48047
48048 -- 4955764
48049 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48050 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
48051
48052 -- 4458381 Public Sector Enh
48053
48054 --
48055 -- set accounting attributes for the line type
48056 --
48057 l_entered_amt_idx := 28;
48058 l_accted_amt_idx := 30;
48059 l_bflow_applied_to_amt_idx := NULL; -- 5132302
48060 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
48061 l_rec_acct_attrs.array_char_value(1) := p_source_16;
48062 l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
48063 l_rec_acct_attrs.array_num_value(2) := p_source_17;
48064 l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
48065 l_rec_acct_attrs.array_char_value(3) := p_source_18;
48066 l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
48067 l_rec_acct_attrs.array_char_value(4) := p_source_19;
48068 l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
48069 l_rec_acct_attrs.array_num_value(5) := to_char(p_source_20);
48070 l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
48071 l_rec_acct_attrs.array_num_value(6) := to_char(p_source_21);
48072 l_rec_acct_attrs.array_acct_attr_code(7) := 'ALLOC_TO_SECOND_DIST_ID';
48073 l_rec_acct_attrs.array_char_value(7) := p_source_22;
48074 l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
48075 l_rec_acct_attrs.array_num_value(8) := p_source_41;
48076 l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
48077 l_rec_acct_attrs.array_char_value(9) := p_source_42;
48078 l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
48079 l_rec_acct_attrs.array_char_value(10) := p_source_43;
48080 l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
48081 l_rec_acct_attrs.array_num_value(11) := to_char(p_source_44);
48082 l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
48083 l_rec_acct_attrs.array_num_value(12) := to_char(p_source_45);
48084 l_rec_acct_attrs.array_acct_attr_code(13) := 'APPLIED_TO_SECOND_DIST_ID';
48085 l_rec_acct_attrs.array_char_value(13) := p_source_46;
48086 l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_IDENTIFIER_1';
48087 l_rec_acct_attrs.array_num_value(14) := to_char(p_source_47);
48088 l_rec_acct_attrs.array_acct_attr_code(15) := 'DISTRIBUTION_IDENTIFIER_2';
48089 l_rec_acct_attrs.array_char_value(15) := p_source_6;
48090 l_rec_acct_attrs.array_acct_attr_code(16) := 'DISTRIBUTION_TYPE';
48091 l_rec_acct_attrs.array_char_value(16) := p_source_30;
48092 l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ACCT_CLASS';
48093 l_rec_acct_attrs.array_char_value(17) := p_source_31;
48094 l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_CCID';
48095 l_rec_acct_attrs.array_num_value(18) := p_source_32;
48096 l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_CR_ENTERED_AMT';
48097 l_rec_acct_attrs.array_num_value(19) := p_source_33;
48098 l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_CR_ENTERED_CURR';
48099 l_rec_acct_attrs.array_char_value(20) := p_source_34;
48100 l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_CR_LEDGER_AMT';
48101 l_rec_acct_attrs.array_num_value(21) := p_source_35;
48102 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ACCT_CLASS';
48103 l_rec_acct_attrs.array_char_value(22) := p_source_36;
48104 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_CCID';
48105 l_rec_acct_attrs.array_num_value(23) := p_source_37;
48106 l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_ENTERED_AMT';
48107 l_rec_acct_attrs.array_num_value(24) := p_source_33;
48108 l_rec_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_CURR';
48109 l_rec_acct_attrs.array_char_value(25) := p_source_34;
48110 l_rec_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_LEDGER_AMT';
48111 l_rec_acct_attrs.array_num_value(26) := p_source_35;
48112 l_rec_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_OPTION';
48113 l_rec_acct_attrs.array_char_value(27) := p_source_38;
48114 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
48115 l_rec_acct_attrs.array_num_value(28) := p_source_33;
48116 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
48117 l_rec_acct_attrs.array_char_value(29) := p_source_34;
48118 l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
48119 l_rec_acct_attrs.array_num_value(30) := p_source_35;
48120 l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
48121 l_rec_acct_attrs.array_num_value(31) := to_char(p_source_47);
48122 l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID2';
48123 l_rec_acct_attrs.array_char_value(32) := p_source_6;
48124 l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
48125 l_rec_acct_attrs.array_char_value(33) := p_source_30;
48126 l_rec_acct_attrs.array_acct_attr_code(34) := 'UPG_CR_ENC_TYPE_ID';
48127 l_rec_acct_attrs.array_num_value(34) := p_source_39;
48128 l_rec_acct_attrs.array_acct_attr_code(35) := 'UPG_DR_ENC_TYPE_ID';
48129 l_rec_acct_attrs.array_num_value(35) := p_source_40;
48130
48131 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
48132 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
48133
48134 ---------------------------------------------------------------------------------------------------------------
48135 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
48136 ---------------------------------------------------------------------------------------------------------------
48137 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
48138
48139 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48140 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48141
48142 IF xla_accounting_cache_pkg.GetValueChar
48143 (p_source_code => 'LEDGER_CATEGORY_CODE'
48144 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
48145 AND l_bflow_method_code = 'PRIOR_ENTRY'
48146 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
48147 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
48148 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
48149 )
48150 THEN
48151 xla_ae_lines_pkg.BflowUpgEntry
48152 (p_business_method_code => l_bflow_method_code
48153 ,p_business_class_code => l_bflow_class_code
48154 ,p_balance_type => l_balance_type_code);
48155 ELSE
48156 NULL;
48157 XLA_AE_LINES_PKG.business_flow_validation(
48158 p_business_method_code => l_bflow_method_code
48159 ,p_business_class_code => l_bflow_class_code
48160 ,p_inherit_description_flag => l_inherit_desc_flag);
48161 END IF;
48162
48163 --
48164 -- call analytical criteria
48165 --
48166 -- Inherited Analytical Criteria for business flow method of Prior Entry.
48167 --
48168 -- call description
48169 --
48170
48171 xla_ae_lines_pkg.SetLineDescription(
48172 p_ae_header_id => l_ae_header_id
48173 ,p_description => Description_2 (
48174 p_application_id => p_application_id
48175 , p_ae_header_id => l_ae_header_id
48176 , p_source_3 => p_source_3
48177 , p_source_4 => p_source_4
48178 , p_source_5 => p_source_5
48179 , p_source_6 => p_source_6
48180 )
48181 );
48182
48183
48184 --
48185 -- call ADRs
48186 -- Bug 4922099
48187 --
48188 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48189 (NVL(l_actual_upg_option, 'N') = 'O') OR
48190 (NVL(l_enc_upg_option, 'N') = 'O')
48191 )
48192 THEN
48193 NULL;
48194 --
48195 --
48196
48197 --
48198 --
48199 END IF;
48200 --
48201 -- Bug 4922099
48202 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
48203 (NVL(l_enc_upg_option, 'N') = 'O')
48204 ) AND
48205 (l_bflow_method_code = 'PRIOR_ENTRY')
48206 )
48207 THEN
48208 IF
48209 --
48210 1 = 1
48211 --
48212 THEN
48213 xla_accounting_err_pkg.build_message
48214 (p_appli_s_name => 'XLA'
48215 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48216 ,p_token_1 => 'LINE_NUMBER'
48217 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
48218 ,p_token_2 => 'LINE_TYPE_NAME'
48219 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
48220 l_component_type
48221 ,l_component_code
48222 ,l_component_type_code
48223 ,l_component_appl_id
48224 ,l_amb_context_code
48225 ,l_entity_code
48226 ,l_event_class_code
48227 )
48228 ,p_token_3 => 'OWNER'
48229 ,p_value_3 => xla_lookups_pkg.get_meaning(
48230 p_lookup_type => 'XLA_OWNER_TYPE'
48231 ,p_lookup_code => l_component_type_code
48232 )
48233 ,p_token_4 => 'PRODUCT_NAME'
48234 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
48235 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
48236 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
48237 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
48238 ,p_ae_header_id => NULL
48239 );
48240
48241 IF (C_LEVEL_ERROR>= g_log_level) THEN
48242 trace
48243 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48244 ,p_level => C_LEVEL_ERROR
48245 ,p_module => l_log_module);
48246 END IF;
48247 END IF;
48248 END IF;
48249 --
48250 --
48251 ------------------------------------------------------------------------------------------------
48252 -- 4219869 Business Flow
48253 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
48254 -- Prior Entry. Currently, the following code is always generated.
48255 ------------------------------------------------------------------------------------------------
48256 -- No ValidateCurrentLine for business flow method of Prior Entry
48257
48258 ------------------------------------------------------------------------------------
48259 -- 4219869 Business Flow
48260 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
48261 ------------------------------------------------------------------------------------
48262 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48263
48264 ----------------------------------------------------------------------------------
48265 -- 4219869 Business Flow
48266 -- Update journal entry status -- Need to generate this within IF <condition>
48267 ----------------------------------------------------------------------------------
48268 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48269 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
48270 ,p_balance_type_code => l_balance_type_code
48271 );
48272
48273 -------------------------------------------------------------------------------------------
48274 -- 4262811 - Generate the Accrual Reversal lines
48275 -------------------------------------------------------------------------------------------
48276 BEGIN
48277 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
48278 (g_array_event(p_event_id).array_value_num('header_index'));
48279 IF l_acc_rev_flag IS NULL THEN
48280 l_acc_rev_flag := 'N';
48281 END IF;
48282 EXCEPTION
48283 WHEN OTHERS THEN
48284 l_acc_rev_flag := 'N';
48285 END;
48286 --
48287 IF (l_acc_rev_flag = 'Y') THEN
48288
48289 -- 4645092 ------------------------------------------------------------------------------
48290 -- To allow MPA report to determine if it should generate report process
48291 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
48292 ------------------------------------------------------------------------------------------
48293
48294 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
48295 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
48296
48297 --
48298 -- Update the line information that should be overwritten
48299 --
48300 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
48301 p_header_num => 1);
48302 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
48303
48304 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
48305
48306 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
48307 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
48308 END IF;
48309
48310 --
48311 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
48312 --
48313 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
48314 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
48315 ELSE
48316 ---------------------------------------------------------------------------------------------------
48317 -- 4262811a Switch Sign
48318 ---------------------------------------------------------------------------------------------------
48319 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
48320 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48321 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48322 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48323 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48324 -- 5132302
48325 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
48326 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48327
48328 END IF;
48329
48330 -- 4955764
48331 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48332 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
48333
48334
48335 XLA_AE_LINES_PKG.ValidateCurrentLine;
48336 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48337
48338 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48339 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
48340 ,p_balance_type_code => l_balance_type_code);
48341
48342 END IF;
48343
48344 -----------------------------------------------------------------------------------------
48345 -- 4262811 Multiperiod Accounting
48346 -----------------------------------------------------------------------------------------
48347 -- No MPA option is assigned.
48348
48349
48350 END IF;
48351 END IF;
48352 --
48353
48354 --
48355 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48356 trace
48357 (p_msg => 'END of AcctLineType_84'
48358 ,p_level => C_LEVEL_PROCEDURE
48359 ,p_module => l_log_module);
48360 END IF;
48361 --
48362 EXCEPTION
48363 WHEN xla_exceptions_pkg.application_exception THEN
48364 RAISE;
48365 WHEN OTHERS THEN
48366 xla_exceptions_pkg.raise_message
48367 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.AcctLineType_84');
48368 END AcctLineType_84;
48369 --
48370
48371 ---------------------------------------
48372 --
48373 -- PRIVATE PROCEDURE
48374 -- insert_sources_85
48375 --
48376 ----------------------------------------
48377 --
48378 PROCEDURE insert_sources_85(
48379 p_target_ledger_id IN NUMBER
48380 , p_language IN VARCHAR2
48381 , p_sla_ledger_id IN NUMBER
48382 , p_pad_start_date IN DATE
48383 , p_pad_end_date IN DATE
48384 )
48385 IS
48386
48387 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PO_BURDEN_ALL';
48388 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PO_BURDEN';
48389 p_apps_owner VARCHAR2(30);
48390 l_log_module VARCHAR2(240);
48391 BEGIN
48392 IF g_log_enabled THEN
48393 l_log_module := C_DEFAULT_MODULE||'.insert_sources_85';
48394 END IF;
48395 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48396
48397 trace
48398 (p_msg => 'BEGIN of insert_sources_85'
48399 ,p_level => C_LEVEL_PROCEDURE
48400 ,p_module => l_log_module);
48401
48402 END IF;
48403
48404 -- select APPS owner
48405 SELECT oracle_username
48406 INTO p_apps_owner
48407 FROM fnd_oracle_userid
48408 WHERE read_only_flag = 'U'
48409 ;
48410
48411 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
48412 trace
48413 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
48414 ' - p_language = '||p_language||
48415 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
48416 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
48417 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
48418 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
48419 ,p_level => C_LEVEL_STATEMENT
48420 ,p_module => l_log_module);
48421 END IF;
48422
48423
48424 --
48425 INSERT INTO xla_diag_sources --hdr2
48426 (
48427 event_id
48428 , ledger_id
48429 , sla_ledger_id
48430 , description_language
48431 , object_name
48432 , object_type_code
48433 , line_number
48434 , source_application_id
48435 , source_type_code
48436 , source_code
48437 , source_value
48438 , source_meaning
48439 , created_by
48440 , creation_date
48441 , last_update_date
48442 , last_updated_by
48443 , last_update_login
48444 , program_update_date
48445 , program_application_id
48446 , program_id
48447 , request_id
48448 )
48449 SELECT
48450 event_id
48451 , p_target_ledger_id
48452 , p_sla_ledger_id
48453 , p_language
48454 , object_name
48455 , object_type_code
48456 , line_number
48457 , source_application_id
48458 , source_type_code
48459 , source_code
48460 , SUBSTR(source_value ,1,1996)
48461 , SUBSTR(source_meaning ,1,200)
48462 , xla_environment_pkg.g_Usr_Id
48463 , TRUNC(SYSDATE)
48464 , TRUNC(SYSDATE)
48465 , xla_environment_pkg.g_Usr_Id
48466 , xla_environment_pkg.g_Login_Id
48467 , TRUNC(SYSDATE)
48468 , xla_environment_pkg.g_Prog_Appl_Id
48469 , xla_environment_pkg.g_Prog_Id
48470 , xla_environment_pkg.g_Req_Id
48471 FROM (
48472 SELECT xet.event_id event_id
48473 , 0 line_number
48474 , CASE r
48475 WHEN 1 THEN 'PA_XLA_BC_PKT_PO_HEADER_V'
48476
48477 ELSE null
48478 END object_name
48479 , CASE r
48480 WHEN 1 THEN 'HEADER'
48481
48482 ELSE null
48483 END object_type_code
48484 , CASE r
48485 WHEN 1 THEN '201'
48486
48487 ELSE null
48488 END source_application_id
48489 , 'S' source_type_code
48490 , CASE r
48491 WHEN 1 THEN 'GL_DATE'
48492
48493 ELSE null
48494 END source_code
48495 , CASE r
48496 WHEN 1 THEN TO_CHAR(h2.GL_DATE)
48497
48498 ELSE null
48499 END source_value
48500 , null source_meaning
48501 FROM xla_events_gt xet
48502 , PA_XLA_BC_PKT_PO_HEADER_V h2
48503 ,(select rownum r from all_objects where rownum <= 1 and owner = p_apps_owner)
48504 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
48505 AND xet.event_class_code = C_EVENT_CLASS_CODE
48506 AND h2.event_id = xet.event_id
48507
48508 )
48509 ;
48510 --
48511 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
48512
48513 trace
48514 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
48515 ,p_level => C_LEVEL_STATEMENT
48516 ,p_module => l_log_module);
48517
48518 END IF;
48519 --
48520
48521
48522
48523 --
48524 INSERT INTO xla_diag_sources --line2
48525 (
48526 event_id
48527 , ledger_id
48528 , sla_ledger_id
48529 , description_language
48530 , object_name
48531 , object_type_code
48532 , line_number
48533 , source_application_id
48534 , source_type_code
48535 , source_code
48536 , source_value
48537 , source_meaning
48538 , created_by
48539 , creation_date
48540 , last_update_date
48541 , last_updated_by
48542 , last_update_login
48543 , program_update_date
48544 , program_application_id
48545 , program_id
48546 , request_id
48547 )
48548 SELECT event_id
48549 , p_target_ledger_id
48550 , p_sla_ledger_id
48551 , p_language
48552 , object_name
48553 , object_type_code
48554 , line_number
48555 , source_application_id
48556 , source_type_code
48557 , source_code
48558 , SUBSTR(source_value,1,1996)
48559 , SUBSTR(source_meaning ,1,200)
48560 , xla_environment_pkg.g_Usr_Id
48561 , TRUNC(SYSDATE)
48562 , TRUNC(SYSDATE)
48563 , xla_environment_pkg.g_Usr_Id
48564 , xla_environment_pkg.g_Login_Id
48565 , TRUNC(SYSDATE)
48566 , xla_environment_pkg.g_Prog_Appl_Id
48567 , xla_environment_pkg.g_Prog_Id
48568 , xla_environment_pkg.g_Req_Id
48569 FROM (
48570 SELECT xet.event_id event_id
48571 , l1.line_number line_number
48572 , CASE r
48573 WHEN 1 THEN 'PA_XLA_PROJECT_REF_V'
48574 WHEN 2 THEN 'PA_XLA_TASK_REF_V'
48575 WHEN 3 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48576 WHEN 4 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48577 WHEN 5 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48578 WHEN 6 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48579 WHEN 7 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48580 WHEN 8 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48581 WHEN 9 THEN 'PA_XLA_PROJECT_REF_V'
48582 WHEN 10 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48583 WHEN 11 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48584 WHEN 12 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48585 WHEN 13 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48586 WHEN 14 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48587 WHEN 15 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48588 WHEN 16 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48589 WHEN 17 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48590 WHEN 18 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48591 WHEN 19 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48592 WHEN 20 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48593 WHEN 21 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48594 WHEN 22 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48595 WHEN 23 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48596 WHEN 24 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48597 WHEN 25 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48598 WHEN 26 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48599 WHEN 27 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48600 WHEN 28 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48601 WHEN 29 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48602 WHEN 30 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48603 WHEN 31 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48604 WHEN 32 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48605 WHEN 33 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48606 WHEN 34 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48607 WHEN 35 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48608 WHEN 36 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48609 WHEN 37 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48610 WHEN 38 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48611 WHEN 39 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48612 WHEN 40 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48613 WHEN 41 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48614 WHEN 42 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48615 WHEN 43 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48616 WHEN 44 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48617 WHEN 45 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48618 WHEN 46 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
48619
48620 ELSE null
48621 END object_name
48622 , CASE r
48623 WHEN 1 THEN 'LINE'
48624 WHEN 2 THEN 'LINE'
48625 WHEN 3 THEN 'LINE'
48626 WHEN 4 THEN 'LINE'
48627 WHEN 5 THEN 'LINE'
48628 WHEN 6 THEN 'LINE'
48629 WHEN 7 THEN 'LINE'
48630 WHEN 8 THEN 'LINE'
48631 WHEN 9 THEN 'LINE'
48632 WHEN 10 THEN 'LINE'
48633 WHEN 11 THEN 'LINE'
48634 WHEN 12 THEN 'LINE'
48635 WHEN 13 THEN 'LINE'
48636 WHEN 14 THEN 'LINE'
48637 WHEN 15 THEN 'LINE'
48638 WHEN 16 THEN 'LINE'
48639 WHEN 17 THEN 'LINE'
48640 WHEN 18 THEN 'LINE'
48641 WHEN 19 THEN 'LINE'
48642 WHEN 20 THEN 'LINE'
48643 WHEN 21 THEN 'LINE'
48644 WHEN 22 THEN 'LINE'
48645 WHEN 23 THEN 'LINE'
48646 WHEN 24 THEN 'LINE'
48647 WHEN 25 THEN 'LINE'
48648 WHEN 26 THEN 'LINE'
48649 WHEN 27 THEN 'LINE'
48650 WHEN 28 THEN 'LINE'
48651 WHEN 29 THEN 'LINE'
48652 WHEN 30 THEN 'LINE'
48653 WHEN 31 THEN 'LINE'
48654 WHEN 32 THEN 'LINE'
48655 WHEN 33 THEN 'LINE'
48656 WHEN 34 THEN 'LINE'
48657 WHEN 35 THEN 'LINE'
48658 WHEN 36 THEN 'LINE'
48659 WHEN 37 THEN 'LINE'
48660 WHEN 38 THEN 'LINE'
48661 WHEN 39 THEN 'LINE'
48662 WHEN 40 THEN 'LINE'
48663 WHEN 41 THEN 'LINE'
48664 WHEN 42 THEN 'LINE'
48665 WHEN 43 THEN 'LINE'
48666 WHEN 44 THEN 'LINE'
48667 WHEN 45 THEN 'LINE'
48668 WHEN 46 THEN 'LINE'
48669
48670 ELSE null
48671 END object_type_code
48672 , CASE r
48673 WHEN 1 THEN '275'
48674 WHEN 2 THEN '275'
48675 WHEN 3 THEN '201'
48676 WHEN 4 THEN '201'
48677 WHEN 5 THEN '201'
48678 WHEN 6 THEN '201'
48679 WHEN 7 THEN '201'
48680 WHEN 8 THEN '201'
48681 WHEN 9 THEN '275'
48682 WHEN 10 THEN '201'
48683 WHEN 11 THEN '201'
48684 WHEN 12 THEN '201'
48685 WHEN 13 THEN '201'
48686 WHEN 14 THEN '201'
48687 WHEN 15 THEN '201'
48688 WHEN 16 THEN '201'
48689 WHEN 17 THEN '201'
48690 WHEN 18 THEN '201'
48691 WHEN 19 THEN '201'
48692 WHEN 20 THEN '201'
48693 WHEN 21 THEN '201'
48694 WHEN 22 THEN '201'
48695 WHEN 23 THEN '201'
48696 WHEN 24 THEN '201'
48697 WHEN 25 THEN '201'
48698 WHEN 26 THEN '201'
48699 WHEN 27 THEN '201'
48700 WHEN 28 THEN '201'
48701 WHEN 29 THEN '201'
48702 WHEN 30 THEN '201'
48703 WHEN 31 THEN '201'
48704 WHEN 32 THEN '201'
48705 WHEN 33 THEN '201'
48706 WHEN 34 THEN '201'
48707 WHEN 35 THEN '201'
48708 WHEN 36 THEN '201'
48709 WHEN 37 THEN '201'
48710 WHEN 38 THEN '201'
48711 WHEN 39 THEN '201'
48712 WHEN 40 THEN '201'
48713 WHEN 41 THEN '201'
48714 WHEN 42 THEN '201'
48715 WHEN 43 THEN '201'
48716 WHEN 44 THEN '201'
48717 WHEN 45 THEN '201'
48718 WHEN 46 THEN '201'
48719
48720 ELSE null
48721 END source_application_id
48722 , 'S' source_type_code
48723 , CASE r
48724 WHEN 1 THEN 'PROJECT_NAME'
48725 WHEN 2 THEN 'TASK_NAME'
48726 WHEN 3 THEN 'EXPENDITURE_ORGANIZATION_ID'
48727 WHEN 4 THEN 'EXPENDITURE_TYPE'
48728 WHEN 5 THEN 'DOCUMENT_TYPE'
48729 WHEN 6 THEN 'BUDGET_ACCOUNT'
48730 WHEN 7 THEN 'MAIN_OR_BACKING_CODE'
48731 WHEN 8 THEN 'BURDEN_COST_FLAG'
48732 WHEN 9 THEN 'PROJ_BURDEN_DISPLAY_METHOD'
48733 WHEN 10 THEN 'ACCOUNTING_REVERSAL_FLAG'
48734 WHEN 11 THEN 'ALLOC_TO_APPLN_ID'
48735 WHEN 12 THEN 'ALLOC_TO_DIST_TYPE'
48736 WHEN 13 THEN 'ALLOC_TO_ENTITY_CODE'
48737 WHEN 14 THEN 'ALLOC_TO_FIRST_DIST_ID'
48738 WHEN 15 THEN 'ALLOC_TO_FIRST_SYS_TRANS_ID'
48739 WHEN 16 THEN 'PO_APPLICATION_ID'
48740 WHEN 17 THEN 'PO_DISTRIBUTION_TYPE'
48741 WHEN 18 THEN 'PO_ENTITY_CODE'
48742 WHEN 19 THEN 'PO_FIRST_DIST_ID'
48743 WHEN 20 THEN 'PO_FIRST_SYS_TRANS_ID'
48744 WHEN 21 THEN 'PO_SECOND_DIST_ID'
48745 WHEN 22 THEN 'PO_DISTRIBUTION_ID'
48746 WHEN 23 THEN 'LINE_TYPE_NAME'
48747 WHEN 24 THEN 'ENC_UPG_CR_ACCT_CLASS'
48748 WHEN 25 THEN 'ENC_UPG_CR_ACCOUNT'
48749 WHEN 26 THEN 'ENTERED_AMT'
48750 WHEN 27 THEN 'CURRENCY_CODE'
48751 WHEN 28 THEN 'ACCOUNTED_AMT'
48752 WHEN 29 THEN 'ENC_UPG_DR_ACCT_CLASS'
48753 WHEN 30 THEN 'ENC_UPG_DR_ACCOUNT'
48754 WHEN 31 THEN 'USE_ENC_UPG_ATTRIB_FLAG'
48755 WHEN 32 THEN 'ENC_UPG_CR_ENC_TYPE_ID'
48756 WHEN 33 THEN 'ENC_UPG_DR_ENC_TYPE_ID'
48757 WHEN 34 THEN 'REQ_APPLICATION_ID'
48758 WHEN 35 THEN 'REQ_DISTRIBUTION_TYPE'
48759 WHEN 36 THEN 'REQ_ENTITY_CODE'
48760 WHEN 37 THEN 'REQ_FIRST_DIST_ID'
48761 WHEN 38 THEN 'REQ_FIRST_SYS_TRANS_ID'
48762 WHEN 39 THEN 'REQ_SECOND_DIST_ID'
48763 WHEN 40 THEN 'BACKING_REQ_ENC_FLIPPED_FLAG'
48764 WHEN 41 THEN 'PA_APPLICATION_ID'
48765 WHEN 42 THEN 'PA_DISTRIBUTION_TYPE'
48766 WHEN 43 THEN 'PA_ENTITY_CODE'
48767 WHEN 44 THEN 'PA_FIRST_DIST_ID'
48768 WHEN 45 THEN 'PA_FIRST_SYS_TRANS_ID'
48769 WHEN 46 THEN 'PA_SECOND_DIST_ID'
48770
48771 ELSE null
48772 END source_code
48773 , CASE r
48774 WHEN 1 THEN TO_CHAR(l3.PROJECT_NAME)
48775 WHEN 2 THEN TO_CHAR(l4.TASK_NAME)
48776 WHEN 3 THEN TO_CHAR(l1.EXPENDITURE_ORGANIZATION_ID)
48777 WHEN 4 THEN TO_CHAR(l1.EXPENDITURE_TYPE)
48778 WHEN 5 THEN TO_CHAR(l1.DOCUMENT_TYPE)
48779 WHEN 6 THEN TO_CHAR(l1.BUDGET_ACCOUNT)
48780 WHEN 7 THEN TO_CHAR(l1.MAIN_OR_BACKING_CODE)
48781 WHEN 8 THEN TO_CHAR(l1.BURDEN_COST_FLAG)
48782 WHEN 9 THEN TO_CHAR(l3.PROJ_BURDEN_DISPLAY_METHOD)
48783 WHEN 10 THEN TO_CHAR(l1.ACCOUNTING_REVERSAL_FLAG)
48784 WHEN 11 THEN TO_CHAR(l1.ALLOC_TO_APPLN_ID)
48785 WHEN 12 THEN TO_CHAR(l1.ALLOC_TO_DIST_TYPE)
48786 WHEN 13 THEN TO_CHAR(l1.ALLOC_TO_ENTITY_CODE)
48787 WHEN 14 THEN TO_CHAR(l1.ALLOC_TO_FIRST_DIST_ID)
48788 WHEN 15 THEN TO_CHAR(l1.ALLOC_TO_FIRST_SYS_TRANS_ID)
48789 WHEN 16 THEN TO_CHAR(l1.PO_APPLICATION_ID)
48790 WHEN 17 THEN TO_CHAR(l1.PO_DISTRIBUTION_TYPE)
48791 WHEN 18 THEN TO_CHAR(l1.PO_ENTITY_CODE)
48792 WHEN 19 THEN TO_CHAR(l1.PO_FIRST_DIST_ID)
48793 WHEN 20 THEN TO_CHAR(l1.PO_FIRST_SYS_TRANS_ID)
48794 WHEN 21 THEN TO_CHAR(l1.PO_SECOND_DIST_ID)
48795 WHEN 22 THEN TO_CHAR(l1.PO_DISTRIBUTION_ID)
48796 WHEN 23 THEN TO_CHAR(l1.LINE_TYPE_NAME)
48797 WHEN 24 THEN TO_CHAR(l1.ENC_UPG_CR_ACCT_CLASS)
48798 WHEN 25 THEN TO_CHAR(l1.ENC_UPG_CR_ACCOUNT)
48799 WHEN 26 THEN TO_CHAR(l1.ENTERED_AMT)
48800 WHEN 27 THEN TO_CHAR(l1.CURRENCY_CODE)
48801 WHEN 28 THEN TO_CHAR(l1.ACCOUNTED_AMT)
48802 WHEN 29 THEN TO_CHAR(l1.ENC_UPG_DR_ACCT_CLASS)
48803 WHEN 30 THEN TO_CHAR(l1.ENC_UPG_DR_ACCOUNT)
48804 WHEN 31 THEN TO_CHAR(l1.USE_ENC_UPG_ATTRIB_FLAG)
48805 WHEN 32 THEN TO_CHAR(l1.ENC_UPG_CR_ENC_TYPE_ID)
48806 WHEN 33 THEN TO_CHAR(l1.ENC_UPG_DR_ENC_TYPE_ID)
48807 WHEN 34 THEN TO_CHAR(l1.REQ_APPLICATION_ID)
48808 WHEN 35 THEN TO_CHAR(l1.REQ_DISTRIBUTION_TYPE)
48809 WHEN 36 THEN TO_CHAR(l1.REQ_ENTITY_CODE)
48810 WHEN 37 THEN TO_CHAR(l1.REQ_FIRST_DIST_ID)
48811 WHEN 38 THEN TO_CHAR(l1.REQ_FIRST_SYS_TRANS_ID)
48812 WHEN 39 THEN TO_CHAR(l1.REQ_SECOND_DIST_ID)
48813 WHEN 40 THEN TO_CHAR(l1.BACKING_REQ_ENC_FLIPPED_FLAG)
48814 WHEN 41 THEN TO_CHAR(l1.PA_APPLICATION_ID)
48815 WHEN 42 THEN TO_CHAR(l1.PA_DISTRIBUTION_TYPE)
48816 WHEN 43 THEN TO_CHAR(l1.PA_ENTITY_CODE)
48817 WHEN 44 THEN TO_CHAR(l1.PA_FIRST_DIST_ID)
48818 WHEN 45 THEN TO_CHAR(l1.PA_FIRST_SYS_TRANS_ID)
48819 WHEN 46 THEN TO_CHAR(l1.PA_SECOND_DIST_ID)
48820
48821 ELSE null
48822 END source_value
48823 , CASE r
48824 WHEN 3 THEN XLA_00201_AAD_S_000005_BC_PKG.GetMeaning(
48825 1011404
48826 ,TO_CHAR(l1.EXPENDITURE_ORGANIZATION_ID)
48827 ,'EXPENDITURE_ORGANIZATION_ID'
48828 ,'S'
48829 ,201)
48830 WHEN 8 THEN fvl14.meaning
48831
48832 ELSE null
48833 END source_meaning
48834 FROM xla_events_gt xet
48835 , PA_XLA_BC_PKT_PO_DETAIL_V l1
48836 , PA_XLA_PROJECT_REF_V l3
48837 , PA_XLA_TASK_REF_V l4
48838 , fnd_lookup_values fvl14
48839 , (select rownum r from all_objects where rownum <= 46 and owner = p_apps_owner)
48840 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
48841 AND xet.event_class_code = C_EVENT_CLASS_CODE
48842 AND l1.event_id = xet.event_id
48843 AND l3.project_id=l1.project_id AND l4.task_id=l1.task_id AND fvl14.lookup_type(+) = 'BC_PKT_BURDEN_COST_FLAG'
48844 AND fvl14.lookup_code(+) = l1.BURDEN_COST_FLAG
48845 AND fvl14.view_application_id(+) = 275
48846 AND fvl14.language(+) = USERENV('LANG')
48847
48848 )
48849 ;
48850 --
48851 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
48852
48853 trace
48854 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
48855 ,p_level => C_LEVEL_STATEMENT
48856 ,p_module => l_log_module);
48857
48858 END IF;
48859
48860
48861 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48862 trace
48863 (p_msg => 'END of insert_sources_85'
48864 ,p_level => C_LEVEL_PROCEDURE
48865 ,p_module => l_log_module);
48866 END IF;
48867 EXCEPTION
48868 WHEN xla_exceptions_pkg.application_exception THEN
48869 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
48870 trace
48871 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
48872 ,p_level => C_LEVEL_EXCEPTION
48873 ,p_module => l_log_module);
48874 END IF;
48875 RAISE;
48876 WHEN OTHERS THEN
48877 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
48878 trace
48879 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
48880 ,p_level => C_LEVEL_EXCEPTION
48881 ,p_module => l_log_module);
48882 END IF;
48883 xla_exceptions_pkg.raise_message
48884 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.insert_sources_85');
48885 END insert_sources_85;
48886 --
48887
48888 ---------------------------------------
48889 --
48890 -- PRIVATE FUNCTION
48891 -- EventClass_85
48892 --
48893 ----------------------------------------
48894 --
48895 FUNCTION EventClass_85
48896 (p_application_id IN NUMBER
48897 ,p_base_ledger_id IN NUMBER
48898 ,p_target_ledger_id IN NUMBER
48899 ,p_language IN VARCHAR2
48900 ,p_currency_code IN VARCHAR2
48901 ,p_sla_ledger_id IN NUMBER
48902 ,p_pad_start_date IN DATE
48903 ,p_pad_end_date IN DATE
48904 ,p_primary_ledger_id IN NUMBER)
48905 RETURN BOOLEAN IS
48906 --
48907 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PO_BURDEN_ALL';
48908 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PO_BURDEN';
48909
48910 l_calculate_acctd_flag VARCHAR2(1) :='N';
48911 l_calculate_g_l_flag VARCHAR2(1) :='N';
48912 --
48913 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
48914 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
48915 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
48916 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
48917 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
48918 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
48919 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
48920 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
48921 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
48922 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
48923 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
48924 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
48925 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
48926 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
48927 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
48928 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
48929 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
48930 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
48931 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
48932 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
48933 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
48934 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
48935 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
48936 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
48937
48938 l_event_id NUMBER;
48939 l_previous_event_id NUMBER;
48940 l_first_event_id NUMBER;
48941 l_last_event_id NUMBER;
48942
48943 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
48944 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
48945 --
48946 --
48947 l_result BOOLEAN := TRUE;
48948 l_rows NUMBER := 1000;
48949 l_event_type_name VARCHAR2(80) := 'All';
48950 l_event_class_name VARCHAR2(80) := 'Burden for Purchase Orders';
48951 l_description VARCHAR2(4000);
48952 l_transaction_reversal NUMBER;
48953 l_ae_header_id NUMBER;
48954 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
48955 l_log_module VARCHAR2(240);
48956 --
48957 l_acct_reversal_source VARCHAR2(30);
48958 l_trx_reversal_source VARCHAR2(30);
48959
48960 l_continue_with_lines BOOLEAN := TRUE;
48961 --
48962 l_acc_rev_gl_date_source DATE; -- 4262811
48963 --
48964 type t_array_event_id is table of number index by binary_integer;
48965
48966 l_rec_array_event t_rec_array_event;
48967 l_null_rec_array_event t_rec_array_event;
48968 l_array_ae_header_id xla_number_array_type;
48969 l_actual_flag VARCHAR2(1) := NULL;
48970 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
48971 l_balance_type_code VARCHAR2(1) :=NULL;
48972 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
48973
48974 --
48975 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
48976 --
48977
48978 TYPE t_array_source_79 IS TABLE OF PA_XLA_BC_PKT_PO_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
48979
48980 TYPE t_array_source_3 IS TABLE OF PA_XLA_PROJECT_REF_V.PROJECT_NAME%TYPE INDEX BY BINARY_INTEGER;
48981 TYPE t_array_source_4 IS TABLE OF PA_XLA_TASK_REF_V.TASK_NAME%TYPE INDEX BY BINARY_INTEGER;
48982 TYPE t_array_source_5 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.EXPENDITURE_ORGANIZATION_ID%TYPE INDEX BY BINARY_INTEGER;
48983 TYPE t_array_source_6 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.EXPENDITURE_TYPE%TYPE INDEX BY BINARY_INTEGER;
48984 TYPE t_array_source_9 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.DOCUMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
48985 TYPE t_array_source_11 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.BUDGET_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
48986 TYPE t_array_source_13 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.MAIN_OR_BACKING_CODE%TYPE INDEX BY BINARY_INTEGER;
48987 TYPE t_array_source_14 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.BURDEN_COST_FLAG%TYPE INDEX BY BINARY_INTEGER;
48988 TYPE t_array_source_15 IS TABLE OF PA_XLA_PROJECT_REF_V.PROJ_BURDEN_DISPLAY_METHOD%TYPE INDEX BY BINARY_INTEGER;
48989 TYPE t_array_source_16 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.ACCOUNTING_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
48990 TYPE t_array_source_17 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.ALLOC_TO_APPLN_ID%TYPE INDEX BY BINARY_INTEGER;
48991 TYPE t_array_source_18 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.ALLOC_TO_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
48992 TYPE t_array_source_19 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.ALLOC_TO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
48993 TYPE t_array_source_20 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.ALLOC_TO_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
48994 TYPE t_array_source_21 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.ALLOC_TO_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
48995 TYPE t_array_source_23 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.PO_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
48996 TYPE t_array_source_24 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.PO_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
48997 TYPE t_array_source_25 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.PO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
48998 TYPE t_array_source_26 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.PO_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
48999 TYPE t_array_source_27 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.PO_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
49000 TYPE t_array_source_28 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.PO_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
49001 TYPE t_array_source_29 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.PO_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
49002 TYPE t_array_source_30 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.LINE_TYPE_NAME%TYPE INDEX BY BINARY_INTEGER;
49003 TYPE t_array_source_31 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.ENC_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
49004 TYPE t_array_source_32 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.ENC_UPG_CR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
49005 TYPE t_array_source_33 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.ENTERED_AMT%TYPE INDEX BY BINARY_INTEGER;
49006 TYPE t_array_source_34 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
49007 TYPE t_array_source_35 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.ACCOUNTED_AMT%TYPE INDEX BY BINARY_INTEGER;
49008 TYPE t_array_source_36 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.ENC_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
49009 TYPE t_array_source_37 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.ENC_UPG_DR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
49010 TYPE t_array_source_38 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
49011 TYPE t_array_source_39 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.ENC_UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
49012 TYPE t_array_source_40 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.ENC_UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
49013 TYPE t_array_source_41 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.REQ_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
49014 TYPE t_array_source_42 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.REQ_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
49015 TYPE t_array_source_43 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.REQ_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
49016 TYPE t_array_source_44 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.REQ_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
49017 TYPE t_array_source_45 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.REQ_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
49018 TYPE t_array_source_46 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.REQ_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
49019 TYPE t_array_source_67 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.BACKING_REQ_ENC_FLIPPED_FLAG%TYPE INDEX BY BINARY_INTEGER;
49020 TYPE t_array_source_68 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.PA_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
49021 TYPE t_array_source_69 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.PA_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
49022 TYPE t_array_source_70 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.PA_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
49023 TYPE t_array_source_71 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.PA_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
49024 TYPE t_array_source_72 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.PA_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
49025 TYPE t_array_source_73 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.PA_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
49026
49027 l_array_source_79 t_array_source_79;
49028
49029 l_array_source_3 t_array_source_3;
49030 l_array_source_4 t_array_source_4;
49031 l_array_source_5 t_array_source_5;
49032 l_array_source_6 t_array_source_6;
49033 l_array_source_9 t_array_source_9;
49034 l_array_source_11 t_array_source_11;
49035 l_array_source_13 t_array_source_13;
49036 l_array_source_14 t_array_source_14;
49037 l_array_source_14_meaning t_array_lookup_meaning;
49038 l_array_source_15 t_array_source_15;
49039 l_array_source_16 t_array_source_16;
49040 l_array_source_17 t_array_source_17;
49041 l_array_source_18 t_array_source_18;
49042 l_array_source_19 t_array_source_19;
49043 l_array_source_20 t_array_source_20;
49044 l_array_source_21 t_array_source_21;
49045 l_array_source_23 t_array_source_23;
49046 l_array_source_24 t_array_source_24;
49047 l_array_source_25 t_array_source_25;
49048 l_array_source_26 t_array_source_26;
49049 l_array_source_27 t_array_source_27;
49050 l_array_source_28 t_array_source_28;
49051 l_array_source_29 t_array_source_29;
49052 l_array_source_30 t_array_source_30;
49053 l_array_source_31 t_array_source_31;
49054 l_array_source_32 t_array_source_32;
49055 l_array_source_33 t_array_source_33;
49056 l_array_source_34 t_array_source_34;
49057 l_array_source_35 t_array_source_35;
49058 l_array_source_36 t_array_source_36;
49059 l_array_source_37 t_array_source_37;
49060 l_array_source_38 t_array_source_38;
49061 l_array_source_39 t_array_source_39;
49062 l_array_source_40 t_array_source_40;
49063 l_array_source_41 t_array_source_41;
49064 l_array_source_42 t_array_source_42;
49065 l_array_source_43 t_array_source_43;
49066 l_array_source_44 t_array_source_44;
49067 l_array_source_45 t_array_source_45;
49068 l_array_source_46 t_array_source_46;
49069 l_array_source_67 t_array_source_67;
49070 l_array_source_68 t_array_source_68;
49071 l_array_source_69 t_array_source_69;
49072 l_array_source_70 t_array_source_70;
49073 l_array_source_71 t_array_source_71;
49074 l_array_source_72 t_array_source_72;
49075 l_array_source_73 t_array_source_73;
49076
49077 --
49078 CURSOR header_cur
49079 IS
49080 SELECT /*+ leading(xet) cardinality(xet,1) */
49081 -- Event Class Code: PO_BURDEN
49082 xet.entity_id
49083 ,xet.legal_entity_id
49084 ,xet.entity_code
49085 ,xet.transaction_number
49086 ,xet.event_id
49087 ,xet.event_class_code
49088 ,xet.event_type_code
49089 ,xet.event_number
49090 ,xet.event_date
49091 ,xet.transaction_date
49092 ,xet.reference_num_1
49093 ,xet.reference_num_2
49094 ,xet.reference_num_3
49095 ,xet.reference_num_4
49096 ,xet.reference_char_1
49097 ,xet.reference_char_2
49098 ,xet.reference_char_3
49099 ,xet.reference_char_4
49100 ,xet.reference_date_1
49101 ,xet.reference_date_2
49102 ,xet.reference_date_3
49103 ,xet.reference_date_4
49104 ,xet.event_created_by
49105 ,xet.budgetary_control_flag
49106 , h2.GL_DATE source_79
49107 FROM xla_events_gt xet
49108 , PA_XLA_BC_PKT_PO_HEADER_V h2
49109 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
49110 and xet.event_class_code = C_EVENT_CLASS_CODE
49111 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
49112
49113 ORDER BY event_id
49114 ;
49115
49116
49117 --
49118 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
49119 IS
49120 SELECT /*+ leading(xet) cardinality(xet,1) */
49121 -- Event Class Code: PO_BURDEN
49122 xet.entity_id
49123 ,xet.legal_entity_id
49124 ,xet.entity_code
49125 ,xet.transaction_number
49126 ,xet.event_id
49127 ,xet.event_class_code
49128 ,xet.event_type_code
49129 ,xet.event_number
49130 ,xet.event_date
49131 ,xet.transaction_date
49132 ,xet.reference_num_1
49133 ,xet.reference_num_2
49134 ,xet.reference_num_3
49135 ,xet.reference_num_4
49136 ,xet.reference_char_1
49137 ,xet.reference_char_2
49138 ,xet.reference_char_3
49139 ,xet.reference_char_4
49140 ,xet.reference_date_1
49141 ,xet.reference_date_2
49142 ,xet.reference_date_3
49143 ,xet.reference_date_4
49144 ,xet.event_created_by
49145 ,xet.budgetary_control_flag
49146 , l1.LINE_NUMBER
49147 , l3.PROJECT_NAME source_3
49148 , l4.TASK_NAME source_4
49149 , l1.EXPENDITURE_ORGANIZATION_ID source_5
49150 , l1.EXPENDITURE_TYPE source_6
49151 , l1.DOCUMENT_TYPE source_9
49152 , l1.BUDGET_ACCOUNT source_11
49153 , l1.MAIN_OR_BACKING_CODE source_13
49154 , l1.BURDEN_COST_FLAG source_14
49155 , fvl14.meaning source_14_meaning
49156 , l3.PROJ_BURDEN_DISPLAY_METHOD source_15
49157 , l1.ACCOUNTING_REVERSAL_FLAG source_16
49158 , l1.ALLOC_TO_APPLN_ID source_17
49159 , l1.ALLOC_TO_DIST_TYPE source_18
49160 , l1.ALLOC_TO_ENTITY_CODE source_19
49161 , l1.ALLOC_TO_FIRST_DIST_ID source_20
49162 , l1.ALLOC_TO_FIRST_SYS_TRANS_ID source_21
49163 , l1.PO_APPLICATION_ID source_23
49164 , l1.PO_DISTRIBUTION_TYPE source_24
49165 , l1.PO_ENTITY_CODE source_25
49166 , l1.PO_FIRST_DIST_ID source_26
49167 , l1.PO_FIRST_SYS_TRANS_ID source_27
49168 , l1.PO_SECOND_DIST_ID source_28
49169 , l1.PO_DISTRIBUTION_ID source_29
49170 , l1.LINE_TYPE_NAME source_30
49171 , l1.ENC_UPG_CR_ACCT_CLASS source_31
49172 , l1.ENC_UPG_CR_ACCOUNT source_32
49173 , l1.ENTERED_AMT source_33
49174 , l1.CURRENCY_CODE source_34
49175 , l1.ACCOUNTED_AMT source_35
49176 , l1.ENC_UPG_DR_ACCT_CLASS source_36
49177 , l1.ENC_UPG_DR_ACCOUNT source_37
49178 , l1.USE_ENC_UPG_ATTRIB_FLAG source_38
49179 , l1.ENC_UPG_CR_ENC_TYPE_ID source_39
49180 , l1.ENC_UPG_DR_ENC_TYPE_ID source_40
49181 , l1.REQ_APPLICATION_ID source_41
49182 , l1.REQ_DISTRIBUTION_TYPE source_42
49183 , l1.REQ_ENTITY_CODE source_43
49184 , l1.REQ_FIRST_DIST_ID source_44
49185 , l1.REQ_FIRST_SYS_TRANS_ID source_45
49186 , l1.REQ_SECOND_DIST_ID source_46
49187 , l1.BACKING_REQ_ENC_FLIPPED_FLAG source_67
49188 , l1.PA_APPLICATION_ID source_68
49189 , l1.PA_DISTRIBUTION_TYPE source_69
49190 , l1.PA_ENTITY_CODE source_70
49191 , l1.PA_FIRST_DIST_ID source_71
49192 , l1.PA_FIRST_SYS_TRANS_ID source_72
49193 , l1.PA_SECOND_DIST_ID source_73
49194 FROM xla_events_gt xet
49195 , PA_XLA_BC_PKT_PO_DETAIL_V l1
49196 , PA_XLA_PROJECT_REF_V l3
49197 , PA_XLA_TASK_REF_V l4
49198 , fnd_lookup_values fvl14
49199 WHERE xet.event_id between x_first_event_id and x_last_event_id
49200 and xet.event_date between p_pad_start_date and p_pad_end_date
49201 and xet.event_class_code = C_EVENT_CLASS_CODE
49202 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
49203 AND l3.project_id=l1.project_id AND l4.task_id=l1.task_id AND fvl14.lookup_type(+) = 'BC_PKT_BURDEN_COST_FLAG'
49204 AND fvl14.lookup_code(+) = l1.BURDEN_COST_FLAG
49205 AND fvl14.view_application_id(+) = 275
49206 AND fvl14.language(+) = USERENV('LANG')
49207 ;
49208
49209 --
49210 BEGIN
49211 IF g_log_enabled THEN
49212 l_log_module := C_DEFAULT_MODULE||'.EventClass_85';
49213 END IF;
49214 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49215 trace
49216 (p_msg => 'BEGIN of EventClass_85'
49217 ,p_level => C_LEVEL_PROCEDURE
49218 ,p_module => l_log_module);
49219 END IF;
49220
49221 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
49222 trace
49223 (p_msg => 'p_application_id = '||p_application_id||
49224 ' - p_base_ledger_id = '||p_base_ledger_id||
49225 ' - p_target_ledger_id = '||p_target_ledger_id||
49226 ' - p_language = '||p_language||
49227 ' - p_currency_code = '||p_currency_code||
49228 ' - p_sla_ledger_id = '||p_sla_ledger_id
49229 ,p_level => C_LEVEL_STATEMENT
49230 ,p_module => l_log_module);
49231 END IF;
49232 --
49233 -- initialze arrays
49234 --
49235 g_array_event.DELETE;
49236 l_rec_array_event := l_null_rec_array_event;
49237 --
49238 --------------------------------------
49239 -- 4262811 Initialze MPA Line Number
49240 --------------------------------------
49241 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
49242
49243 --
49244
49245 --
49246 OPEN header_cur;
49247 --
49248 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
49249 trace
49250 (p_msg => 'SQL - FETCH header_cur'
49251 ,p_level => C_LEVEL_STATEMENT
49252 ,p_module => l_log_module);
49253 END IF;
49254 --
49255 LOOP
49256 FETCH header_cur BULK COLLECT INTO
49257 l_array_entity_id
49258 , l_array_legal_entity_id
49259 , l_array_entity_code
49260 , l_array_transaction_num
49261 , l_array_event_id
49262 , l_array_class_code
49263 , l_array_event_type
49264 , l_array_event_number
49265 , l_array_event_date
49266 , l_array_transaction_date
49267 , l_array_reference_num_1
49268 , l_array_reference_num_2
49269 , l_array_reference_num_3
49270 , l_array_reference_num_4
49271 , l_array_reference_char_1
49272 , l_array_reference_char_2
49273 , l_array_reference_char_3
49274 , l_array_reference_char_4
49275 , l_array_reference_date_1
49276 , l_array_reference_date_2
49277 , l_array_reference_date_3
49278 , l_array_reference_date_4
49279 , l_array_event_created_by
49280 , l_array_budgetary_control_flag
49281 , l_array_source_79
49282 LIMIT l_rows;
49283 --
49284 IF (C_LEVEL_EVENT >= g_log_level) THEN
49285 trace
49286 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
49287 ,p_level => C_LEVEL_EVENT
49288 ,p_module => l_log_module);
49289 END IF;
49290 --
49291 EXIT WHEN l_array_entity_id.COUNT = 0;
49292
49293 -- initialize arrays
49294 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
49295 XLA_AE_LINES_PKG.g_rec_lines := NULL;
49296
49297 --
49298 -- Bug 4458708
49299 --
49300 XLA_AE_LINES_PKG.g_LineNumber := 0;
49301
49302
49303 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
49304 g_last_hdr_idx := l_array_event_id.LAST;
49305 --
49306 -- loop for the headers. Each iteration is for each header extract row
49307 -- fetched in header cursor
49308 --
49309 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
49310
49311 --
49312 -- set event info as cache for other routines to refer event attributes
49313 --
49314 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
49315 (p_application_id => p_application_id
49316 ,p_primary_ledger_id => p_primary_ledger_id
49317 ,p_base_ledger_id => p_base_ledger_id
49318 ,p_target_ledger_id => p_target_ledger_id
49319 ,p_entity_id => l_array_entity_id(hdr_idx)
49320 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
49321 ,p_entity_code => l_array_entity_code(hdr_idx)
49322 ,p_transaction_num => l_array_transaction_num(hdr_idx)
49323 ,p_event_id => l_array_event_id(hdr_idx)
49324 ,p_event_class_code => l_array_class_code(hdr_idx)
49325 ,p_event_type_code => l_array_event_type(hdr_idx)
49326 ,p_event_number => l_array_event_number(hdr_idx)
49327 ,p_event_date => l_array_event_date(hdr_idx)
49328 ,p_transaction_date => l_array_transaction_date(hdr_idx)
49329 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
49330 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
49331 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
49332 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
49333 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
49334 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
49335 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
49336 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
49337 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
49338 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
49339 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
49340 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
49341 ,p_event_created_by => l_array_event_created_by(hdr_idx)
49342 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
49343
49344 --
49345 -- set the status of entry to C_VALID (0)
49346 --
49347 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
49348
49349 --
49350 -- initialize a row for ae header
49351 --
49352 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
49353
49354 l_event_id := l_array_event_id(hdr_idx);
49355
49356 --
49357 -- storing the hdr_idx for event. May be used by line cursor.
49358 --
49359 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
49360
49361 --
49362 -- store sources from header extract. This can be improved to
49363 -- store only those sources from header extract that may be used in lines
49364 --
49365
49366 g_array_event(l_event_id).array_value_date('source_79') := l_array_source_79(hdr_idx);
49367
49368 --
49369 -- initilaize the status of ae headers for diffrent balance types
49370 -- the status is initialised to C_NOT_CREATED (2)
49371 --
49372 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
49373 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
49374 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
49375
49376 --
49377 -- call api to validate and store accounting attributes for header
49378 --
49379
49380 ------------------------------------------------------------
49381 -- Accrual Reversal : to get date for Standard Source (NONE)
49382 ------------------------------------------------------------
49383 l_acc_rev_gl_date_source := NULL;
49384
49385 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
49386 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_79');
49387
49388
49389 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
49390
49391 XLA_AE_HEADER_PKG.SetJeCategoryName;
49392
49393 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
49394 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
49395 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
49396 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
49397 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
49398
49399
49400 -- No header level analytical criteria
49401
49402 --
49403 --accounting attribute enhancement, bug 3612931
49404 --
49405 l_trx_reversal_source := SUBSTR(NULL, 1,30);
49406
49407 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
49408 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
49409
49410 xla_accounting_err_pkg.build_message
49411 (p_appli_s_name => 'XLA'
49412 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
49413 ,p_token_1 => 'ACCT_ATTR_NAME'
49414 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
49415 ,p_token_2 => 'PRODUCT_NAME'
49416 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
49417 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
49418 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
49419 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
49420
49421 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
49422 --
49423 -- following sets the accounting attributes needed to reverse
49424 -- accounting for a distributeion
49425 --
49426 xla_ae_lines_pkg.SetTrxReversalAttrs
49427 (p_event_id => l_event_id
49428 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
49429 ,p_trx_reversal_source => l_trx_reversal_source);
49430
49431 END IF;
49432
49433
49434 ----------------------------------------------------------------
49435 -- 4262811 - update the header statuses to invalid in need be
49436 ----------------------------------------------------------------
49437 --
49438 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
49439
49440
49441 -----------------------------------------------
49442 -- No accrual reversal for the event class/type
49443 -----------------------------------------------
49444 ----------------------------------------------------------------
49445
49446 --
49447 -- this ends the header loop iteration for one bulk fetch
49448 --
49449 END LOOP;
49450
49451 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
49452 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
49453
49454 --
49455 -- insert dummy rows into lines gt table that were created due to
49456 -- transaction reversals
49457 --
49458 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
49459 l_result := XLA_AE_LINES_PKG.InsertLines;
49460 END IF;
49461
49462 --
49463 -- reset the temp_line_num for each set of events fetched from header
49464 -- cursor rather than doing it for each new event in line cursor
49465 -- Bug 3939231
49466 --
49467 xla_ae_lines_pkg.g_temp_line_num := 0;
49468
49469
49470
49471 --
49472 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
49473 --
49474 --
49475 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
49476
49477 trace
49478 (p_msg => 'SQL - FETCH line_cur'
49479 ,p_level => C_LEVEL_STATEMENT
49480 ,p_module => l_log_module);
49481
49482 END IF;
49483 --
49484 --
49485 LOOP
49486 --
49487 FETCH line_cur BULK COLLECT INTO
49488 l_array_entity_id
49489 , l_array_legal_entity_id
49490 , l_array_entity_code
49491 , l_array_transaction_num
49492 , l_array_event_id
49493 , l_array_class_code
49494 , l_array_event_type
49495 , l_array_event_number
49496 , l_array_event_date
49497 , l_array_transaction_date
49498 , l_array_reference_num_1
49499 , l_array_reference_num_2
49500 , l_array_reference_num_3
49501 , l_array_reference_num_4
49502 , l_array_reference_char_1
49503 , l_array_reference_char_2
49504 , l_array_reference_char_3
49505 , l_array_reference_char_4
49506 , l_array_reference_date_1
49507 , l_array_reference_date_2
49508 , l_array_reference_date_3
49509 , l_array_reference_date_4
49510 , l_array_event_created_by
49511 , l_array_budgetary_control_flag
49512 , l_array_extract_line_num
49513 , l_array_source_3
49514 , l_array_source_4
49515 , l_array_source_5
49516 , l_array_source_6
49517 , l_array_source_9
49518 , l_array_source_11
49519 , l_array_source_13
49520 , l_array_source_14
49521 , l_array_source_14_meaning
49522 , l_array_source_15
49523 , l_array_source_16
49524 , l_array_source_17
49525 , l_array_source_18
49526 , l_array_source_19
49527 , l_array_source_20
49528 , l_array_source_21
49529 , l_array_source_23
49530 , l_array_source_24
49531 , l_array_source_25
49532 , l_array_source_26
49533 , l_array_source_27
49534 , l_array_source_28
49535 , l_array_source_29
49536 , l_array_source_30
49537 , l_array_source_31
49538 , l_array_source_32
49539 , l_array_source_33
49540 , l_array_source_34
49541 , l_array_source_35
49542 , l_array_source_36
49543 , l_array_source_37
49544 , l_array_source_38
49545 , l_array_source_39
49546 , l_array_source_40
49547 , l_array_source_41
49548 , l_array_source_42
49549 , l_array_source_43
49550 , l_array_source_44
49551 , l_array_source_45
49552 , l_array_source_46
49553 , l_array_source_67
49554 , l_array_source_68
49555 , l_array_source_69
49556 , l_array_source_70
49557 , l_array_source_71
49558 , l_array_source_72
49559 , l_array_source_73
49560 LIMIT l_rows;
49561
49562 --
49563 IF (C_LEVEL_EVENT >= g_log_level) THEN
49564 trace
49565 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
49566 ,p_level => C_LEVEL_EVENT
49567 ,p_module => l_log_module);
49568 END IF;
49569 --
49570 EXIT WHEN l_array_entity_id.count = 0;
49571
49572 XLA_AE_LINES_PKG.g_rec_lines := null;
49573
49574 --
49575 -- Bug 4458708
49576 --
49577 XLA_AE_LINES_PKG.g_LineNumber := 0;
49578 --
49579 --
49580
49581 FOR Idx IN 1..l_array_event_id.count LOOP
49582 --
49583 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
49584 --
49585 l_event_id := l_array_event_id(idx); -- 5648433
49586
49587 --
49588 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
49589 --
49590
49591 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
49592 (g_array_event(l_event_id).array_value_num('header_index'))
49593 ,'N'
49594 ) <> 'Y'
49595 THEN
49596 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
49597 trace
49598 (p_msg => 'Trancaction revesal option is not Y '
49599 ,p_level => C_LEVEL_STATEMENT
49600 ,p_module => l_log_module);
49601 END IF;
49602
49603 --
49604 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
49605 --
49606 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
49607 --
49608 -- set event info as cache for other routines to refer event attributes
49609 --
49610
49611 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
49612 l_previous_event_id := l_event_id;
49613
49614 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
49615 (p_application_id => p_application_id
49616 ,p_primary_ledger_id => p_primary_ledger_id
49617 ,p_base_ledger_id => p_base_ledger_id
49618 ,p_target_ledger_id => p_target_ledger_id
49619 ,p_entity_id => l_array_entity_id(Idx)
49620 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
49621 ,p_entity_code => l_array_entity_code(Idx)
49622 ,p_transaction_num => l_array_transaction_num(Idx)
49623 ,p_event_id => l_array_event_id(Idx)
49624 ,p_event_class_code => l_array_class_code(Idx)
49625 ,p_event_type_code => l_array_event_type(Idx)
49626 ,p_event_number => l_array_event_number(Idx)
49627 ,p_event_date => l_array_event_date(Idx)
49628 ,p_transaction_date => l_array_transaction_date(Idx)
49629 ,p_reference_num_1 => l_array_reference_num_1(Idx)
49630 ,p_reference_num_2 => l_array_reference_num_2(Idx)
49631 ,p_reference_num_3 => l_array_reference_num_3(Idx)
49632 ,p_reference_num_4 => l_array_reference_num_4(Idx)
49633 ,p_reference_char_1 => l_array_reference_char_1(Idx)
49634 ,p_reference_char_2 => l_array_reference_char_2(Idx)
49635 ,p_reference_char_3 => l_array_reference_char_3(Idx)
49636 ,p_reference_char_4 => l_array_reference_char_4(Idx)
49637 ,p_reference_date_1 => l_array_reference_date_1(Idx)
49638 ,p_reference_date_2 => l_array_reference_date_2(Idx)
49639 ,p_reference_date_3 => l_array_reference_date_3(Idx)
49640 ,p_reference_date_4 => l_array_reference_date_4(Idx)
49641 ,p_event_created_by => l_array_event_created_by(Idx)
49642 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
49643 --
49644 END IF;
49645
49646
49647
49648 --
49649 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
49650
49651 l_acct_reversal_source := SUBSTR(l_array_source_16(Idx), 1,30);
49652
49653 IF l_continue_with_lines THEN
49654 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
49655 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
49656
49657 xla_accounting_err_pkg.build_message
49658 (p_appli_s_name => 'XLA'
49659 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
49660 ,p_token_1 => 'LINE_NUMBER'
49661 ,p_value_1 => l_array_extract_line_num(Idx)
49662 ,p_token_2 => 'PRODUCT_NAME'
49663 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
49664 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
49665 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
49666 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
49667
49668 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
49669 --
49670 -- following sets the accounting attributes needed to reverse
49671 -- accounting for a distributeion
49672 --
49673
49674 --
49675 -- 5217187
49676 --
49677 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
49678 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
49679 g_array_event(l_event_id).array_value_num('header_index'));
49680 --
49681 --
49682
49683 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
49684 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_16(Idx);
49685 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
49686 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_29(Idx);
49687 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_IDENTIFIER_2';
49688 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_6(Idx);
49689 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'DISTRIBUTION_TYPE';
49690 l_rec_rev_acct_attrs.array_char_value(5) := l_array_source_30(Idx);
49691 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ACCT_CLASS';
49692 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_31(Idx);
49693 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_CCID';
49694 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_32(Idx);
49695 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_ENTERED_AMT';
49696 l_rec_rev_acct_attrs.array_num_value(8) := l_array_source_33(Idx);
49697 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_CURR';
49698 l_rec_rev_acct_attrs.array_char_value(9) := l_array_source_34(Idx);
49699 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_LEDGER_AMT';
49700 l_rec_rev_acct_attrs.array_num_value(10) := l_array_source_35(Idx);
49701 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ACCT_CLASS';
49702 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_36(Idx);
49703 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
49704 l_rec_rev_acct_attrs.array_num_value(12) := l_array_source_37(Idx);
49705 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
49706 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_33(Idx);
49707 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
49708 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_34(Idx);
49709 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
49710 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_35(Idx);
49711 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
49712 l_rec_rev_acct_attrs.array_char_value(16) := l_array_source_38(Idx);
49713 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'REVERSED_DISTRIBUTION_ID1';
49714 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_29(Idx);
49715 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'REVERSED_DISTRIBUTION_ID2';
49716 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_6(Idx);
49717 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_TYPE';
49718 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_30(Idx);
49719 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
49720 l_rec_rev_acct_attrs.array_num_value(20) := l_array_source_39(Idx);
49721 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
49722 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_40(Idx);
49723
49724
49725 xla_ae_lines_pkg.SetAcctReversalAttrs
49726 (p_event_id => l_event_id
49727 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
49728 ,p_calculate_acctd_flag => l_calculate_acctd_flag
49729 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
49730 END IF;
49731
49732 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
49733 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
49734
49735 --
49736 AcctLineType_10 (
49737 p_application_id => p_application_id
49738 ,p_event_id => l_event_id
49739 ,p_calculate_acctd_flag => l_calculate_acctd_flag
49740 ,p_calculate_g_l_flag => l_calculate_g_l_flag
49741 ,p_actual_flag => l_actual_flag
49742 ,p_balance_type_code => l_balance_type_code
49743 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
49744
49745 , p_source_3 => l_array_source_3(Idx)
49746 , p_source_4 => l_array_source_4(Idx)
49747 , p_source_5 => l_array_source_5(Idx)
49748 , p_source_6 => l_array_source_6(Idx)
49749 , p_source_9 => l_array_source_9(Idx)
49750 , p_source_13 => l_array_source_13(Idx)
49751 , p_source_14 => l_array_source_14(Idx)
49752 , p_source_14_meaning => l_array_source_14_meaning(Idx)
49753 , p_source_15 => l_array_source_15(Idx)
49754 , p_source_16 => l_array_source_16(Idx)
49755 , p_source_17 => l_array_source_17(Idx)
49756 , p_source_18 => l_array_source_18(Idx)
49757 , p_source_19 => l_array_source_19(Idx)
49758 , p_source_20 => l_array_source_20(Idx)
49759 , p_source_21 => l_array_source_21(Idx)
49760 , p_source_23 => l_array_source_23(Idx)
49761 , p_source_24 => l_array_source_24(Idx)
49762 , p_source_25 => l_array_source_25(Idx)
49763 , p_source_26 => l_array_source_26(Idx)
49764 , p_source_27 => l_array_source_27(Idx)
49765 , p_source_28 => l_array_source_28(Idx)
49766 , p_source_29 => l_array_source_29(Idx)
49767 , p_source_30 => l_array_source_30(Idx)
49768 , p_source_31 => l_array_source_31(Idx)
49769 , p_source_32 => l_array_source_32(Idx)
49770 , p_source_33 => l_array_source_33(Idx)
49771 , p_source_34 => l_array_source_34(Idx)
49772 , p_source_35 => l_array_source_35(Idx)
49773 , p_source_36 => l_array_source_36(Idx)
49774 , p_source_37 => l_array_source_37(Idx)
49775 , p_source_38 => l_array_source_38(Idx)
49776 , p_source_39 => l_array_source_39(Idx)
49777 , p_source_40 => l_array_source_40(Idx)
49778 );
49779 If(l_balance_type_code = 'A') THEN
49780 l_actual_gain_loss_ref := l_gain_or_loss_ref;
49781 END IF;
49782
49783 --
49784
49785
49786 --
49787 AcctLineType_13 (
49788 p_application_id => p_application_id
49789 ,p_event_id => l_event_id
49790 ,p_calculate_acctd_flag => l_calculate_acctd_flag
49791 ,p_calculate_g_l_flag => l_calculate_g_l_flag
49792 ,p_actual_flag => l_actual_flag
49793 ,p_balance_type_code => l_balance_type_code
49794 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
49795
49796 , p_source_3 => l_array_source_3(Idx)
49797 , p_source_4 => l_array_source_4(Idx)
49798 , p_source_5 => l_array_source_5(Idx)
49799 , p_source_6 => l_array_source_6(Idx)
49800 , p_source_9 => l_array_source_9(Idx)
49801 , p_source_13 => l_array_source_13(Idx)
49802 , p_source_14 => l_array_source_14(Idx)
49803 , p_source_14_meaning => l_array_source_14_meaning(Idx)
49804 , p_source_15 => l_array_source_15(Idx)
49805 , p_source_16 => l_array_source_16(Idx)
49806 , p_source_17 => l_array_source_17(Idx)
49807 , p_source_18 => l_array_source_18(Idx)
49808 , p_source_19 => l_array_source_19(Idx)
49809 , p_source_20 => l_array_source_20(Idx)
49810 , p_source_21 => l_array_source_21(Idx)
49811 , p_source_23 => l_array_source_23(Idx)
49812 , p_source_24 => l_array_source_24(Idx)
49813 , p_source_25 => l_array_source_25(Idx)
49814 , p_source_26 => l_array_source_26(Idx)
49815 , p_source_27 => l_array_source_27(Idx)
49816 , p_source_28 => l_array_source_28(Idx)
49817 , p_source_29 => l_array_source_29(Idx)
49818 , p_source_30 => l_array_source_30(Idx)
49819 , p_source_31 => l_array_source_31(Idx)
49820 , p_source_32 => l_array_source_32(Idx)
49821 , p_source_33 => l_array_source_33(Idx)
49822 , p_source_34 => l_array_source_34(Idx)
49823 , p_source_35 => l_array_source_35(Idx)
49824 , p_source_36 => l_array_source_36(Idx)
49825 , p_source_37 => l_array_source_37(Idx)
49826 , p_source_38 => l_array_source_38(Idx)
49827 , p_source_39 => l_array_source_39(Idx)
49828 , p_source_40 => l_array_source_40(Idx)
49829 );
49830 If(l_balance_type_code = 'A') THEN
49831 l_actual_gain_loss_ref := l_gain_or_loss_ref;
49832 END IF;
49833
49834 --
49835
49836
49837 --
49838 AcctLineType_28 (
49839 p_application_id => p_application_id
49840 ,p_event_id => l_event_id
49841 ,p_calculate_acctd_flag => l_calculate_acctd_flag
49842 ,p_calculate_g_l_flag => l_calculate_g_l_flag
49843 ,p_actual_flag => l_actual_flag
49844 ,p_balance_type_code => l_balance_type_code
49845 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
49846
49847 , p_source_3 => l_array_source_3(Idx)
49848 , p_source_4 => l_array_source_4(Idx)
49849 , p_source_5 => l_array_source_5(Idx)
49850 , p_source_6 => l_array_source_6(Idx)
49851 , p_source_9 => l_array_source_9(Idx)
49852 , p_source_11 => l_array_source_11(Idx)
49853 , p_source_13 => l_array_source_13(Idx)
49854 , p_source_14 => l_array_source_14(Idx)
49855 , p_source_14_meaning => l_array_source_14_meaning(Idx)
49856 , p_source_15 => l_array_source_15(Idx)
49857 , p_source_16 => l_array_source_16(Idx)
49858 , p_source_17 => l_array_source_17(Idx)
49859 , p_source_18 => l_array_source_18(Idx)
49860 , p_source_19 => l_array_source_19(Idx)
49861 , p_source_20 => l_array_source_20(Idx)
49862 , p_source_21 => l_array_source_21(Idx)
49863 , p_source_29 => l_array_source_29(Idx)
49864 , p_source_30 => l_array_source_30(Idx)
49865 , p_source_31 => l_array_source_31(Idx)
49866 , p_source_32 => l_array_source_32(Idx)
49867 , p_source_33 => l_array_source_33(Idx)
49868 , p_source_34 => l_array_source_34(Idx)
49869 , p_source_35 => l_array_source_35(Idx)
49870 , p_source_36 => l_array_source_36(Idx)
49871 , p_source_37 => l_array_source_37(Idx)
49872 , p_source_38 => l_array_source_38(Idx)
49873 , p_source_39 => l_array_source_39(Idx)
49874 , p_source_40 => l_array_source_40(Idx)
49875 , p_source_41 => l_array_source_41(Idx)
49876 , p_source_42 => l_array_source_42(Idx)
49877 , p_source_43 => l_array_source_43(Idx)
49878 , p_source_44 => l_array_source_44(Idx)
49879 , p_source_45 => l_array_source_45(Idx)
49880 , p_source_46 => l_array_source_46(Idx)
49881 );
49882 If(l_balance_type_code = 'A') THEN
49883 l_actual_gain_loss_ref := l_gain_or_loss_ref;
49884 END IF;
49885
49886 --
49887
49888
49889 --
49890 AcctLineType_29 (
49891 p_application_id => p_application_id
49892 ,p_event_id => l_event_id
49893 ,p_calculate_acctd_flag => l_calculate_acctd_flag
49894 ,p_calculate_g_l_flag => l_calculate_g_l_flag
49895 ,p_actual_flag => l_actual_flag
49896 ,p_balance_type_code => l_balance_type_code
49897 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
49898
49899 , p_source_3 => l_array_source_3(Idx)
49900 , p_source_4 => l_array_source_4(Idx)
49901 , p_source_5 => l_array_source_5(Idx)
49902 , p_source_6 => l_array_source_6(Idx)
49903 , p_source_9 => l_array_source_9(Idx)
49904 , p_source_13 => l_array_source_13(Idx)
49905 , p_source_14 => l_array_source_14(Idx)
49906 , p_source_14_meaning => l_array_source_14_meaning(Idx)
49907 , p_source_15 => l_array_source_15(Idx)
49908 , p_source_16 => l_array_source_16(Idx)
49909 , p_source_17 => l_array_source_17(Idx)
49910 , p_source_18 => l_array_source_18(Idx)
49911 , p_source_19 => l_array_source_19(Idx)
49912 , p_source_20 => l_array_source_20(Idx)
49913 , p_source_21 => l_array_source_21(Idx)
49914 , p_source_29 => l_array_source_29(Idx)
49915 , p_source_30 => l_array_source_30(Idx)
49916 , p_source_31 => l_array_source_31(Idx)
49917 , p_source_32 => l_array_source_32(Idx)
49918 , p_source_33 => l_array_source_33(Idx)
49919 , p_source_34 => l_array_source_34(Idx)
49920 , p_source_35 => l_array_source_35(Idx)
49921 , p_source_36 => l_array_source_36(Idx)
49922 , p_source_37 => l_array_source_37(Idx)
49923 , p_source_38 => l_array_source_38(Idx)
49924 , p_source_39 => l_array_source_39(Idx)
49925 , p_source_40 => l_array_source_40(Idx)
49926 , p_source_41 => l_array_source_41(Idx)
49927 , p_source_42 => l_array_source_42(Idx)
49928 , p_source_43 => l_array_source_43(Idx)
49929 , p_source_44 => l_array_source_44(Idx)
49930 , p_source_45 => l_array_source_45(Idx)
49931 , p_source_46 => l_array_source_46(Idx)
49932 , p_source_67 => l_array_source_67(Idx)
49933 );
49934 If(l_balance_type_code = 'A') THEN
49935 l_actual_gain_loss_ref := l_gain_or_loss_ref;
49936 END IF;
49937
49938 --
49939
49940
49941 --
49942 AcctLineType_34 (
49943 p_application_id => p_application_id
49944 ,p_event_id => l_event_id
49945 ,p_calculate_acctd_flag => l_calculate_acctd_flag
49946 ,p_calculate_g_l_flag => l_calculate_g_l_flag
49947 ,p_actual_flag => l_actual_flag
49948 ,p_balance_type_code => l_balance_type_code
49949 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
49950
49951 , p_source_3 => l_array_source_3(Idx)
49952 , p_source_4 => l_array_source_4(Idx)
49953 , p_source_5 => l_array_source_5(Idx)
49954 , p_source_6 => l_array_source_6(Idx)
49955 , p_source_9 => l_array_source_9(Idx)
49956 , p_source_11 => l_array_source_11(Idx)
49957 , p_source_13 => l_array_source_13(Idx)
49958 , p_source_14 => l_array_source_14(Idx)
49959 , p_source_14_meaning => l_array_source_14_meaning(Idx)
49960 , p_source_15 => l_array_source_15(Idx)
49961 , p_source_16 => l_array_source_16(Idx)
49962 , p_source_17 => l_array_source_17(Idx)
49963 , p_source_18 => l_array_source_18(Idx)
49964 , p_source_19 => l_array_source_19(Idx)
49965 , p_source_20 => l_array_source_20(Idx)
49966 , p_source_21 => l_array_source_21(Idx)
49967 , p_source_29 => l_array_source_29(Idx)
49968 , p_source_30 => l_array_source_30(Idx)
49969 , p_source_31 => l_array_source_31(Idx)
49970 , p_source_32 => l_array_source_32(Idx)
49971 , p_source_33 => l_array_source_33(Idx)
49972 , p_source_34 => l_array_source_34(Idx)
49973 , p_source_35 => l_array_source_35(Idx)
49974 , p_source_36 => l_array_source_36(Idx)
49975 , p_source_37 => l_array_source_37(Idx)
49976 , p_source_38 => l_array_source_38(Idx)
49977 , p_source_39 => l_array_source_39(Idx)
49978 , p_source_40 => l_array_source_40(Idx)
49979 , p_source_41 => l_array_source_41(Idx)
49980 , p_source_42 => l_array_source_42(Idx)
49981 , p_source_43 => l_array_source_43(Idx)
49982 , p_source_44 => l_array_source_44(Idx)
49983 , p_source_45 => l_array_source_45(Idx)
49984 , p_source_46 => l_array_source_46(Idx)
49985 );
49986 If(l_balance_type_code = 'A') THEN
49987 l_actual_gain_loss_ref := l_gain_or_loss_ref;
49988 END IF;
49989
49990 --
49991
49992
49993 --
49994 AcctLineType_35 (
49995 p_application_id => p_application_id
49996 ,p_event_id => l_event_id
49997 ,p_calculate_acctd_flag => l_calculate_acctd_flag
49998 ,p_calculate_g_l_flag => l_calculate_g_l_flag
49999 ,p_actual_flag => l_actual_flag
50000 ,p_balance_type_code => l_balance_type_code
50001 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
50002
50003 , p_source_3 => l_array_source_3(Idx)
50004 , p_source_4 => l_array_source_4(Idx)
50005 , p_source_5 => l_array_source_5(Idx)
50006 , p_source_6 => l_array_source_6(Idx)
50007 , p_source_9 => l_array_source_9(Idx)
50008 , p_source_13 => l_array_source_13(Idx)
50009 , p_source_14 => l_array_source_14(Idx)
50010 , p_source_14_meaning => l_array_source_14_meaning(Idx)
50011 , p_source_15 => l_array_source_15(Idx)
50012 , p_source_16 => l_array_source_16(Idx)
50013 , p_source_17 => l_array_source_17(Idx)
50014 , p_source_18 => l_array_source_18(Idx)
50015 , p_source_19 => l_array_source_19(Idx)
50016 , p_source_20 => l_array_source_20(Idx)
50017 , p_source_21 => l_array_source_21(Idx)
50018 , p_source_29 => l_array_source_29(Idx)
50019 , p_source_30 => l_array_source_30(Idx)
50020 , p_source_31 => l_array_source_31(Idx)
50021 , p_source_32 => l_array_source_32(Idx)
50022 , p_source_33 => l_array_source_33(Idx)
50023 , p_source_34 => l_array_source_34(Idx)
50024 , p_source_35 => l_array_source_35(Idx)
50025 , p_source_36 => l_array_source_36(Idx)
50026 , p_source_37 => l_array_source_37(Idx)
50027 , p_source_38 => l_array_source_38(Idx)
50028 , p_source_39 => l_array_source_39(Idx)
50029 , p_source_40 => l_array_source_40(Idx)
50030 , p_source_41 => l_array_source_41(Idx)
50031 , p_source_42 => l_array_source_42(Idx)
50032 , p_source_43 => l_array_source_43(Idx)
50033 , p_source_44 => l_array_source_44(Idx)
50034 , p_source_45 => l_array_source_45(Idx)
50035 , p_source_46 => l_array_source_46(Idx)
50036 , p_source_67 => l_array_source_67(Idx)
50037 );
50038 If(l_balance_type_code = 'A') THEN
50039 l_actual_gain_loss_ref := l_gain_or_loss_ref;
50040 END IF;
50041
50042 --
50043
50044
50045 --
50046 AcctLineType_36 (
50047 p_application_id => p_application_id
50048 ,p_event_id => l_event_id
50049 ,p_calculate_acctd_flag => l_calculate_acctd_flag
50050 ,p_calculate_g_l_flag => l_calculate_g_l_flag
50051 ,p_actual_flag => l_actual_flag
50052 ,p_balance_type_code => l_balance_type_code
50053 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
50054
50055 , p_source_3 => l_array_source_3(Idx)
50056 , p_source_4 => l_array_source_4(Idx)
50057 , p_source_5 => l_array_source_5(Idx)
50058 , p_source_6 => l_array_source_6(Idx)
50059 , p_source_9 => l_array_source_9(Idx)
50060 , p_source_11 => l_array_source_11(Idx)
50061 , p_source_13 => l_array_source_13(Idx)
50062 , p_source_14 => l_array_source_14(Idx)
50063 , p_source_14_meaning => l_array_source_14_meaning(Idx)
50064 , p_source_15 => l_array_source_15(Idx)
50065 , p_source_16 => l_array_source_16(Idx)
50066 , p_source_17 => l_array_source_17(Idx)
50067 , p_source_18 => l_array_source_18(Idx)
50068 , p_source_19 => l_array_source_19(Idx)
50069 , p_source_20 => l_array_source_20(Idx)
50070 , p_source_21 => l_array_source_21(Idx)
50071 , p_source_23 => l_array_source_23(Idx)
50072 , p_source_24 => l_array_source_24(Idx)
50073 , p_source_25 => l_array_source_25(Idx)
50074 , p_source_26 => l_array_source_26(Idx)
50075 , p_source_27 => l_array_source_27(Idx)
50076 , p_source_28 => l_array_source_28(Idx)
50077 , p_source_29 => l_array_source_29(Idx)
50078 , p_source_30 => l_array_source_30(Idx)
50079 , p_source_31 => l_array_source_31(Idx)
50080 , p_source_32 => l_array_source_32(Idx)
50081 , p_source_33 => l_array_source_33(Idx)
50082 , p_source_34 => l_array_source_34(Idx)
50083 , p_source_35 => l_array_source_35(Idx)
50084 , p_source_36 => l_array_source_36(Idx)
50085 , p_source_37 => l_array_source_37(Idx)
50086 , p_source_38 => l_array_source_38(Idx)
50087 , p_source_39 => l_array_source_39(Idx)
50088 , p_source_40 => l_array_source_40(Idx)
50089 , p_source_67 => l_array_source_67(Idx)
50090 );
50091 If(l_balance_type_code = 'A') THEN
50092 l_actual_gain_loss_ref := l_gain_or_loss_ref;
50093 END IF;
50094
50095 --
50096
50097
50098 --
50099 AcctLineType_37 (
50100 p_application_id => p_application_id
50101 ,p_event_id => l_event_id
50102 ,p_calculate_acctd_flag => l_calculate_acctd_flag
50103 ,p_calculate_g_l_flag => l_calculate_g_l_flag
50104 ,p_actual_flag => l_actual_flag
50105 ,p_balance_type_code => l_balance_type_code
50106 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
50107
50108 , p_source_3 => l_array_source_3(Idx)
50109 , p_source_4 => l_array_source_4(Idx)
50110 , p_source_5 => l_array_source_5(Idx)
50111 , p_source_6 => l_array_source_6(Idx)
50112 , p_source_9 => l_array_source_9(Idx)
50113 , p_source_11 => l_array_source_11(Idx)
50114 , p_source_13 => l_array_source_13(Idx)
50115 , p_source_14 => l_array_source_14(Idx)
50116 , p_source_14_meaning => l_array_source_14_meaning(Idx)
50117 , p_source_15 => l_array_source_15(Idx)
50118 , p_source_16 => l_array_source_16(Idx)
50119 , p_source_17 => l_array_source_17(Idx)
50120 , p_source_18 => l_array_source_18(Idx)
50121 , p_source_19 => l_array_source_19(Idx)
50122 , p_source_20 => l_array_source_20(Idx)
50123 , p_source_21 => l_array_source_21(Idx)
50124 , p_source_23 => l_array_source_23(Idx)
50125 , p_source_24 => l_array_source_24(Idx)
50126 , p_source_25 => l_array_source_25(Idx)
50127 , p_source_26 => l_array_source_26(Idx)
50128 , p_source_27 => l_array_source_27(Idx)
50129 , p_source_28 => l_array_source_28(Idx)
50130 , p_source_29 => l_array_source_29(Idx)
50131 , p_source_30 => l_array_source_30(Idx)
50132 , p_source_31 => l_array_source_31(Idx)
50133 , p_source_32 => l_array_source_32(Idx)
50134 , p_source_33 => l_array_source_33(Idx)
50135 , p_source_34 => l_array_source_34(Idx)
50136 , p_source_35 => l_array_source_35(Idx)
50137 , p_source_36 => l_array_source_36(Idx)
50138 , p_source_37 => l_array_source_37(Idx)
50139 , p_source_38 => l_array_source_38(Idx)
50140 , p_source_39 => l_array_source_39(Idx)
50141 , p_source_40 => l_array_source_40(Idx)
50142 , p_source_67 => l_array_source_67(Idx)
50143 );
50144 If(l_balance_type_code = 'A') THEN
50145 l_actual_gain_loss_ref := l_gain_or_loss_ref;
50146 END IF;
50147
50148 --
50149
50150
50151 --
50152 AcctLineType_40 (
50153 p_application_id => p_application_id
50154 ,p_event_id => l_event_id
50155 ,p_calculate_acctd_flag => l_calculate_acctd_flag
50156 ,p_calculate_g_l_flag => l_calculate_g_l_flag
50157 ,p_actual_flag => l_actual_flag
50158 ,p_balance_type_code => l_balance_type_code
50159 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
50160
50161 , p_source_3 => l_array_source_3(Idx)
50162 , p_source_4 => l_array_source_4(Idx)
50163 , p_source_5 => l_array_source_5(Idx)
50164 , p_source_6 => l_array_source_6(Idx)
50165 , p_source_9 => l_array_source_9(Idx)
50166 , p_source_13 => l_array_source_13(Idx)
50167 , p_source_14 => l_array_source_14(Idx)
50168 , p_source_14_meaning => l_array_source_14_meaning(Idx)
50169 , p_source_15 => l_array_source_15(Idx)
50170 , p_source_16 => l_array_source_16(Idx)
50171 , p_source_17 => l_array_source_17(Idx)
50172 , p_source_18 => l_array_source_18(Idx)
50173 , p_source_19 => l_array_source_19(Idx)
50174 , p_source_20 => l_array_source_20(Idx)
50175 , p_source_21 => l_array_source_21(Idx)
50176 , p_source_29 => l_array_source_29(Idx)
50177 , p_source_30 => l_array_source_30(Idx)
50178 , p_source_31 => l_array_source_31(Idx)
50179 , p_source_32 => l_array_source_32(Idx)
50180 , p_source_33 => l_array_source_33(Idx)
50181 , p_source_34 => l_array_source_34(Idx)
50182 , p_source_35 => l_array_source_35(Idx)
50183 , p_source_36 => l_array_source_36(Idx)
50184 , p_source_37 => l_array_source_37(Idx)
50185 , p_source_38 => l_array_source_38(Idx)
50186 , p_source_39 => l_array_source_39(Idx)
50187 , p_source_40 => l_array_source_40(Idx)
50188 , p_source_41 => l_array_source_41(Idx)
50189 , p_source_42 => l_array_source_42(Idx)
50190 , p_source_43 => l_array_source_43(Idx)
50191 , p_source_44 => l_array_source_44(Idx)
50192 , p_source_45 => l_array_source_45(Idx)
50193 , p_source_46 => l_array_source_46(Idx)
50194 , p_source_67 => l_array_source_67(Idx)
50195 );
50196 If(l_balance_type_code = 'A') THEN
50197 l_actual_gain_loss_ref := l_gain_or_loss_ref;
50198 END IF;
50199
50200 --
50201
50202
50203 --
50204 AcctLineType_43 (
50205 p_application_id => p_application_id
50206 ,p_event_id => l_event_id
50207 ,p_calculate_acctd_flag => l_calculate_acctd_flag
50208 ,p_calculate_g_l_flag => l_calculate_g_l_flag
50209 ,p_actual_flag => l_actual_flag
50210 ,p_balance_type_code => l_balance_type_code
50211 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
50212
50213 , p_source_3 => l_array_source_3(Idx)
50214 , p_source_4 => l_array_source_4(Idx)
50215 , p_source_5 => l_array_source_5(Idx)
50216 , p_source_6 => l_array_source_6(Idx)
50217 , p_source_9 => l_array_source_9(Idx)
50218 , p_source_13 => l_array_source_13(Idx)
50219 , p_source_14 => l_array_source_14(Idx)
50220 , p_source_14_meaning => l_array_source_14_meaning(Idx)
50221 , p_source_15 => l_array_source_15(Idx)
50222 , p_source_16 => l_array_source_16(Idx)
50223 , p_source_17 => l_array_source_17(Idx)
50224 , p_source_18 => l_array_source_18(Idx)
50225 , p_source_19 => l_array_source_19(Idx)
50226 , p_source_20 => l_array_source_20(Idx)
50227 , p_source_21 => l_array_source_21(Idx)
50228 , p_source_29 => l_array_source_29(Idx)
50229 , p_source_30 => l_array_source_30(Idx)
50230 , p_source_31 => l_array_source_31(Idx)
50231 , p_source_32 => l_array_source_32(Idx)
50232 , p_source_33 => l_array_source_33(Idx)
50233 , p_source_34 => l_array_source_34(Idx)
50234 , p_source_35 => l_array_source_35(Idx)
50235 , p_source_36 => l_array_source_36(Idx)
50236 , p_source_37 => l_array_source_37(Idx)
50237 , p_source_38 => l_array_source_38(Idx)
50238 , p_source_39 => l_array_source_39(Idx)
50239 , p_source_40 => l_array_source_40(Idx)
50240 , p_source_41 => l_array_source_41(Idx)
50241 , p_source_42 => l_array_source_42(Idx)
50242 , p_source_43 => l_array_source_43(Idx)
50243 , p_source_44 => l_array_source_44(Idx)
50244 , p_source_45 => l_array_source_45(Idx)
50245 , p_source_46 => l_array_source_46(Idx)
50246 , p_source_67 => l_array_source_67(Idx)
50247 );
50248 If(l_balance_type_code = 'A') THEN
50249 l_actual_gain_loss_ref := l_gain_or_loss_ref;
50250 END IF;
50251
50252 --
50253
50254
50255 --
50256 AcctLineType_48 (
50257 p_application_id => p_application_id
50258 ,p_event_id => l_event_id
50259 ,p_calculate_acctd_flag => l_calculate_acctd_flag
50260 ,p_calculate_g_l_flag => l_calculate_g_l_flag
50261 ,p_actual_flag => l_actual_flag
50262 ,p_balance_type_code => l_balance_type_code
50263 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
50264
50265 , p_source_3 => l_array_source_3(Idx)
50266 , p_source_4 => l_array_source_4(Idx)
50267 , p_source_5 => l_array_source_5(Idx)
50268 , p_source_6 => l_array_source_6(Idx)
50269 , p_source_13 => l_array_source_13(Idx)
50270 , p_source_16 => l_array_source_16(Idx)
50271 , p_source_17 => l_array_source_17(Idx)
50272 , p_source_18 => l_array_source_18(Idx)
50273 , p_source_19 => l_array_source_19(Idx)
50274 , p_source_20 => l_array_source_20(Idx)
50275 , p_source_21 => l_array_source_21(Idx)
50276 , p_source_29 => l_array_source_29(Idx)
50277 , p_source_30 => l_array_source_30(Idx)
50278 , p_source_31 => l_array_source_31(Idx)
50279 , p_source_32 => l_array_source_32(Idx)
50280 , p_source_33 => l_array_source_33(Idx)
50281 , p_source_34 => l_array_source_34(Idx)
50282 , p_source_35 => l_array_source_35(Idx)
50283 , p_source_36 => l_array_source_36(Idx)
50284 , p_source_37 => l_array_source_37(Idx)
50285 , p_source_38 => l_array_source_38(Idx)
50286 , p_source_39 => l_array_source_39(Idx)
50287 , p_source_40 => l_array_source_40(Idx)
50288 , p_source_68 => l_array_source_68(Idx)
50289 , p_source_69 => l_array_source_69(Idx)
50290 , p_source_70 => l_array_source_70(Idx)
50291 , p_source_71 => l_array_source_71(Idx)
50292 , p_source_72 => l_array_source_72(Idx)
50293 , p_source_73 => l_array_source_73(Idx)
50294 );
50295 If(l_balance_type_code = 'A') THEN
50296 l_actual_gain_loss_ref := l_gain_or_loss_ref;
50297 END IF;
50298
50299 --
50300
50301
50302 --
50303 AcctLineType_51 (
50304 p_application_id => p_application_id
50305 ,p_event_id => l_event_id
50306 ,p_calculate_acctd_flag => l_calculate_acctd_flag
50307 ,p_calculate_g_l_flag => l_calculate_g_l_flag
50308 ,p_actual_flag => l_actual_flag
50309 ,p_balance_type_code => l_balance_type_code
50310 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
50311
50312 , p_source_3 => l_array_source_3(Idx)
50313 , p_source_4 => l_array_source_4(Idx)
50314 , p_source_5 => l_array_source_5(Idx)
50315 , p_source_6 => l_array_source_6(Idx)
50316 , p_source_9 => l_array_source_9(Idx)
50317 , p_source_11 => l_array_source_11(Idx)
50318 , p_source_13 => l_array_source_13(Idx)
50319 , p_source_14 => l_array_source_14(Idx)
50320 , p_source_14_meaning => l_array_source_14_meaning(Idx)
50321 , p_source_15 => l_array_source_15(Idx)
50322 , p_source_16 => l_array_source_16(Idx)
50323 , p_source_17 => l_array_source_17(Idx)
50324 , p_source_18 => l_array_source_18(Idx)
50325 , p_source_19 => l_array_source_19(Idx)
50326 , p_source_20 => l_array_source_20(Idx)
50327 , p_source_21 => l_array_source_21(Idx)
50328 , p_source_23 => l_array_source_23(Idx)
50329 , p_source_24 => l_array_source_24(Idx)
50330 , p_source_25 => l_array_source_25(Idx)
50331 , p_source_26 => l_array_source_26(Idx)
50332 , p_source_27 => l_array_source_27(Idx)
50333 , p_source_28 => l_array_source_28(Idx)
50334 , p_source_29 => l_array_source_29(Idx)
50335 , p_source_30 => l_array_source_30(Idx)
50336 , p_source_31 => l_array_source_31(Idx)
50337 , p_source_32 => l_array_source_32(Idx)
50338 , p_source_33 => l_array_source_33(Idx)
50339 , p_source_34 => l_array_source_34(Idx)
50340 , p_source_35 => l_array_source_35(Idx)
50341 , p_source_36 => l_array_source_36(Idx)
50342 , p_source_37 => l_array_source_37(Idx)
50343 , p_source_38 => l_array_source_38(Idx)
50344 , p_source_39 => l_array_source_39(Idx)
50345 , p_source_40 => l_array_source_40(Idx)
50346 , p_source_67 => l_array_source_67(Idx)
50347 );
50348 If(l_balance_type_code = 'A') THEN
50349 l_actual_gain_loss_ref := l_gain_or_loss_ref;
50350 END IF;
50351
50352 --
50353
50354
50355 --
50356 AcctLineType_52 (
50357 p_application_id => p_application_id
50358 ,p_event_id => l_event_id
50359 ,p_calculate_acctd_flag => l_calculate_acctd_flag
50360 ,p_calculate_g_l_flag => l_calculate_g_l_flag
50361 ,p_actual_flag => l_actual_flag
50362 ,p_balance_type_code => l_balance_type_code
50363 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
50364
50365 , p_source_3 => l_array_source_3(Idx)
50366 , p_source_4 => l_array_source_4(Idx)
50367 , p_source_5 => l_array_source_5(Idx)
50368 , p_source_6 => l_array_source_6(Idx)
50369 , p_source_9 => l_array_source_9(Idx)
50370 , p_source_11 => l_array_source_11(Idx)
50371 , p_source_13 => l_array_source_13(Idx)
50372 , p_source_14 => l_array_source_14(Idx)
50373 , p_source_14_meaning => l_array_source_14_meaning(Idx)
50374 , p_source_15 => l_array_source_15(Idx)
50375 , p_source_16 => l_array_source_16(Idx)
50376 , p_source_17 => l_array_source_17(Idx)
50377 , p_source_18 => l_array_source_18(Idx)
50378 , p_source_19 => l_array_source_19(Idx)
50379 , p_source_20 => l_array_source_20(Idx)
50380 , p_source_21 => l_array_source_21(Idx)
50381 , p_source_23 => l_array_source_23(Idx)
50382 , p_source_24 => l_array_source_24(Idx)
50383 , p_source_25 => l_array_source_25(Idx)
50384 , p_source_26 => l_array_source_26(Idx)
50385 , p_source_27 => l_array_source_27(Idx)
50386 , p_source_28 => l_array_source_28(Idx)
50387 , p_source_29 => l_array_source_29(Idx)
50388 , p_source_30 => l_array_source_30(Idx)
50389 , p_source_31 => l_array_source_31(Idx)
50390 , p_source_32 => l_array_source_32(Idx)
50391 , p_source_33 => l_array_source_33(Idx)
50392 , p_source_34 => l_array_source_34(Idx)
50393 , p_source_35 => l_array_source_35(Idx)
50394 , p_source_36 => l_array_source_36(Idx)
50395 , p_source_37 => l_array_source_37(Idx)
50396 , p_source_38 => l_array_source_38(Idx)
50397 , p_source_39 => l_array_source_39(Idx)
50398 , p_source_40 => l_array_source_40(Idx)
50399 , p_source_67 => l_array_source_67(Idx)
50400 );
50401 If(l_balance_type_code = 'A') THEN
50402 l_actual_gain_loss_ref := l_gain_or_loss_ref;
50403 END IF;
50404
50405 --
50406
50407
50408 --
50409 AcctLineType_56 (
50410 p_application_id => p_application_id
50411 ,p_event_id => l_event_id
50412 ,p_calculate_acctd_flag => l_calculate_acctd_flag
50413 ,p_calculate_g_l_flag => l_calculate_g_l_flag
50414 ,p_actual_flag => l_actual_flag
50415 ,p_balance_type_code => l_balance_type_code
50416 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
50417
50418 , p_source_3 => l_array_source_3(Idx)
50419 , p_source_4 => l_array_source_4(Idx)
50420 , p_source_5 => l_array_source_5(Idx)
50421 , p_source_6 => l_array_source_6(Idx)
50422 , p_source_9 => l_array_source_9(Idx)
50423 , p_source_11 => l_array_source_11(Idx)
50424 , p_source_13 => l_array_source_13(Idx)
50425 , p_source_14 => l_array_source_14(Idx)
50426 , p_source_14_meaning => l_array_source_14_meaning(Idx)
50427 , p_source_15 => l_array_source_15(Idx)
50428 , p_source_16 => l_array_source_16(Idx)
50429 , p_source_17 => l_array_source_17(Idx)
50430 , p_source_18 => l_array_source_18(Idx)
50431 , p_source_19 => l_array_source_19(Idx)
50432 , p_source_20 => l_array_source_20(Idx)
50433 , p_source_21 => l_array_source_21(Idx)
50434 , p_source_23 => l_array_source_23(Idx)
50435 , p_source_24 => l_array_source_24(Idx)
50436 , p_source_25 => l_array_source_25(Idx)
50437 , p_source_26 => l_array_source_26(Idx)
50438 , p_source_27 => l_array_source_27(Idx)
50439 , p_source_28 => l_array_source_28(Idx)
50440 , p_source_29 => l_array_source_29(Idx)
50441 , p_source_30 => l_array_source_30(Idx)
50442 , p_source_31 => l_array_source_31(Idx)
50443 , p_source_32 => l_array_source_32(Idx)
50444 , p_source_33 => l_array_source_33(Idx)
50445 , p_source_34 => l_array_source_34(Idx)
50446 , p_source_35 => l_array_source_35(Idx)
50447 , p_source_36 => l_array_source_36(Idx)
50448 , p_source_37 => l_array_source_37(Idx)
50449 , p_source_38 => l_array_source_38(Idx)
50450 , p_source_39 => l_array_source_39(Idx)
50451 , p_source_40 => l_array_source_40(Idx)
50452 );
50453 If(l_balance_type_code = 'A') THEN
50454 l_actual_gain_loss_ref := l_gain_or_loss_ref;
50455 END IF;
50456
50457 --
50458
50459
50460 --
50461 AcctLineType_57 (
50462 p_application_id => p_application_id
50463 ,p_event_id => l_event_id
50464 ,p_calculate_acctd_flag => l_calculate_acctd_flag
50465 ,p_calculate_g_l_flag => l_calculate_g_l_flag
50466 ,p_actual_flag => l_actual_flag
50467 ,p_balance_type_code => l_balance_type_code
50468 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
50469
50470 , p_source_3 => l_array_source_3(Idx)
50471 , p_source_4 => l_array_source_4(Idx)
50472 , p_source_5 => l_array_source_5(Idx)
50473 , p_source_6 => l_array_source_6(Idx)
50474 , p_source_9 => l_array_source_9(Idx)
50475 , p_source_11 => l_array_source_11(Idx)
50476 , p_source_13 => l_array_source_13(Idx)
50477 , p_source_14 => l_array_source_14(Idx)
50478 , p_source_14_meaning => l_array_source_14_meaning(Idx)
50479 , p_source_15 => l_array_source_15(Idx)
50480 , p_source_16 => l_array_source_16(Idx)
50481 , p_source_17 => l_array_source_17(Idx)
50482 , p_source_18 => l_array_source_18(Idx)
50483 , p_source_19 => l_array_source_19(Idx)
50484 , p_source_20 => l_array_source_20(Idx)
50485 , p_source_21 => l_array_source_21(Idx)
50486 , p_source_23 => l_array_source_23(Idx)
50487 , p_source_24 => l_array_source_24(Idx)
50488 , p_source_25 => l_array_source_25(Idx)
50489 , p_source_26 => l_array_source_26(Idx)
50490 , p_source_27 => l_array_source_27(Idx)
50491 , p_source_28 => l_array_source_28(Idx)
50492 , p_source_29 => l_array_source_29(Idx)
50493 , p_source_30 => l_array_source_30(Idx)
50494 , p_source_31 => l_array_source_31(Idx)
50495 , p_source_32 => l_array_source_32(Idx)
50496 , p_source_33 => l_array_source_33(Idx)
50497 , p_source_34 => l_array_source_34(Idx)
50498 , p_source_35 => l_array_source_35(Idx)
50499 , p_source_36 => l_array_source_36(Idx)
50500 , p_source_37 => l_array_source_37(Idx)
50501 , p_source_38 => l_array_source_38(Idx)
50502 , p_source_39 => l_array_source_39(Idx)
50503 , p_source_40 => l_array_source_40(Idx)
50504 );
50505 If(l_balance_type_code = 'A') THEN
50506 l_actual_gain_loss_ref := l_gain_or_loss_ref;
50507 END IF;
50508
50509 --
50510
50511
50512 --
50513 AcctLineType_60 (
50514 p_application_id => p_application_id
50515 ,p_event_id => l_event_id
50516 ,p_calculate_acctd_flag => l_calculate_acctd_flag
50517 ,p_calculate_g_l_flag => l_calculate_g_l_flag
50518 ,p_actual_flag => l_actual_flag
50519 ,p_balance_type_code => l_balance_type_code
50520 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
50521
50522 , p_source_3 => l_array_source_3(Idx)
50523 , p_source_4 => l_array_source_4(Idx)
50524 , p_source_5 => l_array_source_5(Idx)
50525 , p_source_6 => l_array_source_6(Idx)
50526 , p_source_9 => l_array_source_9(Idx)
50527 , p_source_11 => l_array_source_11(Idx)
50528 , p_source_13 => l_array_source_13(Idx)
50529 , p_source_14 => l_array_source_14(Idx)
50530 , p_source_14_meaning => l_array_source_14_meaning(Idx)
50531 , p_source_15 => l_array_source_15(Idx)
50532 , p_source_16 => l_array_source_16(Idx)
50533 , p_source_17 => l_array_source_17(Idx)
50534 , p_source_18 => l_array_source_18(Idx)
50535 , p_source_19 => l_array_source_19(Idx)
50536 , p_source_20 => l_array_source_20(Idx)
50537 , p_source_21 => l_array_source_21(Idx)
50538 , p_source_23 => l_array_source_23(Idx)
50539 , p_source_24 => l_array_source_24(Idx)
50540 , p_source_25 => l_array_source_25(Idx)
50541 , p_source_26 => l_array_source_26(Idx)
50542 , p_source_27 => l_array_source_27(Idx)
50543 , p_source_28 => l_array_source_28(Idx)
50544 , p_source_29 => l_array_source_29(Idx)
50545 , p_source_30 => l_array_source_30(Idx)
50546 , p_source_31 => l_array_source_31(Idx)
50547 , p_source_32 => l_array_source_32(Idx)
50548 , p_source_33 => l_array_source_33(Idx)
50549 , p_source_34 => l_array_source_34(Idx)
50550 , p_source_35 => l_array_source_35(Idx)
50551 , p_source_36 => l_array_source_36(Idx)
50552 , p_source_37 => l_array_source_37(Idx)
50553 , p_source_38 => l_array_source_38(Idx)
50554 , p_source_39 => l_array_source_39(Idx)
50555 , p_source_40 => l_array_source_40(Idx)
50556 );
50557 If(l_balance_type_code = 'A') THEN
50558 l_actual_gain_loss_ref := l_gain_or_loss_ref;
50559 END IF;
50560
50561 --
50562
50563
50564 --
50565 AcctLineType_63 (
50566 p_application_id => p_application_id
50567 ,p_event_id => l_event_id
50568 ,p_calculate_acctd_flag => l_calculate_acctd_flag
50569 ,p_calculate_g_l_flag => l_calculate_g_l_flag
50570 ,p_actual_flag => l_actual_flag
50571 ,p_balance_type_code => l_balance_type_code
50572 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
50573
50574 , p_source_3 => l_array_source_3(Idx)
50575 , p_source_4 => l_array_source_4(Idx)
50576 , p_source_5 => l_array_source_5(Idx)
50577 , p_source_6 => l_array_source_6(Idx)
50578 , p_source_9 => l_array_source_9(Idx)
50579 , p_source_11 => l_array_source_11(Idx)
50580 , p_source_13 => l_array_source_13(Idx)
50581 , p_source_14 => l_array_source_14(Idx)
50582 , p_source_14_meaning => l_array_source_14_meaning(Idx)
50583 , p_source_15 => l_array_source_15(Idx)
50584 , p_source_16 => l_array_source_16(Idx)
50585 , p_source_17 => l_array_source_17(Idx)
50586 , p_source_18 => l_array_source_18(Idx)
50587 , p_source_19 => l_array_source_19(Idx)
50588 , p_source_20 => l_array_source_20(Idx)
50589 , p_source_21 => l_array_source_21(Idx)
50590 , p_source_23 => l_array_source_23(Idx)
50591 , p_source_24 => l_array_source_24(Idx)
50592 , p_source_25 => l_array_source_25(Idx)
50593 , p_source_26 => l_array_source_26(Idx)
50594 , p_source_27 => l_array_source_27(Idx)
50595 , p_source_28 => l_array_source_28(Idx)
50596 , p_source_29 => l_array_source_29(Idx)
50597 , p_source_30 => l_array_source_30(Idx)
50598 , p_source_31 => l_array_source_31(Idx)
50599 , p_source_32 => l_array_source_32(Idx)
50600 , p_source_33 => l_array_source_33(Idx)
50601 , p_source_34 => l_array_source_34(Idx)
50602 , p_source_35 => l_array_source_35(Idx)
50603 , p_source_36 => l_array_source_36(Idx)
50604 , p_source_37 => l_array_source_37(Idx)
50605 , p_source_38 => l_array_source_38(Idx)
50606 , p_source_39 => l_array_source_39(Idx)
50607 , p_source_40 => l_array_source_40(Idx)
50608 );
50609 If(l_balance_type_code = 'A') THEN
50610 l_actual_gain_loss_ref := l_gain_or_loss_ref;
50611 END IF;
50612
50613 --
50614
50615
50616 --
50617 AcctLineType_69 (
50618 p_application_id => p_application_id
50619 ,p_event_id => l_event_id
50620 ,p_calculate_acctd_flag => l_calculate_acctd_flag
50621 ,p_calculate_g_l_flag => l_calculate_g_l_flag
50622 ,p_actual_flag => l_actual_flag
50623 ,p_balance_type_code => l_balance_type_code
50624 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
50625
50626 , p_source_3 => l_array_source_3(Idx)
50627 , p_source_4 => l_array_source_4(Idx)
50628 , p_source_5 => l_array_source_5(Idx)
50629 , p_source_6 => l_array_source_6(Idx)
50630 , p_source_13 => l_array_source_13(Idx)
50631 , p_source_16 => l_array_source_16(Idx)
50632 , p_source_17 => l_array_source_17(Idx)
50633 , p_source_18 => l_array_source_18(Idx)
50634 , p_source_19 => l_array_source_19(Idx)
50635 , p_source_20 => l_array_source_20(Idx)
50636 , p_source_21 => l_array_source_21(Idx)
50637 , p_source_29 => l_array_source_29(Idx)
50638 , p_source_30 => l_array_source_30(Idx)
50639 , p_source_31 => l_array_source_31(Idx)
50640 , p_source_32 => l_array_source_32(Idx)
50641 , p_source_33 => l_array_source_33(Idx)
50642 , p_source_34 => l_array_source_34(Idx)
50643 , p_source_35 => l_array_source_35(Idx)
50644 , p_source_36 => l_array_source_36(Idx)
50645 , p_source_37 => l_array_source_37(Idx)
50646 , p_source_38 => l_array_source_38(Idx)
50647 , p_source_39 => l_array_source_39(Idx)
50648 , p_source_40 => l_array_source_40(Idx)
50649 , p_source_68 => l_array_source_68(Idx)
50650 , p_source_69 => l_array_source_69(Idx)
50651 , p_source_70 => l_array_source_70(Idx)
50652 , p_source_71 => l_array_source_71(Idx)
50653 , p_source_72 => l_array_source_72(Idx)
50654 , p_source_73 => l_array_source_73(Idx)
50655 );
50656 If(l_balance_type_code = 'A') THEN
50657 l_actual_gain_loss_ref := l_gain_or_loss_ref;
50658 END IF;
50659
50660 --
50661
50662
50663 --
50664 AcctLineType_79 (
50665 p_application_id => p_application_id
50666 ,p_event_id => l_event_id
50667 ,p_calculate_acctd_flag => l_calculate_acctd_flag
50668 ,p_calculate_g_l_flag => l_calculate_g_l_flag
50669 ,p_actual_flag => l_actual_flag
50670 ,p_balance_type_code => l_balance_type_code
50671 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
50672
50673 , p_source_3 => l_array_source_3(Idx)
50674 , p_source_4 => l_array_source_4(Idx)
50675 , p_source_5 => l_array_source_5(Idx)
50676 , p_source_6 => l_array_source_6(Idx)
50677 , p_source_9 => l_array_source_9(Idx)
50678 , p_source_13 => l_array_source_13(Idx)
50679 , p_source_14 => l_array_source_14(Idx)
50680 , p_source_14_meaning => l_array_source_14_meaning(Idx)
50681 , p_source_15 => l_array_source_15(Idx)
50682 , p_source_16 => l_array_source_16(Idx)
50683 , p_source_17 => l_array_source_17(Idx)
50684 , p_source_18 => l_array_source_18(Idx)
50685 , p_source_19 => l_array_source_19(Idx)
50686 , p_source_20 => l_array_source_20(Idx)
50687 , p_source_21 => l_array_source_21(Idx)
50688 , p_source_23 => l_array_source_23(Idx)
50689 , p_source_24 => l_array_source_24(Idx)
50690 , p_source_25 => l_array_source_25(Idx)
50691 , p_source_26 => l_array_source_26(Idx)
50692 , p_source_27 => l_array_source_27(Idx)
50693 , p_source_28 => l_array_source_28(Idx)
50694 , p_source_29 => l_array_source_29(Idx)
50695 , p_source_30 => l_array_source_30(Idx)
50696 , p_source_31 => l_array_source_31(Idx)
50697 , p_source_32 => l_array_source_32(Idx)
50698 , p_source_33 => l_array_source_33(Idx)
50699 , p_source_34 => l_array_source_34(Idx)
50700 , p_source_35 => l_array_source_35(Idx)
50701 , p_source_36 => l_array_source_36(Idx)
50702 , p_source_37 => l_array_source_37(Idx)
50703 , p_source_38 => l_array_source_38(Idx)
50704 , p_source_39 => l_array_source_39(Idx)
50705 , p_source_40 => l_array_source_40(Idx)
50706 );
50707 If(l_balance_type_code = 'A') THEN
50708 l_actual_gain_loss_ref := l_gain_or_loss_ref;
50709 END IF;
50710
50711 --
50712
50713
50714 --
50715 AcctLineType_82 (
50716 p_application_id => p_application_id
50717 ,p_event_id => l_event_id
50718 ,p_calculate_acctd_flag => l_calculate_acctd_flag
50719 ,p_calculate_g_l_flag => l_calculate_g_l_flag
50720 ,p_actual_flag => l_actual_flag
50721 ,p_balance_type_code => l_balance_type_code
50722 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
50723
50724 , p_source_3 => l_array_source_3(Idx)
50725 , p_source_4 => l_array_source_4(Idx)
50726 , p_source_5 => l_array_source_5(Idx)
50727 , p_source_6 => l_array_source_6(Idx)
50728 , p_source_9 => l_array_source_9(Idx)
50729 , p_source_13 => l_array_source_13(Idx)
50730 , p_source_14 => l_array_source_14(Idx)
50731 , p_source_14_meaning => l_array_source_14_meaning(Idx)
50732 , p_source_15 => l_array_source_15(Idx)
50733 , p_source_16 => l_array_source_16(Idx)
50734 , p_source_17 => l_array_source_17(Idx)
50735 , p_source_18 => l_array_source_18(Idx)
50736 , p_source_19 => l_array_source_19(Idx)
50737 , p_source_20 => l_array_source_20(Idx)
50738 , p_source_21 => l_array_source_21(Idx)
50739 , p_source_23 => l_array_source_23(Idx)
50740 , p_source_24 => l_array_source_24(Idx)
50741 , p_source_25 => l_array_source_25(Idx)
50742 , p_source_26 => l_array_source_26(Idx)
50743 , p_source_27 => l_array_source_27(Idx)
50744 , p_source_28 => l_array_source_28(Idx)
50745 , p_source_29 => l_array_source_29(Idx)
50746 , p_source_30 => l_array_source_30(Idx)
50747 , p_source_31 => l_array_source_31(Idx)
50748 , p_source_32 => l_array_source_32(Idx)
50749 , p_source_33 => l_array_source_33(Idx)
50750 , p_source_34 => l_array_source_34(Idx)
50751 , p_source_35 => l_array_source_35(Idx)
50752 , p_source_36 => l_array_source_36(Idx)
50753 , p_source_37 => l_array_source_37(Idx)
50754 , p_source_38 => l_array_source_38(Idx)
50755 , p_source_39 => l_array_source_39(Idx)
50756 , p_source_40 => l_array_source_40(Idx)
50757 );
50758 If(l_balance_type_code = 'A') THEN
50759 l_actual_gain_loss_ref := l_gain_or_loss_ref;
50760 END IF;
50761
50762 --
50763
50764 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
50765 -- or secondary ledger that has different currency with primary
50766 -- or alc that is calculated by sla
50767 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
50768 (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'))
50769
50770 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
50771 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
50772 AND (l_actual_flag = 'A')) THEN
50773 XLA_AE_LINES_PKG.CreateGainOrLossLines(
50774 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
50775 ,p_application_id => p_application_id
50776 ,p_amb_context_code => 'DEFAULT'
50777 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
50778 ,p_event_class_code => C_EVENT_CLASS_CODE
50779 ,p_event_type_code => C_EVENT_TYPE_CODE
50780
50781 ,p_gain_ccid => -1
50782 ,p_loss_ccid => -1
50783
50784 ,p_actual_flag => l_actual_flag
50785 ,p_enc_flag => null
50786 ,p_actual_g_l_ref => l_actual_gain_loss_ref
50787 ,p_enc_g_l_ref => null
50788 );
50789 END IF;
50790 END IF;
50791 END IF;
50792
50793 ELSE
50794 --
50795 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
50796 --
50797 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
50798 trace
50799 (p_msg => 'Trancaction revesal option is Y'
50800 ,p_level => C_LEVEL_STATEMENT
50801 ,p_module => l_log_module);
50802 END IF;
50803 END IF;
50804
50805 END LOOP;
50806 l_result := XLA_AE_LINES_PKG.InsertLines ;
50807 end loop;
50808 close line_cur;
50809
50810
50811 --
50812 -- insert headers into xla_ae_headers_gt table
50813 --
50814 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
50815
50816 -- insert into errors table here.
50817
50818 END LOOP;
50819
50820 --
50821 -- 4865292
50822 --
50823 -- Compare g_hdr_extract_count with event count in
50824 -- CreateHeadersAndLines.
50825 --
50826 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
50827
50828 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
50829 trace (p_msg => '# rows extracted from header extract objects '
50830 || ' (running total): '
50831 || g_hdr_extract_count
50832 ,p_level => C_LEVEL_STATEMENT
50833 ,p_module => l_log_module);
50834 END IF;
50835
50836 CLOSE header_cur;
50837 --
50838
50839 --
50840 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50841 trace
50842 (p_msg => 'END of EventClass_85'
50843 ,p_level => C_LEVEL_PROCEDURE
50844 ,p_module => l_log_module);
50845 END IF;
50846 --
50847 RETURN l_result;
50848 EXCEPTION
50849 WHEN xla_exceptions_pkg.application_exception THEN
50850
50851 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
50852
50853
50854 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
50855
50856 RAISE;
50857 WHEN OTHERS THEN
50858 xla_exceptions_pkg.raise_message
50859 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.EventClass_85');
50860 END EventClass_85;
50861 --
50862
50863 ---------------------------------------
50864 --
50865 -- PRIVATE PROCEDURE
50866 -- insert_sources_86
50867 --
50868 ----------------------------------------
50869 --
50870 PROCEDURE insert_sources_86(
50871 p_target_ledger_id IN NUMBER
50872 , p_language IN VARCHAR2
50873 , p_sla_ledger_id IN NUMBER
50874 , p_pad_start_date IN DATE
50875 , p_pad_end_date IN DATE
50876 )
50877 IS
50878
50879 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PO_PA_ALL';
50880 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PO_PA';
50881 p_apps_owner VARCHAR2(30);
50882 l_log_module VARCHAR2(240);
50883 BEGIN
50884 IF g_log_enabled THEN
50885 l_log_module := C_DEFAULT_MODULE||'.insert_sources_86';
50886 END IF;
50887 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50888
50889 trace
50890 (p_msg => 'BEGIN of insert_sources_86'
50891 ,p_level => C_LEVEL_PROCEDURE
50892 ,p_module => l_log_module);
50893
50894 END IF;
50895
50896 -- select APPS owner
50897 SELECT oracle_username
50898 INTO p_apps_owner
50899 FROM fnd_oracle_userid
50900 WHERE read_only_flag = 'U'
50901 ;
50902
50903 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
50904 trace
50905 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
50906 ' - p_language = '||p_language||
50907 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
50908 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
50909 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
50910 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
50911 ,p_level => C_LEVEL_STATEMENT
50912 ,p_module => l_log_module);
50913 END IF;
50914
50915
50916 --
50917 INSERT INTO xla_diag_sources --hdr2
50918 (
50919 event_id
50920 , ledger_id
50921 , sla_ledger_id
50922 , description_language
50923 , object_name
50924 , object_type_code
50925 , line_number
50926 , source_application_id
50927 , source_type_code
50928 , source_code
50929 , source_value
50930 , source_meaning
50931 , created_by
50932 , creation_date
50933 , last_update_date
50934 , last_updated_by
50935 , last_update_login
50936 , program_update_date
50937 , program_application_id
50938 , program_id
50939 , request_id
50940 )
50941 SELECT
50942 event_id
50943 , p_target_ledger_id
50944 , p_sla_ledger_id
50945 , p_language
50946 , object_name
50947 , object_type_code
50948 , line_number
50949 , source_application_id
50950 , source_type_code
50951 , source_code
50952 , SUBSTR(source_value ,1,1996)
50953 , SUBSTR(source_meaning ,1,200)
50954 , xla_environment_pkg.g_Usr_Id
50955 , TRUNC(SYSDATE)
50956 , TRUNC(SYSDATE)
50957 , xla_environment_pkg.g_Usr_Id
50958 , xla_environment_pkg.g_Login_Id
50959 , TRUNC(SYSDATE)
50960 , xla_environment_pkg.g_Prog_Appl_Id
50961 , xla_environment_pkg.g_Prog_Id
50962 , xla_environment_pkg.g_Req_Id
50963 FROM (
50964 SELECT xet.event_id event_id
50965 , 0 line_number
50966 , CASE r
50967 WHEN 1 THEN 'PO_EXTRACT_HEADER_V'
50968 WHEN 2 THEN 'PO_EXTRACT_HEADER_V'
50969 WHEN 3 THEN 'PO_EXTRACT_HEADER_V'
50970 WHEN 4 THEN 'PO_EXTRACT_HEADER_V'
50971 WHEN 5 THEN 'PO_EXTRACT_HEADER_V'
50972
50973 ELSE null
50974 END object_name
50975 , CASE r
50976 WHEN 1 THEN 'HEADER'
50977 WHEN 2 THEN 'HEADER'
50978 WHEN 3 THEN 'HEADER'
50979 WHEN 4 THEN 'HEADER'
50980 WHEN 5 THEN 'HEADER'
50981
50982 ELSE null
50983 END object_type_code
50984 , CASE r
50985 WHEN 1 THEN '201'
50986 WHEN 2 THEN '201'
50987 WHEN 3 THEN '201'
50988 WHEN 4 THEN '201'
50989 WHEN 5 THEN '201'
50990
50991 ELSE null
50992 END source_application_id
50993 , 'S' source_type_code
50994 , CASE r
50995 WHEN 1 THEN 'PO_TYPE'
50996 WHEN 2 THEN 'PO_NUMBER'
50997 WHEN 3 THEN 'PO_HEADER_ID'
50998 WHEN 4 THEN 'GL_DATE'
50999 WHEN 5 THEN 'ENCUMBRANCE_TYPE_ID'
51000
51001 ELSE null
51002 END source_code
51003 , CASE r
51004 WHEN 1 THEN TO_CHAR(h3.PO_TYPE)
51005 WHEN 2 THEN TO_CHAR(h3.PO_NUMBER)
51006 WHEN 3 THEN TO_CHAR(h3.PO_HEADER_ID)
51007 WHEN 4 THEN TO_CHAR(h3.GL_DATE)
51008 WHEN 5 THEN TO_CHAR(h3.ENCUMBRANCE_TYPE_ID)
51009
51010 ELSE null
51011 END source_value
51012 , null source_meaning
51013 FROM xla_events_gt xet
51014 , PO_EXTRACT_HEADER_V h3
51015 ,(select rownum r from all_objects where rownum <= 5 and owner = p_apps_owner)
51016 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
51017 AND xet.event_class_code = C_EVENT_CLASS_CODE
51018 AND h3.event_id = xet.event_id
51019
51020 )
51021 ;
51022 --
51023 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
51024
51025 trace
51026 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
51027 ,p_level => C_LEVEL_STATEMENT
51028 ,p_module => l_log_module);
51029
51030 END IF;
51031 --
51032
51033
51034
51035 --
51036 INSERT INTO xla_diag_sources --line2
51037 (
51038 event_id
51039 , ledger_id
51040 , sla_ledger_id
51041 , description_language
51042 , object_name
51043 , object_type_code
51044 , line_number
51045 , source_application_id
51046 , source_type_code
51047 , source_code
51048 , source_value
51049 , source_meaning
51050 , created_by
51051 , creation_date
51052 , last_update_date
51053 , last_updated_by
51054 , last_update_login
51055 , program_update_date
51056 , program_application_id
51057 , program_id
51058 , request_id
51059 )
51060 SELECT event_id
51061 , p_target_ledger_id
51062 , p_sla_ledger_id
51063 , p_language
51064 , object_name
51065 , object_type_code
51066 , line_number
51067 , source_application_id
51068 , source_type_code
51069 , source_code
51070 , SUBSTR(source_value,1,1996)
51071 , SUBSTR(source_meaning ,1,200)
51072 , xla_environment_pkg.g_Usr_Id
51073 , TRUNC(SYSDATE)
51074 , TRUNC(SYSDATE)
51075 , xla_environment_pkg.g_Usr_Id
51076 , xla_environment_pkg.g_Login_Id
51077 , TRUNC(SYSDATE)
51078 , xla_environment_pkg.g_Prog_Appl_Id
51079 , xla_environment_pkg.g_Prog_Id
51080 , xla_environment_pkg.g_Req_Id
51081 FROM (
51082 SELECT xet.event_id event_id
51083 , l2.line_number line_number
51084 , CASE r
51085 WHEN 1 THEN 'PO_EXTRACT_DETAIL_V'
51086 WHEN 2 THEN 'PO_EXTRACT_DETAIL_V'
51087 WHEN 3 THEN 'PO_EXTRACT_DETAIL_V'
51088 WHEN 4 THEN 'PO_EXTRACT_DETAIL_V'
51089 WHEN 5 THEN 'PO_EXTRACT_DETAIL_V'
51090 WHEN 6 THEN 'PO_EXTRACT_DETAIL_V'
51091 WHEN 7 THEN 'PO_EXTRACT_DETAIL_V'
51092 WHEN 8 THEN 'PO_EXTRACT_DETAIL_V'
51093 WHEN 9 THEN 'PO_EXTRACT_DETAIL_V'
51094 WHEN 10 THEN 'PO_EXTRACT_DETAIL_V'
51095 WHEN 11 THEN 'PO_EXTRACT_DETAIL_V'
51096 WHEN 12 THEN 'PO_EXTRACT_DETAIL_V'
51097 WHEN 13 THEN 'PO_EXTRACT_DETAIL_V'
51098 WHEN 14 THEN 'PO_EXTRACT_DETAIL_V'
51099 WHEN 15 THEN 'PO_EXTRACT_DETAIL_V'
51100 WHEN 16 THEN 'PO_EXTRACT_DETAIL_V'
51101 WHEN 17 THEN 'PO_EXTRACT_DETAIL_V'
51102 WHEN 18 THEN 'PO_EXTRACT_DETAIL_V'
51103 WHEN 19 THEN 'PO_EXTRACT_DETAIL_V'
51104 WHEN 20 THEN 'PO_EXTRACT_DETAIL_V'
51105 WHEN 21 THEN 'PO_DISTS_REF_V'
51106 WHEN 22 THEN 'PO_DISTS_REF_V'
51107 WHEN 23 THEN 'PO_DISTS_REF_V'
51108 WHEN 24 THEN 'PO_EXTRACT_DETAIL_V'
51109 WHEN 25 THEN 'PO_EXTRACT_DETAIL_V'
51110
51111 ELSE null
51112 END object_name
51113 , CASE r
51114 WHEN 1 THEN 'LINE'
51115 WHEN 2 THEN 'LINE'
51116 WHEN 3 THEN 'LINE'
51117 WHEN 4 THEN 'LINE'
51118 WHEN 5 THEN 'LINE'
51119 WHEN 6 THEN 'LINE'
51120 WHEN 7 THEN 'LINE'
51121 WHEN 8 THEN 'LINE'
51122 WHEN 9 THEN 'LINE'
51123 WHEN 10 THEN 'LINE'
51124 WHEN 11 THEN 'LINE'
51125 WHEN 12 THEN 'LINE'
51126 WHEN 13 THEN 'LINE'
51127 WHEN 14 THEN 'LINE'
51128 WHEN 15 THEN 'LINE'
51129 WHEN 16 THEN 'LINE'
51130 WHEN 17 THEN 'LINE'
51131 WHEN 18 THEN 'LINE'
51132 WHEN 19 THEN 'LINE'
51133 WHEN 20 THEN 'LINE'
51134 WHEN 21 THEN 'LINE'
51135 WHEN 22 THEN 'LINE'
51136 WHEN 23 THEN 'LINE'
51137 WHEN 24 THEN 'LINE'
51138 WHEN 25 THEN 'LINE'
51139
51140 ELSE null
51141 END object_type_code
51142 , CASE r
51143 WHEN 1 THEN '201'
51144 WHEN 2 THEN '201'
51145 WHEN 3 THEN '201'
51146 WHEN 4 THEN '201'
51147 WHEN 5 THEN '201'
51148 WHEN 6 THEN '201'
51149 WHEN 7 THEN '201'
51150 WHEN 8 THEN '201'
51151 WHEN 9 THEN '201'
51152 WHEN 10 THEN '201'
51153 WHEN 11 THEN '201'
51154 WHEN 12 THEN '201'
51155 WHEN 13 THEN '201'
51156 WHEN 14 THEN '201'
51157 WHEN 15 THEN '201'
51158 WHEN 16 THEN '201'
51159 WHEN 17 THEN '201'
51160 WHEN 18 THEN '201'
51161 WHEN 19 THEN '201'
51162 WHEN 20 THEN '201'
51163 WHEN 21 THEN '201'
51164 WHEN 22 THEN '201'
51165 WHEN 23 THEN '201'
51166 WHEN 24 THEN '201'
51167 WHEN 25 THEN '201'
51168
51169 ELSE null
51170 END source_application_id
51171 , 'S' source_type_code
51172 , CASE r
51173 WHEN 1 THEN 'JE_LINE_DESCRIPTION'
51174 WHEN 2 THEN 'BUDGET_ACCOUNT'
51175 WHEN 3 THEN 'MAIN_OR_BACKING_CODE'
51176 WHEN 4 THEN 'ACCOUNTING_REVERSAL_FLAG'
51177 WHEN 5 THEN 'PO_DISTRIBUTION_TYPE'
51178 WHEN 6 THEN 'PO_DISTRIBUTION_ID'
51179 WHEN 7 THEN 'ENTERED_AMT'
51180 WHEN 8 THEN 'CURRENCY_CODE'
51181 WHEN 9 THEN 'ACCOUNTED_AMT'
51182 WHEN 10 THEN 'ALLOC_TO_DISTRIBUTION_TYPE'
51183 WHEN 11 THEN 'ALLOC_TO_DIST_ID_1'
51184 WHEN 12 THEN 'APPLIED_TO_APPL_ID'
51185 WHEN 13 THEN 'APPLIED_TO_DIST_LINK_TYPE'
51186 WHEN 14 THEN 'APPLIED_TO_ENTITY_CODE'
51187 WHEN 15 THEN 'APPLIED_TO_DIST_ID_1'
51188 WHEN 16 THEN 'APPLIED_TO_HEADER_ID_1'
51189 WHEN 17 THEN 'DISTRIBUTION_LINK_TYPE'
51190 WHEN 18 THEN 'PO_ENCUM_UPG_OPTION'
51191 WHEN 19 THEN 'JFMIP_REFERENCE'
51192 WHEN 20 THEN 'PO_UPG_ENC_TYPE_ID'
51193 WHEN 21 THEN 'CURRENCY_CONVERSION_DATE'
51194 WHEN 22 THEN 'CURRENCY_CONVERSION_RATE'
51195 WHEN 23 THEN 'CURRENCY_CONVERSION_TYPE'
51196 WHEN 24 THEN 'BACKING_REQ_ENC_CHANGED'
51197 WHEN 25 THEN 'ADJUSTMENT_STATUS'
51198
51199 ELSE null
51200 END source_code
51201 , CASE r
51202 WHEN 1 THEN TO_CHAR(l2.JE_LINE_DESCRIPTION)
51203 WHEN 2 THEN TO_CHAR(l2.BUDGET_ACCOUNT)
51204 WHEN 3 THEN TO_CHAR(l2.MAIN_OR_BACKING_CODE)
51205 WHEN 4 THEN TO_CHAR(l2.ACCOUNTING_REVERSAL_FLAG)
51206 WHEN 5 THEN TO_CHAR(l2.PO_DISTRIBUTION_TYPE)
51207 WHEN 6 THEN TO_CHAR(l2.PO_DISTRIBUTION_ID)
51208 WHEN 7 THEN TO_CHAR(l2.ENTERED_AMT)
51209 WHEN 8 THEN TO_CHAR(l2.CURRENCY_CODE)
51210 WHEN 9 THEN TO_CHAR(l2.ACCOUNTED_AMT)
51211 WHEN 10 THEN TO_CHAR(l2.ALLOC_TO_DISTRIBUTION_TYPE)
51212 WHEN 11 THEN TO_CHAR(l2.ALLOC_TO_DIST_ID_1)
51213 WHEN 12 THEN TO_CHAR(l2.APPLIED_TO_APPL_ID)
51214 WHEN 13 THEN TO_CHAR(l2.APPLIED_TO_DIST_LINK_TYPE)
51215 WHEN 14 THEN TO_CHAR(l2.APPLIED_TO_ENTITY_CODE)
51216 WHEN 15 THEN TO_CHAR(l2.APPLIED_TO_DIST_ID_1)
51217 WHEN 16 THEN TO_CHAR(l2.APPLIED_TO_HEADER_ID_1)
51218 WHEN 17 THEN TO_CHAR(l2.DISTRIBUTION_LINK_TYPE)
51219 WHEN 18 THEN TO_CHAR(l2.PO_ENCUM_UPG_OPTION)
51220 WHEN 19 THEN TO_CHAR(l2.JFMIP_REFERENCE)
51221 WHEN 20 THEN TO_CHAR(l2.PO_UPG_ENC_TYPE_ID)
51222 WHEN 21 THEN TO_CHAR(l1.CURRENCY_CONVERSION_DATE)
51223 WHEN 22 THEN TO_CHAR(l1.CURRENCY_CONVERSION_RATE)
51224 WHEN 23 THEN TO_CHAR(l1.CURRENCY_CONVERSION_TYPE)
51225 WHEN 24 THEN TO_CHAR(l2.BACKING_REQ_ENC_CHANGED)
51226 WHEN 25 THEN TO_CHAR(l2.ADJUSTMENT_STATUS)
51227
51228 ELSE null
51229 END source_value
51230 , null source_meaning
51231 FROM xla_events_gt xet
51232 , PO_DISTS_REF_V l1
51233 , PO_EXTRACT_DETAIL_V l2
51234 , (select rownum r from all_objects where rownum <= 25 and owner = p_apps_owner)
51235 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
51236 AND xet.event_class_code = C_EVENT_CLASS_CODE
51237 AND l2.event_id = xet.event_id
51238 AND l2.po_distribution_id = l1.po_distribution_id (+) and l2.po_distribution_type = l1.po_distribution_type (+)
51239 )
51240 ;
51241 --
51242 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
51243
51244 trace
51245 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
51246 ,p_level => C_LEVEL_STATEMENT
51247 ,p_module => l_log_module);
51248
51249 END IF;
51250
51251
51252 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51253 trace
51254 (p_msg => 'END of insert_sources_86'
51255 ,p_level => C_LEVEL_PROCEDURE
51256 ,p_module => l_log_module);
51257 END IF;
51258 EXCEPTION
51259 WHEN xla_exceptions_pkg.application_exception THEN
51260 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
51261 trace
51262 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
51263 ,p_level => C_LEVEL_EXCEPTION
51264 ,p_module => l_log_module);
51265 END IF;
51266 RAISE;
51267 WHEN OTHERS THEN
51268 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
51269 trace
51270 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
51271 ,p_level => C_LEVEL_EXCEPTION
51272 ,p_module => l_log_module);
51273 END IF;
51274 xla_exceptions_pkg.raise_message
51275 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.insert_sources_86');
51276 END insert_sources_86;
51277 --
51278
51279 ---------------------------------------
51280 --
51281 -- PRIVATE FUNCTION
51282 -- EventClass_86
51283 --
51284 ----------------------------------------
51285 --
51286 FUNCTION EventClass_86
51287 (p_application_id IN NUMBER
51288 ,p_base_ledger_id IN NUMBER
51289 ,p_target_ledger_id IN NUMBER
51290 ,p_language IN VARCHAR2
51291 ,p_currency_code IN VARCHAR2
51292 ,p_sla_ledger_id IN NUMBER
51293 ,p_pad_start_date IN DATE
51294 ,p_pad_end_date IN DATE
51295 ,p_primary_ledger_id IN NUMBER)
51296 RETURN BOOLEAN IS
51297 --
51298 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PO_PA_ALL';
51299 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PO_PA';
51300
51301 l_calculate_acctd_flag VARCHAR2(1) :='N';
51302 l_calculate_g_l_flag VARCHAR2(1) :='N';
51303 --
51304 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
51305 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
51306 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
51307 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
51308 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
51309 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
51310 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
51311 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
51312 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
51313 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
51314 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
51315 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
51316 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
51317 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
51318 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
51319 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
51320 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
51321 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
51322 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
51323 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
51324 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
51325 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
51326 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
51327 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
51328
51329 l_event_id NUMBER;
51330 l_previous_event_id NUMBER;
51331 l_first_event_id NUMBER;
51332 l_last_event_id NUMBER;
51333
51334 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
51335 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
51336 --
51337 --
51338 l_result BOOLEAN := TRUE;
51339 l_rows NUMBER := 1000;
51340 l_event_type_name VARCHAR2(80) := 'All';
51341 l_event_class_name VARCHAR2(80) := 'Purchase Order and Agreement';
51342 l_description VARCHAR2(4000);
51343 l_transaction_reversal NUMBER;
51344 l_ae_header_id NUMBER;
51345 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
51346 l_log_module VARCHAR2(240);
51347 --
51348 l_acct_reversal_source VARCHAR2(30);
51349 l_trx_reversal_source VARCHAR2(30);
51350
51351 l_continue_with_lines BOOLEAN := TRUE;
51352 --
51353 l_acc_rev_gl_date_source DATE; -- 4262811
51354 --
51355 type t_array_event_id is table of number index by binary_integer;
51356
51357 l_rec_array_event t_rec_array_event;
51358 l_null_rec_array_event t_rec_array_event;
51359 l_array_ae_header_id xla_number_array_type;
51360 l_actual_flag VARCHAR2(1) := NULL;
51361 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
51362 l_balance_type_code VARCHAR2(1) :=NULL;
51363 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
51364
51365 --
51366 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
51367 --
51368
51369 TYPE t_array_source_1 IS TABLE OF PO_EXTRACT_HEADER_V.PO_TYPE%TYPE INDEX BY BINARY_INTEGER;
51370 TYPE t_array_source_2 IS TABLE OF PO_EXTRACT_HEADER_V.PO_NUMBER%TYPE INDEX BY BINARY_INTEGER;
51371 TYPE t_array_source_52 IS TABLE OF PO_EXTRACT_HEADER_V.PO_HEADER_ID%TYPE INDEX BY BINARY_INTEGER;
51372 TYPE t_array_source_79 IS TABLE OF PO_EXTRACT_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
51373 TYPE t_array_source_80 IS TABLE OF PO_EXTRACT_HEADER_V.ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
51374
51375 TYPE t_array_source_7 IS TABLE OF PO_EXTRACT_DETAIL_V.JE_LINE_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
51376 TYPE t_array_source_11 IS TABLE OF PO_EXTRACT_DETAIL_V.BUDGET_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
51377 TYPE t_array_source_13 IS TABLE OF PO_EXTRACT_DETAIL_V.MAIN_OR_BACKING_CODE%TYPE INDEX BY BINARY_INTEGER;
51378 TYPE t_array_source_16 IS TABLE OF PO_EXTRACT_DETAIL_V.ACCOUNTING_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
51379 TYPE t_array_source_24 IS TABLE OF PO_EXTRACT_DETAIL_V.PO_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
51380 TYPE t_array_source_29 IS TABLE OF PO_EXTRACT_DETAIL_V.PO_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
51381 TYPE t_array_source_33 IS TABLE OF PO_EXTRACT_DETAIL_V.ENTERED_AMT%TYPE INDEX BY BINARY_INTEGER;
51382 TYPE t_array_source_34 IS TABLE OF PO_EXTRACT_DETAIL_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
51383 TYPE t_array_source_35 IS TABLE OF PO_EXTRACT_DETAIL_V.ACCOUNTED_AMT%TYPE INDEX BY BINARY_INTEGER;
51384 TYPE t_array_source_49 IS TABLE OF PO_EXTRACT_DETAIL_V.ALLOC_TO_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
51385 TYPE t_array_source_51 IS TABLE OF PO_EXTRACT_DETAIL_V.ALLOC_TO_DIST_ID_1%TYPE INDEX BY BINARY_INTEGER;
51386 TYPE t_array_source_53 IS TABLE OF PO_EXTRACT_DETAIL_V.APPLIED_TO_APPL_ID%TYPE INDEX BY BINARY_INTEGER;
51387 TYPE t_array_source_54 IS TABLE OF PO_EXTRACT_DETAIL_V.APPLIED_TO_DIST_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
51388 TYPE t_array_source_55 IS TABLE OF PO_EXTRACT_DETAIL_V.APPLIED_TO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
51389 TYPE t_array_source_56 IS TABLE OF PO_EXTRACT_DETAIL_V.APPLIED_TO_DIST_ID_1%TYPE INDEX BY BINARY_INTEGER;
51390 TYPE t_array_source_57 IS TABLE OF PO_EXTRACT_DETAIL_V.APPLIED_TO_HEADER_ID_1%TYPE INDEX BY BINARY_INTEGER;
51391 TYPE t_array_source_58 IS TABLE OF PO_EXTRACT_DETAIL_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
51392 TYPE t_array_source_59 IS TABLE OF PO_EXTRACT_DETAIL_V.PO_ENCUM_UPG_OPTION%TYPE INDEX BY BINARY_INTEGER;
51393 TYPE t_array_source_60 IS TABLE OF PO_EXTRACT_DETAIL_V.JFMIP_REFERENCE%TYPE INDEX BY BINARY_INTEGER;
51394 TYPE t_array_source_61 IS TABLE OF PO_EXTRACT_DETAIL_V.PO_UPG_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
51395 TYPE t_array_source_62 IS TABLE OF PO_DISTS_REF_V.CURRENCY_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
51396 TYPE t_array_source_63 IS TABLE OF PO_DISTS_REF_V.CURRENCY_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
51397 TYPE t_array_source_64 IS TABLE OF PO_DISTS_REF_V.CURRENCY_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
51398 TYPE t_array_source_65 IS TABLE OF PO_EXTRACT_DETAIL_V.BACKING_REQ_ENC_CHANGED%TYPE INDEX BY BINARY_INTEGER;
51399 TYPE t_array_source_75 IS TABLE OF PO_EXTRACT_DETAIL_V.ADJUSTMENT_STATUS%TYPE INDEX BY BINARY_INTEGER;
51400
51401 l_array_source_1 t_array_source_1;
51402 l_array_source_2 t_array_source_2;
51403 l_array_source_52 t_array_source_52;
51404 l_array_source_79 t_array_source_79;
51405 l_array_source_80 t_array_source_80;
51406
51407 l_array_source_7 t_array_source_7;
51408 l_array_source_11 t_array_source_11;
51409 l_array_source_13 t_array_source_13;
51410 l_array_source_16 t_array_source_16;
51411 l_array_source_24 t_array_source_24;
51412 l_array_source_29 t_array_source_29;
51413 l_array_source_33 t_array_source_33;
51414 l_array_source_34 t_array_source_34;
51415 l_array_source_35 t_array_source_35;
51416 l_array_source_49 t_array_source_49;
51417 l_array_source_51 t_array_source_51;
51418 l_array_source_53 t_array_source_53;
51419 l_array_source_54 t_array_source_54;
51420 l_array_source_55 t_array_source_55;
51421 l_array_source_56 t_array_source_56;
51422 l_array_source_57 t_array_source_57;
51423 l_array_source_58 t_array_source_58;
51424 l_array_source_59 t_array_source_59;
51425 l_array_source_60 t_array_source_60;
51426 l_array_source_61 t_array_source_61;
51427 l_array_source_62 t_array_source_62;
51428 l_array_source_63 t_array_source_63;
51429 l_array_source_64 t_array_source_64;
51430 l_array_source_65 t_array_source_65;
51431 l_array_source_75 t_array_source_75;
51432
51433 --
51434 CURSOR header_cur
51435 IS
51436 SELECT /*+ leading(xet) cardinality(xet,1) */
51437 -- Event Class Code: PO_PA
51438 xet.entity_id
51439 ,xet.legal_entity_id
51440 ,xet.entity_code
51441 ,xet.transaction_number
51442 ,xet.event_id
51443 ,xet.event_class_code
51444 ,xet.event_type_code
51445 ,xet.event_number
51446 ,xet.event_date
51447 ,xet.transaction_date
51448 ,xet.reference_num_1
51449 ,xet.reference_num_2
51450 ,xet.reference_num_3
51451 ,xet.reference_num_4
51452 ,xet.reference_char_1
51453 ,xet.reference_char_2
51454 ,xet.reference_char_3
51455 ,xet.reference_char_4
51456 ,xet.reference_date_1
51457 ,xet.reference_date_2
51458 ,xet.reference_date_3
51459 ,xet.reference_date_4
51460 ,xet.event_created_by
51461 ,xet.budgetary_control_flag
51462 , h3.PO_TYPE source_1
51463 , h3.PO_NUMBER source_2
51464 , h3.PO_HEADER_ID source_52
51465 , h3.GL_DATE source_79
51466 , h3.ENCUMBRANCE_TYPE_ID source_80
51467 FROM xla_events_gt xet
51468 , PO_EXTRACT_HEADER_V h3
51469 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
51470 and xet.event_class_code = C_EVENT_CLASS_CODE
51471 and xet.event_status_code <> 'N' AND h3.event_id = xet.event_id
51472
51473 ORDER BY event_id
51474 ;
51475
51476
51477 --
51478 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
51479 IS
51480 SELECT /*+ leading(xet) cardinality(xet,1) */
51481 -- Event Class Code: PO_PA
51482 xet.entity_id
51483 ,xet.legal_entity_id
51484 ,xet.entity_code
51485 ,xet.transaction_number
51486 ,xet.event_id
51487 ,xet.event_class_code
51488 ,xet.event_type_code
51489 ,xet.event_number
51490 ,xet.event_date
51491 ,xet.transaction_date
51492 ,xet.reference_num_1
51493 ,xet.reference_num_2
51494 ,xet.reference_num_3
51495 ,xet.reference_num_4
51496 ,xet.reference_char_1
51497 ,xet.reference_char_2
51498 ,xet.reference_char_3
51499 ,xet.reference_char_4
51500 ,xet.reference_date_1
51501 ,xet.reference_date_2
51502 ,xet.reference_date_3
51503 ,xet.reference_date_4
51504 ,xet.event_created_by
51505 ,xet.budgetary_control_flag
51506 , l2.LINE_NUMBER
51507 , l2.JE_LINE_DESCRIPTION source_7
51508 , l2.BUDGET_ACCOUNT source_11
51509 , l2.MAIN_OR_BACKING_CODE source_13
51510 , l2.ACCOUNTING_REVERSAL_FLAG source_16
51511 , l2.PO_DISTRIBUTION_TYPE source_24
51512 , l2.PO_DISTRIBUTION_ID source_29
51513 , l2.ENTERED_AMT source_33
51514 , l2.CURRENCY_CODE source_34
51515 , l2.ACCOUNTED_AMT source_35
51516 , l2.ALLOC_TO_DISTRIBUTION_TYPE source_49
51517 , l2.ALLOC_TO_DIST_ID_1 source_51
51518 , l2.APPLIED_TO_APPL_ID source_53
51519 , l2.APPLIED_TO_DIST_LINK_TYPE source_54
51520 , l2.APPLIED_TO_ENTITY_CODE source_55
51521 , l2.APPLIED_TO_DIST_ID_1 source_56
51522 , l2.APPLIED_TO_HEADER_ID_1 source_57
51523 , l2.DISTRIBUTION_LINK_TYPE source_58
51524 , l2.PO_ENCUM_UPG_OPTION source_59
51525 , l2.JFMIP_REFERENCE source_60
51526 , l2.PO_UPG_ENC_TYPE_ID source_61
51527 , l1.CURRENCY_CONVERSION_DATE source_62
51528 , l1.CURRENCY_CONVERSION_RATE source_63
51529 , l1.CURRENCY_CONVERSION_TYPE source_64
51530 , l2.BACKING_REQ_ENC_CHANGED source_65
51531 , l2.ADJUSTMENT_STATUS source_75
51532 FROM xla_events_gt xet
51533 , PO_DISTS_REF_V l1
51534 , PO_EXTRACT_DETAIL_V l2
51535 WHERE xet.event_id between x_first_event_id and x_last_event_id
51536 and xet.event_date between p_pad_start_date and p_pad_end_date
51537 and xet.event_class_code = C_EVENT_CLASS_CODE
51538 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
51539 AND l2.po_distribution_id = l1.po_distribution_id (+) AND l2.po_distribution_type = l1.po_distribution_type (+) ;
51540
51541 --
51542 BEGIN
51543 IF g_log_enabled THEN
51544 l_log_module := C_DEFAULT_MODULE||'.EventClass_86';
51545 END IF;
51546 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51547 trace
51548 (p_msg => 'BEGIN of EventClass_86'
51549 ,p_level => C_LEVEL_PROCEDURE
51550 ,p_module => l_log_module);
51551 END IF;
51552
51553 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
51554 trace
51555 (p_msg => 'p_application_id = '||p_application_id||
51556 ' - p_base_ledger_id = '||p_base_ledger_id||
51557 ' - p_target_ledger_id = '||p_target_ledger_id||
51558 ' - p_language = '||p_language||
51559 ' - p_currency_code = '||p_currency_code||
51560 ' - p_sla_ledger_id = '||p_sla_ledger_id
51561 ,p_level => C_LEVEL_STATEMENT
51562 ,p_module => l_log_module);
51563 END IF;
51564 --
51565 -- initialze arrays
51566 --
51567 g_array_event.DELETE;
51568 l_rec_array_event := l_null_rec_array_event;
51569 --
51570 --------------------------------------
51571 -- 4262811 Initialze MPA Line Number
51572 --------------------------------------
51573 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
51574
51575 --
51576
51577 --
51578 OPEN header_cur;
51579 --
51580 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
51581 trace
51582 (p_msg => 'SQL - FETCH header_cur'
51583 ,p_level => C_LEVEL_STATEMENT
51584 ,p_module => l_log_module);
51585 END IF;
51586 --
51587 LOOP
51588 FETCH header_cur BULK COLLECT INTO
51589 l_array_entity_id
51590 , l_array_legal_entity_id
51591 , l_array_entity_code
51592 , l_array_transaction_num
51593 , l_array_event_id
51594 , l_array_class_code
51595 , l_array_event_type
51596 , l_array_event_number
51597 , l_array_event_date
51598 , l_array_transaction_date
51599 , l_array_reference_num_1
51600 , l_array_reference_num_2
51601 , l_array_reference_num_3
51602 , l_array_reference_num_4
51603 , l_array_reference_char_1
51604 , l_array_reference_char_2
51605 , l_array_reference_char_3
51606 , l_array_reference_char_4
51607 , l_array_reference_date_1
51608 , l_array_reference_date_2
51609 , l_array_reference_date_3
51610 , l_array_reference_date_4
51611 , l_array_event_created_by
51612 , l_array_budgetary_control_flag
51613 , l_array_source_1
51614 , l_array_source_2
51615 , l_array_source_52
51616 , l_array_source_79
51617 , l_array_source_80
51618 LIMIT l_rows;
51619 --
51620 IF (C_LEVEL_EVENT >= g_log_level) THEN
51621 trace
51622 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
51623 ,p_level => C_LEVEL_EVENT
51624 ,p_module => l_log_module);
51625 END IF;
51626 --
51627 EXIT WHEN l_array_entity_id.COUNT = 0;
51628
51629 -- initialize arrays
51630 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
51631 XLA_AE_LINES_PKG.g_rec_lines := NULL;
51632
51633 --
51634 -- Bug 4458708
51635 --
51636 XLA_AE_LINES_PKG.g_LineNumber := 0;
51637
51638
51639 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
51640 g_last_hdr_idx := l_array_event_id.LAST;
51641 --
51642 -- loop for the headers. Each iteration is for each header extract row
51643 -- fetched in header cursor
51644 --
51645 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
51646
51647 --
51648 -- set event info as cache for other routines to refer event attributes
51649 --
51650 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
51651 (p_application_id => p_application_id
51652 ,p_primary_ledger_id => p_primary_ledger_id
51653 ,p_base_ledger_id => p_base_ledger_id
51654 ,p_target_ledger_id => p_target_ledger_id
51655 ,p_entity_id => l_array_entity_id(hdr_idx)
51656 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
51657 ,p_entity_code => l_array_entity_code(hdr_idx)
51658 ,p_transaction_num => l_array_transaction_num(hdr_idx)
51659 ,p_event_id => l_array_event_id(hdr_idx)
51660 ,p_event_class_code => l_array_class_code(hdr_idx)
51661 ,p_event_type_code => l_array_event_type(hdr_idx)
51662 ,p_event_number => l_array_event_number(hdr_idx)
51663 ,p_event_date => l_array_event_date(hdr_idx)
51664 ,p_transaction_date => l_array_transaction_date(hdr_idx)
51665 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
51666 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
51667 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
51668 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
51669 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
51670 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
51671 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
51672 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
51673 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
51674 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
51675 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
51676 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
51677 ,p_event_created_by => l_array_event_created_by(hdr_idx)
51678 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
51679
51680 --
51681 -- set the status of entry to C_VALID (0)
51682 --
51683 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
51684
51685 --
51686 -- initialize a row for ae header
51687 --
51688 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
51689
51690 l_event_id := l_array_event_id(hdr_idx);
51691
51692 --
51693 -- storing the hdr_idx for event. May be used by line cursor.
51694 --
51695 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
51696
51697 --
51698 -- store sources from header extract. This can be improved to
51699 -- store only those sources from header extract that may be used in lines
51700 --
51701
51702 g_array_event(l_event_id).array_value_char('source_1') := l_array_source_1(hdr_idx);
51703 g_array_event(l_event_id).array_value_char('source_2') := l_array_source_2(hdr_idx);
51704 g_array_event(l_event_id).array_value_num('source_52') := l_array_source_52(hdr_idx);
51705 g_array_event(l_event_id).array_value_date('source_79') := l_array_source_79(hdr_idx);
51706 g_array_event(l_event_id).array_value_num('source_80') := l_array_source_80(hdr_idx);
51707
51708 --
51709 -- initilaize the status of ae headers for diffrent balance types
51710 -- the status is initialised to C_NOT_CREATED (2)
51711 --
51712 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
51713 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
51714 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
51715
51716 --
51717 -- call api to validate and store accounting attributes for header
51718 --
51719
51720 ------------------------------------------------------------
51721 -- Accrual Reversal : to get date for Standard Source (NONE)
51722 ------------------------------------------------------------
51723 l_acc_rev_gl_date_source := NULL;
51724
51725 l_rec_acct_attrs.array_acct_attr_code(1) := 'ENCUMBRANCE_TYPE_ID';
51726 l_rec_acct_attrs.array_num_value(1) := g_array_event(l_event_id).array_value_num('source_80');
51727 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_DATE';
51728 l_rec_acct_attrs.array_date_value(2) := g_array_event(l_event_id).array_value_date('source_79');
51729
51730
51731 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
51732
51733 XLA_AE_HEADER_PKG.SetJeCategoryName;
51734
51735 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
51736 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
51737 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
51738 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
51739 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
51740
51741
51742 --
51743 xla_ae_header_pkg.SetHdrDescription(
51744 p_description => Description_1 (
51745 p_application_id => p_application_id
51746 , p_source_1 => g_array_event(l_event_id).array_value_char('source_1')
51747 , p_source_2 => g_array_event(l_event_id).array_value_char('source_2')
51748 )
51749 );
51750 --
51751
51752 -- No header level analytical criteria
51753
51754 --
51755 --accounting attribute enhancement, bug 3612931
51756 --
51757 l_trx_reversal_source := SUBSTR(NULL, 1,30);
51758
51759 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
51760 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
51761
51762 xla_accounting_err_pkg.build_message
51763 (p_appli_s_name => 'XLA'
51764 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
51765 ,p_token_1 => 'ACCT_ATTR_NAME'
51766 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
51767 ,p_token_2 => 'PRODUCT_NAME'
51768 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
51769 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
51770 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
51771 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
51772
51773 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
51774 --
51775 -- following sets the accounting attributes needed to reverse
51776 -- accounting for a distributeion
51777 --
51778 xla_ae_lines_pkg.SetTrxReversalAttrs
51779 (p_event_id => l_event_id
51780 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
51781 ,p_trx_reversal_source => l_trx_reversal_source);
51782
51783 END IF;
51784
51785
51786 ----------------------------------------------------------------
51787 -- 4262811 - update the header statuses to invalid in need be
51788 ----------------------------------------------------------------
51789 --
51790 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
51791
51792
51793 -----------------------------------------------
51794 -- No accrual reversal for the event class/type
51795 -----------------------------------------------
51796 ----------------------------------------------------------------
51797
51798 --
51799 -- this ends the header loop iteration for one bulk fetch
51800 --
51801 END LOOP;
51802
51803 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
51804 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
51805
51806 --
51807 -- insert dummy rows into lines gt table that were created due to
51808 -- transaction reversals
51809 --
51810 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
51811 l_result := XLA_AE_LINES_PKG.InsertLines;
51812 END IF;
51813
51814 --
51815 -- reset the temp_line_num for each set of events fetched from header
51816 -- cursor rather than doing it for each new event in line cursor
51817 -- Bug 3939231
51818 --
51819 xla_ae_lines_pkg.g_temp_line_num := 0;
51820
51821
51822
51823 --
51824 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
51825 --
51826 --
51827 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
51828
51829 trace
51830 (p_msg => 'SQL - FETCH line_cur'
51831 ,p_level => C_LEVEL_STATEMENT
51832 ,p_module => l_log_module);
51833
51834 END IF;
51835 --
51836 --
51837 LOOP
51838 --
51839 FETCH line_cur BULK COLLECT INTO
51840 l_array_entity_id
51841 , l_array_legal_entity_id
51842 , l_array_entity_code
51843 , l_array_transaction_num
51844 , l_array_event_id
51845 , l_array_class_code
51846 , l_array_event_type
51847 , l_array_event_number
51848 , l_array_event_date
51849 , l_array_transaction_date
51850 , l_array_reference_num_1
51851 , l_array_reference_num_2
51852 , l_array_reference_num_3
51853 , l_array_reference_num_4
51854 , l_array_reference_char_1
51855 , l_array_reference_char_2
51856 , l_array_reference_char_3
51857 , l_array_reference_char_4
51858 , l_array_reference_date_1
51859 , l_array_reference_date_2
51860 , l_array_reference_date_3
51861 , l_array_reference_date_4
51862 , l_array_event_created_by
51863 , l_array_budgetary_control_flag
51864 , l_array_extract_line_num
51865 , l_array_source_7
51866 , l_array_source_11
51867 , l_array_source_13
51868 , l_array_source_16
51869 , l_array_source_24
51870 , l_array_source_29
51871 , l_array_source_33
51872 , l_array_source_34
51873 , l_array_source_35
51874 , l_array_source_49
51875 , l_array_source_51
51876 , l_array_source_53
51877 , l_array_source_54
51878 , l_array_source_55
51879 , l_array_source_56
51880 , l_array_source_57
51881 , l_array_source_58
51882 , l_array_source_59
51883 , l_array_source_60
51884 , l_array_source_61
51885 , l_array_source_62
51886 , l_array_source_63
51887 , l_array_source_64
51888 , l_array_source_65
51889 , l_array_source_75
51890 LIMIT l_rows;
51891
51892 --
51893 IF (C_LEVEL_EVENT >= g_log_level) THEN
51894 trace
51895 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
51896 ,p_level => C_LEVEL_EVENT
51897 ,p_module => l_log_module);
51898 END IF;
51899 --
51900 EXIT WHEN l_array_entity_id.count = 0;
51901
51902 XLA_AE_LINES_PKG.g_rec_lines := null;
51903
51904 --
51905 -- Bug 4458708
51906 --
51907 XLA_AE_LINES_PKG.g_LineNumber := 0;
51908 --
51909 --
51910
51911 FOR Idx IN 1..l_array_event_id.count LOOP
51912 --
51913 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
51914 --
51915 l_event_id := l_array_event_id(idx); -- 5648433
51916
51917 --
51918 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
51919 --
51920
51921 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
51922 (g_array_event(l_event_id).array_value_num('header_index'))
51923 ,'N'
51924 ) <> 'Y'
51925 THEN
51926 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
51927 trace
51928 (p_msg => 'Trancaction revesal option is not Y '
51929 ,p_level => C_LEVEL_STATEMENT
51930 ,p_module => l_log_module);
51931 END IF;
51932
51933 --
51934 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
51935 --
51936 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
51937 --
51938 -- set event info as cache for other routines to refer event attributes
51939 --
51940
51941 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
51942 l_previous_event_id := l_event_id;
51943
51944 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
51945 (p_application_id => p_application_id
51946 ,p_primary_ledger_id => p_primary_ledger_id
51947 ,p_base_ledger_id => p_base_ledger_id
51948 ,p_target_ledger_id => p_target_ledger_id
51949 ,p_entity_id => l_array_entity_id(Idx)
51950 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
51951 ,p_entity_code => l_array_entity_code(Idx)
51952 ,p_transaction_num => l_array_transaction_num(Idx)
51953 ,p_event_id => l_array_event_id(Idx)
51954 ,p_event_class_code => l_array_class_code(Idx)
51955 ,p_event_type_code => l_array_event_type(Idx)
51956 ,p_event_number => l_array_event_number(Idx)
51957 ,p_event_date => l_array_event_date(Idx)
51958 ,p_transaction_date => l_array_transaction_date(Idx)
51959 ,p_reference_num_1 => l_array_reference_num_1(Idx)
51960 ,p_reference_num_2 => l_array_reference_num_2(Idx)
51961 ,p_reference_num_3 => l_array_reference_num_3(Idx)
51962 ,p_reference_num_4 => l_array_reference_num_4(Idx)
51963 ,p_reference_char_1 => l_array_reference_char_1(Idx)
51964 ,p_reference_char_2 => l_array_reference_char_2(Idx)
51965 ,p_reference_char_3 => l_array_reference_char_3(Idx)
51966 ,p_reference_char_4 => l_array_reference_char_4(Idx)
51967 ,p_reference_date_1 => l_array_reference_date_1(Idx)
51968 ,p_reference_date_2 => l_array_reference_date_2(Idx)
51969 ,p_reference_date_3 => l_array_reference_date_3(Idx)
51970 ,p_reference_date_4 => l_array_reference_date_4(Idx)
51971 ,p_event_created_by => l_array_event_created_by(Idx)
51972 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
51973 --
51974 END IF;
51975
51976
51977
51978 --
51979 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
51980
51981 l_acct_reversal_source := SUBSTR(l_array_source_16(Idx), 1,30);
51982
51983 IF l_continue_with_lines THEN
51984 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
51985 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
51986
51987 xla_accounting_err_pkg.build_message
51988 (p_appli_s_name => 'XLA'
51989 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
51990 ,p_token_1 => 'LINE_NUMBER'
51991 ,p_value_1 => l_array_extract_line_num(Idx)
51992 ,p_token_2 => 'PRODUCT_NAME'
51993 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
51994 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
51995 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
51996 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
51997
51998 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
51999 --
52000 -- following sets the accounting attributes needed to reverse
52001 -- accounting for a distributeion
52002 --
52003
52004 --
52005 -- 5217187
52006 --
52007 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
52008 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
52009 g_array_event(l_event_id).array_value_num('header_index'));
52010 --
52011 --
52012
52013 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
52014 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_16(Idx);
52015 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
52016 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_29(Idx);
52017 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
52018 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_58(Idx);
52019 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
52020 l_rec_rev_acct_attrs.array_num_value(5) := TO_NUMBER(l_array_source_11(Idx));
52021 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
52022 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_33(Idx);
52023 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
52024 l_rec_rev_acct_attrs.array_char_value(7) := l_array_source_34(Idx);
52025 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
52026 l_rec_rev_acct_attrs.array_num_value(8) := l_array_source_35(Idx);
52027 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
52028 l_rec_rev_acct_attrs.array_num_value(9) := TO_NUMBER(l_array_source_11(Idx));
52029 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
52030 l_rec_rev_acct_attrs.array_num_value(10) := l_array_source_33(Idx);
52031 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
52032 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_34(Idx);
52033 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
52034 l_rec_rev_acct_attrs.array_num_value(12) := l_array_source_35(Idx);
52035 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
52036 l_rec_rev_acct_attrs.array_char_value(13) := l_array_source_59(Idx);
52037 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
52038 l_rec_rev_acct_attrs.array_num_value(14) := l_array_source_56(Idx);
52039 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
52040 l_rec_rev_acct_attrs.array_char_value(15) := l_array_source_54(Idx);
52041 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'UPG_CR_ENC_TYPE_ID';
52042 l_rec_rev_acct_attrs.array_num_value(16) := l_array_source_61(Idx);
52043 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'UPG_DR_ENC_TYPE_ID';
52044 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_61(Idx);
52045
52046
52047 xla_ae_lines_pkg.SetAcctReversalAttrs
52048 (p_event_id => l_event_id
52049 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
52050 ,p_calculate_acctd_flag => l_calculate_acctd_flag
52051 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
52052 END IF;
52053
52054 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
52055 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
52056
52057 --
52058 AcctLineType_15 (
52059 p_application_id => p_application_id
52060 ,p_event_id => l_event_id
52061 ,p_calculate_acctd_flag => l_calculate_acctd_flag
52062 ,p_calculate_g_l_flag => l_calculate_g_l_flag
52063 ,p_actual_flag => l_actual_flag
52064 ,p_balance_type_code => l_balance_type_code
52065 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
52066
52067 , p_source_11 => l_array_source_11(Idx)
52068 , p_source_13 => l_array_source_13(Idx)
52069 , p_source_16 => l_array_source_16(Idx)
52070 , p_source_29 => l_array_source_29(Idx)
52071 , p_source_33 => l_array_source_33(Idx)
52072 , p_source_34 => l_array_source_34(Idx)
52073 , p_source_35 => l_array_source_35(Idx)
52074 , p_source_49 => l_array_source_49(Idx)
52075 , p_source_51 => l_array_source_51(Idx)
52076 , p_source_52 => g_array_event(l_event_id).array_value_num('source_52')
52077 , p_source_53 => l_array_source_53(Idx)
52078 , p_source_54 => l_array_source_54(Idx)
52079 , p_source_55 => l_array_source_55(Idx)
52080 , p_source_56 => l_array_source_56(Idx)
52081 , p_source_57 => l_array_source_57(Idx)
52082 , p_source_58 => l_array_source_58(Idx)
52083 , p_source_59 => l_array_source_59(Idx)
52084 , p_source_60 => l_array_source_60(Idx)
52085 , p_source_61 => l_array_source_61(Idx)
52086 );
52087 If(l_balance_type_code = 'A') THEN
52088 l_actual_gain_loss_ref := l_gain_or_loss_ref;
52089 END IF;
52090
52091 --
52092
52093
52094 --
52095 AcctLineType_16 (
52096 p_application_id => p_application_id
52097 ,p_event_id => l_event_id
52098 ,p_calculate_acctd_flag => l_calculate_acctd_flag
52099 ,p_calculate_g_l_flag => l_calculate_g_l_flag
52100 ,p_actual_flag => l_actual_flag
52101 ,p_balance_type_code => l_balance_type_code
52102 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
52103
52104 , p_source_11 => l_array_source_11(Idx)
52105 , p_source_13 => l_array_source_13(Idx)
52106 , p_source_16 => l_array_source_16(Idx)
52107 , p_source_29 => l_array_source_29(Idx)
52108 , p_source_33 => l_array_source_33(Idx)
52109 , p_source_34 => l_array_source_34(Idx)
52110 , p_source_35 => l_array_source_35(Idx)
52111 , p_source_49 => l_array_source_49(Idx)
52112 , p_source_51 => l_array_source_51(Idx)
52113 , p_source_52 => g_array_event(l_event_id).array_value_num('source_52')
52114 , p_source_53 => l_array_source_53(Idx)
52115 , p_source_54 => l_array_source_54(Idx)
52116 , p_source_55 => l_array_source_55(Idx)
52117 , p_source_56 => l_array_source_56(Idx)
52118 , p_source_57 => l_array_source_57(Idx)
52119 , p_source_58 => l_array_source_58(Idx)
52120 , p_source_59 => l_array_source_59(Idx)
52121 , p_source_60 => l_array_source_60(Idx)
52122 , p_source_61 => l_array_source_61(Idx)
52123 );
52124 If(l_balance_type_code = 'A') THEN
52125 l_actual_gain_loss_ref := l_gain_or_loss_ref;
52126 END IF;
52127
52128 --
52129
52130
52131 --
52132 AcctLineType_17 (
52133 p_application_id => p_application_id
52134 ,p_event_id => l_event_id
52135 ,p_calculate_acctd_flag => l_calculate_acctd_flag
52136 ,p_calculate_g_l_flag => l_calculate_g_l_flag
52137 ,p_actual_flag => l_actual_flag
52138 ,p_balance_type_code => l_balance_type_code
52139 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
52140
52141 , p_source_7 => l_array_source_7(Idx)
52142 , p_source_11 => l_array_source_11(Idx)
52143 , p_source_13 => l_array_source_13(Idx)
52144 , p_source_16 => l_array_source_16(Idx)
52145 , p_source_29 => l_array_source_29(Idx)
52146 , p_source_33 => l_array_source_33(Idx)
52147 , p_source_34 => l_array_source_34(Idx)
52148 , p_source_35 => l_array_source_35(Idx)
52149 , p_source_49 => l_array_source_49(Idx)
52150 , p_source_51 => l_array_source_51(Idx)
52151 , p_source_52 => g_array_event(l_event_id).array_value_num('source_52')
52152 , p_source_53 => l_array_source_53(Idx)
52153 , p_source_54 => l_array_source_54(Idx)
52154 , p_source_55 => l_array_source_55(Idx)
52155 , p_source_56 => l_array_source_56(Idx)
52156 , p_source_57 => l_array_source_57(Idx)
52157 , p_source_58 => l_array_source_58(Idx)
52158 , p_source_59 => l_array_source_59(Idx)
52159 , p_source_60 => l_array_source_60(Idx)
52160 , p_source_61 => l_array_source_61(Idx)
52161 , p_source_62 => l_array_source_62(Idx)
52162 , p_source_63 => l_array_source_63(Idx)
52163 , p_source_64 => l_array_source_64(Idx)
52164 );
52165 If(l_balance_type_code = 'A') THEN
52166 l_actual_gain_loss_ref := l_gain_or_loss_ref;
52167 END IF;
52168
52169 --
52170
52171
52172 --
52173 AcctLineType_18 (
52174 p_application_id => p_application_id
52175 ,p_event_id => l_event_id
52176 ,p_calculate_acctd_flag => l_calculate_acctd_flag
52177 ,p_calculate_g_l_flag => l_calculate_g_l_flag
52178 ,p_actual_flag => l_actual_flag
52179 ,p_balance_type_code => l_balance_type_code
52180 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
52181
52182 , p_source_11 => l_array_source_11(Idx)
52183 , p_source_13 => l_array_source_13(Idx)
52184 , p_source_16 => l_array_source_16(Idx)
52185 , p_source_29 => l_array_source_29(Idx)
52186 , p_source_33 => l_array_source_33(Idx)
52187 , p_source_34 => l_array_source_34(Idx)
52188 , p_source_35 => l_array_source_35(Idx)
52189 , p_source_49 => l_array_source_49(Idx)
52190 , p_source_51 => l_array_source_51(Idx)
52191 , p_source_52 => g_array_event(l_event_id).array_value_num('source_52')
52192 , p_source_53 => l_array_source_53(Idx)
52193 , p_source_54 => l_array_source_54(Idx)
52194 , p_source_55 => l_array_source_55(Idx)
52195 , p_source_56 => l_array_source_56(Idx)
52196 , p_source_57 => l_array_source_57(Idx)
52197 , p_source_58 => l_array_source_58(Idx)
52198 , p_source_59 => l_array_source_59(Idx)
52199 , p_source_60 => l_array_source_60(Idx)
52200 , p_source_61 => l_array_source_61(Idx)
52201 , p_source_65 => l_array_source_65(Idx)
52202 );
52203 If(l_balance_type_code = 'A') THEN
52204 l_actual_gain_loss_ref := l_gain_or_loss_ref;
52205 END IF;
52206
52207 --
52208
52209
52210 --
52211 AcctLineType_21 (
52212 p_application_id => p_application_id
52213 ,p_event_id => l_event_id
52214 ,p_calculate_acctd_flag => l_calculate_acctd_flag
52215 ,p_calculate_g_l_flag => l_calculate_g_l_flag
52216 ,p_actual_flag => l_actual_flag
52217 ,p_balance_type_code => l_balance_type_code
52218 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
52219
52220 , p_source_7 => l_array_source_7(Idx)
52221 , p_source_11 => l_array_source_11(Idx)
52222 , p_source_13 => l_array_source_13(Idx)
52223 , p_source_16 => l_array_source_16(Idx)
52224 , p_source_29 => l_array_source_29(Idx)
52225 , p_source_33 => l_array_source_33(Idx)
52226 , p_source_34 => l_array_source_34(Idx)
52227 , p_source_35 => l_array_source_35(Idx)
52228 , p_source_51 => l_array_source_51(Idx)
52229 , p_source_52 => g_array_event(l_event_id).array_value_num('source_52')
52230 , p_source_53 => l_array_source_53(Idx)
52231 , p_source_54 => l_array_source_54(Idx)
52232 , p_source_55 => l_array_source_55(Idx)
52233 , p_source_56 => l_array_source_56(Idx)
52234 , p_source_57 => l_array_source_57(Idx)
52235 , p_source_58 => l_array_source_58(Idx)
52236 , p_source_59 => l_array_source_59(Idx)
52237 , p_source_60 => l_array_source_60(Idx)
52238 , p_source_61 => l_array_source_61(Idx)
52239 , p_source_62 => l_array_source_62(Idx)
52240 , p_source_63 => l_array_source_63(Idx)
52241 , p_source_64 => l_array_source_64(Idx)
52242 , p_source_65 => l_array_source_65(Idx)
52243 );
52244 If(l_balance_type_code = 'A') THEN
52245 l_actual_gain_loss_ref := l_gain_or_loss_ref;
52246 END IF;
52247
52248 --
52249
52250
52251 --
52252 AcctLineType_38 (
52253 p_application_id => p_application_id
52254 ,p_event_id => l_event_id
52255 ,p_calculate_acctd_flag => l_calculate_acctd_flag
52256 ,p_calculate_g_l_flag => l_calculate_g_l_flag
52257 ,p_actual_flag => l_actual_flag
52258 ,p_balance_type_code => l_balance_type_code
52259 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
52260
52261 , p_source_11 => l_array_source_11(Idx)
52262 , p_source_13 => l_array_source_13(Idx)
52263 , p_source_16 => l_array_source_16(Idx)
52264 , p_source_29 => l_array_source_29(Idx)
52265 , p_source_33 => l_array_source_33(Idx)
52266 , p_source_34 => l_array_source_34(Idx)
52267 , p_source_35 => l_array_source_35(Idx)
52268 , p_source_49 => l_array_source_49(Idx)
52269 , p_source_51 => l_array_source_51(Idx)
52270 , p_source_52 => g_array_event(l_event_id).array_value_num('source_52')
52271 , p_source_53 => l_array_source_53(Idx)
52272 , p_source_54 => l_array_source_54(Idx)
52273 , p_source_55 => l_array_source_55(Idx)
52274 , p_source_56 => l_array_source_56(Idx)
52275 , p_source_57 => l_array_source_57(Idx)
52276 , p_source_58 => l_array_source_58(Idx)
52277 , p_source_59 => l_array_source_59(Idx)
52278 , p_source_60 => l_array_source_60(Idx)
52279 , p_source_61 => l_array_source_61(Idx)
52280 );
52281 If(l_balance_type_code = 'A') THEN
52282 l_actual_gain_loss_ref := l_gain_or_loss_ref;
52283 END IF;
52284
52285 --
52286
52287
52288 --
52289 AcctLineType_49 (
52290 p_application_id => p_application_id
52291 ,p_event_id => l_event_id
52292 ,p_calculate_acctd_flag => l_calculate_acctd_flag
52293 ,p_calculate_g_l_flag => l_calculate_g_l_flag
52294 ,p_actual_flag => l_actual_flag
52295 ,p_balance_type_code => l_balance_type_code
52296 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
52297
52298 , p_source_11 => l_array_source_11(Idx)
52299 , p_source_13 => l_array_source_13(Idx)
52300 , p_source_16 => l_array_source_16(Idx)
52301 , p_source_29 => l_array_source_29(Idx)
52302 , p_source_33 => l_array_source_33(Idx)
52303 , p_source_34 => l_array_source_34(Idx)
52304 , p_source_35 => l_array_source_35(Idx)
52305 , p_source_49 => l_array_source_49(Idx)
52306 , p_source_51 => l_array_source_51(Idx)
52307 , p_source_52 => g_array_event(l_event_id).array_value_num('source_52')
52308 , p_source_53 => l_array_source_53(Idx)
52309 , p_source_54 => l_array_source_54(Idx)
52310 , p_source_55 => l_array_source_55(Idx)
52311 , p_source_56 => l_array_source_56(Idx)
52312 , p_source_57 => l_array_source_57(Idx)
52313 , p_source_58 => l_array_source_58(Idx)
52314 , p_source_59 => l_array_source_59(Idx)
52315 , p_source_60 => l_array_source_60(Idx)
52316 , p_source_61 => l_array_source_61(Idx)
52317 , p_source_65 => l_array_source_65(Idx)
52318 );
52319 If(l_balance_type_code = 'A') THEN
52320 l_actual_gain_loss_ref := l_gain_or_loss_ref;
52321 END IF;
52322
52323 --
52324
52325
52326 --
52327 AcctLineType_53 (
52328 p_application_id => p_application_id
52329 ,p_event_id => l_event_id
52330 ,p_calculate_acctd_flag => l_calculate_acctd_flag
52331 ,p_calculate_g_l_flag => l_calculate_g_l_flag
52332 ,p_actual_flag => l_actual_flag
52333 ,p_balance_type_code => l_balance_type_code
52334 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
52335
52336 , p_source_7 => l_array_source_7(Idx)
52337 , p_source_11 => l_array_source_11(Idx)
52338 , p_source_13 => l_array_source_13(Idx)
52339 , p_source_16 => l_array_source_16(Idx)
52340 , p_source_29 => l_array_source_29(Idx)
52341 , p_source_33 => l_array_source_33(Idx)
52342 , p_source_34 => l_array_source_34(Idx)
52343 , p_source_35 => l_array_source_35(Idx)
52344 , p_source_51 => l_array_source_51(Idx)
52345 , p_source_52 => g_array_event(l_event_id).array_value_num('source_52')
52346 , p_source_53 => l_array_source_53(Idx)
52347 , p_source_54 => l_array_source_54(Idx)
52348 , p_source_55 => l_array_source_55(Idx)
52349 , p_source_56 => l_array_source_56(Idx)
52350 , p_source_57 => l_array_source_57(Idx)
52351 , p_source_58 => l_array_source_58(Idx)
52352 , p_source_59 => l_array_source_59(Idx)
52353 , p_source_60 => l_array_source_60(Idx)
52354 , p_source_61 => l_array_source_61(Idx)
52355 , p_source_62 => l_array_source_62(Idx)
52356 , p_source_63 => l_array_source_63(Idx)
52357 , p_source_64 => l_array_source_64(Idx)
52358 , p_source_65 => l_array_source_65(Idx)
52359 );
52360 If(l_balance_type_code = 'A') THEN
52361 l_actual_gain_loss_ref := l_gain_or_loss_ref;
52362 END IF;
52363
52364 --
52365
52366
52367 --
52368 AcctLineType_59 (
52369 p_application_id => p_application_id
52370 ,p_event_id => l_event_id
52371 ,p_calculate_acctd_flag => l_calculate_acctd_flag
52372 ,p_calculate_g_l_flag => l_calculate_g_l_flag
52373 ,p_actual_flag => l_actual_flag
52374 ,p_balance_type_code => l_balance_type_code
52375 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
52376
52377 , p_source_7 => l_array_source_7(Idx)
52378 , p_source_11 => l_array_source_11(Idx)
52379 , p_source_13 => l_array_source_13(Idx)
52380 , p_source_16 => l_array_source_16(Idx)
52381 , p_source_29 => l_array_source_29(Idx)
52382 , p_source_33 => l_array_source_33(Idx)
52383 , p_source_34 => l_array_source_34(Idx)
52384 , p_source_35 => l_array_source_35(Idx)
52385 , p_source_52 => g_array_event(l_event_id).array_value_num('source_52')
52386 , p_source_53 => l_array_source_53(Idx)
52387 , p_source_54 => l_array_source_54(Idx)
52388 , p_source_55 => l_array_source_55(Idx)
52389 , p_source_56 => l_array_source_56(Idx)
52390 , p_source_57 => l_array_source_57(Idx)
52391 , p_source_58 => l_array_source_58(Idx)
52392 , p_source_59 => l_array_source_59(Idx)
52393 , p_source_60 => l_array_source_60(Idx)
52394 , p_source_61 => l_array_source_61(Idx)
52395 , p_source_62 => l_array_source_62(Idx)
52396 , p_source_63 => l_array_source_63(Idx)
52397 , p_source_64 => l_array_source_64(Idx)
52398 );
52399 If(l_balance_type_code = 'A') THEN
52400 l_actual_gain_loss_ref := l_gain_or_loss_ref;
52401 END IF;
52402
52403 --
52404
52405
52406 --
52407 AcctLineType_66 (
52408 p_application_id => p_application_id
52409 ,p_event_id => l_event_id
52410 ,p_calculate_acctd_flag => l_calculate_acctd_flag
52411 ,p_calculate_g_l_flag => l_calculate_g_l_flag
52412 ,p_actual_flag => l_actual_flag
52413 ,p_balance_type_code => l_balance_type_code
52414 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
52415
52416 , p_source_7 => l_array_source_7(Idx)
52417 , p_source_11 => l_array_source_11(Idx)
52418 , p_source_13 => l_array_source_13(Idx)
52419 , p_source_16 => l_array_source_16(Idx)
52420 , p_source_24 => l_array_source_24(Idx)
52421 , p_source_29 => l_array_source_29(Idx)
52422 , p_source_33 => l_array_source_33(Idx)
52423 , p_source_34 => l_array_source_34(Idx)
52424 , p_source_35 => l_array_source_35(Idx)
52425 , p_source_52 => g_array_event(l_event_id).array_value_num('source_52')
52426 , p_source_53 => l_array_source_53(Idx)
52427 , p_source_54 => l_array_source_54(Idx)
52428 , p_source_55 => l_array_source_55(Idx)
52429 , p_source_56 => l_array_source_56(Idx)
52430 , p_source_57 => l_array_source_57(Idx)
52431 , p_source_58 => l_array_source_58(Idx)
52432 , p_source_59 => l_array_source_59(Idx)
52433 , p_source_60 => l_array_source_60(Idx)
52434 , p_source_61 => l_array_source_61(Idx)
52435 , p_source_62 => l_array_source_62(Idx)
52436 , p_source_63 => l_array_source_63(Idx)
52437 , p_source_64 => l_array_source_64(Idx)
52438 );
52439 If(l_balance_type_code = 'A') THEN
52440 l_actual_gain_loss_ref := l_gain_or_loss_ref;
52441 END IF;
52442
52443 --
52444
52445
52446 --
52447 AcctLineType_67 (
52448 p_application_id => p_application_id
52449 ,p_event_id => l_event_id
52450 ,p_calculate_acctd_flag => l_calculate_acctd_flag
52451 ,p_calculate_g_l_flag => l_calculate_g_l_flag
52452 ,p_actual_flag => l_actual_flag
52453 ,p_balance_type_code => l_balance_type_code
52454 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
52455
52456 , p_source_7 => l_array_source_7(Idx)
52457 , p_source_11 => l_array_source_11(Idx)
52458 , p_source_13 => l_array_source_13(Idx)
52459 , p_source_16 => l_array_source_16(Idx)
52460 , p_source_24 => l_array_source_24(Idx)
52461 , p_source_29 => l_array_source_29(Idx)
52462 , p_source_33 => l_array_source_33(Idx)
52463 , p_source_34 => l_array_source_34(Idx)
52464 , p_source_35 => l_array_source_35(Idx)
52465 , p_source_52 => g_array_event(l_event_id).array_value_num('source_52')
52466 , p_source_53 => l_array_source_53(Idx)
52467 , p_source_54 => l_array_source_54(Idx)
52468 , p_source_55 => l_array_source_55(Idx)
52469 , p_source_56 => l_array_source_56(Idx)
52470 , p_source_57 => l_array_source_57(Idx)
52471 , p_source_58 => l_array_source_58(Idx)
52472 , p_source_59 => l_array_source_59(Idx)
52473 , p_source_60 => l_array_source_60(Idx)
52474 , p_source_61 => l_array_source_61(Idx)
52475 , p_source_62 => l_array_source_62(Idx)
52476 , p_source_63 => l_array_source_63(Idx)
52477 , p_source_64 => l_array_source_64(Idx)
52478 , p_source_75 => l_array_source_75(Idx)
52479 );
52480 If(l_balance_type_code = 'A') THEN
52481 l_actual_gain_loss_ref := l_gain_or_loss_ref;
52482 END IF;
52483
52484 --
52485
52486
52487 --
52488 AcctLineType_73 (
52489 p_application_id => p_application_id
52490 ,p_event_id => l_event_id
52491 ,p_calculate_acctd_flag => l_calculate_acctd_flag
52492 ,p_calculate_g_l_flag => l_calculate_g_l_flag
52493 ,p_actual_flag => l_actual_flag
52494 ,p_balance_type_code => l_balance_type_code
52495 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
52496
52497 , p_source_11 => l_array_source_11(Idx)
52498 , p_source_13 => l_array_source_13(Idx)
52499 , p_source_16 => l_array_source_16(Idx)
52500 , p_source_29 => l_array_source_29(Idx)
52501 , p_source_33 => l_array_source_33(Idx)
52502 , p_source_34 => l_array_source_34(Idx)
52503 , p_source_35 => l_array_source_35(Idx)
52504 , p_source_52 => g_array_event(l_event_id).array_value_num('source_52')
52505 , p_source_53 => l_array_source_53(Idx)
52506 , p_source_54 => l_array_source_54(Idx)
52507 , p_source_55 => l_array_source_55(Idx)
52508 , p_source_56 => l_array_source_56(Idx)
52509 , p_source_57 => l_array_source_57(Idx)
52510 , p_source_58 => l_array_source_58(Idx)
52511 , p_source_59 => l_array_source_59(Idx)
52512 , p_source_60 => l_array_source_60(Idx)
52513 , p_source_61 => l_array_source_61(Idx)
52514 , p_source_75 => l_array_source_75(Idx)
52515 );
52516 If(l_balance_type_code = 'A') THEN
52517 l_actual_gain_loss_ref := l_gain_or_loss_ref;
52518 END IF;
52519
52520 --
52521
52522
52523 --
52524 AcctLineType_74 (
52525 p_application_id => p_application_id
52526 ,p_event_id => l_event_id
52527 ,p_calculate_acctd_flag => l_calculate_acctd_flag
52528 ,p_calculate_g_l_flag => l_calculate_g_l_flag
52529 ,p_actual_flag => l_actual_flag
52530 ,p_balance_type_code => l_balance_type_code
52531 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
52532
52533 , p_source_11 => l_array_source_11(Idx)
52534 , p_source_13 => l_array_source_13(Idx)
52535 , p_source_16 => l_array_source_16(Idx)
52536 , p_source_29 => l_array_source_29(Idx)
52537 , p_source_33 => l_array_source_33(Idx)
52538 , p_source_34 => l_array_source_34(Idx)
52539 , p_source_35 => l_array_source_35(Idx)
52540 , p_source_52 => g_array_event(l_event_id).array_value_num('source_52')
52541 , p_source_53 => l_array_source_53(Idx)
52542 , p_source_54 => l_array_source_54(Idx)
52543 , p_source_55 => l_array_source_55(Idx)
52544 , p_source_56 => l_array_source_56(Idx)
52545 , p_source_57 => l_array_source_57(Idx)
52546 , p_source_58 => l_array_source_58(Idx)
52547 , p_source_59 => l_array_source_59(Idx)
52548 , p_source_60 => l_array_source_60(Idx)
52549 , p_source_61 => l_array_source_61(Idx)
52550 );
52551 If(l_balance_type_code = 'A') THEN
52552 l_actual_gain_loss_ref := l_gain_or_loss_ref;
52553 END IF;
52554
52555 --
52556
52557 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
52558 -- or secondary ledger that has different currency with primary
52559 -- or alc that is calculated by sla
52560 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
52561 (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'))
52562
52563 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
52564 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
52565 AND (l_actual_flag = 'A')) THEN
52566 XLA_AE_LINES_PKG.CreateGainOrLossLines(
52567 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
52568 ,p_application_id => p_application_id
52569 ,p_amb_context_code => 'DEFAULT'
52570 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
52571 ,p_event_class_code => C_EVENT_CLASS_CODE
52572 ,p_event_type_code => C_EVENT_TYPE_CODE
52573
52574 ,p_gain_ccid => -1
52575 ,p_loss_ccid => -1
52576
52577 ,p_actual_flag => l_actual_flag
52578 ,p_enc_flag => null
52579 ,p_actual_g_l_ref => l_actual_gain_loss_ref
52580 ,p_enc_g_l_ref => null
52581 );
52582 END IF;
52583 END IF;
52584 END IF;
52585
52586 ELSE
52587 --
52588 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
52589 --
52590 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
52591 trace
52592 (p_msg => 'Trancaction revesal option is Y'
52593 ,p_level => C_LEVEL_STATEMENT
52594 ,p_module => l_log_module);
52595 END IF;
52596 END IF;
52597
52598 END LOOP;
52599 l_result := XLA_AE_LINES_PKG.InsertLines ;
52600 end loop;
52601 close line_cur;
52602
52603
52604 --
52605 -- insert headers into xla_ae_headers_gt table
52606 --
52607 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
52608
52609 -- insert into errors table here.
52610
52611 END LOOP;
52612
52613 --
52614 -- 4865292
52615 --
52616 -- Compare g_hdr_extract_count with event count in
52617 -- CreateHeadersAndLines.
52618 --
52619 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
52620
52621 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
52622 trace (p_msg => '# rows extracted from header extract objects '
52623 || ' (running total): '
52624 || g_hdr_extract_count
52625 ,p_level => C_LEVEL_STATEMENT
52626 ,p_module => l_log_module);
52627 END IF;
52628
52629 CLOSE header_cur;
52630 --
52631
52632 --
52633 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52634 trace
52635 (p_msg => 'END of EventClass_86'
52636 ,p_level => C_LEVEL_PROCEDURE
52637 ,p_module => l_log_module);
52638 END IF;
52639 --
52640 RETURN l_result;
52641 EXCEPTION
52642 WHEN xla_exceptions_pkg.application_exception THEN
52643
52644 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
52645
52646
52647 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
52648
52649 RAISE;
52650 WHEN OTHERS THEN
52651 xla_exceptions_pkg.raise_message
52652 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.EventClass_86');
52653 END EventClass_86;
52654 --
52655
52656 ---------------------------------------
52657 --
52658 -- PRIVATE PROCEDURE
52659 -- insert_sources_87
52660 --
52661 ----------------------------------------
52662 --
52663 PROCEDURE insert_sources_87(
52664 p_target_ledger_id IN NUMBER
52665 , p_language IN VARCHAR2
52666 , p_sla_ledger_id IN NUMBER
52667 , p_pad_start_date IN DATE
52668 , p_pad_end_date IN DATE
52669 )
52670 IS
52671
52672 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'RELEASE_ALL';
52673 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'RELEASE';
52674 p_apps_owner VARCHAR2(30);
52675 l_log_module VARCHAR2(240);
52676 BEGIN
52677 IF g_log_enabled THEN
52678 l_log_module := C_DEFAULT_MODULE||'.insert_sources_87';
52679 END IF;
52680 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52681
52682 trace
52683 (p_msg => 'BEGIN of insert_sources_87'
52684 ,p_level => C_LEVEL_PROCEDURE
52685 ,p_module => l_log_module);
52686
52687 END IF;
52688
52689 -- select APPS owner
52690 SELECT oracle_username
52691 INTO p_apps_owner
52692 FROM fnd_oracle_userid
52693 WHERE read_only_flag = 'U'
52694 ;
52695
52696 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
52697 trace
52698 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
52699 ' - p_language = '||p_language||
52700 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
52701 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
52702 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
52703 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
52704 ,p_level => C_LEVEL_STATEMENT
52705 ,p_module => l_log_module);
52706 END IF;
52707
52708
52709 --
52710 INSERT INTO xla_diag_sources --hdr2
52711 (
52712 event_id
52713 , ledger_id
52714 , sla_ledger_id
52715 , description_language
52716 , object_name
52717 , object_type_code
52718 , line_number
52719 , source_application_id
52720 , source_type_code
52721 , source_code
52722 , source_value
52723 , source_meaning
52724 , created_by
52725 , creation_date
52726 , last_update_date
52727 , last_updated_by
52728 , last_update_login
52729 , program_update_date
52730 , program_application_id
52731 , program_id
52732 , request_id
52733 )
52734 SELECT
52735 event_id
52736 , p_target_ledger_id
52737 , p_sla_ledger_id
52738 , p_language
52739 , object_name
52740 , object_type_code
52741 , line_number
52742 , source_application_id
52743 , source_type_code
52744 , source_code
52745 , SUBSTR(source_value ,1,1996)
52746 , SUBSTR(source_meaning ,1,200)
52747 , xla_environment_pkg.g_Usr_Id
52748 , TRUNC(SYSDATE)
52749 , TRUNC(SYSDATE)
52750 , xla_environment_pkg.g_Usr_Id
52751 , xla_environment_pkg.g_Login_Id
52752 , TRUNC(SYSDATE)
52753 , xla_environment_pkg.g_Prog_Appl_Id
52754 , xla_environment_pkg.g_Prog_Id
52755 , xla_environment_pkg.g_Req_Id
52756 FROM (
52757 SELECT xet.event_id event_id
52758 , 0 line_number
52759 , CASE r
52760 WHEN 1 THEN 'PO_EXTRACT_HEADER_V'
52761 WHEN 2 THEN 'PO_EXTRACT_HEADER_V'
52762 WHEN 3 THEN 'PO_RELEASES_REF_V'
52763 WHEN 4 THEN 'PO_EXTRACT_HEADER_V'
52764 WHEN 5 THEN 'PO_EXTRACT_HEADER_V'
52765 WHEN 6 THEN 'PO_EXTRACT_HEADER_V'
52766
52767 ELSE null
52768 END object_name
52769 , CASE r
52770 WHEN 1 THEN 'HEADER'
52771 WHEN 2 THEN 'HEADER'
52772 WHEN 3 THEN 'HEADER'
52773 WHEN 4 THEN 'HEADER'
52774 WHEN 5 THEN 'HEADER'
52775 WHEN 6 THEN 'HEADER'
52776
52777 ELSE null
52778 END object_type_code
52779 , CASE r
52780 WHEN 1 THEN '201'
52781 WHEN 2 THEN '201'
52782 WHEN 3 THEN '201'
52783 WHEN 4 THEN '201'
52784 WHEN 5 THEN '201'
52785 WHEN 6 THEN '201'
52786
52787 ELSE null
52788 END source_application_id
52789 , 'S' source_type_code
52790 , CASE r
52791 WHEN 1 THEN 'PO_TYPE'
52792 WHEN 2 THEN 'PO_NUMBER'
52793 WHEN 3 THEN 'PO_RELEASE_NUMBER'
52794 WHEN 4 THEN 'PO_RELEASE_ID'
52795 WHEN 5 THEN 'GL_DATE'
52796 WHEN 6 THEN 'ENCUMBRANCE_TYPE_ID'
52797
52798 ELSE null
52799 END source_code
52800 , CASE r
52801 WHEN 1 THEN TO_CHAR(h3.PO_TYPE)
52802 WHEN 2 THEN TO_CHAR(h3.PO_NUMBER)
52803 WHEN 3 THEN TO_CHAR(h4.PO_RELEASE_NUMBER)
52804 WHEN 4 THEN TO_CHAR(h3.PO_RELEASE_ID)
52805 WHEN 5 THEN TO_CHAR(h3.GL_DATE)
52806 WHEN 6 THEN TO_CHAR(h3.ENCUMBRANCE_TYPE_ID)
52807
52808 ELSE null
52809 END source_value
52810 , null source_meaning
52811 FROM xla_events_gt xet
52812 , PO_EXTRACT_HEADER_V h3
52813 , PO_RELEASES_REF_V h4
52814 ,(select rownum r from all_objects where rownum <= 6 and owner = p_apps_owner)
52815 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
52816 AND xet.event_class_code = C_EVENT_CLASS_CODE
52817 AND h3.event_id = xet.event_id
52818 AND h3.po_release_id = h4.po_release_id
52819 )
52820 ;
52821 --
52822 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
52823
52824 trace
52825 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
52826 ,p_level => C_LEVEL_STATEMENT
52827 ,p_module => l_log_module);
52828
52829 END IF;
52830 --
52831
52832
52833
52834 --
52835 INSERT INTO xla_diag_sources --line2
52836 (
52837 event_id
52838 , ledger_id
52839 , sla_ledger_id
52840 , description_language
52841 , object_name
52842 , object_type_code
52843 , line_number
52844 , source_application_id
52845 , source_type_code
52846 , source_code
52847 , source_value
52848 , source_meaning
52849 , created_by
52850 , creation_date
52851 , last_update_date
52852 , last_updated_by
52853 , last_update_login
52854 , program_update_date
52855 , program_application_id
52856 , program_id
52857 , request_id
52858 )
52859 SELECT event_id
52860 , p_target_ledger_id
52861 , p_sla_ledger_id
52862 , p_language
52863 , object_name
52864 , object_type_code
52865 , line_number
52866 , source_application_id
52867 , source_type_code
52868 , source_code
52869 , SUBSTR(source_value,1,1996)
52870 , SUBSTR(source_meaning ,1,200)
52871 , xla_environment_pkg.g_Usr_Id
52872 , TRUNC(SYSDATE)
52873 , TRUNC(SYSDATE)
52874 , xla_environment_pkg.g_Usr_Id
52875 , xla_environment_pkg.g_Login_Id
52876 , TRUNC(SYSDATE)
52877 , xla_environment_pkg.g_Prog_Appl_Id
52878 , xla_environment_pkg.g_Prog_Id
52879 , xla_environment_pkg.g_Req_Id
52880 FROM (
52881 SELECT xet.event_id event_id
52882 , l2.line_number line_number
52883 , CASE r
52884 WHEN 1 THEN 'PO_EXTRACT_DETAIL_V'
52885 WHEN 2 THEN 'PO_EXTRACT_DETAIL_V'
52886 WHEN 3 THEN 'PO_EXTRACT_DETAIL_V'
52887 WHEN 4 THEN 'PO_EXTRACT_DETAIL_V'
52888 WHEN 5 THEN 'PO_EXTRACT_DETAIL_V'
52889 WHEN 6 THEN 'PO_EXTRACT_DETAIL_V'
52890 WHEN 7 THEN 'PO_EXTRACT_DETAIL_V'
52891 WHEN 8 THEN 'PO_EXTRACT_DETAIL_V'
52892 WHEN 9 THEN 'PO_EXTRACT_DETAIL_V'
52893 WHEN 10 THEN 'PO_EXTRACT_DETAIL_V'
52894 WHEN 11 THEN 'PO_EXTRACT_DETAIL_V'
52895 WHEN 12 THEN 'PO_EXTRACT_DETAIL_V'
52896 WHEN 13 THEN 'PO_EXTRACT_DETAIL_V'
52897 WHEN 14 THEN 'PO_EXTRACT_DETAIL_V'
52898 WHEN 15 THEN 'PO_EXTRACT_DETAIL_V'
52899 WHEN 16 THEN 'PO_EXTRACT_DETAIL_V'
52900 WHEN 17 THEN 'PO_EXTRACT_DETAIL_V'
52901 WHEN 18 THEN 'PO_EXTRACT_DETAIL_V'
52902 WHEN 19 THEN 'PO_EXTRACT_DETAIL_V'
52903 WHEN 20 THEN 'PO_DISTS_REF_V'
52904 WHEN 21 THEN 'PO_DISTS_REF_V'
52905 WHEN 22 THEN 'PO_DISTS_REF_V'
52906 WHEN 23 THEN 'PO_EXTRACT_DETAIL_V'
52907
52908 ELSE null
52909 END object_name
52910 , CASE r
52911 WHEN 1 THEN 'LINE'
52912 WHEN 2 THEN 'LINE'
52913 WHEN 3 THEN 'LINE'
52914 WHEN 4 THEN 'LINE'
52915 WHEN 5 THEN 'LINE'
52916 WHEN 6 THEN 'LINE'
52917 WHEN 7 THEN 'LINE'
52918 WHEN 8 THEN 'LINE'
52919 WHEN 9 THEN 'LINE'
52920 WHEN 10 THEN 'LINE'
52921 WHEN 11 THEN 'LINE'
52922 WHEN 12 THEN 'LINE'
52923 WHEN 13 THEN 'LINE'
52924 WHEN 14 THEN 'LINE'
52925 WHEN 15 THEN 'LINE'
52926 WHEN 16 THEN 'LINE'
52927 WHEN 17 THEN 'LINE'
52928 WHEN 18 THEN 'LINE'
52929 WHEN 19 THEN 'LINE'
52930 WHEN 20 THEN 'LINE'
52931 WHEN 21 THEN 'LINE'
52932 WHEN 22 THEN 'LINE'
52933 WHEN 23 THEN 'LINE'
52934
52935 ELSE null
52936 END object_type_code
52937 , CASE r
52938 WHEN 1 THEN '201'
52939 WHEN 2 THEN '201'
52940 WHEN 3 THEN '201'
52941 WHEN 4 THEN '201'
52942 WHEN 5 THEN '201'
52943 WHEN 6 THEN '201'
52944 WHEN 7 THEN '201'
52945 WHEN 8 THEN '201'
52946 WHEN 9 THEN '201'
52947 WHEN 10 THEN '201'
52948 WHEN 11 THEN '201'
52949 WHEN 12 THEN '201'
52950 WHEN 13 THEN '201'
52951 WHEN 14 THEN '201'
52952 WHEN 15 THEN '201'
52953 WHEN 16 THEN '201'
52954 WHEN 17 THEN '201'
52955 WHEN 18 THEN '201'
52956 WHEN 19 THEN '201'
52957 WHEN 20 THEN '201'
52958 WHEN 21 THEN '201'
52959 WHEN 22 THEN '201'
52960 WHEN 23 THEN '201'
52961
52962 ELSE null
52963 END source_application_id
52964 , 'S' source_type_code
52965 , CASE r
52966 WHEN 1 THEN 'JE_LINE_DESCRIPTION'
52967 WHEN 2 THEN 'BUDGET_ACCOUNT'
52968 WHEN 3 THEN 'MAIN_OR_BACKING_CODE'
52969 WHEN 4 THEN 'ACCOUNTING_REVERSAL_FLAG'
52970 WHEN 5 THEN 'PO_DISTRIBUTION_ID'
52971 WHEN 6 THEN 'ENTERED_AMT'
52972 WHEN 7 THEN 'CURRENCY_CODE'
52973 WHEN 8 THEN 'ACCOUNTED_AMT'
52974 WHEN 9 THEN 'ALLOC_TO_DISTRIBUTION_TYPE'
52975 WHEN 10 THEN 'ALLOC_TO_DIST_ID_1'
52976 WHEN 11 THEN 'APPLIED_TO_APPL_ID'
52977 WHEN 12 THEN 'APPLIED_TO_DIST_LINK_TYPE'
52978 WHEN 13 THEN 'APPLIED_TO_ENTITY_CODE'
52979 WHEN 14 THEN 'APPLIED_TO_DIST_ID_1'
52980 WHEN 15 THEN 'APPLIED_TO_HEADER_ID_1'
52981 WHEN 16 THEN 'DISTRIBUTION_LINK_TYPE'
52982 WHEN 17 THEN 'PO_ENCUM_UPG_OPTION'
52983 WHEN 18 THEN 'JFMIP_REFERENCE'
52984 WHEN 19 THEN 'PO_UPG_ENC_TYPE_ID'
52985 WHEN 20 THEN 'CURRENCY_CONVERSION_DATE'
52986 WHEN 21 THEN 'CURRENCY_CONVERSION_RATE'
52987 WHEN 22 THEN 'CURRENCY_CONVERSION_TYPE'
52988 WHEN 23 THEN 'ADJUSTMENT_STATUS'
52989
52990 ELSE null
52991 END source_code
52992 , CASE r
52993 WHEN 1 THEN TO_CHAR(l2.JE_LINE_DESCRIPTION)
52994 WHEN 2 THEN TO_CHAR(l2.BUDGET_ACCOUNT)
52995 WHEN 3 THEN TO_CHAR(l2.MAIN_OR_BACKING_CODE)
52996 WHEN 4 THEN TO_CHAR(l2.ACCOUNTING_REVERSAL_FLAG)
52997 WHEN 5 THEN TO_CHAR(l2.PO_DISTRIBUTION_ID)
52998 WHEN 6 THEN TO_CHAR(l2.ENTERED_AMT)
52999 WHEN 7 THEN TO_CHAR(l2.CURRENCY_CODE)
53000 WHEN 8 THEN TO_CHAR(l2.ACCOUNTED_AMT)
53001 WHEN 9 THEN TO_CHAR(l2.ALLOC_TO_DISTRIBUTION_TYPE)
53002 WHEN 10 THEN TO_CHAR(l2.ALLOC_TO_DIST_ID_1)
53003 WHEN 11 THEN TO_CHAR(l2.APPLIED_TO_APPL_ID)
53004 WHEN 12 THEN TO_CHAR(l2.APPLIED_TO_DIST_LINK_TYPE)
53005 WHEN 13 THEN TO_CHAR(l2.APPLIED_TO_ENTITY_CODE)
53006 WHEN 14 THEN TO_CHAR(l2.APPLIED_TO_DIST_ID_1)
53007 WHEN 15 THEN TO_CHAR(l2.APPLIED_TO_HEADER_ID_1)
53008 WHEN 16 THEN TO_CHAR(l2.DISTRIBUTION_LINK_TYPE)
53009 WHEN 17 THEN TO_CHAR(l2.PO_ENCUM_UPG_OPTION)
53010 WHEN 18 THEN TO_CHAR(l2.JFMIP_REFERENCE)
53011 WHEN 19 THEN TO_CHAR(l2.PO_UPG_ENC_TYPE_ID)
53012 WHEN 20 THEN TO_CHAR(l1.CURRENCY_CONVERSION_DATE)
53013 WHEN 21 THEN TO_CHAR(l1.CURRENCY_CONVERSION_RATE)
53014 WHEN 22 THEN TO_CHAR(l1.CURRENCY_CONVERSION_TYPE)
53015 WHEN 23 THEN TO_CHAR(l2.ADJUSTMENT_STATUS)
53016
53017 ELSE null
53018 END source_value
53019 , null source_meaning
53020 FROM xla_events_gt xet
53021 , PO_DISTS_REF_V l1
53022 , PO_EXTRACT_DETAIL_V l2
53023 , (select rownum r from all_objects where rownum <= 23 and owner = p_apps_owner)
53024 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
53025 AND xet.event_class_code = C_EVENT_CLASS_CODE
53026 AND l2.event_id = xet.event_id
53027 AND l2.po_distribution_id = l1.po_distribution_id (+) and l2.po_distribution_type = l1.po_distribution_type (+)
53028 )
53029 ;
53030 --
53031 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
53032
53033 trace
53034 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
53035 ,p_level => C_LEVEL_STATEMENT
53036 ,p_module => l_log_module);
53037
53038 END IF;
53039
53040
53041 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53042 trace
53043 (p_msg => 'END of insert_sources_87'
53044 ,p_level => C_LEVEL_PROCEDURE
53045 ,p_module => l_log_module);
53046 END IF;
53047 EXCEPTION
53048 WHEN xla_exceptions_pkg.application_exception THEN
53049 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
53050 trace
53051 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
53052 ,p_level => C_LEVEL_EXCEPTION
53053 ,p_module => l_log_module);
53054 END IF;
53055 RAISE;
53056 WHEN OTHERS THEN
53057 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
53058 trace
53059 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
53060 ,p_level => C_LEVEL_EXCEPTION
53061 ,p_module => l_log_module);
53062 END IF;
53063 xla_exceptions_pkg.raise_message
53064 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.insert_sources_87');
53065 END insert_sources_87;
53066 --
53067
53068 ---------------------------------------
53069 --
53070 -- PRIVATE FUNCTION
53071 -- EventClass_87
53072 --
53073 ----------------------------------------
53074 --
53075 FUNCTION EventClass_87
53076 (p_application_id IN NUMBER
53077 ,p_base_ledger_id IN NUMBER
53078 ,p_target_ledger_id IN NUMBER
53079 ,p_language IN VARCHAR2
53080 ,p_currency_code IN VARCHAR2
53081 ,p_sla_ledger_id IN NUMBER
53082 ,p_pad_start_date IN DATE
53083 ,p_pad_end_date IN DATE
53084 ,p_primary_ledger_id IN NUMBER)
53085 RETURN BOOLEAN IS
53086 --
53087 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'RELEASE_ALL';
53088 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'RELEASE';
53089
53090 l_calculate_acctd_flag VARCHAR2(1) :='N';
53091 l_calculate_g_l_flag VARCHAR2(1) :='N';
53092 --
53093 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
53094 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
53095 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
53096 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
53097 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
53098 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
53099 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
53100 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
53101 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
53102 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
53103 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
53104 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
53105 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
53106 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
53107 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
53108 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
53109 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
53110 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
53111 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
53112 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
53113 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
53114 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
53115 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
53116 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
53117
53118 l_event_id NUMBER;
53119 l_previous_event_id NUMBER;
53120 l_first_event_id NUMBER;
53121 l_last_event_id NUMBER;
53122
53123 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
53124 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
53125 --
53126 --
53127 l_result BOOLEAN := TRUE;
53128 l_rows NUMBER := 1000;
53129 l_event_type_name VARCHAR2(80) := 'All';
53130 l_event_class_name VARCHAR2(80) := 'Release';
53131 l_description VARCHAR2(4000);
53132 l_transaction_reversal NUMBER;
53133 l_ae_header_id NUMBER;
53134 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
53135 l_log_module VARCHAR2(240);
53136 --
53137 l_acct_reversal_source VARCHAR2(30);
53138 l_trx_reversal_source VARCHAR2(30);
53139
53140 l_continue_with_lines BOOLEAN := TRUE;
53141 --
53142 l_acc_rev_gl_date_source DATE; -- 4262811
53143 --
53144 type t_array_event_id is table of number index by binary_integer;
53145
53146 l_rec_array_event t_rec_array_event;
53147 l_null_rec_array_event t_rec_array_event;
53148 l_array_ae_header_id xla_number_array_type;
53149 l_actual_flag VARCHAR2(1) := NULL;
53150 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
53151 l_balance_type_code VARCHAR2(1) :=NULL;
53152 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
53153
53154 --
53155 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
53156 --
53157
53158 TYPE t_array_source_1 IS TABLE OF PO_EXTRACT_HEADER_V.PO_TYPE%TYPE INDEX BY BINARY_INTEGER;
53159 TYPE t_array_source_2 IS TABLE OF PO_EXTRACT_HEADER_V.PO_NUMBER%TYPE INDEX BY BINARY_INTEGER;
53160 TYPE t_array_source_8 IS TABLE OF PO_RELEASES_REF_V.PO_RELEASE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
53161 TYPE t_array_source_66 IS TABLE OF PO_EXTRACT_HEADER_V.PO_RELEASE_ID%TYPE INDEX BY BINARY_INTEGER;
53162 TYPE t_array_source_79 IS TABLE OF PO_EXTRACT_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
53163 TYPE t_array_source_80 IS TABLE OF PO_EXTRACT_HEADER_V.ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
53164
53165 TYPE t_array_source_7 IS TABLE OF PO_EXTRACT_DETAIL_V.JE_LINE_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
53166 TYPE t_array_source_11 IS TABLE OF PO_EXTRACT_DETAIL_V.BUDGET_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
53167 TYPE t_array_source_13 IS TABLE OF PO_EXTRACT_DETAIL_V.MAIN_OR_BACKING_CODE%TYPE INDEX BY BINARY_INTEGER;
53168 TYPE t_array_source_16 IS TABLE OF PO_EXTRACT_DETAIL_V.ACCOUNTING_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
53169 TYPE t_array_source_29 IS TABLE OF PO_EXTRACT_DETAIL_V.PO_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
53170 TYPE t_array_source_33 IS TABLE OF PO_EXTRACT_DETAIL_V.ENTERED_AMT%TYPE INDEX BY BINARY_INTEGER;
53171 TYPE t_array_source_34 IS TABLE OF PO_EXTRACT_DETAIL_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
53172 TYPE t_array_source_35 IS TABLE OF PO_EXTRACT_DETAIL_V.ACCOUNTED_AMT%TYPE INDEX BY BINARY_INTEGER;
53173 TYPE t_array_source_49 IS TABLE OF PO_EXTRACT_DETAIL_V.ALLOC_TO_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
53174 TYPE t_array_source_51 IS TABLE OF PO_EXTRACT_DETAIL_V.ALLOC_TO_DIST_ID_1%TYPE INDEX BY BINARY_INTEGER;
53175 TYPE t_array_source_53 IS TABLE OF PO_EXTRACT_DETAIL_V.APPLIED_TO_APPL_ID%TYPE INDEX BY BINARY_INTEGER;
53176 TYPE t_array_source_54 IS TABLE OF PO_EXTRACT_DETAIL_V.APPLIED_TO_DIST_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
53177 TYPE t_array_source_55 IS TABLE OF PO_EXTRACT_DETAIL_V.APPLIED_TO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
53178 TYPE t_array_source_56 IS TABLE OF PO_EXTRACT_DETAIL_V.APPLIED_TO_DIST_ID_1%TYPE INDEX BY BINARY_INTEGER;
53179 TYPE t_array_source_57 IS TABLE OF PO_EXTRACT_DETAIL_V.APPLIED_TO_HEADER_ID_1%TYPE INDEX BY BINARY_INTEGER;
53180 TYPE t_array_source_58 IS TABLE OF PO_EXTRACT_DETAIL_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
53181 TYPE t_array_source_59 IS TABLE OF PO_EXTRACT_DETAIL_V.PO_ENCUM_UPG_OPTION%TYPE INDEX BY BINARY_INTEGER;
53182 TYPE t_array_source_60 IS TABLE OF PO_EXTRACT_DETAIL_V.JFMIP_REFERENCE%TYPE INDEX BY BINARY_INTEGER;
53183 TYPE t_array_source_61 IS TABLE OF PO_EXTRACT_DETAIL_V.PO_UPG_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
53184 TYPE t_array_source_62 IS TABLE OF PO_DISTS_REF_V.CURRENCY_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
53185 TYPE t_array_source_63 IS TABLE OF PO_DISTS_REF_V.CURRENCY_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
53186 TYPE t_array_source_64 IS TABLE OF PO_DISTS_REF_V.CURRENCY_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
53187 TYPE t_array_source_75 IS TABLE OF PO_EXTRACT_DETAIL_V.ADJUSTMENT_STATUS%TYPE INDEX BY BINARY_INTEGER;
53188
53189 l_array_source_1 t_array_source_1;
53190 l_array_source_2 t_array_source_2;
53191 l_array_source_8 t_array_source_8;
53192 l_array_source_66 t_array_source_66;
53193 l_array_source_79 t_array_source_79;
53194 l_array_source_80 t_array_source_80;
53195
53196 l_array_source_7 t_array_source_7;
53197 l_array_source_11 t_array_source_11;
53198 l_array_source_13 t_array_source_13;
53199 l_array_source_16 t_array_source_16;
53200 l_array_source_29 t_array_source_29;
53201 l_array_source_33 t_array_source_33;
53202 l_array_source_34 t_array_source_34;
53203 l_array_source_35 t_array_source_35;
53204 l_array_source_49 t_array_source_49;
53205 l_array_source_51 t_array_source_51;
53206 l_array_source_53 t_array_source_53;
53207 l_array_source_54 t_array_source_54;
53208 l_array_source_55 t_array_source_55;
53209 l_array_source_56 t_array_source_56;
53210 l_array_source_57 t_array_source_57;
53211 l_array_source_58 t_array_source_58;
53212 l_array_source_59 t_array_source_59;
53213 l_array_source_60 t_array_source_60;
53214 l_array_source_61 t_array_source_61;
53215 l_array_source_62 t_array_source_62;
53216 l_array_source_63 t_array_source_63;
53217 l_array_source_64 t_array_source_64;
53218 l_array_source_75 t_array_source_75;
53219
53220 --
53221 CURSOR header_cur
53222 IS
53223 SELECT /*+ leading(xet) cardinality(xet,1) */
53224 -- Event Class Code: RELEASE
53225 xet.entity_id
53226 ,xet.legal_entity_id
53227 ,xet.entity_code
53228 ,xet.transaction_number
53229 ,xet.event_id
53230 ,xet.event_class_code
53231 ,xet.event_type_code
53232 ,xet.event_number
53233 ,xet.event_date
53234 ,xet.transaction_date
53235 ,xet.reference_num_1
53236 ,xet.reference_num_2
53237 ,xet.reference_num_3
53238 ,xet.reference_num_4
53239 ,xet.reference_char_1
53240 ,xet.reference_char_2
53241 ,xet.reference_char_3
53242 ,xet.reference_char_4
53243 ,xet.reference_date_1
53244 ,xet.reference_date_2
53245 ,xet.reference_date_3
53246 ,xet.reference_date_4
53247 ,xet.event_created_by
53248 ,xet.budgetary_control_flag
53249 , h3.PO_TYPE source_1
53250 , h3.PO_NUMBER source_2
53251 , h4.PO_RELEASE_NUMBER source_8
53252 , h3.PO_RELEASE_ID source_66
53253 , h3.GL_DATE source_79
53254 , h3.ENCUMBRANCE_TYPE_ID source_80
53255 FROM xla_events_gt xet
53256 , PO_EXTRACT_HEADER_V h3
53257 , PO_RELEASES_REF_V h4
53258 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
53259 and xet.event_class_code = C_EVENT_CLASS_CODE
53260 and xet.event_status_code <> 'N' AND h3.event_id = xet.event_id
53261 AND h3.po_release_id = h4.po_release_id
53262 ORDER BY event_id
53263 ;
53264
53265
53266 --
53267 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
53268 IS
53269 SELECT /*+ leading(xet) cardinality(xet,1) */
53270 -- Event Class Code: RELEASE
53271 xet.entity_id
53272 ,xet.legal_entity_id
53273 ,xet.entity_code
53274 ,xet.transaction_number
53275 ,xet.event_id
53276 ,xet.event_class_code
53277 ,xet.event_type_code
53278 ,xet.event_number
53279 ,xet.event_date
53280 ,xet.transaction_date
53281 ,xet.reference_num_1
53282 ,xet.reference_num_2
53283 ,xet.reference_num_3
53284 ,xet.reference_num_4
53285 ,xet.reference_char_1
53286 ,xet.reference_char_2
53287 ,xet.reference_char_3
53288 ,xet.reference_char_4
53289 ,xet.reference_date_1
53290 ,xet.reference_date_2
53291 ,xet.reference_date_3
53292 ,xet.reference_date_4
53293 ,xet.event_created_by
53294 ,xet.budgetary_control_flag
53295 , l2.LINE_NUMBER
53296 , l2.JE_LINE_DESCRIPTION source_7
53297 , l2.BUDGET_ACCOUNT source_11
53298 , l2.MAIN_OR_BACKING_CODE source_13
53299 , l2.ACCOUNTING_REVERSAL_FLAG source_16
53300 , l2.PO_DISTRIBUTION_ID source_29
53301 , l2.ENTERED_AMT source_33
53302 , l2.CURRENCY_CODE source_34
53303 , l2.ACCOUNTED_AMT source_35
53304 , l2.ALLOC_TO_DISTRIBUTION_TYPE source_49
53305 , l2.ALLOC_TO_DIST_ID_1 source_51
53306 , l2.APPLIED_TO_APPL_ID source_53
53307 , l2.APPLIED_TO_DIST_LINK_TYPE source_54
53308 , l2.APPLIED_TO_ENTITY_CODE source_55
53309 , l2.APPLIED_TO_DIST_ID_1 source_56
53310 , l2.APPLIED_TO_HEADER_ID_1 source_57
53311 , l2.DISTRIBUTION_LINK_TYPE source_58
53312 , l2.PO_ENCUM_UPG_OPTION source_59
53313 , l2.JFMIP_REFERENCE source_60
53314 , l2.PO_UPG_ENC_TYPE_ID source_61
53315 , l1.CURRENCY_CONVERSION_DATE source_62
53316 , l1.CURRENCY_CONVERSION_RATE source_63
53317 , l1.CURRENCY_CONVERSION_TYPE source_64
53318 , l2.ADJUSTMENT_STATUS source_75
53319 FROM xla_events_gt xet
53320 , PO_DISTS_REF_V l1
53321 , PO_EXTRACT_DETAIL_V l2
53322 WHERE xet.event_id between x_first_event_id and x_last_event_id
53323 and xet.event_date between p_pad_start_date and p_pad_end_date
53324 and xet.event_class_code = C_EVENT_CLASS_CODE
53325 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
53326 AND l2.po_distribution_id = l1.po_distribution_id (+) AND l2.po_distribution_type = l1.po_distribution_type (+) ;
53327
53328 --
53329 BEGIN
53330 IF g_log_enabled THEN
53331 l_log_module := C_DEFAULT_MODULE||'.EventClass_87';
53332 END IF;
53333 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53334 trace
53335 (p_msg => 'BEGIN of EventClass_87'
53336 ,p_level => C_LEVEL_PROCEDURE
53337 ,p_module => l_log_module);
53338 END IF;
53339
53340 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
53341 trace
53342 (p_msg => 'p_application_id = '||p_application_id||
53343 ' - p_base_ledger_id = '||p_base_ledger_id||
53344 ' - p_target_ledger_id = '||p_target_ledger_id||
53345 ' - p_language = '||p_language||
53346 ' - p_currency_code = '||p_currency_code||
53347 ' - p_sla_ledger_id = '||p_sla_ledger_id
53348 ,p_level => C_LEVEL_STATEMENT
53349 ,p_module => l_log_module);
53350 END IF;
53351 --
53352 -- initialze arrays
53353 --
53354 g_array_event.DELETE;
53355 l_rec_array_event := l_null_rec_array_event;
53356 --
53357 --------------------------------------
53358 -- 4262811 Initialze MPA Line Number
53359 --------------------------------------
53360 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
53361
53362 --
53363
53364 --
53365 OPEN header_cur;
53366 --
53367 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
53368 trace
53369 (p_msg => 'SQL - FETCH header_cur'
53370 ,p_level => C_LEVEL_STATEMENT
53371 ,p_module => l_log_module);
53372 END IF;
53373 --
53374 LOOP
53375 FETCH header_cur BULK COLLECT INTO
53376 l_array_entity_id
53377 , l_array_legal_entity_id
53378 , l_array_entity_code
53379 , l_array_transaction_num
53380 , l_array_event_id
53381 , l_array_class_code
53382 , l_array_event_type
53383 , l_array_event_number
53384 , l_array_event_date
53385 , l_array_transaction_date
53386 , l_array_reference_num_1
53387 , l_array_reference_num_2
53388 , l_array_reference_num_3
53389 , l_array_reference_num_4
53390 , l_array_reference_char_1
53391 , l_array_reference_char_2
53392 , l_array_reference_char_3
53393 , l_array_reference_char_4
53394 , l_array_reference_date_1
53395 , l_array_reference_date_2
53396 , l_array_reference_date_3
53397 , l_array_reference_date_4
53398 , l_array_event_created_by
53399 , l_array_budgetary_control_flag
53400 , l_array_source_1
53401 , l_array_source_2
53402 , l_array_source_8
53403 , l_array_source_66
53404 , l_array_source_79
53405 , l_array_source_80
53406 LIMIT l_rows;
53407 --
53408 IF (C_LEVEL_EVENT >= g_log_level) THEN
53409 trace
53410 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
53411 ,p_level => C_LEVEL_EVENT
53412 ,p_module => l_log_module);
53413 END IF;
53414 --
53415 EXIT WHEN l_array_entity_id.COUNT = 0;
53416
53417 -- initialize arrays
53418 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
53419 XLA_AE_LINES_PKG.g_rec_lines := NULL;
53420
53421 --
53422 -- Bug 4458708
53423 --
53424 XLA_AE_LINES_PKG.g_LineNumber := 0;
53425
53426
53427 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
53428 g_last_hdr_idx := l_array_event_id.LAST;
53429 --
53430 -- loop for the headers. Each iteration is for each header extract row
53431 -- fetched in header cursor
53432 --
53433 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
53434
53435 --
53436 -- set event info as cache for other routines to refer event attributes
53437 --
53438 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
53439 (p_application_id => p_application_id
53440 ,p_primary_ledger_id => p_primary_ledger_id
53441 ,p_base_ledger_id => p_base_ledger_id
53442 ,p_target_ledger_id => p_target_ledger_id
53443 ,p_entity_id => l_array_entity_id(hdr_idx)
53444 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
53445 ,p_entity_code => l_array_entity_code(hdr_idx)
53446 ,p_transaction_num => l_array_transaction_num(hdr_idx)
53447 ,p_event_id => l_array_event_id(hdr_idx)
53448 ,p_event_class_code => l_array_class_code(hdr_idx)
53449 ,p_event_type_code => l_array_event_type(hdr_idx)
53450 ,p_event_number => l_array_event_number(hdr_idx)
53451 ,p_event_date => l_array_event_date(hdr_idx)
53452 ,p_transaction_date => l_array_transaction_date(hdr_idx)
53453 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
53454 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
53455 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
53456 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
53457 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
53458 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
53459 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
53460 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
53461 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
53462 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
53463 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
53464 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
53465 ,p_event_created_by => l_array_event_created_by(hdr_idx)
53466 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
53467
53468 --
53469 -- set the status of entry to C_VALID (0)
53470 --
53471 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
53472
53473 --
53474 -- initialize a row for ae header
53475 --
53476 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
53477
53478 l_event_id := l_array_event_id(hdr_idx);
53479
53480 --
53481 -- storing the hdr_idx for event. May be used by line cursor.
53482 --
53483 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
53484
53485 --
53486 -- store sources from header extract. This can be improved to
53487 -- store only those sources from header extract that may be used in lines
53488 --
53489
53490 g_array_event(l_event_id).array_value_char('source_1') := l_array_source_1(hdr_idx);
53491 g_array_event(l_event_id).array_value_char('source_2') := l_array_source_2(hdr_idx);
53492 g_array_event(l_event_id).array_value_num('source_8') := l_array_source_8(hdr_idx);
53493 g_array_event(l_event_id).array_value_num('source_66') := l_array_source_66(hdr_idx);
53494 g_array_event(l_event_id).array_value_date('source_79') := l_array_source_79(hdr_idx);
53495 g_array_event(l_event_id).array_value_num('source_80') := l_array_source_80(hdr_idx);
53496
53497 --
53498 -- initilaize the status of ae headers for diffrent balance types
53499 -- the status is initialised to C_NOT_CREATED (2)
53500 --
53501 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
53502 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
53503 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
53504
53505 --
53506 -- call api to validate and store accounting attributes for header
53507 --
53508
53509 ------------------------------------------------------------
53510 -- Accrual Reversal : to get date for Standard Source (NONE)
53511 ------------------------------------------------------------
53512 l_acc_rev_gl_date_source := NULL;
53513
53514 l_rec_acct_attrs.array_acct_attr_code(1) := 'ENCUMBRANCE_TYPE_ID';
53515 l_rec_acct_attrs.array_num_value(1) := g_array_event(l_event_id).array_value_num('source_80');
53516 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_DATE';
53517 l_rec_acct_attrs.array_date_value(2) := g_array_event(l_event_id).array_value_date('source_79');
53518
53519
53520 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
53521
53522 XLA_AE_HEADER_PKG.SetJeCategoryName;
53523
53524 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
53525 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
53526 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
53527 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
53528 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
53529
53530
53531 --
53532 xla_ae_header_pkg.SetHdrDescription(
53533 p_description => Description_4 (
53534 p_application_id => p_application_id
53535 , p_source_1 => g_array_event(l_event_id).array_value_char('source_1')
53536 , p_source_2 => g_array_event(l_event_id).array_value_char('source_2')
53537 , p_source_8 => g_array_event(l_event_id).array_value_num('source_8')
53538 )
53539 );
53540 --
53541
53542 -- No header level analytical criteria
53543
53544 --
53545 --accounting attribute enhancement, bug 3612931
53546 --
53547 l_trx_reversal_source := SUBSTR(NULL, 1,30);
53548
53549 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
53550 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
53551
53552 xla_accounting_err_pkg.build_message
53553 (p_appli_s_name => 'XLA'
53554 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
53555 ,p_token_1 => 'ACCT_ATTR_NAME'
53556 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
53557 ,p_token_2 => 'PRODUCT_NAME'
53558 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
53559 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
53560 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
53561 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
53562
53563 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
53564 --
53565 -- following sets the accounting attributes needed to reverse
53566 -- accounting for a distributeion
53567 --
53568 xla_ae_lines_pkg.SetTrxReversalAttrs
53569 (p_event_id => l_event_id
53570 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
53571 ,p_trx_reversal_source => l_trx_reversal_source);
53572
53573 END IF;
53574
53575
53576 ----------------------------------------------------------------
53577 -- 4262811 - update the header statuses to invalid in need be
53578 ----------------------------------------------------------------
53579 --
53580 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
53581
53582
53583 -----------------------------------------------
53584 -- No accrual reversal for the event class/type
53585 -----------------------------------------------
53586 ----------------------------------------------------------------
53587
53588 --
53589 -- this ends the header loop iteration for one bulk fetch
53590 --
53591 END LOOP;
53592
53593 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
53594 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
53595
53596 --
53597 -- insert dummy rows into lines gt table that were created due to
53598 -- transaction reversals
53599 --
53600 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
53601 l_result := XLA_AE_LINES_PKG.InsertLines;
53602 END IF;
53603
53604 --
53605 -- reset the temp_line_num for each set of events fetched from header
53606 -- cursor rather than doing it for each new event in line cursor
53607 -- Bug 3939231
53608 --
53609 xla_ae_lines_pkg.g_temp_line_num := 0;
53610
53611
53612
53613 --
53614 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
53615 --
53616 --
53617 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
53618
53619 trace
53620 (p_msg => 'SQL - FETCH line_cur'
53621 ,p_level => C_LEVEL_STATEMENT
53622 ,p_module => l_log_module);
53623
53624 END IF;
53625 --
53626 --
53627 LOOP
53628 --
53629 FETCH line_cur BULK COLLECT INTO
53630 l_array_entity_id
53631 , l_array_legal_entity_id
53632 , l_array_entity_code
53633 , l_array_transaction_num
53634 , l_array_event_id
53635 , l_array_class_code
53636 , l_array_event_type
53637 , l_array_event_number
53638 , l_array_event_date
53639 , l_array_transaction_date
53640 , l_array_reference_num_1
53641 , l_array_reference_num_2
53642 , l_array_reference_num_3
53643 , l_array_reference_num_4
53644 , l_array_reference_char_1
53645 , l_array_reference_char_2
53646 , l_array_reference_char_3
53647 , l_array_reference_char_4
53648 , l_array_reference_date_1
53649 , l_array_reference_date_2
53650 , l_array_reference_date_3
53651 , l_array_reference_date_4
53652 , l_array_event_created_by
53653 , l_array_budgetary_control_flag
53654 , l_array_extract_line_num
53655 , l_array_source_7
53656 , l_array_source_11
53657 , l_array_source_13
53658 , l_array_source_16
53659 , l_array_source_29
53660 , l_array_source_33
53661 , l_array_source_34
53662 , l_array_source_35
53663 , l_array_source_49
53664 , l_array_source_51
53665 , l_array_source_53
53666 , l_array_source_54
53667 , l_array_source_55
53668 , l_array_source_56
53669 , l_array_source_57
53670 , l_array_source_58
53671 , l_array_source_59
53672 , l_array_source_60
53673 , l_array_source_61
53674 , l_array_source_62
53675 , l_array_source_63
53676 , l_array_source_64
53677 , l_array_source_75
53678 LIMIT l_rows;
53679
53680 --
53681 IF (C_LEVEL_EVENT >= g_log_level) THEN
53682 trace
53683 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
53684 ,p_level => C_LEVEL_EVENT
53685 ,p_module => l_log_module);
53686 END IF;
53687 --
53688 EXIT WHEN l_array_entity_id.count = 0;
53689
53690 XLA_AE_LINES_PKG.g_rec_lines := null;
53691
53692 --
53693 -- Bug 4458708
53694 --
53695 XLA_AE_LINES_PKG.g_LineNumber := 0;
53696 --
53697 --
53698
53699 FOR Idx IN 1..l_array_event_id.count LOOP
53700 --
53701 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
53702 --
53703 l_event_id := l_array_event_id(idx); -- 5648433
53704
53705 --
53706 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
53707 --
53708
53709 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
53710 (g_array_event(l_event_id).array_value_num('header_index'))
53711 ,'N'
53712 ) <> 'Y'
53713 THEN
53714 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
53715 trace
53716 (p_msg => 'Trancaction revesal option is not Y '
53717 ,p_level => C_LEVEL_STATEMENT
53718 ,p_module => l_log_module);
53719 END IF;
53720
53721 --
53722 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
53723 --
53724 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
53725 --
53726 -- set event info as cache for other routines to refer event attributes
53727 --
53728
53729 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
53730 l_previous_event_id := l_event_id;
53731
53732 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
53733 (p_application_id => p_application_id
53734 ,p_primary_ledger_id => p_primary_ledger_id
53735 ,p_base_ledger_id => p_base_ledger_id
53736 ,p_target_ledger_id => p_target_ledger_id
53737 ,p_entity_id => l_array_entity_id(Idx)
53738 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
53739 ,p_entity_code => l_array_entity_code(Idx)
53740 ,p_transaction_num => l_array_transaction_num(Idx)
53741 ,p_event_id => l_array_event_id(Idx)
53742 ,p_event_class_code => l_array_class_code(Idx)
53743 ,p_event_type_code => l_array_event_type(Idx)
53744 ,p_event_number => l_array_event_number(Idx)
53745 ,p_event_date => l_array_event_date(Idx)
53746 ,p_transaction_date => l_array_transaction_date(Idx)
53747 ,p_reference_num_1 => l_array_reference_num_1(Idx)
53748 ,p_reference_num_2 => l_array_reference_num_2(Idx)
53749 ,p_reference_num_3 => l_array_reference_num_3(Idx)
53750 ,p_reference_num_4 => l_array_reference_num_4(Idx)
53751 ,p_reference_char_1 => l_array_reference_char_1(Idx)
53752 ,p_reference_char_2 => l_array_reference_char_2(Idx)
53753 ,p_reference_char_3 => l_array_reference_char_3(Idx)
53754 ,p_reference_char_4 => l_array_reference_char_4(Idx)
53755 ,p_reference_date_1 => l_array_reference_date_1(Idx)
53756 ,p_reference_date_2 => l_array_reference_date_2(Idx)
53757 ,p_reference_date_3 => l_array_reference_date_3(Idx)
53758 ,p_reference_date_4 => l_array_reference_date_4(Idx)
53759 ,p_event_created_by => l_array_event_created_by(Idx)
53760 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
53761 --
53762 END IF;
53763
53764
53765
53766 --
53767 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
53768
53769 l_acct_reversal_source := SUBSTR(l_array_source_16(Idx), 1,30);
53770
53771 IF l_continue_with_lines THEN
53772 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
53773 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
53774
53775 xla_accounting_err_pkg.build_message
53776 (p_appli_s_name => 'XLA'
53777 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
53778 ,p_token_1 => 'LINE_NUMBER'
53779 ,p_value_1 => l_array_extract_line_num(Idx)
53780 ,p_token_2 => 'PRODUCT_NAME'
53781 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
53782 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
53783 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
53784 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
53785
53786 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
53787 --
53788 -- following sets the accounting attributes needed to reverse
53789 -- accounting for a distributeion
53790 --
53791
53792 --
53793 -- 5217187
53794 --
53795 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
53796 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
53797 g_array_event(l_event_id).array_value_num('header_index'));
53798 --
53799 --
53800
53801 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
53802 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_16(Idx);
53803 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
53804 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_29(Idx);
53805 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
53806 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_58(Idx);
53807 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
53808 l_rec_rev_acct_attrs.array_num_value(5) := TO_NUMBER(l_array_source_11(Idx));
53809 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
53810 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_33(Idx);
53811 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
53812 l_rec_rev_acct_attrs.array_char_value(7) := l_array_source_34(Idx);
53813 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
53814 l_rec_rev_acct_attrs.array_num_value(8) := l_array_source_35(Idx);
53815 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
53816 l_rec_rev_acct_attrs.array_num_value(9) := TO_NUMBER(l_array_source_11(Idx));
53817 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
53818 l_rec_rev_acct_attrs.array_num_value(10) := l_array_source_33(Idx);
53819 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
53820 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_34(Idx);
53821 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
53822 l_rec_rev_acct_attrs.array_num_value(12) := l_array_source_35(Idx);
53823 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
53824 l_rec_rev_acct_attrs.array_char_value(13) := l_array_source_59(Idx);
53825 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
53826 l_rec_rev_acct_attrs.array_num_value(14) := l_array_source_56(Idx);
53827 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
53828 l_rec_rev_acct_attrs.array_char_value(15) := l_array_source_54(Idx);
53829 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'UPG_CR_ENC_TYPE_ID';
53830 l_rec_rev_acct_attrs.array_num_value(16) := l_array_source_61(Idx);
53831 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'UPG_DR_ENC_TYPE_ID';
53832 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_61(Idx);
53833
53834
53835 xla_ae_lines_pkg.SetAcctReversalAttrs
53836 (p_event_id => l_event_id
53837 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
53838 ,p_calculate_acctd_flag => l_calculate_acctd_flag
53839 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
53840 END IF;
53841
53842 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
53843 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
53844
53845 --
53846 AcctLineType_19 (
53847 p_application_id => p_application_id
53848 ,p_event_id => l_event_id
53849 ,p_calculate_acctd_flag => l_calculate_acctd_flag
53850 ,p_calculate_g_l_flag => l_calculate_g_l_flag
53851 ,p_actual_flag => l_actual_flag
53852 ,p_balance_type_code => l_balance_type_code
53853 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
53854
53855 , p_source_11 => l_array_source_11(Idx)
53856 , p_source_13 => l_array_source_13(Idx)
53857 , p_source_16 => l_array_source_16(Idx)
53858 , p_source_29 => l_array_source_29(Idx)
53859 , p_source_33 => l_array_source_33(Idx)
53860 , p_source_34 => l_array_source_34(Idx)
53861 , p_source_35 => l_array_source_35(Idx)
53862 , p_source_49 => l_array_source_49(Idx)
53863 , p_source_51 => l_array_source_51(Idx)
53864 , p_source_53 => l_array_source_53(Idx)
53865 , p_source_54 => l_array_source_54(Idx)
53866 , p_source_55 => l_array_source_55(Idx)
53867 , p_source_56 => l_array_source_56(Idx)
53868 , p_source_57 => l_array_source_57(Idx)
53869 , p_source_58 => l_array_source_58(Idx)
53870 , p_source_59 => l_array_source_59(Idx)
53871 , p_source_60 => l_array_source_60(Idx)
53872 , p_source_61 => l_array_source_61(Idx)
53873 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
53874 );
53875 If(l_balance_type_code = 'A') THEN
53876 l_actual_gain_loss_ref := l_gain_or_loss_ref;
53877 END IF;
53878
53879 --
53880
53881
53882 --
53883 AcctLineType_20 (
53884 p_application_id => p_application_id
53885 ,p_event_id => l_event_id
53886 ,p_calculate_acctd_flag => l_calculate_acctd_flag
53887 ,p_calculate_g_l_flag => l_calculate_g_l_flag
53888 ,p_actual_flag => l_actual_flag
53889 ,p_balance_type_code => l_balance_type_code
53890 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
53891
53892 , p_source_11 => l_array_source_11(Idx)
53893 , p_source_13 => l_array_source_13(Idx)
53894 , p_source_16 => l_array_source_16(Idx)
53895 , p_source_29 => l_array_source_29(Idx)
53896 , p_source_33 => l_array_source_33(Idx)
53897 , p_source_34 => l_array_source_34(Idx)
53898 , p_source_35 => l_array_source_35(Idx)
53899 , p_source_49 => l_array_source_49(Idx)
53900 , p_source_51 => l_array_source_51(Idx)
53901 , p_source_53 => l_array_source_53(Idx)
53902 , p_source_54 => l_array_source_54(Idx)
53903 , p_source_55 => l_array_source_55(Idx)
53904 , p_source_56 => l_array_source_56(Idx)
53905 , p_source_57 => l_array_source_57(Idx)
53906 , p_source_58 => l_array_source_58(Idx)
53907 , p_source_59 => l_array_source_59(Idx)
53908 , p_source_60 => l_array_source_60(Idx)
53909 , p_source_61 => l_array_source_61(Idx)
53910 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
53911 );
53912 If(l_balance_type_code = 'A') THEN
53913 l_actual_gain_loss_ref := l_gain_or_loss_ref;
53914 END IF;
53915
53916 --
53917
53918
53919 --
53920 AcctLineType_26 (
53921 p_application_id => p_application_id
53922 ,p_event_id => l_event_id
53923 ,p_calculate_acctd_flag => l_calculate_acctd_flag
53924 ,p_calculate_g_l_flag => l_calculate_g_l_flag
53925 ,p_actual_flag => l_actual_flag
53926 ,p_balance_type_code => l_balance_type_code
53927 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
53928
53929 , p_source_11 => l_array_source_11(Idx)
53930 , p_source_13 => l_array_source_13(Idx)
53931 , p_source_16 => l_array_source_16(Idx)
53932 , p_source_29 => l_array_source_29(Idx)
53933 , p_source_33 => l_array_source_33(Idx)
53934 , p_source_34 => l_array_source_34(Idx)
53935 , p_source_35 => l_array_source_35(Idx)
53936 , p_source_49 => l_array_source_49(Idx)
53937 , p_source_51 => l_array_source_51(Idx)
53938 , p_source_53 => l_array_source_53(Idx)
53939 , p_source_54 => l_array_source_54(Idx)
53940 , p_source_55 => l_array_source_55(Idx)
53941 , p_source_56 => l_array_source_56(Idx)
53942 , p_source_57 => l_array_source_57(Idx)
53943 , p_source_58 => l_array_source_58(Idx)
53944 , p_source_59 => l_array_source_59(Idx)
53945 , p_source_60 => l_array_source_60(Idx)
53946 , p_source_61 => l_array_source_61(Idx)
53947 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
53948 );
53949 If(l_balance_type_code = 'A') THEN
53950 l_actual_gain_loss_ref := l_gain_or_loss_ref;
53951 END IF;
53952
53953 --
53954
53955
53956 --
53957 AcctLineType_27 (
53958 p_application_id => p_application_id
53959 ,p_event_id => l_event_id
53960 ,p_calculate_acctd_flag => l_calculate_acctd_flag
53961 ,p_calculate_g_l_flag => l_calculate_g_l_flag
53962 ,p_actual_flag => l_actual_flag
53963 ,p_balance_type_code => l_balance_type_code
53964 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
53965
53966 , p_source_11 => l_array_source_11(Idx)
53967 , p_source_13 => l_array_source_13(Idx)
53968 , p_source_16 => l_array_source_16(Idx)
53969 , p_source_29 => l_array_source_29(Idx)
53970 , p_source_33 => l_array_source_33(Idx)
53971 , p_source_34 => l_array_source_34(Idx)
53972 , p_source_35 => l_array_source_35(Idx)
53973 , p_source_49 => l_array_source_49(Idx)
53974 , p_source_51 => l_array_source_51(Idx)
53975 , p_source_53 => l_array_source_53(Idx)
53976 , p_source_54 => l_array_source_54(Idx)
53977 , p_source_55 => l_array_source_55(Idx)
53978 , p_source_56 => l_array_source_56(Idx)
53979 , p_source_57 => l_array_source_57(Idx)
53980 , p_source_58 => l_array_source_58(Idx)
53981 , p_source_59 => l_array_source_59(Idx)
53982 , p_source_60 => l_array_source_60(Idx)
53983 , p_source_61 => l_array_source_61(Idx)
53984 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
53985 );
53986 If(l_balance_type_code = 'A') THEN
53987 l_actual_gain_loss_ref := l_gain_or_loss_ref;
53988 END IF;
53989
53990 --
53991
53992
53993 --
53994 AcctLineType_45 (
53995 p_application_id => p_application_id
53996 ,p_event_id => l_event_id
53997 ,p_calculate_acctd_flag => l_calculate_acctd_flag
53998 ,p_calculate_g_l_flag => l_calculate_g_l_flag
53999 ,p_actual_flag => l_actual_flag
54000 ,p_balance_type_code => l_balance_type_code
54001 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
54002
54003 , p_source_11 => l_array_source_11(Idx)
54004 , p_source_13 => l_array_source_13(Idx)
54005 , p_source_16 => l_array_source_16(Idx)
54006 , p_source_29 => l_array_source_29(Idx)
54007 , p_source_33 => l_array_source_33(Idx)
54008 , p_source_34 => l_array_source_34(Idx)
54009 , p_source_35 => l_array_source_35(Idx)
54010 , p_source_49 => l_array_source_49(Idx)
54011 , p_source_51 => l_array_source_51(Idx)
54012 , p_source_53 => l_array_source_53(Idx)
54013 , p_source_54 => l_array_source_54(Idx)
54014 , p_source_55 => l_array_source_55(Idx)
54015 , p_source_56 => l_array_source_56(Idx)
54016 , p_source_57 => l_array_source_57(Idx)
54017 , p_source_58 => l_array_source_58(Idx)
54018 , p_source_59 => l_array_source_59(Idx)
54019 , p_source_60 => l_array_source_60(Idx)
54020 , p_source_61 => l_array_source_61(Idx)
54021 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
54022 );
54023 If(l_balance_type_code = 'A') THEN
54024 l_actual_gain_loss_ref := l_gain_or_loss_ref;
54025 END IF;
54026
54027 --
54028
54029
54030 --
54031 AcctLineType_50 (
54032 p_application_id => p_application_id
54033 ,p_event_id => l_event_id
54034 ,p_calculate_acctd_flag => l_calculate_acctd_flag
54035 ,p_calculate_g_l_flag => l_calculate_g_l_flag
54036 ,p_actual_flag => l_actual_flag
54037 ,p_balance_type_code => l_balance_type_code
54038 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
54039
54040 , p_source_11 => l_array_source_11(Idx)
54041 , p_source_13 => l_array_source_13(Idx)
54042 , p_source_16 => l_array_source_16(Idx)
54043 , p_source_29 => l_array_source_29(Idx)
54044 , p_source_33 => l_array_source_33(Idx)
54045 , p_source_34 => l_array_source_34(Idx)
54046 , p_source_35 => l_array_source_35(Idx)
54047 , p_source_49 => l_array_source_49(Idx)
54048 , p_source_51 => l_array_source_51(Idx)
54049 , p_source_53 => l_array_source_53(Idx)
54050 , p_source_54 => l_array_source_54(Idx)
54051 , p_source_55 => l_array_source_55(Idx)
54052 , p_source_56 => l_array_source_56(Idx)
54053 , p_source_57 => l_array_source_57(Idx)
54054 , p_source_58 => l_array_source_58(Idx)
54055 , p_source_59 => l_array_source_59(Idx)
54056 , p_source_60 => l_array_source_60(Idx)
54057 , p_source_61 => l_array_source_61(Idx)
54058 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
54059 );
54060 If(l_balance_type_code = 'A') THEN
54061 l_actual_gain_loss_ref := l_gain_or_loss_ref;
54062 END IF;
54063
54064 --
54065
54066
54067 --
54068 AcctLineType_58 (
54069 p_application_id => p_application_id
54070 ,p_event_id => l_event_id
54071 ,p_calculate_acctd_flag => l_calculate_acctd_flag
54072 ,p_calculate_g_l_flag => l_calculate_g_l_flag
54073 ,p_actual_flag => l_actual_flag
54074 ,p_balance_type_code => l_balance_type_code
54075 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
54076
54077 , p_source_7 => l_array_source_7(Idx)
54078 , p_source_11 => l_array_source_11(Idx)
54079 , p_source_13 => l_array_source_13(Idx)
54080 , p_source_16 => l_array_source_16(Idx)
54081 , p_source_29 => l_array_source_29(Idx)
54082 , p_source_33 => l_array_source_33(Idx)
54083 , p_source_34 => l_array_source_34(Idx)
54084 , p_source_35 => l_array_source_35(Idx)
54085 , p_source_53 => l_array_source_53(Idx)
54086 , p_source_54 => l_array_source_54(Idx)
54087 , p_source_55 => l_array_source_55(Idx)
54088 , p_source_56 => l_array_source_56(Idx)
54089 , p_source_57 => l_array_source_57(Idx)
54090 , p_source_58 => l_array_source_58(Idx)
54091 , p_source_59 => l_array_source_59(Idx)
54092 , p_source_60 => l_array_source_60(Idx)
54093 , p_source_61 => l_array_source_61(Idx)
54094 , p_source_62 => l_array_source_62(Idx)
54095 , p_source_63 => l_array_source_63(Idx)
54096 , p_source_64 => l_array_source_64(Idx)
54097 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
54098 );
54099 If(l_balance_type_code = 'A') THEN
54100 l_actual_gain_loss_ref := l_gain_or_loss_ref;
54101 END IF;
54102
54103 --
54104
54105
54106 --
54107 AcctLineType_71 (
54108 p_application_id => p_application_id
54109 ,p_event_id => l_event_id
54110 ,p_calculate_acctd_flag => l_calculate_acctd_flag
54111 ,p_calculate_g_l_flag => l_calculate_g_l_flag
54112 ,p_actual_flag => l_actual_flag
54113 ,p_balance_type_code => l_balance_type_code
54114 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
54115
54116 , p_source_7 => l_array_source_7(Idx)
54117 , p_source_11 => l_array_source_11(Idx)
54118 , p_source_13 => l_array_source_13(Idx)
54119 , p_source_16 => l_array_source_16(Idx)
54120 , p_source_29 => l_array_source_29(Idx)
54121 , p_source_33 => l_array_source_33(Idx)
54122 , p_source_34 => l_array_source_34(Idx)
54123 , p_source_35 => l_array_source_35(Idx)
54124 , p_source_53 => l_array_source_53(Idx)
54125 , p_source_54 => l_array_source_54(Idx)
54126 , p_source_55 => l_array_source_55(Idx)
54127 , p_source_56 => l_array_source_56(Idx)
54128 , p_source_57 => l_array_source_57(Idx)
54129 , p_source_58 => l_array_source_58(Idx)
54130 , p_source_59 => l_array_source_59(Idx)
54131 , p_source_60 => l_array_source_60(Idx)
54132 , p_source_61 => l_array_source_61(Idx)
54133 , p_source_62 => l_array_source_62(Idx)
54134 , p_source_63 => l_array_source_63(Idx)
54135 , p_source_64 => l_array_source_64(Idx)
54136 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
54137 , p_source_75 => l_array_source_75(Idx)
54138 );
54139 If(l_balance_type_code = 'A') THEN
54140 l_actual_gain_loss_ref := l_gain_or_loss_ref;
54141 END IF;
54142
54143 --
54144
54145
54146 --
54147 AcctLineType_75 (
54148 p_application_id => p_application_id
54149 ,p_event_id => l_event_id
54150 ,p_calculate_acctd_flag => l_calculate_acctd_flag
54151 ,p_calculate_g_l_flag => l_calculate_g_l_flag
54152 ,p_actual_flag => l_actual_flag
54153 ,p_balance_type_code => l_balance_type_code
54154 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
54155
54156 , p_source_11 => l_array_source_11(Idx)
54157 , p_source_13 => l_array_source_13(Idx)
54158 , p_source_16 => l_array_source_16(Idx)
54159 , p_source_29 => l_array_source_29(Idx)
54160 , p_source_33 => l_array_source_33(Idx)
54161 , p_source_34 => l_array_source_34(Idx)
54162 , p_source_35 => l_array_source_35(Idx)
54163 , p_source_53 => l_array_source_53(Idx)
54164 , p_source_54 => l_array_source_54(Idx)
54165 , p_source_55 => l_array_source_55(Idx)
54166 , p_source_56 => l_array_source_56(Idx)
54167 , p_source_57 => l_array_source_57(Idx)
54168 , p_source_58 => l_array_source_58(Idx)
54169 , p_source_59 => l_array_source_59(Idx)
54170 , p_source_60 => l_array_source_60(Idx)
54171 , p_source_61 => l_array_source_61(Idx)
54172 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
54173 , p_source_75 => l_array_source_75(Idx)
54174 );
54175 If(l_balance_type_code = 'A') THEN
54176 l_actual_gain_loss_ref := l_gain_or_loss_ref;
54177 END IF;
54178
54179 --
54180
54181
54182 --
54183 AcctLineType_76 (
54184 p_application_id => p_application_id
54185 ,p_event_id => l_event_id
54186 ,p_calculate_acctd_flag => l_calculate_acctd_flag
54187 ,p_calculate_g_l_flag => l_calculate_g_l_flag
54188 ,p_actual_flag => l_actual_flag
54189 ,p_balance_type_code => l_balance_type_code
54190 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
54191
54192 , p_source_11 => l_array_source_11(Idx)
54193 , p_source_13 => l_array_source_13(Idx)
54194 , p_source_16 => l_array_source_16(Idx)
54195 , p_source_29 => l_array_source_29(Idx)
54196 , p_source_33 => l_array_source_33(Idx)
54197 , p_source_34 => l_array_source_34(Idx)
54198 , p_source_35 => l_array_source_35(Idx)
54199 , p_source_53 => l_array_source_53(Idx)
54200 , p_source_54 => l_array_source_54(Idx)
54201 , p_source_55 => l_array_source_55(Idx)
54202 , p_source_56 => l_array_source_56(Idx)
54203 , p_source_57 => l_array_source_57(Idx)
54204 , p_source_58 => l_array_source_58(Idx)
54205 , p_source_59 => l_array_source_59(Idx)
54206 , p_source_60 => l_array_source_60(Idx)
54207 , p_source_61 => l_array_source_61(Idx)
54208 , p_source_66 => g_array_event(l_event_id).array_value_num('source_66')
54209 );
54210 If(l_balance_type_code = 'A') THEN
54211 l_actual_gain_loss_ref := l_gain_or_loss_ref;
54212 END IF;
54213
54214 --
54215
54216 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
54217 -- or secondary ledger that has different currency with primary
54218 -- or alc that is calculated by sla
54219 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
54220 (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'))
54221
54222 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
54223 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
54224 AND (l_actual_flag = 'A')) THEN
54225 XLA_AE_LINES_PKG.CreateGainOrLossLines(
54226 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
54227 ,p_application_id => p_application_id
54228 ,p_amb_context_code => 'DEFAULT'
54229 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
54230 ,p_event_class_code => C_EVENT_CLASS_CODE
54231 ,p_event_type_code => C_EVENT_TYPE_CODE
54232
54233 ,p_gain_ccid => -1
54234 ,p_loss_ccid => -1
54235
54236 ,p_actual_flag => l_actual_flag
54237 ,p_enc_flag => null
54238 ,p_actual_g_l_ref => l_actual_gain_loss_ref
54239 ,p_enc_g_l_ref => null
54240 );
54241 END IF;
54242 END IF;
54243 END IF;
54244
54245 ELSE
54246 --
54247 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
54248 --
54249 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
54250 trace
54251 (p_msg => 'Trancaction revesal option is Y'
54252 ,p_level => C_LEVEL_STATEMENT
54253 ,p_module => l_log_module);
54254 END IF;
54255 END IF;
54256
54257 END LOOP;
54258 l_result := XLA_AE_LINES_PKG.InsertLines ;
54259 end loop;
54260 close line_cur;
54261
54262
54263 --
54264 -- insert headers into xla_ae_headers_gt table
54265 --
54266 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
54267
54268 -- insert into errors table here.
54269
54270 END LOOP;
54271
54272 --
54273 -- 4865292
54274 --
54275 -- Compare g_hdr_extract_count with event count in
54276 -- CreateHeadersAndLines.
54277 --
54278 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
54279
54280 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
54281 trace (p_msg => '# rows extracted from header extract objects '
54282 || ' (running total): '
54283 || g_hdr_extract_count
54284 ,p_level => C_LEVEL_STATEMENT
54285 ,p_module => l_log_module);
54286 END IF;
54287
54288 CLOSE header_cur;
54289 --
54290
54291 --
54292 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54293 trace
54294 (p_msg => 'END of EventClass_87'
54295 ,p_level => C_LEVEL_PROCEDURE
54296 ,p_module => l_log_module);
54297 END IF;
54298 --
54299 RETURN l_result;
54300 EXCEPTION
54301 WHEN xla_exceptions_pkg.application_exception THEN
54302
54303 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
54304
54305
54306 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
54307
54308 RAISE;
54309 WHEN OTHERS THEN
54310 xla_exceptions_pkg.raise_message
54311 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.EventClass_87');
54312 END EventClass_87;
54313 --
54314
54315 ---------------------------------------
54316 --
54317 -- PRIVATE PROCEDURE
54318 -- insert_sources_88
54319 --
54320 ----------------------------------------
54321 --
54322 PROCEDURE insert_sources_88(
54323 p_target_ledger_id IN NUMBER
54324 , p_language IN VARCHAR2
54325 , p_sla_ledger_id IN NUMBER
54326 , p_pad_start_date IN DATE
54327 , p_pad_end_date IN DATE
54328 )
54329 IS
54330
54331 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'RELEASE_BURDEN_ALL';
54332 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'RELEASE_BURDEN';
54333 p_apps_owner VARCHAR2(30);
54334 l_log_module VARCHAR2(240);
54335 BEGIN
54336 IF g_log_enabled THEN
54337 l_log_module := C_DEFAULT_MODULE||'.insert_sources_88';
54338 END IF;
54339 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54340
54341 trace
54342 (p_msg => 'BEGIN of insert_sources_88'
54343 ,p_level => C_LEVEL_PROCEDURE
54344 ,p_module => l_log_module);
54345
54346 END IF;
54347
54348 -- select APPS owner
54349 SELECT oracle_username
54350 INTO p_apps_owner
54351 FROM fnd_oracle_userid
54352 WHERE read_only_flag = 'U'
54353 ;
54354
54355 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
54356 trace
54357 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
54358 ' - p_language = '||p_language||
54359 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
54360 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
54361 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
54362 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
54363 ,p_level => C_LEVEL_STATEMENT
54364 ,p_module => l_log_module);
54365 END IF;
54366
54367
54368 --
54369 INSERT INTO xla_diag_sources --hdr2
54370 (
54371 event_id
54372 , ledger_id
54373 , sla_ledger_id
54374 , description_language
54375 , object_name
54376 , object_type_code
54377 , line_number
54378 , source_application_id
54379 , source_type_code
54380 , source_code
54381 , source_value
54382 , source_meaning
54383 , created_by
54384 , creation_date
54385 , last_update_date
54386 , last_updated_by
54387 , last_update_login
54388 , program_update_date
54389 , program_application_id
54390 , program_id
54391 , request_id
54392 )
54393 SELECT
54394 event_id
54395 , p_target_ledger_id
54396 , p_sla_ledger_id
54397 , p_language
54398 , object_name
54399 , object_type_code
54400 , line_number
54401 , source_application_id
54402 , source_type_code
54403 , source_code
54404 , SUBSTR(source_value ,1,1996)
54405 , SUBSTR(source_meaning ,1,200)
54406 , xla_environment_pkg.g_Usr_Id
54407 , TRUNC(SYSDATE)
54408 , TRUNC(SYSDATE)
54409 , xla_environment_pkg.g_Usr_Id
54410 , xla_environment_pkg.g_Login_Id
54411 , TRUNC(SYSDATE)
54412 , xla_environment_pkg.g_Prog_Appl_Id
54413 , xla_environment_pkg.g_Prog_Id
54414 , xla_environment_pkg.g_Req_Id
54415 FROM (
54416 SELECT xet.event_id event_id
54417 , 0 line_number
54418 , CASE r
54419 WHEN 1 THEN 'PA_XLA_BC_PKT_PO_HEADER_V'
54420
54421 ELSE null
54422 END object_name
54423 , CASE r
54424 WHEN 1 THEN 'HEADER'
54425
54426 ELSE null
54427 END object_type_code
54428 , CASE r
54429 WHEN 1 THEN '201'
54430
54431 ELSE null
54432 END source_application_id
54433 , 'S' source_type_code
54434 , CASE r
54435 WHEN 1 THEN 'GL_DATE'
54436
54437 ELSE null
54438 END source_code
54439 , CASE r
54440 WHEN 1 THEN TO_CHAR(h2.GL_DATE)
54441
54442 ELSE null
54443 END source_value
54444 , null source_meaning
54445 FROM xla_events_gt xet
54446 , PA_XLA_BC_PKT_PO_HEADER_V h2
54447 ,(select rownum r from all_objects where rownum <= 1 and owner = p_apps_owner)
54448 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
54449 AND xet.event_class_code = C_EVENT_CLASS_CODE
54450 AND h2.event_id = xet.event_id
54451
54452 )
54453 ;
54454 --
54455 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
54456
54457 trace
54458 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
54459 ,p_level => C_LEVEL_STATEMENT
54460 ,p_module => l_log_module);
54461
54462 END IF;
54463 --
54464
54465
54466
54467 --
54468 INSERT INTO xla_diag_sources --line2
54469 (
54470 event_id
54471 , ledger_id
54472 , sla_ledger_id
54473 , description_language
54474 , object_name
54475 , object_type_code
54476 , line_number
54477 , source_application_id
54478 , source_type_code
54479 , source_code
54480 , source_value
54481 , source_meaning
54482 , created_by
54483 , creation_date
54484 , last_update_date
54485 , last_updated_by
54486 , last_update_login
54487 , program_update_date
54488 , program_application_id
54489 , program_id
54490 , request_id
54491 )
54492 SELECT event_id
54493 , p_target_ledger_id
54494 , p_sla_ledger_id
54495 , p_language
54496 , object_name
54497 , object_type_code
54498 , line_number
54499 , source_application_id
54500 , source_type_code
54501 , source_code
54502 , SUBSTR(source_value,1,1996)
54503 , SUBSTR(source_meaning ,1,200)
54504 , xla_environment_pkg.g_Usr_Id
54505 , TRUNC(SYSDATE)
54506 , TRUNC(SYSDATE)
54507 , xla_environment_pkg.g_Usr_Id
54508 , xla_environment_pkg.g_Login_Id
54509 , TRUNC(SYSDATE)
54510 , xla_environment_pkg.g_Prog_Appl_Id
54511 , xla_environment_pkg.g_Prog_Id
54512 , xla_environment_pkg.g_Req_Id
54513 FROM (
54514 SELECT xet.event_id event_id
54515 , l1.line_number line_number
54516 , CASE r
54517 WHEN 1 THEN 'PA_XLA_PROJECT_REF_V'
54518 WHEN 2 THEN 'PA_XLA_TASK_REF_V'
54519 WHEN 3 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54520 WHEN 4 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54521 WHEN 5 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54522 WHEN 6 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54523 WHEN 7 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54524 WHEN 8 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54525 WHEN 9 THEN 'PA_XLA_PROJECT_REF_V'
54526 WHEN 10 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54527 WHEN 11 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54528 WHEN 12 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54529 WHEN 13 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54530 WHEN 14 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54531 WHEN 15 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54532 WHEN 16 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54533 WHEN 17 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54534 WHEN 18 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54535 WHEN 19 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54536 WHEN 20 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54537 WHEN 21 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54538 WHEN 22 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54539 WHEN 23 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54540 WHEN 24 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54541 WHEN 25 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54542 WHEN 26 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54543 WHEN 27 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54544 WHEN 28 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54545 WHEN 29 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54546 WHEN 30 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54547 WHEN 31 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54548 WHEN 32 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54549 WHEN 33 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54550 WHEN 34 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54551 WHEN 35 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54552 WHEN 36 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54553 WHEN 37 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54554 WHEN 38 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54555 WHEN 39 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54556 WHEN 40 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54557 WHEN 41 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54558 WHEN 42 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54559 WHEN 43 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54560 WHEN 44 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54561 WHEN 45 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54562 WHEN 46 THEN 'PA_XLA_BC_PKT_PO_DETAIL_V'
54563
54564 ELSE null
54565 END object_name
54566 , CASE r
54567 WHEN 1 THEN 'LINE'
54568 WHEN 2 THEN 'LINE'
54569 WHEN 3 THEN 'LINE'
54570 WHEN 4 THEN 'LINE'
54571 WHEN 5 THEN 'LINE'
54572 WHEN 6 THEN 'LINE'
54573 WHEN 7 THEN 'LINE'
54574 WHEN 8 THEN 'LINE'
54575 WHEN 9 THEN 'LINE'
54576 WHEN 10 THEN 'LINE'
54577 WHEN 11 THEN 'LINE'
54578 WHEN 12 THEN 'LINE'
54579 WHEN 13 THEN 'LINE'
54580 WHEN 14 THEN 'LINE'
54581 WHEN 15 THEN 'LINE'
54582 WHEN 16 THEN 'LINE'
54583 WHEN 17 THEN 'LINE'
54584 WHEN 18 THEN 'LINE'
54585 WHEN 19 THEN 'LINE'
54586 WHEN 20 THEN 'LINE'
54587 WHEN 21 THEN 'LINE'
54588 WHEN 22 THEN 'LINE'
54589 WHEN 23 THEN 'LINE'
54590 WHEN 24 THEN 'LINE'
54591 WHEN 25 THEN 'LINE'
54592 WHEN 26 THEN 'LINE'
54593 WHEN 27 THEN 'LINE'
54594 WHEN 28 THEN 'LINE'
54595 WHEN 29 THEN 'LINE'
54596 WHEN 30 THEN 'LINE'
54597 WHEN 31 THEN 'LINE'
54598 WHEN 32 THEN 'LINE'
54599 WHEN 33 THEN 'LINE'
54600 WHEN 34 THEN 'LINE'
54601 WHEN 35 THEN 'LINE'
54602 WHEN 36 THEN 'LINE'
54603 WHEN 37 THEN 'LINE'
54604 WHEN 38 THEN 'LINE'
54605 WHEN 39 THEN 'LINE'
54606 WHEN 40 THEN 'LINE'
54607 WHEN 41 THEN 'LINE'
54608 WHEN 42 THEN 'LINE'
54609 WHEN 43 THEN 'LINE'
54610 WHEN 44 THEN 'LINE'
54611 WHEN 45 THEN 'LINE'
54612 WHEN 46 THEN 'LINE'
54613
54614 ELSE null
54615 END object_type_code
54616 , CASE r
54617 WHEN 1 THEN '275'
54618 WHEN 2 THEN '275'
54619 WHEN 3 THEN '201'
54620 WHEN 4 THEN '201'
54621 WHEN 5 THEN '201'
54622 WHEN 6 THEN '201'
54623 WHEN 7 THEN '201'
54624 WHEN 8 THEN '201'
54625 WHEN 9 THEN '275'
54626 WHEN 10 THEN '201'
54627 WHEN 11 THEN '201'
54628 WHEN 12 THEN '201'
54629 WHEN 13 THEN '201'
54630 WHEN 14 THEN '201'
54631 WHEN 15 THEN '201'
54632 WHEN 16 THEN '201'
54633 WHEN 17 THEN '201'
54634 WHEN 18 THEN '201'
54635 WHEN 19 THEN '201'
54636 WHEN 20 THEN '201'
54637 WHEN 21 THEN '201'
54638 WHEN 22 THEN '201'
54639 WHEN 23 THEN '201'
54640 WHEN 24 THEN '201'
54641 WHEN 25 THEN '201'
54642 WHEN 26 THEN '201'
54643 WHEN 27 THEN '201'
54644 WHEN 28 THEN '201'
54645 WHEN 29 THEN '201'
54646 WHEN 30 THEN '201'
54647 WHEN 31 THEN '201'
54648 WHEN 32 THEN '201'
54649 WHEN 33 THEN '201'
54650 WHEN 34 THEN '201'
54651 WHEN 35 THEN '201'
54652 WHEN 36 THEN '201'
54653 WHEN 37 THEN '201'
54654 WHEN 38 THEN '201'
54655 WHEN 39 THEN '201'
54656 WHEN 40 THEN '201'
54657 WHEN 41 THEN '201'
54658 WHEN 42 THEN '201'
54659 WHEN 43 THEN '201'
54660 WHEN 44 THEN '201'
54661 WHEN 45 THEN '201'
54662 WHEN 46 THEN '201'
54663
54664 ELSE null
54665 END source_application_id
54666 , 'S' source_type_code
54667 , CASE r
54668 WHEN 1 THEN 'PROJECT_NAME'
54669 WHEN 2 THEN 'TASK_NAME'
54670 WHEN 3 THEN 'EXPENDITURE_ORGANIZATION_ID'
54671 WHEN 4 THEN 'EXPENDITURE_TYPE'
54672 WHEN 5 THEN 'DOCUMENT_TYPE'
54673 WHEN 6 THEN 'BUDGET_ACCOUNT'
54674 WHEN 7 THEN 'MAIN_OR_BACKING_CODE'
54675 WHEN 8 THEN 'BURDEN_COST_FLAG'
54676 WHEN 9 THEN 'PROJ_BURDEN_DISPLAY_METHOD'
54677 WHEN 10 THEN 'ACCOUNTING_REVERSAL_FLAG'
54678 WHEN 11 THEN 'ALLOC_TO_APPLN_ID'
54679 WHEN 12 THEN 'ALLOC_TO_DIST_TYPE'
54680 WHEN 13 THEN 'ALLOC_TO_ENTITY_CODE'
54681 WHEN 14 THEN 'ALLOC_TO_FIRST_DIST_ID'
54682 WHEN 15 THEN 'ALLOC_TO_FIRST_SYS_TRANS_ID'
54683 WHEN 16 THEN 'ALLOC_TO_SECOND_DIST_ID'
54684 WHEN 17 THEN 'PO_APPLICATION_ID'
54685 WHEN 18 THEN 'PO_DISTRIBUTION_TYPE'
54686 WHEN 19 THEN 'PO_ENTITY_CODE'
54687 WHEN 20 THEN 'PO_FIRST_DIST_ID'
54688 WHEN 21 THEN 'PO_FIRST_SYS_TRANS_ID'
54689 WHEN 22 THEN 'PO_SECOND_DIST_ID'
54690 WHEN 23 THEN 'PO_DISTRIBUTION_ID'
54691 WHEN 24 THEN 'LINE_TYPE_NAME'
54692 WHEN 25 THEN 'ENC_UPG_CR_ACCT_CLASS'
54693 WHEN 26 THEN 'ENC_UPG_CR_ACCOUNT'
54694 WHEN 27 THEN 'ENTERED_AMT'
54695 WHEN 28 THEN 'CURRENCY_CODE'
54696 WHEN 29 THEN 'ACCOUNTED_AMT'
54697 WHEN 30 THEN 'ENC_UPG_DR_ACCT_CLASS'
54698 WHEN 31 THEN 'ENC_UPG_DR_ACCOUNT'
54699 WHEN 32 THEN 'USE_ENC_UPG_ATTRIB_FLAG'
54700 WHEN 33 THEN 'ENC_UPG_CR_ENC_TYPE_ID'
54701 WHEN 34 THEN 'ENC_UPG_DR_ENC_TYPE_ID'
54702 WHEN 35 THEN 'REQ_APPLICATION_ID'
54703 WHEN 36 THEN 'REQ_DISTRIBUTION_TYPE'
54704 WHEN 37 THEN 'REQ_ENTITY_CODE'
54705 WHEN 38 THEN 'REQ_FIRST_DIST_ID'
54706 WHEN 39 THEN 'REQ_FIRST_SYS_TRANS_ID'
54707 WHEN 40 THEN 'REQ_SECOND_DIST_ID'
54708 WHEN 41 THEN 'PA_APPLICATION_ID'
54709 WHEN 42 THEN 'PA_DISTRIBUTION_TYPE'
54710 WHEN 43 THEN 'PA_ENTITY_CODE'
54711 WHEN 44 THEN 'PA_FIRST_DIST_ID'
54712 WHEN 45 THEN 'PA_FIRST_SYS_TRANS_ID'
54713 WHEN 46 THEN 'PA_SECOND_DIST_ID'
54714
54715 ELSE null
54716 END source_code
54717 , CASE r
54718 WHEN 1 THEN TO_CHAR(l3.PROJECT_NAME)
54719 WHEN 2 THEN TO_CHAR(l4.TASK_NAME)
54720 WHEN 3 THEN TO_CHAR(l1.EXPENDITURE_ORGANIZATION_ID)
54721 WHEN 4 THEN TO_CHAR(l1.EXPENDITURE_TYPE)
54722 WHEN 5 THEN TO_CHAR(l1.DOCUMENT_TYPE)
54723 WHEN 6 THEN TO_CHAR(l1.BUDGET_ACCOUNT)
54724 WHEN 7 THEN TO_CHAR(l1.MAIN_OR_BACKING_CODE)
54725 WHEN 8 THEN TO_CHAR(l1.BURDEN_COST_FLAG)
54726 WHEN 9 THEN TO_CHAR(l3.PROJ_BURDEN_DISPLAY_METHOD)
54727 WHEN 10 THEN TO_CHAR(l1.ACCOUNTING_REVERSAL_FLAG)
54728 WHEN 11 THEN TO_CHAR(l1.ALLOC_TO_APPLN_ID)
54729 WHEN 12 THEN TO_CHAR(l1.ALLOC_TO_DIST_TYPE)
54730 WHEN 13 THEN TO_CHAR(l1.ALLOC_TO_ENTITY_CODE)
54731 WHEN 14 THEN TO_CHAR(l1.ALLOC_TO_FIRST_DIST_ID)
54732 WHEN 15 THEN TO_CHAR(l1.ALLOC_TO_FIRST_SYS_TRANS_ID)
54733 WHEN 16 THEN TO_CHAR(l1.ALLOC_TO_SECOND_DIST_ID)
54734 WHEN 17 THEN TO_CHAR(l1.PO_APPLICATION_ID)
54735 WHEN 18 THEN TO_CHAR(l1.PO_DISTRIBUTION_TYPE)
54736 WHEN 19 THEN TO_CHAR(l1.PO_ENTITY_CODE)
54737 WHEN 20 THEN TO_CHAR(l1.PO_FIRST_DIST_ID)
54738 WHEN 21 THEN TO_CHAR(l1.PO_FIRST_SYS_TRANS_ID)
54739 WHEN 22 THEN TO_CHAR(l1.PO_SECOND_DIST_ID)
54740 WHEN 23 THEN TO_CHAR(l1.PO_DISTRIBUTION_ID)
54741 WHEN 24 THEN TO_CHAR(l1.LINE_TYPE_NAME)
54742 WHEN 25 THEN TO_CHAR(l1.ENC_UPG_CR_ACCT_CLASS)
54743 WHEN 26 THEN TO_CHAR(l1.ENC_UPG_CR_ACCOUNT)
54744 WHEN 27 THEN TO_CHAR(l1.ENTERED_AMT)
54745 WHEN 28 THEN TO_CHAR(l1.CURRENCY_CODE)
54746 WHEN 29 THEN TO_CHAR(l1.ACCOUNTED_AMT)
54747 WHEN 30 THEN TO_CHAR(l1.ENC_UPG_DR_ACCT_CLASS)
54748 WHEN 31 THEN TO_CHAR(l1.ENC_UPG_DR_ACCOUNT)
54749 WHEN 32 THEN TO_CHAR(l1.USE_ENC_UPG_ATTRIB_FLAG)
54750 WHEN 33 THEN TO_CHAR(l1.ENC_UPG_CR_ENC_TYPE_ID)
54751 WHEN 34 THEN TO_CHAR(l1.ENC_UPG_DR_ENC_TYPE_ID)
54752 WHEN 35 THEN TO_CHAR(l1.REQ_APPLICATION_ID)
54753 WHEN 36 THEN TO_CHAR(l1.REQ_DISTRIBUTION_TYPE)
54754 WHEN 37 THEN TO_CHAR(l1.REQ_ENTITY_CODE)
54755 WHEN 38 THEN TO_CHAR(l1.REQ_FIRST_DIST_ID)
54756 WHEN 39 THEN TO_CHAR(l1.REQ_FIRST_SYS_TRANS_ID)
54757 WHEN 40 THEN TO_CHAR(l1.REQ_SECOND_DIST_ID)
54758 WHEN 41 THEN TO_CHAR(l1.PA_APPLICATION_ID)
54759 WHEN 42 THEN TO_CHAR(l1.PA_DISTRIBUTION_TYPE)
54760 WHEN 43 THEN TO_CHAR(l1.PA_ENTITY_CODE)
54761 WHEN 44 THEN TO_CHAR(l1.PA_FIRST_DIST_ID)
54762 WHEN 45 THEN TO_CHAR(l1.PA_FIRST_SYS_TRANS_ID)
54763 WHEN 46 THEN TO_CHAR(l1.PA_SECOND_DIST_ID)
54764
54765 ELSE null
54766 END source_value
54767 , CASE r
54768 WHEN 3 THEN XLA_00201_AAD_S_000005_BC_PKG.GetMeaning(
54769 1011404
54770 ,TO_CHAR(l1.EXPENDITURE_ORGANIZATION_ID)
54771 ,'EXPENDITURE_ORGANIZATION_ID'
54772 ,'S'
54773 ,201)
54774 WHEN 8 THEN fvl14.meaning
54775
54776 ELSE null
54777 END source_meaning
54778 FROM xla_events_gt xet
54779 , PA_XLA_BC_PKT_PO_DETAIL_V l1
54780 , PA_XLA_PROJECT_REF_V l3
54781 , PA_XLA_TASK_REF_V l4
54782 , fnd_lookup_values fvl14
54783 , (select rownum r from all_objects where rownum <= 46 and owner = p_apps_owner)
54784 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
54785 AND xet.event_class_code = C_EVENT_CLASS_CODE
54786 AND l1.event_id = xet.event_id
54787 AND l3.project_id=l1.project_id AND l4.task_id=l1.task_id AND fvl14.lookup_type(+) = 'BC_PKT_BURDEN_COST_FLAG'
54788 AND fvl14.lookup_code(+) = l1.BURDEN_COST_FLAG
54789 AND fvl14.view_application_id(+) = 275
54790 AND fvl14.language(+) = USERENV('LANG')
54791
54792 )
54793 ;
54794 --
54795 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
54796
54797 trace
54798 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
54799 ,p_level => C_LEVEL_STATEMENT
54800 ,p_module => l_log_module);
54801
54802 END IF;
54803
54804
54805 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54806 trace
54807 (p_msg => 'END of insert_sources_88'
54808 ,p_level => C_LEVEL_PROCEDURE
54809 ,p_module => l_log_module);
54810 END IF;
54811 EXCEPTION
54812 WHEN xla_exceptions_pkg.application_exception THEN
54813 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
54814 trace
54815 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
54816 ,p_level => C_LEVEL_EXCEPTION
54817 ,p_module => l_log_module);
54818 END IF;
54819 RAISE;
54820 WHEN OTHERS THEN
54821 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
54822 trace
54823 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
54824 ,p_level => C_LEVEL_EXCEPTION
54825 ,p_module => l_log_module);
54826 END IF;
54827 xla_exceptions_pkg.raise_message
54828 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.insert_sources_88');
54829 END insert_sources_88;
54830 --
54831
54832 ---------------------------------------
54833 --
54834 -- PRIVATE FUNCTION
54835 -- EventClass_88
54836 --
54837 ----------------------------------------
54838 --
54839 FUNCTION EventClass_88
54840 (p_application_id IN NUMBER
54841 ,p_base_ledger_id IN NUMBER
54842 ,p_target_ledger_id IN NUMBER
54843 ,p_language IN VARCHAR2
54844 ,p_currency_code IN VARCHAR2
54845 ,p_sla_ledger_id IN NUMBER
54846 ,p_pad_start_date IN DATE
54847 ,p_pad_end_date IN DATE
54848 ,p_primary_ledger_id IN NUMBER)
54849 RETURN BOOLEAN IS
54850 --
54851 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'RELEASE_BURDEN_ALL';
54852 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'RELEASE_BURDEN';
54853
54854 l_calculate_acctd_flag VARCHAR2(1) :='N';
54855 l_calculate_g_l_flag VARCHAR2(1) :='N';
54856 --
54857 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
54858 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
54859 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
54860 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
54861 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
54862 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
54863 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
54864 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
54865 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
54866 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
54867 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
54868 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
54869 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
54870 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
54871 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
54872 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
54873 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
54874 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
54875 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
54876 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
54877 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
54878 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
54879 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
54880 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
54881
54882 l_event_id NUMBER;
54883 l_previous_event_id NUMBER;
54884 l_first_event_id NUMBER;
54885 l_last_event_id NUMBER;
54886
54887 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
54888 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
54889 --
54890 --
54891 l_result BOOLEAN := TRUE;
54892 l_rows NUMBER := 1000;
54893 l_event_type_name VARCHAR2(80) := 'All';
54894 l_event_class_name VARCHAR2(80) := 'Burden for Release';
54895 l_description VARCHAR2(4000);
54896 l_transaction_reversal NUMBER;
54897 l_ae_header_id NUMBER;
54898 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
54899 l_log_module VARCHAR2(240);
54900 --
54901 l_acct_reversal_source VARCHAR2(30);
54902 l_trx_reversal_source VARCHAR2(30);
54903
54904 l_continue_with_lines BOOLEAN := TRUE;
54905 --
54906 l_acc_rev_gl_date_source DATE; -- 4262811
54907 --
54908 type t_array_event_id is table of number index by binary_integer;
54909
54910 l_rec_array_event t_rec_array_event;
54911 l_null_rec_array_event t_rec_array_event;
54912 l_array_ae_header_id xla_number_array_type;
54913 l_actual_flag VARCHAR2(1) := NULL;
54914 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
54915 l_balance_type_code VARCHAR2(1) :=NULL;
54916 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
54917
54918 --
54919 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
54920 --
54921
54922 TYPE t_array_source_79 IS TABLE OF PA_XLA_BC_PKT_PO_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
54923
54924 TYPE t_array_source_3 IS TABLE OF PA_XLA_PROJECT_REF_V.PROJECT_NAME%TYPE INDEX BY BINARY_INTEGER;
54925 TYPE t_array_source_4 IS TABLE OF PA_XLA_TASK_REF_V.TASK_NAME%TYPE INDEX BY BINARY_INTEGER;
54926 TYPE t_array_source_5 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.EXPENDITURE_ORGANIZATION_ID%TYPE INDEX BY BINARY_INTEGER;
54927 TYPE t_array_source_6 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.EXPENDITURE_TYPE%TYPE INDEX BY BINARY_INTEGER;
54928 TYPE t_array_source_9 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.DOCUMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
54929 TYPE t_array_source_11 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.BUDGET_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
54930 TYPE t_array_source_13 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.MAIN_OR_BACKING_CODE%TYPE INDEX BY BINARY_INTEGER;
54931 TYPE t_array_source_14 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.BURDEN_COST_FLAG%TYPE INDEX BY BINARY_INTEGER;
54932 TYPE t_array_source_15 IS TABLE OF PA_XLA_PROJECT_REF_V.PROJ_BURDEN_DISPLAY_METHOD%TYPE INDEX BY BINARY_INTEGER;
54933 TYPE t_array_source_16 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.ACCOUNTING_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
54934 TYPE t_array_source_17 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.ALLOC_TO_APPLN_ID%TYPE INDEX BY BINARY_INTEGER;
54935 TYPE t_array_source_18 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.ALLOC_TO_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
54936 TYPE t_array_source_19 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.ALLOC_TO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
54937 TYPE t_array_source_20 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.ALLOC_TO_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
54938 TYPE t_array_source_21 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.ALLOC_TO_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
54939 TYPE t_array_source_22 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.ALLOC_TO_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
54940 TYPE t_array_source_23 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.PO_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
54941 TYPE t_array_source_24 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.PO_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
54942 TYPE t_array_source_25 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.PO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
54943 TYPE t_array_source_26 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.PO_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
54944 TYPE t_array_source_27 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.PO_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
54945 TYPE t_array_source_28 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.PO_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
54946 TYPE t_array_source_29 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.PO_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
54947 TYPE t_array_source_30 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.LINE_TYPE_NAME%TYPE INDEX BY BINARY_INTEGER;
54948 TYPE t_array_source_31 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.ENC_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
54949 TYPE t_array_source_32 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.ENC_UPG_CR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
54950 TYPE t_array_source_33 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.ENTERED_AMT%TYPE INDEX BY BINARY_INTEGER;
54951 TYPE t_array_source_34 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
54952 TYPE t_array_source_35 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.ACCOUNTED_AMT%TYPE INDEX BY BINARY_INTEGER;
54953 TYPE t_array_source_36 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.ENC_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
54954 TYPE t_array_source_37 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.ENC_UPG_DR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
54955 TYPE t_array_source_38 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
54956 TYPE t_array_source_39 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.ENC_UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
54957 TYPE t_array_source_40 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.ENC_UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
54958 TYPE t_array_source_41 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.REQ_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
54959 TYPE t_array_source_42 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.REQ_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
54960 TYPE t_array_source_43 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.REQ_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
54961 TYPE t_array_source_44 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.REQ_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
54962 TYPE t_array_source_45 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.REQ_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
54963 TYPE t_array_source_46 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.REQ_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
54964 TYPE t_array_source_68 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.PA_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
54965 TYPE t_array_source_69 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.PA_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
54966 TYPE t_array_source_70 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.PA_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
54967 TYPE t_array_source_71 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.PA_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
54968 TYPE t_array_source_72 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.PA_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
54969 TYPE t_array_source_73 IS TABLE OF PA_XLA_BC_PKT_PO_DETAIL_V.PA_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
54970
54971 l_array_source_79 t_array_source_79;
54972
54973 l_array_source_3 t_array_source_3;
54974 l_array_source_4 t_array_source_4;
54975 l_array_source_5 t_array_source_5;
54976 l_array_source_6 t_array_source_6;
54977 l_array_source_9 t_array_source_9;
54978 l_array_source_11 t_array_source_11;
54979 l_array_source_13 t_array_source_13;
54980 l_array_source_14 t_array_source_14;
54981 l_array_source_14_meaning t_array_lookup_meaning;
54982 l_array_source_15 t_array_source_15;
54983 l_array_source_16 t_array_source_16;
54984 l_array_source_17 t_array_source_17;
54985 l_array_source_18 t_array_source_18;
54986 l_array_source_19 t_array_source_19;
54987 l_array_source_20 t_array_source_20;
54988 l_array_source_21 t_array_source_21;
54989 l_array_source_22 t_array_source_22;
54990 l_array_source_23 t_array_source_23;
54991 l_array_source_24 t_array_source_24;
54992 l_array_source_25 t_array_source_25;
54993 l_array_source_26 t_array_source_26;
54994 l_array_source_27 t_array_source_27;
54995 l_array_source_28 t_array_source_28;
54996 l_array_source_29 t_array_source_29;
54997 l_array_source_30 t_array_source_30;
54998 l_array_source_31 t_array_source_31;
54999 l_array_source_32 t_array_source_32;
55000 l_array_source_33 t_array_source_33;
55001 l_array_source_34 t_array_source_34;
55002 l_array_source_35 t_array_source_35;
55003 l_array_source_36 t_array_source_36;
55004 l_array_source_37 t_array_source_37;
55005 l_array_source_38 t_array_source_38;
55006 l_array_source_39 t_array_source_39;
55007 l_array_source_40 t_array_source_40;
55008 l_array_source_41 t_array_source_41;
55009 l_array_source_42 t_array_source_42;
55010 l_array_source_43 t_array_source_43;
55011 l_array_source_44 t_array_source_44;
55012 l_array_source_45 t_array_source_45;
55013 l_array_source_46 t_array_source_46;
55014 l_array_source_68 t_array_source_68;
55015 l_array_source_69 t_array_source_69;
55016 l_array_source_70 t_array_source_70;
55017 l_array_source_71 t_array_source_71;
55018 l_array_source_72 t_array_source_72;
55019 l_array_source_73 t_array_source_73;
55020
55021 --
55022 CURSOR header_cur
55023 IS
55024 SELECT /*+ leading(xet) cardinality(xet,1) */
55025 -- Event Class Code: RELEASE_BURDEN
55026 xet.entity_id
55027 ,xet.legal_entity_id
55028 ,xet.entity_code
55029 ,xet.transaction_number
55030 ,xet.event_id
55031 ,xet.event_class_code
55032 ,xet.event_type_code
55033 ,xet.event_number
55034 ,xet.event_date
55035 ,xet.transaction_date
55036 ,xet.reference_num_1
55037 ,xet.reference_num_2
55038 ,xet.reference_num_3
55039 ,xet.reference_num_4
55040 ,xet.reference_char_1
55041 ,xet.reference_char_2
55042 ,xet.reference_char_3
55043 ,xet.reference_char_4
55044 ,xet.reference_date_1
55045 ,xet.reference_date_2
55046 ,xet.reference_date_3
55047 ,xet.reference_date_4
55048 ,xet.event_created_by
55049 ,xet.budgetary_control_flag
55050 , h2.GL_DATE source_79
55051 FROM xla_events_gt xet
55052 , PA_XLA_BC_PKT_PO_HEADER_V h2
55053 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
55054 and xet.event_class_code = C_EVENT_CLASS_CODE
55055 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
55056
55057 ORDER BY event_id
55058 ;
55059
55060
55061 --
55062 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
55063 IS
55064 SELECT /*+ leading(xet) cardinality(xet,1) */
55065 -- Event Class Code: RELEASE_BURDEN
55066 xet.entity_id
55067 ,xet.legal_entity_id
55068 ,xet.entity_code
55069 ,xet.transaction_number
55070 ,xet.event_id
55071 ,xet.event_class_code
55072 ,xet.event_type_code
55073 ,xet.event_number
55074 ,xet.event_date
55075 ,xet.transaction_date
55076 ,xet.reference_num_1
55077 ,xet.reference_num_2
55078 ,xet.reference_num_3
55079 ,xet.reference_num_4
55080 ,xet.reference_char_1
55081 ,xet.reference_char_2
55082 ,xet.reference_char_3
55083 ,xet.reference_char_4
55084 ,xet.reference_date_1
55085 ,xet.reference_date_2
55086 ,xet.reference_date_3
55087 ,xet.reference_date_4
55088 ,xet.event_created_by
55089 ,xet.budgetary_control_flag
55090 , l1.LINE_NUMBER
55091 , l3.PROJECT_NAME source_3
55092 , l4.TASK_NAME source_4
55093 , l1.EXPENDITURE_ORGANIZATION_ID source_5
55094 , l1.EXPENDITURE_TYPE source_6
55095 , l1.DOCUMENT_TYPE source_9
55096 , l1.BUDGET_ACCOUNT source_11
55097 , l1.MAIN_OR_BACKING_CODE source_13
55098 , l1.BURDEN_COST_FLAG source_14
55099 , fvl14.meaning source_14_meaning
55100 , l3.PROJ_BURDEN_DISPLAY_METHOD source_15
55101 , l1.ACCOUNTING_REVERSAL_FLAG source_16
55102 , l1.ALLOC_TO_APPLN_ID source_17
55103 , l1.ALLOC_TO_DIST_TYPE source_18
55104 , l1.ALLOC_TO_ENTITY_CODE source_19
55105 , l1.ALLOC_TO_FIRST_DIST_ID source_20
55106 , l1.ALLOC_TO_FIRST_SYS_TRANS_ID source_21
55107 , l1.ALLOC_TO_SECOND_DIST_ID source_22
55108 , l1.PO_APPLICATION_ID source_23
55109 , l1.PO_DISTRIBUTION_TYPE source_24
55110 , l1.PO_ENTITY_CODE source_25
55111 , l1.PO_FIRST_DIST_ID source_26
55112 , l1.PO_FIRST_SYS_TRANS_ID source_27
55113 , l1.PO_SECOND_DIST_ID source_28
55114 , l1.PO_DISTRIBUTION_ID source_29
55115 , l1.LINE_TYPE_NAME source_30
55116 , l1.ENC_UPG_CR_ACCT_CLASS source_31
55117 , l1.ENC_UPG_CR_ACCOUNT source_32
55118 , l1.ENTERED_AMT source_33
55119 , l1.CURRENCY_CODE source_34
55120 , l1.ACCOUNTED_AMT source_35
55121 , l1.ENC_UPG_DR_ACCT_CLASS source_36
55122 , l1.ENC_UPG_DR_ACCOUNT source_37
55123 , l1.USE_ENC_UPG_ATTRIB_FLAG source_38
55124 , l1.ENC_UPG_CR_ENC_TYPE_ID source_39
55125 , l1.ENC_UPG_DR_ENC_TYPE_ID source_40
55126 , l1.REQ_APPLICATION_ID source_41
55127 , l1.REQ_DISTRIBUTION_TYPE source_42
55128 , l1.REQ_ENTITY_CODE source_43
55129 , l1.REQ_FIRST_DIST_ID source_44
55130 , l1.REQ_FIRST_SYS_TRANS_ID source_45
55131 , l1.REQ_SECOND_DIST_ID source_46
55132 , l1.PA_APPLICATION_ID source_68
55133 , l1.PA_DISTRIBUTION_TYPE source_69
55134 , l1.PA_ENTITY_CODE source_70
55135 , l1.PA_FIRST_DIST_ID source_71
55136 , l1.PA_FIRST_SYS_TRANS_ID source_72
55137 , l1.PA_SECOND_DIST_ID source_73
55138 FROM xla_events_gt xet
55139 , PA_XLA_BC_PKT_PO_DETAIL_V l1
55140 , PA_XLA_PROJECT_REF_V l3
55141 , PA_XLA_TASK_REF_V l4
55142 , fnd_lookup_values fvl14
55143 WHERE xet.event_id between x_first_event_id and x_last_event_id
55144 and xet.event_date between p_pad_start_date and p_pad_end_date
55145 and xet.event_class_code = C_EVENT_CLASS_CODE
55146 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
55147 AND l3.project_id=l1.project_id AND l4.task_id=l1.task_id AND fvl14.lookup_type(+) = 'BC_PKT_BURDEN_COST_FLAG'
55148 AND fvl14.lookup_code(+) = l1.BURDEN_COST_FLAG
55149 AND fvl14.view_application_id(+) = 275
55150 AND fvl14.language(+) = USERENV('LANG')
55151 ;
55152
55153 --
55154 BEGIN
55155 IF g_log_enabled THEN
55156 l_log_module := C_DEFAULT_MODULE||'.EventClass_88';
55157 END IF;
55158 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55159 trace
55160 (p_msg => 'BEGIN of EventClass_88'
55161 ,p_level => C_LEVEL_PROCEDURE
55162 ,p_module => l_log_module);
55163 END IF;
55164
55165 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
55166 trace
55167 (p_msg => 'p_application_id = '||p_application_id||
55168 ' - p_base_ledger_id = '||p_base_ledger_id||
55169 ' - p_target_ledger_id = '||p_target_ledger_id||
55170 ' - p_language = '||p_language||
55171 ' - p_currency_code = '||p_currency_code||
55172 ' - p_sla_ledger_id = '||p_sla_ledger_id
55173 ,p_level => C_LEVEL_STATEMENT
55174 ,p_module => l_log_module);
55175 END IF;
55176 --
55177 -- initialze arrays
55178 --
55179 g_array_event.DELETE;
55180 l_rec_array_event := l_null_rec_array_event;
55181 --
55182 --------------------------------------
55183 -- 4262811 Initialze MPA Line Number
55184 --------------------------------------
55185 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
55186
55187 --
55188
55189 --
55190 OPEN header_cur;
55191 --
55192 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
55193 trace
55194 (p_msg => 'SQL - FETCH header_cur'
55195 ,p_level => C_LEVEL_STATEMENT
55196 ,p_module => l_log_module);
55197 END IF;
55198 --
55199 LOOP
55200 FETCH header_cur BULK COLLECT INTO
55201 l_array_entity_id
55202 , l_array_legal_entity_id
55203 , l_array_entity_code
55204 , l_array_transaction_num
55205 , l_array_event_id
55206 , l_array_class_code
55207 , l_array_event_type
55208 , l_array_event_number
55209 , l_array_event_date
55210 , l_array_transaction_date
55211 , l_array_reference_num_1
55212 , l_array_reference_num_2
55213 , l_array_reference_num_3
55214 , l_array_reference_num_4
55215 , l_array_reference_char_1
55216 , l_array_reference_char_2
55217 , l_array_reference_char_3
55218 , l_array_reference_char_4
55219 , l_array_reference_date_1
55220 , l_array_reference_date_2
55221 , l_array_reference_date_3
55222 , l_array_reference_date_4
55223 , l_array_event_created_by
55224 , l_array_budgetary_control_flag
55225 , l_array_source_79
55226 LIMIT l_rows;
55227 --
55228 IF (C_LEVEL_EVENT >= g_log_level) THEN
55229 trace
55230 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
55231 ,p_level => C_LEVEL_EVENT
55232 ,p_module => l_log_module);
55233 END IF;
55234 --
55235 EXIT WHEN l_array_entity_id.COUNT = 0;
55236
55237 -- initialize arrays
55238 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
55239 XLA_AE_LINES_PKG.g_rec_lines := NULL;
55240
55241 --
55242 -- Bug 4458708
55243 --
55244 XLA_AE_LINES_PKG.g_LineNumber := 0;
55245
55246
55247 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
55248 g_last_hdr_idx := l_array_event_id.LAST;
55249 --
55250 -- loop for the headers. Each iteration is for each header extract row
55251 -- fetched in header cursor
55252 --
55253 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
55254
55255 --
55256 -- set event info as cache for other routines to refer event attributes
55257 --
55258 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
55259 (p_application_id => p_application_id
55260 ,p_primary_ledger_id => p_primary_ledger_id
55261 ,p_base_ledger_id => p_base_ledger_id
55262 ,p_target_ledger_id => p_target_ledger_id
55263 ,p_entity_id => l_array_entity_id(hdr_idx)
55264 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
55265 ,p_entity_code => l_array_entity_code(hdr_idx)
55266 ,p_transaction_num => l_array_transaction_num(hdr_idx)
55267 ,p_event_id => l_array_event_id(hdr_idx)
55268 ,p_event_class_code => l_array_class_code(hdr_idx)
55269 ,p_event_type_code => l_array_event_type(hdr_idx)
55270 ,p_event_number => l_array_event_number(hdr_idx)
55271 ,p_event_date => l_array_event_date(hdr_idx)
55272 ,p_transaction_date => l_array_transaction_date(hdr_idx)
55273 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
55274 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
55275 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
55276 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
55277 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
55278 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
55279 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
55280 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
55281 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
55282 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
55283 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
55284 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
55285 ,p_event_created_by => l_array_event_created_by(hdr_idx)
55286 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
55287
55288 --
55289 -- set the status of entry to C_VALID (0)
55290 --
55291 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
55292
55293 --
55294 -- initialize a row for ae header
55295 --
55296 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
55297
55298 l_event_id := l_array_event_id(hdr_idx);
55299
55300 --
55301 -- storing the hdr_idx for event. May be used by line cursor.
55302 --
55303 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
55304
55305 --
55306 -- store sources from header extract. This can be improved to
55307 -- store only those sources from header extract that may be used in lines
55308 --
55309
55310 g_array_event(l_event_id).array_value_date('source_79') := l_array_source_79(hdr_idx);
55311
55312 --
55313 -- initilaize the status of ae headers for diffrent balance types
55314 -- the status is initialised to C_NOT_CREATED (2)
55315 --
55316 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
55317 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
55318 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
55319
55320 --
55321 -- call api to validate and store accounting attributes for header
55322 --
55323
55324 ------------------------------------------------------------
55325 -- Accrual Reversal : to get date for Standard Source (NONE)
55326 ------------------------------------------------------------
55327 l_acc_rev_gl_date_source := NULL;
55328
55329 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
55330 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_79');
55331
55332
55333 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
55334
55335 XLA_AE_HEADER_PKG.SetJeCategoryName;
55336
55337 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
55338 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
55339 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
55340 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
55341 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
55342
55343
55344 -- No header level analytical criteria
55345
55346 --
55347 --accounting attribute enhancement, bug 3612931
55348 --
55349 l_trx_reversal_source := SUBSTR(NULL, 1,30);
55350
55351 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
55352 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
55353
55354 xla_accounting_err_pkg.build_message
55355 (p_appli_s_name => 'XLA'
55356 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
55357 ,p_token_1 => 'ACCT_ATTR_NAME'
55358 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
55359 ,p_token_2 => 'PRODUCT_NAME'
55360 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
55361 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
55362 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
55363 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
55364
55365 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
55366 --
55367 -- following sets the accounting attributes needed to reverse
55368 -- accounting for a distributeion
55369 --
55370 xla_ae_lines_pkg.SetTrxReversalAttrs
55371 (p_event_id => l_event_id
55372 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
55373 ,p_trx_reversal_source => l_trx_reversal_source);
55374
55375 END IF;
55376
55377
55378 ----------------------------------------------------------------
55379 -- 4262811 - update the header statuses to invalid in need be
55380 ----------------------------------------------------------------
55381 --
55382 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
55383
55384
55385 -----------------------------------------------
55386 -- No accrual reversal for the event class/type
55387 -----------------------------------------------
55388 ----------------------------------------------------------------
55389
55390 --
55391 -- this ends the header loop iteration for one bulk fetch
55392 --
55393 END LOOP;
55394
55395 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
55396 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
55397
55398 --
55399 -- insert dummy rows into lines gt table that were created due to
55400 -- transaction reversals
55401 --
55402 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
55403 l_result := XLA_AE_LINES_PKG.InsertLines;
55404 END IF;
55405
55406 --
55407 -- reset the temp_line_num for each set of events fetched from header
55408 -- cursor rather than doing it for each new event in line cursor
55409 -- Bug 3939231
55410 --
55411 xla_ae_lines_pkg.g_temp_line_num := 0;
55412
55413
55414
55415 --
55416 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
55417 --
55418 --
55419 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
55420
55421 trace
55422 (p_msg => 'SQL - FETCH line_cur'
55423 ,p_level => C_LEVEL_STATEMENT
55424 ,p_module => l_log_module);
55425
55426 END IF;
55427 --
55428 --
55429 LOOP
55430 --
55431 FETCH line_cur BULK COLLECT INTO
55432 l_array_entity_id
55433 , l_array_legal_entity_id
55434 , l_array_entity_code
55435 , l_array_transaction_num
55436 , l_array_event_id
55437 , l_array_class_code
55438 , l_array_event_type
55439 , l_array_event_number
55440 , l_array_event_date
55441 , l_array_transaction_date
55442 , l_array_reference_num_1
55443 , l_array_reference_num_2
55444 , l_array_reference_num_3
55445 , l_array_reference_num_4
55446 , l_array_reference_char_1
55447 , l_array_reference_char_2
55448 , l_array_reference_char_3
55449 , l_array_reference_char_4
55450 , l_array_reference_date_1
55451 , l_array_reference_date_2
55452 , l_array_reference_date_3
55453 , l_array_reference_date_4
55454 , l_array_event_created_by
55455 , l_array_budgetary_control_flag
55456 , l_array_extract_line_num
55457 , l_array_source_3
55458 , l_array_source_4
55459 , l_array_source_5
55460 , l_array_source_6
55461 , l_array_source_9
55462 , l_array_source_11
55463 , l_array_source_13
55464 , l_array_source_14
55465 , l_array_source_14_meaning
55466 , l_array_source_15
55467 , l_array_source_16
55468 , l_array_source_17
55469 , l_array_source_18
55470 , l_array_source_19
55471 , l_array_source_20
55472 , l_array_source_21
55473 , l_array_source_22
55474 , l_array_source_23
55475 , l_array_source_24
55476 , l_array_source_25
55477 , l_array_source_26
55478 , l_array_source_27
55479 , l_array_source_28
55480 , l_array_source_29
55481 , l_array_source_30
55482 , l_array_source_31
55483 , l_array_source_32
55484 , l_array_source_33
55485 , l_array_source_34
55486 , l_array_source_35
55487 , l_array_source_36
55488 , l_array_source_37
55489 , l_array_source_38
55490 , l_array_source_39
55491 , l_array_source_40
55492 , l_array_source_41
55493 , l_array_source_42
55494 , l_array_source_43
55495 , l_array_source_44
55496 , l_array_source_45
55497 , l_array_source_46
55498 , l_array_source_68
55499 , l_array_source_69
55500 , l_array_source_70
55501 , l_array_source_71
55502 , l_array_source_72
55503 , l_array_source_73
55504 LIMIT l_rows;
55505
55506 --
55507 IF (C_LEVEL_EVENT >= g_log_level) THEN
55508 trace
55509 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
55510 ,p_level => C_LEVEL_EVENT
55511 ,p_module => l_log_module);
55512 END IF;
55513 --
55514 EXIT WHEN l_array_entity_id.count = 0;
55515
55516 XLA_AE_LINES_PKG.g_rec_lines := null;
55517
55518 --
55519 -- Bug 4458708
55520 --
55521 XLA_AE_LINES_PKG.g_LineNumber := 0;
55522 --
55523 --
55524
55525 FOR Idx IN 1..l_array_event_id.count LOOP
55526 --
55527 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
55528 --
55529 l_event_id := l_array_event_id(idx); -- 5648433
55530
55531 --
55532 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
55533 --
55534
55535 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
55536 (g_array_event(l_event_id).array_value_num('header_index'))
55537 ,'N'
55538 ) <> 'Y'
55539 THEN
55540 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
55541 trace
55542 (p_msg => 'Trancaction revesal option is not Y '
55543 ,p_level => C_LEVEL_STATEMENT
55544 ,p_module => l_log_module);
55545 END IF;
55546
55547 --
55548 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
55549 --
55550 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
55551 --
55552 -- set event info as cache for other routines to refer event attributes
55553 --
55554
55555 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
55556 l_previous_event_id := l_event_id;
55557
55558 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
55559 (p_application_id => p_application_id
55560 ,p_primary_ledger_id => p_primary_ledger_id
55561 ,p_base_ledger_id => p_base_ledger_id
55562 ,p_target_ledger_id => p_target_ledger_id
55563 ,p_entity_id => l_array_entity_id(Idx)
55564 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
55565 ,p_entity_code => l_array_entity_code(Idx)
55566 ,p_transaction_num => l_array_transaction_num(Idx)
55567 ,p_event_id => l_array_event_id(Idx)
55568 ,p_event_class_code => l_array_class_code(Idx)
55569 ,p_event_type_code => l_array_event_type(Idx)
55570 ,p_event_number => l_array_event_number(Idx)
55571 ,p_event_date => l_array_event_date(Idx)
55572 ,p_transaction_date => l_array_transaction_date(Idx)
55573 ,p_reference_num_1 => l_array_reference_num_1(Idx)
55574 ,p_reference_num_2 => l_array_reference_num_2(Idx)
55575 ,p_reference_num_3 => l_array_reference_num_3(Idx)
55576 ,p_reference_num_4 => l_array_reference_num_4(Idx)
55577 ,p_reference_char_1 => l_array_reference_char_1(Idx)
55578 ,p_reference_char_2 => l_array_reference_char_2(Idx)
55579 ,p_reference_char_3 => l_array_reference_char_3(Idx)
55580 ,p_reference_char_4 => l_array_reference_char_4(Idx)
55581 ,p_reference_date_1 => l_array_reference_date_1(Idx)
55582 ,p_reference_date_2 => l_array_reference_date_2(Idx)
55583 ,p_reference_date_3 => l_array_reference_date_3(Idx)
55584 ,p_reference_date_4 => l_array_reference_date_4(Idx)
55585 ,p_event_created_by => l_array_event_created_by(Idx)
55586 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
55587 --
55588 END IF;
55589
55590
55591
55592 --
55593 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
55594
55595 l_acct_reversal_source := SUBSTR(l_array_source_16(Idx), 1,30);
55596
55597 IF l_continue_with_lines THEN
55598 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
55599 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
55600
55601 xla_accounting_err_pkg.build_message
55602 (p_appli_s_name => 'XLA'
55603 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
55604 ,p_token_1 => 'LINE_NUMBER'
55605 ,p_value_1 => l_array_extract_line_num(Idx)
55606 ,p_token_2 => 'PRODUCT_NAME'
55607 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
55608 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
55609 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
55610 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
55611
55612 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
55613 --
55614 -- following sets the accounting attributes needed to reverse
55615 -- accounting for a distributeion
55616 --
55617
55618 --
55619 -- 5217187
55620 --
55621 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
55622 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
55623 g_array_event(l_event_id).array_value_num('header_index'));
55624 --
55625 --
55626
55627 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
55628 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_16(Idx);
55629 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
55630 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_29(Idx);
55631 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_IDENTIFIER_2';
55632 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_6(Idx);
55633 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'DISTRIBUTION_TYPE';
55634 l_rec_rev_acct_attrs.array_char_value(5) := l_array_source_30(Idx);
55635 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ACCT_CLASS';
55636 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_31(Idx);
55637 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_CCID';
55638 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_32(Idx);
55639 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_ENTERED_AMT';
55640 l_rec_rev_acct_attrs.array_num_value(8) := l_array_source_33(Idx);
55641 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_CURR';
55642 l_rec_rev_acct_attrs.array_char_value(9) := l_array_source_34(Idx);
55643 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_LEDGER_AMT';
55644 l_rec_rev_acct_attrs.array_num_value(10) := l_array_source_35(Idx);
55645 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ACCT_CLASS';
55646 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_36(Idx);
55647 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
55648 l_rec_rev_acct_attrs.array_num_value(12) := l_array_source_37(Idx);
55649 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
55650 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_33(Idx);
55651 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
55652 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_34(Idx);
55653 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
55654 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_35(Idx);
55655 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
55656 l_rec_rev_acct_attrs.array_char_value(16) := l_array_source_38(Idx);
55657 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'REVERSED_DISTRIBUTION_ID1';
55658 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_29(Idx);
55659 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'REVERSED_DISTRIBUTION_ID2';
55660 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_6(Idx);
55661 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_TYPE';
55662 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_30(Idx);
55663 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
55664 l_rec_rev_acct_attrs.array_num_value(20) := l_array_source_39(Idx);
55665 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
55666 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_40(Idx);
55667
55668
55669 xla_ae_lines_pkg.SetAcctReversalAttrs
55670 (p_event_id => l_event_id
55671 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
55672 ,p_calculate_acctd_flag => l_calculate_acctd_flag
55673 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
55674 END IF;
55675
55676 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
55677 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
55678
55679 --
55680 AcctLineType_9 (
55681 p_application_id => p_application_id
55682 ,p_event_id => l_event_id
55683 ,p_calculate_acctd_flag => l_calculate_acctd_flag
55684 ,p_calculate_g_l_flag => l_calculate_g_l_flag
55685 ,p_actual_flag => l_actual_flag
55686 ,p_balance_type_code => l_balance_type_code
55687 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
55688
55689 , p_source_3 => l_array_source_3(Idx)
55690 , p_source_4 => l_array_source_4(Idx)
55691 , p_source_5 => l_array_source_5(Idx)
55692 , p_source_6 => l_array_source_6(Idx)
55693 , p_source_9 => l_array_source_9(Idx)
55694 , p_source_13 => l_array_source_13(Idx)
55695 , p_source_14 => l_array_source_14(Idx)
55696 , p_source_14_meaning => l_array_source_14_meaning(Idx)
55697 , p_source_15 => l_array_source_15(Idx)
55698 , p_source_16 => l_array_source_16(Idx)
55699 , p_source_17 => l_array_source_17(Idx)
55700 , p_source_18 => l_array_source_18(Idx)
55701 , p_source_19 => l_array_source_19(Idx)
55702 , p_source_20 => l_array_source_20(Idx)
55703 , p_source_21 => l_array_source_21(Idx)
55704 , p_source_22 => l_array_source_22(Idx)
55705 , p_source_23 => l_array_source_23(Idx)
55706 , p_source_24 => l_array_source_24(Idx)
55707 , p_source_25 => l_array_source_25(Idx)
55708 , p_source_26 => l_array_source_26(Idx)
55709 , p_source_27 => l_array_source_27(Idx)
55710 , p_source_28 => l_array_source_28(Idx)
55711 , p_source_29 => l_array_source_29(Idx)
55712 , p_source_30 => l_array_source_30(Idx)
55713 , p_source_31 => l_array_source_31(Idx)
55714 , p_source_32 => l_array_source_32(Idx)
55715 , p_source_33 => l_array_source_33(Idx)
55716 , p_source_34 => l_array_source_34(Idx)
55717 , p_source_35 => l_array_source_35(Idx)
55718 , p_source_36 => l_array_source_36(Idx)
55719 , p_source_37 => l_array_source_37(Idx)
55720 , p_source_38 => l_array_source_38(Idx)
55721 , p_source_39 => l_array_source_39(Idx)
55722 , p_source_40 => l_array_source_40(Idx)
55723 );
55724 If(l_balance_type_code = 'A') THEN
55725 l_actual_gain_loss_ref := l_gain_or_loss_ref;
55726 END IF;
55727
55728 --
55729
55730
55731 --
55732 AcctLineType_12 (
55733 p_application_id => p_application_id
55734 ,p_event_id => l_event_id
55735 ,p_calculate_acctd_flag => l_calculate_acctd_flag
55736 ,p_calculate_g_l_flag => l_calculate_g_l_flag
55737 ,p_actual_flag => l_actual_flag
55738 ,p_balance_type_code => l_balance_type_code
55739 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
55740
55741 , p_source_3 => l_array_source_3(Idx)
55742 , p_source_4 => l_array_source_4(Idx)
55743 , p_source_5 => l_array_source_5(Idx)
55744 , p_source_6 => l_array_source_6(Idx)
55745 , p_source_9 => l_array_source_9(Idx)
55746 , p_source_13 => l_array_source_13(Idx)
55747 , p_source_14 => l_array_source_14(Idx)
55748 , p_source_14_meaning => l_array_source_14_meaning(Idx)
55749 , p_source_15 => l_array_source_15(Idx)
55750 , p_source_16 => l_array_source_16(Idx)
55751 , p_source_17 => l_array_source_17(Idx)
55752 , p_source_18 => l_array_source_18(Idx)
55753 , p_source_19 => l_array_source_19(Idx)
55754 , p_source_20 => l_array_source_20(Idx)
55755 , p_source_21 => l_array_source_21(Idx)
55756 , p_source_22 => l_array_source_22(Idx)
55757 , p_source_23 => l_array_source_23(Idx)
55758 , p_source_24 => l_array_source_24(Idx)
55759 , p_source_25 => l_array_source_25(Idx)
55760 , p_source_26 => l_array_source_26(Idx)
55761 , p_source_27 => l_array_source_27(Idx)
55762 , p_source_28 => l_array_source_28(Idx)
55763 , p_source_29 => l_array_source_29(Idx)
55764 , p_source_30 => l_array_source_30(Idx)
55765 , p_source_31 => l_array_source_31(Idx)
55766 , p_source_32 => l_array_source_32(Idx)
55767 , p_source_33 => l_array_source_33(Idx)
55768 , p_source_34 => l_array_source_34(Idx)
55769 , p_source_35 => l_array_source_35(Idx)
55770 , p_source_36 => l_array_source_36(Idx)
55771 , p_source_37 => l_array_source_37(Idx)
55772 , p_source_38 => l_array_source_38(Idx)
55773 , p_source_39 => l_array_source_39(Idx)
55774 , p_source_40 => l_array_source_40(Idx)
55775 );
55776 If(l_balance_type_code = 'A') THEN
55777 l_actual_gain_loss_ref := l_gain_or_loss_ref;
55778 END IF;
55779
55780 --
55781
55782
55783 --
55784 AcctLineType_22 (
55785 p_application_id => p_application_id
55786 ,p_event_id => l_event_id
55787 ,p_calculate_acctd_flag => l_calculate_acctd_flag
55788 ,p_calculate_g_l_flag => l_calculate_g_l_flag
55789 ,p_actual_flag => l_actual_flag
55790 ,p_balance_type_code => l_balance_type_code
55791 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
55792
55793 , p_source_3 => l_array_source_3(Idx)
55794 , p_source_4 => l_array_source_4(Idx)
55795 , p_source_5 => l_array_source_5(Idx)
55796 , p_source_6 => l_array_source_6(Idx)
55797 , p_source_9 => l_array_source_9(Idx)
55798 , p_source_13 => l_array_source_13(Idx)
55799 , p_source_14 => l_array_source_14(Idx)
55800 , p_source_14_meaning => l_array_source_14_meaning(Idx)
55801 , p_source_15 => l_array_source_15(Idx)
55802 , p_source_16 => l_array_source_16(Idx)
55803 , p_source_17 => l_array_source_17(Idx)
55804 , p_source_18 => l_array_source_18(Idx)
55805 , p_source_19 => l_array_source_19(Idx)
55806 , p_source_20 => l_array_source_20(Idx)
55807 , p_source_21 => l_array_source_21(Idx)
55808 , p_source_22 => l_array_source_22(Idx)
55809 , p_source_23 => l_array_source_23(Idx)
55810 , p_source_24 => l_array_source_24(Idx)
55811 , p_source_25 => l_array_source_25(Idx)
55812 , p_source_26 => l_array_source_26(Idx)
55813 , p_source_27 => l_array_source_27(Idx)
55814 , p_source_28 => l_array_source_28(Idx)
55815 , p_source_29 => l_array_source_29(Idx)
55816 , p_source_30 => l_array_source_30(Idx)
55817 , p_source_31 => l_array_source_31(Idx)
55818 , p_source_32 => l_array_source_32(Idx)
55819 , p_source_33 => l_array_source_33(Idx)
55820 , p_source_34 => l_array_source_34(Idx)
55821 , p_source_35 => l_array_source_35(Idx)
55822 , p_source_36 => l_array_source_36(Idx)
55823 , p_source_37 => l_array_source_37(Idx)
55824 , p_source_38 => l_array_source_38(Idx)
55825 , p_source_39 => l_array_source_39(Idx)
55826 , p_source_40 => l_array_source_40(Idx)
55827 );
55828 If(l_balance_type_code = 'A') THEN
55829 l_actual_gain_loss_ref := l_gain_or_loss_ref;
55830 END IF;
55831
55832 --
55833
55834
55835 --
55836 AcctLineType_23 (
55837 p_application_id => p_application_id
55838 ,p_event_id => l_event_id
55839 ,p_calculate_acctd_flag => l_calculate_acctd_flag
55840 ,p_calculate_g_l_flag => l_calculate_g_l_flag
55841 ,p_actual_flag => l_actual_flag
55842 ,p_balance_type_code => l_balance_type_code
55843 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
55844
55845 , p_source_3 => l_array_source_3(Idx)
55846 , p_source_4 => l_array_source_4(Idx)
55847 , p_source_5 => l_array_source_5(Idx)
55848 , p_source_6 => l_array_source_6(Idx)
55849 , p_source_9 => l_array_source_9(Idx)
55850 , p_source_13 => l_array_source_13(Idx)
55851 , p_source_14 => l_array_source_14(Idx)
55852 , p_source_14_meaning => l_array_source_14_meaning(Idx)
55853 , p_source_15 => l_array_source_15(Idx)
55854 , p_source_16 => l_array_source_16(Idx)
55855 , p_source_17 => l_array_source_17(Idx)
55856 , p_source_18 => l_array_source_18(Idx)
55857 , p_source_19 => l_array_source_19(Idx)
55858 , p_source_20 => l_array_source_20(Idx)
55859 , p_source_21 => l_array_source_21(Idx)
55860 , p_source_22 => l_array_source_22(Idx)
55861 , p_source_23 => l_array_source_23(Idx)
55862 , p_source_24 => l_array_source_24(Idx)
55863 , p_source_25 => l_array_source_25(Idx)
55864 , p_source_26 => l_array_source_26(Idx)
55865 , p_source_27 => l_array_source_27(Idx)
55866 , p_source_28 => l_array_source_28(Idx)
55867 , p_source_29 => l_array_source_29(Idx)
55868 , p_source_30 => l_array_source_30(Idx)
55869 , p_source_31 => l_array_source_31(Idx)
55870 , p_source_32 => l_array_source_32(Idx)
55871 , p_source_33 => l_array_source_33(Idx)
55872 , p_source_34 => l_array_source_34(Idx)
55873 , p_source_35 => l_array_source_35(Idx)
55874 , p_source_36 => l_array_source_36(Idx)
55875 , p_source_37 => l_array_source_37(Idx)
55876 , p_source_38 => l_array_source_38(Idx)
55877 , p_source_39 => l_array_source_39(Idx)
55878 , p_source_40 => l_array_source_40(Idx)
55879 );
55880 If(l_balance_type_code = 'A') THEN
55881 l_actual_gain_loss_ref := l_gain_or_loss_ref;
55882 END IF;
55883
55884 --
55885
55886
55887 --
55888 AcctLineType_24 (
55889 p_application_id => p_application_id
55890 ,p_event_id => l_event_id
55891 ,p_calculate_acctd_flag => l_calculate_acctd_flag
55892 ,p_calculate_g_l_flag => l_calculate_g_l_flag
55893 ,p_actual_flag => l_actual_flag
55894 ,p_balance_type_code => l_balance_type_code
55895 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
55896
55897 , p_source_3 => l_array_source_3(Idx)
55898 , p_source_4 => l_array_source_4(Idx)
55899 , p_source_5 => l_array_source_5(Idx)
55900 , p_source_6 => l_array_source_6(Idx)
55901 , p_source_9 => l_array_source_9(Idx)
55902 , p_source_13 => l_array_source_13(Idx)
55903 , p_source_14 => l_array_source_14(Idx)
55904 , p_source_14_meaning => l_array_source_14_meaning(Idx)
55905 , p_source_15 => l_array_source_15(Idx)
55906 , p_source_16 => l_array_source_16(Idx)
55907 , p_source_17 => l_array_source_17(Idx)
55908 , p_source_18 => l_array_source_18(Idx)
55909 , p_source_19 => l_array_source_19(Idx)
55910 , p_source_20 => l_array_source_20(Idx)
55911 , p_source_21 => l_array_source_21(Idx)
55912 , p_source_22 => l_array_source_22(Idx)
55913 , p_source_23 => l_array_source_23(Idx)
55914 , p_source_24 => l_array_source_24(Idx)
55915 , p_source_25 => l_array_source_25(Idx)
55916 , p_source_26 => l_array_source_26(Idx)
55917 , p_source_27 => l_array_source_27(Idx)
55918 , p_source_28 => l_array_source_28(Idx)
55919 , p_source_29 => l_array_source_29(Idx)
55920 , p_source_30 => l_array_source_30(Idx)
55921 , p_source_31 => l_array_source_31(Idx)
55922 , p_source_32 => l_array_source_32(Idx)
55923 , p_source_33 => l_array_source_33(Idx)
55924 , p_source_34 => l_array_source_34(Idx)
55925 , p_source_35 => l_array_source_35(Idx)
55926 , p_source_36 => l_array_source_36(Idx)
55927 , p_source_37 => l_array_source_37(Idx)
55928 , p_source_38 => l_array_source_38(Idx)
55929 , p_source_39 => l_array_source_39(Idx)
55930 , p_source_40 => l_array_source_40(Idx)
55931 );
55932 If(l_balance_type_code = 'A') THEN
55933 l_actual_gain_loss_ref := l_gain_or_loss_ref;
55934 END IF;
55935
55936 --
55937
55938
55939 --
55940 AcctLineType_25 (
55941 p_application_id => p_application_id
55942 ,p_event_id => l_event_id
55943 ,p_calculate_acctd_flag => l_calculate_acctd_flag
55944 ,p_calculate_g_l_flag => l_calculate_g_l_flag
55945 ,p_actual_flag => l_actual_flag
55946 ,p_balance_type_code => l_balance_type_code
55947 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
55948
55949 , p_source_3 => l_array_source_3(Idx)
55950 , p_source_4 => l_array_source_4(Idx)
55951 , p_source_5 => l_array_source_5(Idx)
55952 , p_source_6 => l_array_source_6(Idx)
55953 , p_source_9 => l_array_source_9(Idx)
55954 , p_source_13 => l_array_source_13(Idx)
55955 , p_source_14 => l_array_source_14(Idx)
55956 , p_source_14_meaning => l_array_source_14_meaning(Idx)
55957 , p_source_15 => l_array_source_15(Idx)
55958 , p_source_16 => l_array_source_16(Idx)
55959 , p_source_17 => l_array_source_17(Idx)
55960 , p_source_18 => l_array_source_18(Idx)
55961 , p_source_19 => l_array_source_19(Idx)
55962 , p_source_20 => l_array_source_20(Idx)
55963 , p_source_21 => l_array_source_21(Idx)
55964 , p_source_22 => l_array_source_22(Idx)
55965 , p_source_23 => l_array_source_23(Idx)
55966 , p_source_24 => l_array_source_24(Idx)
55967 , p_source_25 => l_array_source_25(Idx)
55968 , p_source_26 => l_array_source_26(Idx)
55969 , p_source_27 => l_array_source_27(Idx)
55970 , p_source_28 => l_array_source_28(Idx)
55971 , p_source_29 => l_array_source_29(Idx)
55972 , p_source_30 => l_array_source_30(Idx)
55973 , p_source_31 => l_array_source_31(Idx)
55974 , p_source_32 => l_array_source_32(Idx)
55975 , p_source_33 => l_array_source_33(Idx)
55976 , p_source_34 => l_array_source_34(Idx)
55977 , p_source_35 => l_array_source_35(Idx)
55978 , p_source_36 => l_array_source_36(Idx)
55979 , p_source_37 => l_array_source_37(Idx)
55980 , p_source_38 => l_array_source_38(Idx)
55981 , p_source_39 => l_array_source_39(Idx)
55982 , p_source_40 => l_array_source_40(Idx)
55983 );
55984 If(l_balance_type_code = 'A') THEN
55985 l_actual_gain_loss_ref := l_gain_or_loss_ref;
55986 END IF;
55987
55988 --
55989
55990
55991 --
55992 AcctLineType_30 (
55993 p_application_id => p_application_id
55994 ,p_event_id => l_event_id
55995 ,p_calculate_acctd_flag => l_calculate_acctd_flag
55996 ,p_calculate_g_l_flag => l_calculate_g_l_flag
55997 ,p_actual_flag => l_actual_flag
55998 ,p_balance_type_code => l_balance_type_code
55999 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
56000
56001 , p_source_3 => l_array_source_3(Idx)
56002 , p_source_4 => l_array_source_4(Idx)
56003 , p_source_5 => l_array_source_5(Idx)
56004 , p_source_6 => l_array_source_6(Idx)
56005 , p_source_9 => l_array_source_9(Idx)
56006 , p_source_13 => l_array_source_13(Idx)
56007 , p_source_14 => l_array_source_14(Idx)
56008 , p_source_14_meaning => l_array_source_14_meaning(Idx)
56009 , p_source_15 => l_array_source_15(Idx)
56010 , p_source_16 => l_array_source_16(Idx)
56011 , p_source_17 => l_array_source_17(Idx)
56012 , p_source_18 => l_array_source_18(Idx)
56013 , p_source_19 => l_array_source_19(Idx)
56014 , p_source_20 => l_array_source_20(Idx)
56015 , p_source_21 => l_array_source_21(Idx)
56016 , p_source_22 => l_array_source_22(Idx)
56017 , p_source_29 => l_array_source_29(Idx)
56018 , p_source_30 => l_array_source_30(Idx)
56019 , p_source_31 => l_array_source_31(Idx)
56020 , p_source_32 => l_array_source_32(Idx)
56021 , p_source_33 => l_array_source_33(Idx)
56022 , p_source_34 => l_array_source_34(Idx)
56023 , p_source_35 => l_array_source_35(Idx)
56024 , p_source_36 => l_array_source_36(Idx)
56025 , p_source_37 => l_array_source_37(Idx)
56026 , p_source_38 => l_array_source_38(Idx)
56027 , p_source_39 => l_array_source_39(Idx)
56028 , p_source_40 => l_array_source_40(Idx)
56029 , p_source_41 => l_array_source_41(Idx)
56030 , p_source_42 => l_array_source_42(Idx)
56031 , p_source_43 => l_array_source_43(Idx)
56032 , p_source_44 => l_array_source_44(Idx)
56033 , p_source_45 => l_array_source_45(Idx)
56034 , p_source_46 => l_array_source_46(Idx)
56035 );
56036 If(l_balance_type_code = 'A') THEN
56037 l_actual_gain_loss_ref := l_gain_or_loss_ref;
56038 END IF;
56039
56040 --
56041
56042
56043 --
56044 AcctLineType_31 (
56045 p_application_id => p_application_id
56046 ,p_event_id => l_event_id
56047 ,p_calculate_acctd_flag => l_calculate_acctd_flag
56048 ,p_calculate_g_l_flag => l_calculate_g_l_flag
56049 ,p_actual_flag => l_actual_flag
56050 ,p_balance_type_code => l_balance_type_code
56051 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
56052
56053 , p_source_3 => l_array_source_3(Idx)
56054 , p_source_4 => l_array_source_4(Idx)
56055 , p_source_5 => l_array_source_5(Idx)
56056 , p_source_6 => l_array_source_6(Idx)
56057 , p_source_9 => l_array_source_9(Idx)
56058 , p_source_13 => l_array_source_13(Idx)
56059 , p_source_14 => l_array_source_14(Idx)
56060 , p_source_14_meaning => l_array_source_14_meaning(Idx)
56061 , p_source_15 => l_array_source_15(Idx)
56062 , p_source_16 => l_array_source_16(Idx)
56063 , p_source_17 => l_array_source_17(Idx)
56064 , p_source_18 => l_array_source_18(Idx)
56065 , p_source_19 => l_array_source_19(Idx)
56066 , p_source_20 => l_array_source_20(Idx)
56067 , p_source_21 => l_array_source_21(Idx)
56068 , p_source_22 => l_array_source_22(Idx)
56069 , p_source_29 => l_array_source_29(Idx)
56070 , p_source_30 => l_array_source_30(Idx)
56071 , p_source_31 => l_array_source_31(Idx)
56072 , p_source_32 => l_array_source_32(Idx)
56073 , p_source_33 => l_array_source_33(Idx)
56074 , p_source_34 => l_array_source_34(Idx)
56075 , p_source_35 => l_array_source_35(Idx)
56076 , p_source_36 => l_array_source_36(Idx)
56077 , p_source_37 => l_array_source_37(Idx)
56078 , p_source_38 => l_array_source_38(Idx)
56079 , p_source_39 => l_array_source_39(Idx)
56080 , p_source_40 => l_array_source_40(Idx)
56081 , p_source_41 => l_array_source_41(Idx)
56082 , p_source_42 => l_array_source_42(Idx)
56083 , p_source_43 => l_array_source_43(Idx)
56084 , p_source_44 => l_array_source_44(Idx)
56085 , p_source_45 => l_array_source_45(Idx)
56086 , p_source_46 => l_array_source_46(Idx)
56087 );
56088 If(l_balance_type_code = 'A') THEN
56089 l_actual_gain_loss_ref := l_gain_or_loss_ref;
56090 END IF;
56091
56092 --
56093
56094
56095 --
56096 AcctLineType_32 (
56097 p_application_id => p_application_id
56098 ,p_event_id => l_event_id
56099 ,p_calculate_acctd_flag => l_calculate_acctd_flag
56100 ,p_calculate_g_l_flag => l_calculate_g_l_flag
56101 ,p_actual_flag => l_actual_flag
56102 ,p_balance_type_code => l_balance_type_code
56103 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
56104
56105 , p_source_3 => l_array_source_3(Idx)
56106 , p_source_4 => l_array_source_4(Idx)
56107 , p_source_5 => l_array_source_5(Idx)
56108 , p_source_6 => l_array_source_6(Idx)
56109 , p_source_9 => l_array_source_9(Idx)
56110 , p_source_13 => l_array_source_13(Idx)
56111 , p_source_14 => l_array_source_14(Idx)
56112 , p_source_14_meaning => l_array_source_14_meaning(Idx)
56113 , p_source_15 => l_array_source_15(Idx)
56114 , p_source_16 => l_array_source_16(Idx)
56115 , p_source_17 => l_array_source_17(Idx)
56116 , p_source_18 => l_array_source_18(Idx)
56117 , p_source_19 => l_array_source_19(Idx)
56118 , p_source_20 => l_array_source_20(Idx)
56119 , p_source_21 => l_array_source_21(Idx)
56120 , p_source_22 => l_array_source_22(Idx)
56121 , p_source_29 => l_array_source_29(Idx)
56122 , p_source_30 => l_array_source_30(Idx)
56123 , p_source_31 => l_array_source_31(Idx)
56124 , p_source_32 => l_array_source_32(Idx)
56125 , p_source_33 => l_array_source_33(Idx)
56126 , p_source_34 => l_array_source_34(Idx)
56127 , p_source_35 => l_array_source_35(Idx)
56128 , p_source_36 => l_array_source_36(Idx)
56129 , p_source_37 => l_array_source_37(Idx)
56130 , p_source_38 => l_array_source_38(Idx)
56131 , p_source_39 => l_array_source_39(Idx)
56132 , p_source_40 => l_array_source_40(Idx)
56133 , p_source_41 => l_array_source_41(Idx)
56134 , p_source_42 => l_array_source_42(Idx)
56135 , p_source_43 => l_array_source_43(Idx)
56136 , p_source_44 => l_array_source_44(Idx)
56137 , p_source_45 => l_array_source_45(Idx)
56138 , p_source_46 => l_array_source_46(Idx)
56139 );
56140 If(l_balance_type_code = 'A') THEN
56141 l_actual_gain_loss_ref := l_gain_or_loss_ref;
56142 END IF;
56143
56144 --
56145
56146
56147 --
56148 AcctLineType_33 (
56149 p_application_id => p_application_id
56150 ,p_event_id => l_event_id
56151 ,p_calculate_acctd_flag => l_calculate_acctd_flag
56152 ,p_calculate_g_l_flag => l_calculate_g_l_flag
56153 ,p_actual_flag => l_actual_flag
56154 ,p_balance_type_code => l_balance_type_code
56155 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
56156
56157 , p_source_3 => l_array_source_3(Idx)
56158 , p_source_4 => l_array_source_4(Idx)
56159 , p_source_5 => l_array_source_5(Idx)
56160 , p_source_6 => l_array_source_6(Idx)
56161 , p_source_9 => l_array_source_9(Idx)
56162 , p_source_13 => l_array_source_13(Idx)
56163 , p_source_14 => l_array_source_14(Idx)
56164 , p_source_14_meaning => l_array_source_14_meaning(Idx)
56165 , p_source_15 => l_array_source_15(Idx)
56166 , p_source_16 => l_array_source_16(Idx)
56167 , p_source_17 => l_array_source_17(Idx)
56168 , p_source_18 => l_array_source_18(Idx)
56169 , p_source_19 => l_array_source_19(Idx)
56170 , p_source_20 => l_array_source_20(Idx)
56171 , p_source_21 => l_array_source_21(Idx)
56172 , p_source_22 => l_array_source_22(Idx)
56173 , p_source_29 => l_array_source_29(Idx)
56174 , p_source_30 => l_array_source_30(Idx)
56175 , p_source_31 => l_array_source_31(Idx)
56176 , p_source_32 => l_array_source_32(Idx)
56177 , p_source_33 => l_array_source_33(Idx)
56178 , p_source_34 => l_array_source_34(Idx)
56179 , p_source_35 => l_array_source_35(Idx)
56180 , p_source_36 => l_array_source_36(Idx)
56181 , p_source_37 => l_array_source_37(Idx)
56182 , p_source_38 => l_array_source_38(Idx)
56183 , p_source_39 => l_array_source_39(Idx)
56184 , p_source_40 => l_array_source_40(Idx)
56185 , p_source_41 => l_array_source_41(Idx)
56186 , p_source_42 => l_array_source_42(Idx)
56187 , p_source_43 => l_array_source_43(Idx)
56188 , p_source_44 => l_array_source_44(Idx)
56189 , p_source_45 => l_array_source_45(Idx)
56190 , p_source_46 => l_array_source_46(Idx)
56191 );
56192 If(l_balance_type_code = 'A') THEN
56193 l_actual_gain_loss_ref := l_gain_or_loss_ref;
56194 END IF;
56195
56196 --
56197
56198
56199 --
56200 AcctLineType_39 (
56201 p_application_id => p_application_id
56202 ,p_event_id => l_event_id
56203 ,p_calculate_acctd_flag => l_calculate_acctd_flag
56204 ,p_calculate_g_l_flag => l_calculate_g_l_flag
56205 ,p_actual_flag => l_actual_flag
56206 ,p_balance_type_code => l_balance_type_code
56207 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
56208
56209 , p_source_3 => l_array_source_3(Idx)
56210 , p_source_4 => l_array_source_4(Idx)
56211 , p_source_5 => l_array_source_5(Idx)
56212 , p_source_6 => l_array_source_6(Idx)
56213 , p_source_9 => l_array_source_9(Idx)
56214 , p_source_13 => l_array_source_13(Idx)
56215 , p_source_14 => l_array_source_14(Idx)
56216 , p_source_14_meaning => l_array_source_14_meaning(Idx)
56217 , p_source_15 => l_array_source_15(Idx)
56218 , p_source_16 => l_array_source_16(Idx)
56219 , p_source_17 => l_array_source_17(Idx)
56220 , p_source_18 => l_array_source_18(Idx)
56221 , p_source_19 => l_array_source_19(Idx)
56222 , p_source_20 => l_array_source_20(Idx)
56223 , p_source_21 => l_array_source_21(Idx)
56224 , p_source_22 => l_array_source_22(Idx)
56225 , p_source_23 => l_array_source_23(Idx)
56226 , p_source_24 => l_array_source_24(Idx)
56227 , p_source_25 => l_array_source_25(Idx)
56228 , p_source_26 => l_array_source_26(Idx)
56229 , p_source_27 => l_array_source_27(Idx)
56230 , p_source_28 => l_array_source_28(Idx)
56231 , p_source_29 => l_array_source_29(Idx)
56232 , p_source_30 => l_array_source_30(Idx)
56233 , p_source_31 => l_array_source_31(Idx)
56234 , p_source_32 => l_array_source_32(Idx)
56235 , p_source_33 => l_array_source_33(Idx)
56236 , p_source_34 => l_array_source_34(Idx)
56237 , p_source_35 => l_array_source_35(Idx)
56238 , p_source_36 => l_array_source_36(Idx)
56239 , p_source_37 => l_array_source_37(Idx)
56240 , p_source_38 => l_array_source_38(Idx)
56241 , p_source_39 => l_array_source_39(Idx)
56242 , p_source_40 => l_array_source_40(Idx)
56243 );
56244 If(l_balance_type_code = 'A') THEN
56245 l_actual_gain_loss_ref := l_gain_or_loss_ref;
56246 END IF;
56247
56248 --
56249
56250
56251 --
56252 AcctLineType_41 (
56253 p_application_id => p_application_id
56254 ,p_event_id => l_event_id
56255 ,p_calculate_acctd_flag => l_calculate_acctd_flag
56256 ,p_calculate_g_l_flag => l_calculate_g_l_flag
56257 ,p_actual_flag => l_actual_flag
56258 ,p_balance_type_code => l_balance_type_code
56259 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
56260
56261 , p_source_3 => l_array_source_3(Idx)
56262 , p_source_4 => l_array_source_4(Idx)
56263 , p_source_5 => l_array_source_5(Idx)
56264 , p_source_6 => l_array_source_6(Idx)
56265 , p_source_9 => l_array_source_9(Idx)
56266 , p_source_13 => l_array_source_13(Idx)
56267 , p_source_14 => l_array_source_14(Idx)
56268 , p_source_14_meaning => l_array_source_14_meaning(Idx)
56269 , p_source_15 => l_array_source_15(Idx)
56270 , p_source_16 => l_array_source_16(Idx)
56271 , p_source_17 => l_array_source_17(Idx)
56272 , p_source_18 => l_array_source_18(Idx)
56273 , p_source_19 => l_array_source_19(Idx)
56274 , p_source_20 => l_array_source_20(Idx)
56275 , p_source_21 => l_array_source_21(Idx)
56276 , p_source_22 => l_array_source_22(Idx)
56277 , p_source_29 => l_array_source_29(Idx)
56278 , p_source_30 => l_array_source_30(Idx)
56279 , p_source_31 => l_array_source_31(Idx)
56280 , p_source_32 => l_array_source_32(Idx)
56281 , p_source_33 => l_array_source_33(Idx)
56282 , p_source_34 => l_array_source_34(Idx)
56283 , p_source_35 => l_array_source_35(Idx)
56284 , p_source_36 => l_array_source_36(Idx)
56285 , p_source_37 => l_array_source_37(Idx)
56286 , p_source_38 => l_array_source_38(Idx)
56287 , p_source_39 => l_array_source_39(Idx)
56288 , p_source_40 => l_array_source_40(Idx)
56289 , p_source_41 => l_array_source_41(Idx)
56290 , p_source_42 => l_array_source_42(Idx)
56291 , p_source_43 => l_array_source_43(Idx)
56292 , p_source_44 => l_array_source_44(Idx)
56293 , p_source_45 => l_array_source_45(Idx)
56294 , p_source_46 => l_array_source_46(Idx)
56295 );
56296 If(l_balance_type_code = 'A') THEN
56297 l_actual_gain_loss_ref := l_gain_or_loss_ref;
56298 END IF;
56299
56300 --
56301
56302
56303 --
56304 AcctLineType_42 (
56305 p_application_id => p_application_id
56306 ,p_event_id => l_event_id
56307 ,p_calculate_acctd_flag => l_calculate_acctd_flag
56308 ,p_calculate_g_l_flag => l_calculate_g_l_flag
56309 ,p_actual_flag => l_actual_flag
56310 ,p_balance_type_code => l_balance_type_code
56311 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
56312
56313 , p_source_3 => l_array_source_3(Idx)
56314 , p_source_4 => l_array_source_4(Idx)
56315 , p_source_5 => l_array_source_5(Idx)
56316 , p_source_6 => l_array_source_6(Idx)
56317 , p_source_9 => l_array_source_9(Idx)
56318 , p_source_13 => l_array_source_13(Idx)
56319 , p_source_14 => l_array_source_14(Idx)
56320 , p_source_14_meaning => l_array_source_14_meaning(Idx)
56321 , p_source_15 => l_array_source_15(Idx)
56322 , p_source_16 => l_array_source_16(Idx)
56323 , p_source_17 => l_array_source_17(Idx)
56324 , p_source_18 => l_array_source_18(Idx)
56325 , p_source_19 => l_array_source_19(Idx)
56326 , p_source_20 => l_array_source_20(Idx)
56327 , p_source_21 => l_array_source_21(Idx)
56328 , p_source_22 => l_array_source_22(Idx)
56329 , p_source_23 => l_array_source_23(Idx)
56330 , p_source_24 => l_array_source_24(Idx)
56331 , p_source_25 => l_array_source_25(Idx)
56332 , p_source_26 => l_array_source_26(Idx)
56333 , p_source_27 => l_array_source_27(Idx)
56334 , p_source_28 => l_array_source_28(Idx)
56335 , p_source_29 => l_array_source_29(Idx)
56336 , p_source_30 => l_array_source_30(Idx)
56337 , p_source_31 => l_array_source_31(Idx)
56338 , p_source_32 => l_array_source_32(Idx)
56339 , p_source_33 => l_array_source_33(Idx)
56340 , p_source_34 => l_array_source_34(Idx)
56341 , p_source_35 => l_array_source_35(Idx)
56342 , p_source_36 => l_array_source_36(Idx)
56343 , p_source_37 => l_array_source_37(Idx)
56344 , p_source_38 => l_array_source_38(Idx)
56345 , p_source_39 => l_array_source_39(Idx)
56346 , p_source_40 => l_array_source_40(Idx)
56347 );
56348 If(l_balance_type_code = 'A') THEN
56349 l_actual_gain_loss_ref := l_gain_or_loss_ref;
56350 END IF;
56351
56352 --
56353
56354
56355 --
56356 AcctLineType_44 (
56357 p_application_id => p_application_id
56358 ,p_event_id => l_event_id
56359 ,p_calculate_acctd_flag => l_calculate_acctd_flag
56360 ,p_calculate_g_l_flag => l_calculate_g_l_flag
56361 ,p_actual_flag => l_actual_flag
56362 ,p_balance_type_code => l_balance_type_code
56363 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
56364
56365 , p_source_3 => l_array_source_3(Idx)
56366 , p_source_4 => l_array_source_4(Idx)
56367 , p_source_5 => l_array_source_5(Idx)
56368 , p_source_6 => l_array_source_6(Idx)
56369 , p_source_9 => l_array_source_9(Idx)
56370 , p_source_13 => l_array_source_13(Idx)
56371 , p_source_14 => l_array_source_14(Idx)
56372 , p_source_14_meaning => l_array_source_14_meaning(Idx)
56373 , p_source_15 => l_array_source_15(Idx)
56374 , p_source_16 => l_array_source_16(Idx)
56375 , p_source_17 => l_array_source_17(Idx)
56376 , p_source_18 => l_array_source_18(Idx)
56377 , p_source_19 => l_array_source_19(Idx)
56378 , p_source_20 => l_array_source_20(Idx)
56379 , p_source_21 => l_array_source_21(Idx)
56380 , p_source_22 => l_array_source_22(Idx)
56381 , p_source_29 => l_array_source_29(Idx)
56382 , p_source_30 => l_array_source_30(Idx)
56383 , p_source_31 => l_array_source_31(Idx)
56384 , p_source_32 => l_array_source_32(Idx)
56385 , p_source_33 => l_array_source_33(Idx)
56386 , p_source_34 => l_array_source_34(Idx)
56387 , p_source_35 => l_array_source_35(Idx)
56388 , p_source_36 => l_array_source_36(Idx)
56389 , p_source_37 => l_array_source_37(Idx)
56390 , p_source_38 => l_array_source_38(Idx)
56391 , p_source_39 => l_array_source_39(Idx)
56392 , p_source_40 => l_array_source_40(Idx)
56393 , p_source_41 => l_array_source_41(Idx)
56394 , p_source_42 => l_array_source_42(Idx)
56395 , p_source_43 => l_array_source_43(Idx)
56396 , p_source_44 => l_array_source_44(Idx)
56397 , p_source_45 => l_array_source_45(Idx)
56398 , p_source_46 => l_array_source_46(Idx)
56399 );
56400 If(l_balance_type_code = 'A') THEN
56401 l_actual_gain_loss_ref := l_gain_or_loss_ref;
56402 END IF;
56403
56404 --
56405
56406
56407 --
56408 AcctLineType_46 (
56409 p_application_id => p_application_id
56410 ,p_event_id => l_event_id
56411 ,p_calculate_acctd_flag => l_calculate_acctd_flag
56412 ,p_calculate_g_l_flag => l_calculate_g_l_flag
56413 ,p_actual_flag => l_actual_flag
56414 ,p_balance_type_code => l_balance_type_code
56415 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
56416
56417 , p_source_3 => l_array_source_3(Idx)
56418 , p_source_4 => l_array_source_4(Idx)
56419 , p_source_5 => l_array_source_5(Idx)
56420 , p_source_6 => l_array_source_6(Idx)
56421 , p_source_13 => l_array_source_13(Idx)
56422 , p_source_16 => l_array_source_16(Idx)
56423 , p_source_17 => l_array_source_17(Idx)
56424 , p_source_18 => l_array_source_18(Idx)
56425 , p_source_19 => l_array_source_19(Idx)
56426 , p_source_20 => l_array_source_20(Idx)
56427 , p_source_21 => l_array_source_21(Idx)
56428 , p_source_22 => l_array_source_22(Idx)
56429 , p_source_29 => l_array_source_29(Idx)
56430 , p_source_30 => l_array_source_30(Idx)
56431 , p_source_31 => l_array_source_31(Idx)
56432 , p_source_32 => l_array_source_32(Idx)
56433 , p_source_33 => l_array_source_33(Idx)
56434 , p_source_34 => l_array_source_34(Idx)
56435 , p_source_35 => l_array_source_35(Idx)
56436 , p_source_36 => l_array_source_36(Idx)
56437 , p_source_37 => l_array_source_37(Idx)
56438 , p_source_38 => l_array_source_38(Idx)
56439 , p_source_39 => l_array_source_39(Idx)
56440 , p_source_40 => l_array_source_40(Idx)
56441 , p_source_68 => l_array_source_68(Idx)
56442 , p_source_69 => l_array_source_69(Idx)
56443 , p_source_70 => l_array_source_70(Idx)
56444 , p_source_71 => l_array_source_71(Idx)
56445 , p_source_72 => l_array_source_72(Idx)
56446 , p_source_73 => l_array_source_73(Idx)
56447 );
56448 If(l_balance_type_code = 'A') THEN
56449 l_actual_gain_loss_ref := l_gain_or_loss_ref;
56450 END IF;
56451
56452 --
56453
56454
56455 --
56456 AcctLineType_54 (
56457 p_application_id => p_application_id
56458 ,p_event_id => l_event_id
56459 ,p_calculate_acctd_flag => l_calculate_acctd_flag
56460 ,p_calculate_g_l_flag => l_calculate_g_l_flag
56461 ,p_actual_flag => l_actual_flag
56462 ,p_balance_type_code => l_balance_type_code
56463 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
56464
56465 , p_source_3 => l_array_source_3(Idx)
56466 , p_source_4 => l_array_source_4(Idx)
56467 , p_source_5 => l_array_source_5(Idx)
56468 , p_source_6 => l_array_source_6(Idx)
56469 , p_source_9 => l_array_source_9(Idx)
56470 , p_source_11 => l_array_source_11(Idx)
56471 , p_source_13 => l_array_source_13(Idx)
56472 , p_source_14 => l_array_source_14(Idx)
56473 , p_source_14_meaning => l_array_source_14_meaning(Idx)
56474 , p_source_15 => l_array_source_15(Idx)
56475 , p_source_16 => l_array_source_16(Idx)
56476 , p_source_17 => l_array_source_17(Idx)
56477 , p_source_18 => l_array_source_18(Idx)
56478 , p_source_19 => l_array_source_19(Idx)
56479 , p_source_20 => l_array_source_20(Idx)
56480 , p_source_21 => l_array_source_21(Idx)
56481 , p_source_22 => l_array_source_22(Idx)
56482 , p_source_23 => l_array_source_23(Idx)
56483 , p_source_24 => l_array_source_24(Idx)
56484 , p_source_25 => l_array_source_25(Idx)
56485 , p_source_26 => l_array_source_26(Idx)
56486 , p_source_27 => l_array_source_27(Idx)
56487 , p_source_28 => l_array_source_28(Idx)
56488 , p_source_29 => l_array_source_29(Idx)
56489 , p_source_30 => l_array_source_30(Idx)
56490 , p_source_31 => l_array_source_31(Idx)
56491 , p_source_32 => l_array_source_32(Idx)
56492 , p_source_33 => l_array_source_33(Idx)
56493 , p_source_34 => l_array_source_34(Idx)
56494 , p_source_35 => l_array_source_35(Idx)
56495 , p_source_36 => l_array_source_36(Idx)
56496 , p_source_37 => l_array_source_37(Idx)
56497 , p_source_38 => l_array_source_38(Idx)
56498 , p_source_39 => l_array_source_39(Idx)
56499 , p_source_40 => l_array_source_40(Idx)
56500 );
56501 If(l_balance_type_code = 'A') THEN
56502 l_actual_gain_loss_ref := l_gain_or_loss_ref;
56503 END IF;
56504
56505 --
56506
56507
56508 --
56509 AcctLineType_55 (
56510 p_application_id => p_application_id
56511 ,p_event_id => l_event_id
56512 ,p_calculate_acctd_flag => l_calculate_acctd_flag
56513 ,p_calculate_g_l_flag => l_calculate_g_l_flag
56514 ,p_actual_flag => l_actual_flag
56515 ,p_balance_type_code => l_balance_type_code
56516 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
56517
56518 , p_source_3 => l_array_source_3(Idx)
56519 , p_source_4 => l_array_source_4(Idx)
56520 , p_source_5 => l_array_source_5(Idx)
56521 , p_source_6 => l_array_source_6(Idx)
56522 , p_source_9 => l_array_source_9(Idx)
56523 , p_source_11 => l_array_source_11(Idx)
56524 , p_source_13 => l_array_source_13(Idx)
56525 , p_source_14 => l_array_source_14(Idx)
56526 , p_source_14_meaning => l_array_source_14_meaning(Idx)
56527 , p_source_15 => l_array_source_15(Idx)
56528 , p_source_16 => l_array_source_16(Idx)
56529 , p_source_17 => l_array_source_17(Idx)
56530 , p_source_18 => l_array_source_18(Idx)
56531 , p_source_19 => l_array_source_19(Idx)
56532 , p_source_20 => l_array_source_20(Idx)
56533 , p_source_21 => l_array_source_21(Idx)
56534 , p_source_22 => l_array_source_22(Idx)
56535 , p_source_23 => l_array_source_23(Idx)
56536 , p_source_24 => l_array_source_24(Idx)
56537 , p_source_25 => l_array_source_25(Idx)
56538 , p_source_26 => l_array_source_26(Idx)
56539 , p_source_27 => l_array_source_27(Idx)
56540 , p_source_28 => l_array_source_28(Idx)
56541 , p_source_29 => l_array_source_29(Idx)
56542 , p_source_30 => l_array_source_30(Idx)
56543 , p_source_31 => l_array_source_31(Idx)
56544 , p_source_32 => l_array_source_32(Idx)
56545 , p_source_33 => l_array_source_33(Idx)
56546 , p_source_34 => l_array_source_34(Idx)
56547 , p_source_35 => l_array_source_35(Idx)
56548 , p_source_36 => l_array_source_36(Idx)
56549 , p_source_37 => l_array_source_37(Idx)
56550 , p_source_38 => l_array_source_38(Idx)
56551 , p_source_39 => l_array_source_39(Idx)
56552 , p_source_40 => l_array_source_40(Idx)
56553 );
56554 If(l_balance_type_code = 'A') THEN
56555 l_actual_gain_loss_ref := l_gain_or_loss_ref;
56556 END IF;
56557
56558 --
56559
56560
56561 --
56562 AcctLineType_61 (
56563 p_application_id => p_application_id
56564 ,p_event_id => l_event_id
56565 ,p_calculate_acctd_flag => l_calculate_acctd_flag
56566 ,p_calculate_g_l_flag => l_calculate_g_l_flag
56567 ,p_actual_flag => l_actual_flag
56568 ,p_balance_type_code => l_balance_type_code
56569 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
56570
56571 , p_source_3 => l_array_source_3(Idx)
56572 , p_source_4 => l_array_source_4(Idx)
56573 , p_source_5 => l_array_source_5(Idx)
56574 , p_source_6 => l_array_source_6(Idx)
56575 , p_source_9 => l_array_source_9(Idx)
56576 , p_source_11 => l_array_source_11(Idx)
56577 , p_source_13 => l_array_source_13(Idx)
56578 , p_source_14 => l_array_source_14(Idx)
56579 , p_source_14_meaning => l_array_source_14_meaning(Idx)
56580 , p_source_15 => l_array_source_15(Idx)
56581 , p_source_16 => l_array_source_16(Idx)
56582 , p_source_17 => l_array_source_17(Idx)
56583 , p_source_18 => l_array_source_18(Idx)
56584 , p_source_19 => l_array_source_19(Idx)
56585 , p_source_20 => l_array_source_20(Idx)
56586 , p_source_21 => l_array_source_21(Idx)
56587 , p_source_22 => l_array_source_22(Idx)
56588 , p_source_23 => l_array_source_23(Idx)
56589 , p_source_24 => l_array_source_24(Idx)
56590 , p_source_25 => l_array_source_25(Idx)
56591 , p_source_26 => l_array_source_26(Idx)
56592 , p_source_27 => l_array_source_27(Idx)
56593 , p_source_28 => l_array_source_28(Idx)
56594 , p_source_29 => l_array_source_29(Idx)
56595 , p_source_30 => l_array_source_30(Idx)
56596 , p_source_31 => l_array_source_31(Idx)
56597 , p_source_32 => l_array_source_32(Idx)
56598 , p_source_33 => l_array_source_33(Idx)
56599 , p_source_34 => l_array_source_34(Idx)
56600 , p_source_35 => l_array_source_35(Idx)
56601 , p_source_36 => l_array_source_36(Idx)
56602 , p_source_37 => l_array_source_37(Idx)
56603 , p_source_38 => l_array_source_38(Idx)
56604 , p_source_39 => l_array_source_39(Idx)
56605 , p_source_40 => l_array_source_40(Idx)
56606 );
56607 If(l_balance_type_code = 'A') THEN
56608 l_actual_gain_loss_ref := l_gain_or_loss_ref;
56609 END IF;
56610
56611 --
56612
56613
56614 --
56615 AcctLineType_64 (
56616 p_application_id => p_application_id
56617 ,p_event_id => l_event_id
56618 ,p_calculate_acctd_flag => l_calculate_acctd_flag
56619 ,p_calculate_g_l_flag => l_calculate_g_l_flag
56620 ,p_actual_flag => l_actual_flag
56621 ,p_balance_type_code => l_balance_type_code
56622 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
56623
56624 , p_source_3 => l_array_source_3(Idx)
56625 , p_source_4 => l_array_source_4(Idx)
56626 , p_source_5 => l_array_source_5(Idx)
56627 , p_source_6 => l_array_source_6(Idx)
56628 , p_source_9 => l_array_source_9(Idx)
56629 , p_source_11 => l_array_source_11(Idx)
56630 , p_source_13 => l_array_source_13(Idx)
56631 , p_source_14 => l_array_source_14(Idx)
56632 , p_source_14_meaning => l_array_source_14_meaning(Idx)
56633 , p_source_15 => l_array_source_15(Idx)
56634 , p_source_16 => l_array_source_16(Idx)
56635 , p_source_17 => l_array_source_17(Idx)
56636 , p_source_18 => l_array_source_18(Idx)
56637 , p_source_19 => l_array_source_19(Idx)
56638 , p_source_20 => l_array_source_20(Idx)
56639 , p_source_21 => l_array_source_21(Idx)
56640 , p_source_22 => l_array_source_22(Idx)
56641 , p_source_23 => l_array_source_23(Idx)
56642 , p_source_24 => l_array_source_24(Idx)
56643 , p_source_25 => l_array_source_25(Idx)
56644 , p_source_26 => l_array_source_26(Idx)
56645 , p_source_27 => l_array_source_27(Idx)
56646 , p_source_28 => l_array_source_28(Idx)
56647 , p_source_29 => l_array_source_29(Idx)
56648 , p_source_30 => l_array_source_30(Idx)
56649 , p_source_31 => l_array_source_31(Idx)
56650 , p_source_32 => l_array_source_32(Idx)
56651 , p_source_33 => l_array_source_33(Idx)
56652 , p_source_34 => l_array_source_34(Idx)
56653 , p_source_35 => l_array_source_35(Idx)
56654 , p_source_36 => l_array_source_36(Idx)
56655 , p_source_37 => l_array_source_37(Idx)
56656 , p_source_38 => l_array_source_38(Idx)
56657 , p_source_39 => l_array_source_39(Idx)
56658 , p_source_40 => l_array_source_40(Idx)
56659 );
56660 If(l_balance_type_code = 'A') THEN
56661 l_actual_gain_loss_ref := l_gain_or_loss_ref;
56662 END IF;
56663
56664 --
56665
56666
56667 --
56668 AcctLineType_68 (
56669 p_application_id => p_application_id
56670 ,p_event_id => l_event_id
56671 ,p_calculate_acctd_flag => l_calculate_acctd_flag
56672 ,p_calculate_g_l_flag => l_calculate_g_l_flag
56673 ,p_actual_flag => l_actual_flag
56674 ,p_balance_type_code => l_balance_type_code
56675 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
56676
56677 , p_source_3 => l_array_source_3(Idx)
56678 , p_source_4 => l_array_source_4(Idx)
56679 , p_source_5 => l_array_source_5(Idx)
56680 , p_source_6 => l_array_source_6(Idx)
56681 , p_source_13 => l_array_source_13(Idx)
56682 , p_source_16 => l_array_source_16(Idx)
56683 , p_source_17 => l_array_source_17(Idx)
56684 , p_source_18 => l_array_source_18(Idx)
56685 , p_source_19 => l_array_source_19(Idx)
56686 , p_source_20 => l_array_source_20(Idx)
56687 , p_source_21 => l_array_source_21(Idx)
56688 , p_source_22 => l_array_source_22(Idx)
56689 , p_source_29 => l_array_source_29(Idx)
56690 , p_source_30 => l_array_source_30(Idx)
56691 , p_source_31 => l_array_source_31(Idx)
56692 , p_source_32 => l_array_source_32(Idx)
56693 , p_source_33 => l_array_source_33(Idx)
56694 , p_source_34 => l_array_source_34(Idx)
56695 , p_source_35 => l_array_source_35(Idx)
56696 , p_source_36 => l_array_source_36(Idx)
56697 , p_source_37 => l_array_source_37(Idx)
56698 , p_source_38 => l_array_source_38(Idx)
56699 , p_source_39 => l_array_source_39(Idx)
56700 , p_source_40 => l_array_source_40(Idx)
56701 , p_source_68 => l_array_source_68(Idx)
56702 , p_source_69 => l_array_source_69(Idx)
56703 , p_source_70 => l_array_source_70(Idx)
56704 , p_source_71 => l_array_source_71(Idx)
56705 , p_source_72 => l_array_source_72(Idx)
56706 , p_source_73 => l_array_source_73(Idx)
56707 );
56708 If(l_balance_type_code = 'A') THEN
56709 l_actual_gain_loss_ref := l_gain_or_loss_ref;
56710 END IF;
56711
56712 --
56713
56714
56715 --
56716 AcctLineType_80 (
56717 p_application_id => p_application_id
56718 ,p_event_id => l_event_id
56719 ,p_calculate_acctd_flag => l_calculate_acctd_flag
56720 ,p_calculate_g_l_flag => l_calculate_g_l_flag
56721 ,p_actual_flag => l_actual_flag
56722 ,p_balance_type_code => l_balance_type_code
56723 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
56724
56725 , p_source_3 => l_array_source_3(Idx)
56726 , p_source_4 => l_array_source_4(Idx)
56727 , p_source_5 => l_array_source_5(Idx)
56728 , p_source_6 => l_array_source_6(Idx)
56729 , p_source_9 => l_array_source_9(Idx)
56730 , p_source_13 => l_array_source_13(Idx)
56731 , p_source_14 => l_array_source_14(Idx)
56732 , p_source_14_meaning => l_array_source_14_meaning(Idx)
56733 , p_source_15 => l_array_source_15(Idx)
56734 , p_source_16 => l_array_source_16(Idx)
56735 , p_source_17 => l_array_source_17(Idx)
56736 , p_source_18 => l_array_source_18(Idx)
56737 , p_source_19 => l_array_source_19(Idx)
56738 , p_source_20 => l_array_source_20(Idx)
56739 , p_source_21 => l_array_source_21(Idx)
56740 , p_source_22 => l_array_source_22(Idx)
56741 , p_source_23 => l_array_source_23(Idx)
56742 , p_source_24 => l_array_source_24(Idx)
56743 , p_source_25 => l_array_source_25(Idx)
56744 , p_source_26 => l_array_source_26(Idx)
56745 , p_source_27 => l_array_source_27(Idx)
56746 , p_source_28 => l_array_source_28(Idx)
56747 , p_source_29 => l_array_source_29(Idx)
56748 , p_source_30 => l_array_source_30(Idx)
56749 , p_source_31 => l_array_source_31(Idx)
56750 , p_source_32 => l_array_source_32(Idx)
56751 , p_source_33 => l_array_source_33(Idx)
56752 , p_source_34 => l_array_source_34(Idx)
56753 , p_source_35 => l_array_source_35(Idx)
56754 , p_source_36 => l_array_source_36(Idx)
56755 , p_source_37 => l_array_source_37(Idx)
56756 , p_source_38 => l_array_source_38(Idx)
56757 , p_source_39 => l_array_source_39(Idx)
56758 , p_source_40 => l_array_source_40(Idx)
56759 );
56760 If(l_balance_type_code = 'A') THEN
56761 l_actual_gain_loss_ref := l_gain_or_loss_ref;
56762 END IF;
56763
56764 --
56765
56766
56767 --
56768 AcctLineType_83 (
56769 p_application_id => p_application_id
56770 ,p_event_id => l_event_id
56771 ,p_calculate_acctd_flag => l_calculate_acctd_flag
56772 ,p_calculate_g_l_flag => l_calculate_g_l_flag
56773 ,p_actual_flag => l_actual_flag
56774 ,p_balance_type_code => l_balance_type_code
56775 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
56776
56777 , p_source_3 => l_array_source_3(Idx)
56778 , p_source_4 => l_array_source_4(Idx)
56779 , p_source_5 => l_array_source_5(Idx)
56780 , p_source_6 => l_array_source_6(Idx)
56781 , p_source_9 => l_array_source_9(Idx)
56782 , p_source_13 => l_array_source_13(Idx)
56783 , p_source_14 => l_array_source_14(Idx)
56784 , p_source_14_meaning => l_array_source_14_meaning(Idx)
56785 , p_source_15 => l_array_source_15(Idx)
56786 , p_source_16 => l_array_source_16(Idx)
56787 , p_source_17 => l_array_source_17(Idx)
56788 , p_source_18 => l_array_source_18(Idx)
56789 , p_source_19 => l_array_source_19(Idx)
56790 , p_source_20 => l_array_source_20(Idx)
56791 , p_source_21 => l_array_source_21(Idx)
56792 , p_source_22 => l_array_source_22(Idx)
56793 , p_source_23 => l_array_source_23(Idx)
56794 , p_source_24 => l_array_source_24(Idx)
56795 , p_source_25 => l_array_source_25(Idx)
56796 , p_source_26 => l_array_source_26(Idx)
56797 , p_source_27 => l_array_source_27(Idx)
56798 , p_source_28 => l_array_source_28(Idx)
56799 , p_source_29 => l_array_source_29(Idx)
56800 , p_source_30 => l_array_source_30(Idx)
56801 , p_source_31 => l_array_source_31(Idx)
56802 , p_source_32 => l_array_source_32(Idx)
56803 , p_source_33 => l_array_source_33(Idx)
56804 , p_source_34 => l_array_source_34(Idx)
56805 , p_source_35 => l_array_source_35(Idx)
56806 , p_source_36 => l_array_source_36(Idx)
56807 , p_source_37 => l_array_source_37(Idx)
56808 , p_source_38 => l_array_source_38(Idx)
56809 , p_source_39 => l_array_source_39(Idx)
56810 , p_source_40 => l_array_source_40(Idx)
56811 );
56812 If(l_balance_type_code = 'A') THEN
56813 l_actual_gain_loss_ref := l_gain_or_loss_ref;
56814 END IF;
56815
56816 --
56817
56818 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
56819 -- or secondary ledger that has different currency with primary
56820 -- or alc that is calculated by sla
56821 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
56822 (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'))
56823
56824 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
56825 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
56826 AND (l_actual_flag = 'A')) THEN
56827 XLA_AE_LINES_PKG.CreateGainOrLossLines(
56828 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
56829 ,p_application_id => p_application_id
56830 ,p_amb_context_code => 'DEFAULT'
56831 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
56832 ,p_event_class_code => C_EVENT_CLASS_CODE
56833 ,p_event_type_code => C_EVENT_TYPE_CODE
56834
56835 ,p_gain_ccid => -1
56836 ,p_loss_ccid => -1
56837
56838 ,p_actual_flag => l_actual_flag
56839 ,p_enc_flag => null
56840 ,p_actual_g_l_ref => l_actual_gain_loss_ref
56841 ,p_enc_g_l_ref => null
56842 );
56843 END IF;
56844 END IF;
56845 END IF;
56846
56847 ELSE
56848 --
56849 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
56850 --
56851 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
56852 trace
56853 (p_msg => 'Trancaction revesal option is Y'
56854 ,p_level => C_LEVEL_STATEMENT
56855 ,p_module => l_log_module);
56856 END IF;
56857 END IF;
56858
56859 END LOOP;
56860 l_result := XLA_AE_LINES_PKG.InsertLines ;
56861 end loop;
56862 close line_cur;
56863
56864
56865 --
56866 -- insert headers into xla_ae_headers_gt table
56867 --
56868 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
56869
56870 -- insert into errors table here.
56871
56872 END LOOP;
56873
56874 --
56875 -- 4865292
56876 --
56877 -- Compare g_hdr_extract_count with event count in
56878 -- CreateHeadersAndLines.
56879 --
56880 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
56881
56882 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
56883 trace (p_msg => '# rows extracted from header extract objects '
56884 || ' (running total): '
56885 || g_hdr_extract_count
56886 ,p_level => C_LEVEL_STATEMENT
56887 ,p_module => l_log_module);
56888 END IF;
56889
56890 CLOSE header_cur;
56891 --
56892
56893 --
56894 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56895 trace
56896 (p_msg => 'END of EventClass_88'
56897 ,p_level => C_LEVEL_PROCEDURE
56898 ,p_module => l_log_module);
56899 END IF;
56900 --
56901 RETURN l_result;
56902 EXCEPTION
56903 WHEN xla_exceptions_pkg.application_exception THEN
56904
56905 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
56906
56907
56908 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
56909
56910 RAISE;
56911 WHEN OTHERS THEN
56912 xla_exceptions_pkg.raise_message
56913 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.EventClass_88');
56914 END EventClass_88;
56915 --
56916
56917 ---------------------------------------
56918 --
56919 -- PRIVATE PROCEDURE
56920 -- insert_sources_89
56921 --
56922 ----------------------------------------
56923 --
56924 PROCEDURE insert_sources_89(
56925 p_target_ledger_id IN NUMBER
56926 , p_language IN VARCHAR2
56927 , p_sla_ledger_id IN NUMBER
56928 , p_pad_start_date IN DATE
56929 , p_pad_end_date IN DATE
56930 )
56931 IS
56932
56933 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'REQUISITION_ALL';
56934 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'REQUISITION';
56935 p_apps_owner VARCHAR2(30);
56936 l_log_module VARCHAR2(240);
56937 BEGIN
56938 IF g_log_enabled THEN
56939 l_log_module := C_DEFAULT_MODULE||'.insert_sources_89';
56940 END IF;
56941 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56942
56943 trace
56944 (p_msg => 'BEGIN of insert_sources_89'
56945 ,p_level => C_LEVEL_PROCEDURE
56946 ,p_module => l_log_module);
56947
56948 END IF;
56949
56950 -- select APPS owner
56951 SELECT oracle_username
56952 INTO p_apps_owner
56953 FROM fnd_oracle_userid
56954 WHERE read_only_flag = 'U'
56955 ;
56956
56957 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
56958 trace
56959 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
56960 ' - p_language = '||p_language||
56961 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
56962 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
56963 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
56964 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
56965 ,p_level => C_LEVEL_STATEMENT
56966 ,p_module => l_log_module);
56967 END IF;
56968
56969
56970 --
56971 INSERT INTO xla_diag_sources --hdr2
56972 (
56973 event_id
56974 , ledger_id
56975 , sla_ledger_id
56976 , description_language
56977 , object_name
56978 , object_type_code
56979 , line_number
56980 , source_application_id
56981 , source_type_code
56982 , source_code
56983 , source_value
56984 , source_meaning
56985 , created_by
56986 , creation_date
56987 , last_update_date
56988 , last_updated_by
56989 , last_update_login
56990 , program_update_date
56991 , program_application_id
56992 , program_id
56993 , request_id
56994 )
56995 SELECT
56996 event_id
56997 , p_target_ledger_id
56998 , p_sla_ledger_id
56999 , p_language
57000 , object_name
57001 , object_type_code
57002 , line_number
57003 , source_application_id
57004 , source_type_code
57005 , source_code
57006 , SUBSTR(source_value ,1,1996)
57007 , SUBSTR(source_meaning ,1,200)
57008 , xla_environment_pkg.g_Usr_Id
57009 , TRUNC(SYSDATE)
57010 , TRUNC(SYSDATE)
57011 , xla_environment_pkg.g_Usr_Id
57012 , xla_environment_pkg.g_Login_Id
57013 , TRUNC(SYSDATE)
57014 , xla_environment_pkg.g_Prog_Appl_Id
57015 , xla_environment_pkg.g_Prog_Id
57016 , xla_environment_pkg.g_Req_Id
57017 FROM (
57018 SELECT xet.event_id event_id
57019 , 0 line_number
57020 , CASE r
57021 WHEN 1 THEN 'PO_REQ_EXTRACT_HEADER_V'
57022 WHEN 2 THEN 'PO_REQ_EXTRACT_HEADER_V'
57023 WHEN 3 THEN 'PO_REQ_EXTRACT_HEADER_V'
57024 WHEN 4 THEN 'PO_REQ_EXTRACT_HEADER_V'
57025 WHEN 5 THEN 'PO_REQ_EXTRACT_HEADER_V'
57026
57027 ELSE null
57028 END object_name
57029 , CASE r
57030 WHEN 1 THEN 'HEADER'
57031 WHEN 2 THEN 'HEADER'
57032 WHEN 3 THEN 'HEADER'
57033 WHEN 4 THEN 'HEADER'
57034 WHEN 5 THEN 'HEADER'
57035
57036 ELSE null
57037 END object_type_code
57038 , CASE r
57039 WHEN 1 THEN '201'
57040 WHEN 2 THEN '201'
57041 WHEN 3 THEN '201'
57042 WHEN 4 THEN '201'
57043 WHEN 5 THEN '201'
57044
57045 ELSE null
57046 END source_application_id
57047 , 'S' source_type_code
57048 , CASE r
57049 WHEN 1 THEN 'DOCUMENT_TYPE'
57050 WHEN 2 THEN 'REQ_NUMBER'
57051 WHEN 3 THEN 'REQ_ID'
57052 WHEN 4 THEN 'GL_DATE'
57053 WHEN 5 THEN 'ENCUMBRANCE_TYPE_ID'
57054
57055 ELSE null
57056 END source_code
57057 , CASE r
57058 WHEN 1 THEN TO_CHAR(h2.DOCUMENT_TYPE)
57059 WHEN 2 THEN TO_CHAR(h2.REQ_NUMBER)
57060 WHEN 3 THEN TO_CHAR(h2.REQ_ID)
57061 WHEN 4 THEN TO_CHAR(h2.GL_DATE)
57062 WHEN 5 THEN TO_CHAR(h2.ENCUMBRANCE_TYPE_ID)
57063
57064 ELSE null
57065 END source_value
57066 , null source_meaning
57067 FROM xla_events_gt xet
57068 , PO_REQ_EXTRACT_HEADER_V h2
57069 ,(select rownum r from all_objects where rownum <= 5 and owner = p_apps_owner)
57070 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
57071 AND xet.event_class_code = C_EVENT_CLASS_CODE
57072 AND h2.event_id = xet.event_id
57073
57074 )
57075 ;
57076 --
57077 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
57078
57079 trace
57080 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
57081 ,p_level => C_LEVEL_STATEMENT
57082 ,p_module => l_log_module);
57083
57084 END IF;
57085 --
57086
57087
57088
57089 --
57090 INSERT INTO xla_diag_sources --line2
57091 (
57092 event_id
57093 , ledger_id
57094 , sla_ledger_id
57095 , description_language
57096 , object_name
57097 , object_type_code
57098 , line_number
57099 , source_application_id
57100 , source_type_code
57101 , source_code
57102 , source_value
57103 , source_meaning
57104 , created_by
57105 , creation_date
57106 , last_update_date
57107 , last_updated_by
57108 , last_update_login
57109 , program_update_date
57110 , program_application_id
57111 , program_id
57112 , request_id
57113 )
57114 SELECT event_id
57115 , p_target_ledger_id
57116 , p_sla_ledger_id
57117 , p_language
57118 , object_name
57119 , object_type_code
57120 , line_number
57121 , source_application_id
57122 , source_type_code
57123 , source_code
57124 , SUBSTR(source_value,1,1996)
57125 , SUBSTR(source_meaning ,1,200)
57126 , xla_environment_pkg.g_Usr_Id
57127 , TRUNC(SYSDATE)
57128 , TRUNC(SYSDATE)
57129 , xla_environment_pkg.g_Usr_Id
57130 , xla_environment_pkg.g_Login_Id
57131 , TRUNC(SYSDATE)
57132 , xla_environment_pkg.g_Prog_Appl_Id
57133 , xla_environment_pkg.g_Prog_Id
57134 , xla_environment_pkg.g_Req_Id
57135 FROM (
57136 SELECT xet.event_id event_id
57137 , l1.line_number line_number
57138 , CASE r
57139 WHEN 1 THEN 'PO_REQ_EXTRACT_DETAIL_V'
57140 WHEN 2 THEN 'PO_REQ_EXTRACT_DETAIL_V'
57141 WHEN 3 THEN 'PO_REQ_EXTRACT_DETAIL_V'
57142 WHEN 4 THEN 'PO_REQ_EXTRACT_DETAIL_V'
57143 WHEN 5 THEN 'PO_REQ_EXTRACT_DETAIL_V'
57144 WHEN 6 THEN 'PO_REQ_EXTRACT_DETAIL_V'
57145 WHEN 7 THEN 'PO_REQ_EXTRACT_DETAIL_V'
57146 WHEN 8 THEN 'PO_REQ_EXTRACT_DETAIL_V'
57147 WHEN 9 THEN 'PO_REQ_EXTRACT_DETAIL_V'
57148 WHEN 10 THEN 'PO_REQ_EXTRACT_DETAIL_V'
57149 WHEN 11 THEN 'PO_REQ_EXTRACT_DETAIL_V'
57150 WHEN 12 THEN 'PO_REQ_EXTRACT_DETAIL_V'
57151 WHEN 13 THEN 'PO_REQ_EXTRACT_DETAIL_V'
57152 WHEN 14 THEN 'PO_REQ_EXTRACT_DETAIL_V'
57153 WHEN 15 THEN 'PO_REQ_EXTRACT_DETAIL_V'
57154 WHEN 16 THEN 'PO_REQ_LINES_REF_V'
57155 WHEN 17 THEN 'PO_REQ_LINES_REF_V'
57156 WHEN 18 THEN 'PO_REQ_LINES_REF_V'
57157 WHEN 19 THEN 'PO_REQ_EXTRACT_DETAIL_V'
57158 WHEN 20 THEN 'PO_REQ_EXTRACT_DETAIL_V'
57159 WHEN 21 THEN 'PO_REQ_EXTRACT_DETAIL_V'
57160
57161 ELSE null
57162 END object_name
57163 , CASE r
57164 WHEN 1 THEN 'LINE'
57165 WHEN 2 THEN 'LINE'
57166 WHEN 3 THEN 'LINE'
57167 WHEN 4 THEN 'LINE'
57168 WHEN 5 THEN 'LINE'
57169 WHEN 6 THEN 'LINE'
57170 WHEN 7 THEN 'LINE'
57171 WHEN 8 THEN 'LINE'
57172 WHEN 9 THEN 'LINE'
57173 WHEN 10 THEN 'LINE'
57174 WHEN 11 THEN 'LINE'
57175 WHEN 12 THEN 'LINE'
57176 WHEN 13 THEN 'LINE'
57177 WHEN 14 THEN 'LINE'
57178 WHEN 15 THEN 'LINE'
57179 WHEN 16 THEN 'LINE'
57180 WHEN 17 THEN 'LINE'
57181 WHEN 18 THEN 'LINE'
57182 WHEN 19 THEN 'LINE'
57183 WHEN 20 THEN 'LINE'
57184 WHEN 21 THEN 'LINE'
57185
57186 ELSE null
57187 END object_type_code
57188 , CASE r
57189 WHEN 1 THEN '201'
57190 WHEN 2 THEN '201'
57191 WHEN 3 THEN '201'
57192 WHEN 4 THEN '201'
57193 WHEN 5 THEN '201'
57194 WHEN 6 THEN '201'
57195 WHEN 7 THEN '201'
57196 WHEN 8 THEN '201'
57197 WHEN 9 THEN '201'
57198 WHEN 10 THEN '201'
57199 WHEN 11 THEN '201'
57200 WHEN 12 THEN '201'
57201 WHEN 13 THEN '201'
57202 WHEN 14 THEN '201'
57203 WHEN 15 THEN '201'
57204 WHEN 16 THEN '201'
57205 WHEN 17 THEN '201'
57206 WHEN 18 THEN '201'
57207 WHEN 19 THEN '201'
57208 WHEN 20 THEN '201'
57209 WHEN 21 THEN '201'
57210
57211 ELSE null
57212 END source_application_id
57213 , 'S' source_type_code
57214 , CASE r
57215 WHEN 1 THEN 'JE_LINE_DESCRIPTION'
57216 WHEN 2 THEN 'BUDGET_ACCOUNT'
57217 WHEN 3 THEN 'MAIN_OR_BACKING_CODE'
57218 WHEN 4 THEN 'ACCOUNTING_REVERSAL_FLAG'
57219 WHEN 5 THEN 'ENTERED_AMT'
57220 WHEN 6 THEN 'CURRENCY_CODE'
57221 WHEN 7 THEN 'ACCOUNTED_AMT'
57222 WHEN 8 THEN 'REQ_DISTRIBUTION_ID'
57223 WHEN 9 THEN 'APPLIED_TO_APPL_ID'
57224 WHEN 10 THEN 'APPLIED_TO_DIST_LINK_TYPE'
57225 WHEN 11 THEN 'APPLIED_TO_ENTITY_CODE'
57226 WHEN 12 THEN 'APPLIED_TO_DIST_ID_1'
57227 WHEN 13 THEN 'APPLIED_TO_HEADER_ID_1'
57228 WHEN 14 THEN 'DISTRIBUTION_LINK_TYPE'
57229 WHEN 15 THEN 'JFMIP_REFERENCE'
57230 WHEN 16 THEN 'CURRENCY_CONVERSION_DATE'
57231 WHEN 17 THEN 'CURRENCY_CONVERSION_RATE'
57232 WHEN 18 THEN 'CURRENCY_CONVERSION_TYPE'
57233 WHEN 19 THEN 'ADJUSTMENT_STATUS'
57234 WHEN 20 THEN 'REQ_ENCUM_UPG_OPTION'
57235 WHEN 21 THEN 'REQ_UPG_ENC_TYPE_ID'
57236
57237 ELSE null
57238 END source_code
57239 , CASE r
57240 WHEN 1 THEN TO_CHAR(l1.JE_LINE_DESCRIPTION)
57241 WHEN 2 THEN TO_CHAR(l1.BUDGET_ACCOUNT)
57242 WHEN 3 THEN TO_CHAR(l1.MAIN_OR_BACKING_CODE)
57243 WHEN 4 THEN TO_CHAR(l1.ACCOUNTING_REVERSAL_FLAG)
57244 WHEN 5 THEN TO_CHAR(l1.ENTERED_AMT)
57245 WHEN 6 THEN TO_CHAR(l1.CURRENCY_CODE)
57246 WHEN 7 THEN TO_CHAR(l1.ACCOUNTED_AMT)
57247 WHEN 8 THEN TO_CHAR(l1.REQ_DISTRIBUTION_ID)
57248 WHEN 9 THEN TO_CHAR(l1.APPLIED_TO_APPL_ID)
57249 WHEN 10 THEN TO_CHAR(l1.APPLIED_TO_DIST_LINK_TYPE)
57250 WHEN 11 THEN TO_CHAR(l1.APPLIED_TO_ENTITY_CODE)
57251 WHEN 12 THEN TO_CHAR(l1.APPLIED_TO_DIST_ID_1)
57252 WHEN 13 THEN TO_CHAR(l1.APPLIED_TO_HEADER_ID_1)
57253 WHEN 14 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
57254 WHEN 15 THEN TO_CHAR(l1.JFMIP_REFERENCE)
57255 WHEN 16 THEN TO_CHAR(l3.CURRENCY_CONVERSION_DATE)
57256 WHEN 17 THEN TO_CHAR(l3.CURRENCY_CONVERSION_RATE)
57257 WHEN 18 THEN TO_CHAR(l3.CURRENCY_CONVERSION_TYPE)
57258 WHEN 19 THEN TO_CHAR(l1.ADJUSTMENT_STATUS)
57259 WHEN 20 THEN TO_CHAR(l1.REQ_ENCUM_UPG_OPTION)
57260 WHEN 21 THEN TO_CHAR(l1.REQ_UPG_ENC_TYPE_ID)
57261
57262 ELSE null
57263 END source_value
57264 , null source_meaning
57265 FROM xla_events_gt xet
57266 , PO_REQ_EXTRACT_DETAIL_V l1
57267 , PO_REQ_LINES_REF_V l3
57268 , (select rownum r from all_objects where rownum <= 21 and owner = p_apps_owner)
57269 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
57270 AND xet.event_class_code = C_EVENT_CLASS_CODE
57271 AND l1.event_id = xet.event_id
57272 AND l1.req_line_id = l3.req_line_id (+)
57273 )
57274 ;
57275 --
57276 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
57277
57278 trace
57279 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
57280 ,p_level => C_LEVEL_STATEMENT
57281 ,p_module => l_log_module);
57282
57283 END IF;
57284
57285
57286 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57287 trace
57288 (p_msg => 'END of insert_sources_89'
57289 ,p_level => C_LEVEL_PROCEDURE
57290 ,p_module => l_log_module);
57291 END IF;
57292 EXCEPTION
57293 WHEN xla_exceptions_pkg.application_exception THEN
57294 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
57295 trace
57296 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
57297 ,p_level => C_LEVEL_EXCEPTION
57298 ,p_module => l_log_module);
57299 END IF;
57300 RAISE;
57301 WHEN OTHERS THEN
57302 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
57303 trace
57304 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
57305 ,p_level => C_LEVEL_EXCEPTION
57306 ,p_module => l_log_module);
57307 END IF;
57308 xla_exceptions_pkg.raise_message
57309 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.insert_sources_89');
57310 END insert_sources_89;
57311 --
57312
57313 ---------------------------------------
57314 --
57315 -- PRIVATE FUNCTION
57316 -- EventClass_89
57317 --
57318 ----------------------------------------
57319 --
57320 FUNCTION EventClass_89
57321 (p_application_id IN NUMBER
57322 ,p_base_ledger_id IN NUMBER
57323 ,p_target_ledger_id IN NUMBER
57324 ,p_language IN VARCHAR2
57325 ,p_currency_code IN VARCHAR2
57326 ,p_sla_ledger_id IN NUMBER
57327 ,p_pad_start_date IN DATE
57328 ,p_pad_end_date IN DATE
57329 ,p_primary_ledger_id IN NUMBER)
57330 RETURN BOOLEAN IS
57331 --
57332 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'REQUISITION_ALL';
57333 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'REQUISITION';
57334
57335 l_calculate_acctd_flag VARCHAR2(1) :='N';
57336 l_calculate_g_l_flag VARCHAR2(1) :='N';
57337 --
57338 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
57339 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
57340 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
57341 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
57342 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
57343 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
57344 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
57345 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
57346 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
57347 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
57348 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
57349 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
57350 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
57351 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
57352 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
57353 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
57354 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
57355 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
57356 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
57357 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
57358 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
57359 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
57360 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
57361 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
57362
57363 l_event_id NUMBER;
57364 l_previous_event_id NUMBER;
57365 l_first_event_id NUMBER;
57366 l_last_event_id NUMBER;
57367
57368 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
57369 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
57370 --
57371 --
57372 l_result BOOLEAN := TRUE;
57373 l_rows NUMBER := 1000;
57374 l_event_type_name VARCHAR2(80) := 'All';
57375 l_event_class_name VARCHAR2(80) := 'Requisition';
57376 l_description VARCHAR2(4000);
57377 l_transaction_reversal NUMBER;
57378 l_ae_header_id NUMBER;
57379 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
57380 l_log_module VARCHAR2(240);
57381 --
57382 l_acct_reversal_source VARCHAR2(30);
57383 l_trx_reversal_source VARCHAR2(30);
57384
57385 l_continue_with_lines BOOLEAN := TRUE;
57386 --
57387 l_acc_rev_gl_date_source DATE; -- 4262811
57388 --
57389 type t_array_event_id is table of number index by binary_integer;
57390
57391 l_rec_array_event t_rec_array_event;
57392 l_null_rec_array_event t_rec_array_event;
57393 l_array_ae_header_id xla_number_array_type;
57394 l_actual_flag VARCHAR2(1) := NULL;
57395 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
57396 l_balance_type_code VARCHAR2(1) :=NULL;
57397 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
57398
57399 --
57400 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
57401 --
57402
57403 TYPE t_array_source_9 IS TABLE OF PO_REQ_EXTRACT_HEADER_V.DOCUMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
57404 TYPE t_array_source_10 IS TABLE OF PO_REQ_EXTRACT_HEADER_V.REQ_NUMBER%TYPE INDEX BY BINARY_INTEGER;
57405 TYPE t_array_source_76 IS TABLE OF PO_REQ_EXTRACT_HEADER_V.REQ_ID%TYPE INDEX BY BINARY_INTEGER;
57406 TYPE t_array_source_79 IS TABLE OF PO_REQ_EXTRACT_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
57407 TYPE t_array_source_80 IS TABLE OF PO_REQ_EXTRACT_HEADER_V.ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
57408
57409 TYPE t_array_source_7 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.JE_LINE_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
57410 TYPE t_array_source_11 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.BUDGET_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
57411 TYPE t_array_source_13 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.MAIN_OR_BACKING_CODE%TYPE INDEX BY BINARY_INTEGER;
57412 TYPE t_array_source_16 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.ACCOUNTING_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
57413 TYPE t_array_source_33 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.ENTERED_AMT%TYPE INDEX BY BINARY_INTEGER;
57414 TYPE t_array_source_34 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
57415 TYPE t_array_source_35 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.ACCOUNTED_AMT%TYPE INDEX BY BINARY_INTEGER;
57416 TYPE t_array_source_47 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.REQ_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
57417 TYPE t_array_source_53 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.APPLIED_TO_APPL_ID%TYPE INDEX BY BINARY_INTEGER;
57418 TYPE t_array_source_54 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.APPLIED_TO_DIST_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
57419 TYPE t_array_source_55 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.APPLIED_TO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
57420 TYPE t_array_source_56 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.APPLIED_TO_DIST_ID_1%TYPE INDEX BY BINARY_INTEGER;
57421 TYPE t_array_source_57 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.APPLIED_TO_HEADER_ID_1%TYPE INDEX BY BINARY_INTEGER;
57422 TYPE t_array_source_58 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
57423 TYPE t_array_source_60 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.JFMIP_REFERENCE%TYPE INDEX BY BINARY_INTEGER;
57424 TYPE t_array_source_62 IS TABLE OF PO_REQ_LINES_REF_V.CURRENCY_CONVERSION_DATE%TYPE INDEX BY BINARY_INTEGER;
57425 TYPE t_array_source_63 IS TABLE OF PO_REQ_LINES_REF_V.CURRENCY_CONVERSION_RATE%TYPE INDEX BY BINARY_INTEGER;
57426 TYPE t_array_source_64 IS TABLE OF PO_REQ_LINES_REF_V.CURRENCY_CONVERSION_TYPE%TYPE INDEX BY BINARY_INTEGER;
57427 TYPE t_array_source_75 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.ADJUSTMENT_STATUS%TYPE INDEX BY BINARY_INTEGER;
57428 TYPE t_array_source_77 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.REQ_ENCUM_UPG_OPTION%TYPE INDEX BY BINARY_INTEGER;
57429 TYPE t_array_source_78 IS TABLE OF PO_REQ_EXTRACT_DETAIL_V.REQ_UPG_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
57430
57431 l_array_source_9 t_array_source_9;
57432 l_array_source_10 t_array_source_10;
57433 l_array_source_76 t_array_source_76;
57434 l_array_source_79 t_array_source_79;
57435 l_array_source_80 t_array_source_80;
57436
57437 l_array_source_7 t_array_source_7;
57438 l_array_source_11 t_array_source_11;
57439 l_array_source_13 t_array_source_13;
57440 l_array_source_16 t_array_source_16;
57441 l_array_source_33 t_array_source_33;
57442 l_array_source_34 t_array_source_34;
57443 l_array_source_35 t_array_source_35;
57444 l_array_source_47 t_array_source_47;
57445 l_array_source_53 t_array_source_53;
57446 l_array_source_54 t_array_source_54;
57447 l_array_source_55 t_array_source_55;
57448 l_array_source_56 t_array_source_56;
57449 l_array_source_57 t_array_source_57;
57450 l_array_source_58 t_array_source_58;
57451 l_array_source_60 t_array_source_60;
57452 l_array_source_62 t_array_source_62;
57453 l_array_source_63 t_array_source_63;
57454 l_array_source_64 t_array_source_64;
57455 l_array_source_75 t_array_source_75;
57456 l_array_source_77 t_array_source_77;
57457 l_array_source_78 t_array_source_78;
57458
57459 --
57460 CURSOR header_cur
57461 IS
57462 SELECT /*+ leading(xet) cardinality(xet,1) */
57463 -- Event Class Code: REQUISITION
57464 xet.entity_id
57465 ,xet.legal_entity_id
57466 ,xet.entity_code
57467 ,xet.transaction_number
57468 ,xet.event_id
57469 ,xet.event_class_code
57470 ,xet.event_type_code
57471 ,xet.event_number
57472 ,xet.event_date
57473 ,xet.transaction_date
57474 ,xet.reference_num_1
57475 ,xet.reference_num_2
57476 ,xet.reference_num_3
57477 ,xet.reference_num_4
57478 ,xet.reference_char_1
57479 ,xet.reference_char_2
57480 ,xet.reference_char_3
57481 ,xet.reference_char_4
57482 ,xet.reference_date_1
57483 ,xet.reference_date_2
57484 ,xet.reference_date_3
57485 ,xet.reference_date_4
57486 ,xet.event_created_by
57487 ,xet.budgetary_control_flag
57488 , h2.DOCUMENT_TYPE source_9
57489 , h2.REQ_NUMBER source_10
57490 , h2.REQ_ID source_76
57491 , h2.GL_DATE source_79
57492 , h2.ENCUMBRANCE_TYPE_ID source_80
57493 FROM xla_events_gt xet
57494 , PO_REQ_EXTRACT_HEADER_V h2
57495 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
57496 and xet.event_class_code = C_EVENT_CLASS_CODE
57497 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
57498
57499 ORDER BY event_id
57500 ;
57501
57502
57503 --
57504 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
57505 IS
57506 SELECT /*+ leading(xet) cardinality(xet,1) */
57507 -- Event Class Code: REQUISITION
57508 xet.entity_id
57509 ,xet.legal_entity_id
57510 ,xet.entity_code
57511 ,xet.transaction_number
57512 ,xet.event_id
57513 ,xet.event_class_code
57514 ,xet.event_type_code
57515 ,xet.event_number
57516 ,xet.event_date
57517 ,xet.transaction_date
57518 ,xet.reference_num_1
57519 ,xet.reference_num_2
57520 ,xet.reference_num_3
57521 ,xet.reference_num_4
57522 ,xet.reference_char_1
57523 ,xet.reference_char_2
57524 ,xet.reference_char_3
57525 ,xet.reference_char_4
57526 ,xet.reference_date_1
57527 ,xet.reference_date_2
57528 ,xet.reference_date_3
57529 ,xet.reference_date_4
57530 ,xet.event_created_by
57531 ,xet.budgetary_control_flag
57532 , l1.LINE_NUMBER
57533 , l1.JE_LINE_DESCRIPTION source_7
57534 , l1.BUDGET_ACCOUNT source_11
57535 , l1.MAIN_OR_BACKING_CODE source_13
57536 , l1.ACCOUNTING_REVERSAL_FLAG source_16
57537 , l1.ENTERED_AMT source_33
57538 , l1.CURRENCY_CODE source_34
57539 , l1.ACCOUNTED_AMT source_35
57540 , l1.REQ_DISTRIBUTION_ID source_47
57541 , l1.APPLIED_TO_APPL_ID source_53
57542 , l1.APPLIED_TO_DIST_LINK_TYPE source_54
57543 , l1.APPLIED_TO_ENTITY_CODE source_55
57544 , l1.APPLIED_TO_DIST_ID_1 source_56
57545 , l1.APPLIED_TO_HEADER_ID_1 source_57
57546 , l1.DISTRIBUTION_LINK_TYPE source_58
57547 , l1.JFMIP_REFERENCE source_60
57548 , l3.CURRENCY_CONVERSION_DATE source_62
57549 , l3.CURRENCY_CONVERSION_RATE source_63
57550 , l3.CURRENCY_CONVERSION_TYPE source_64
57551 , l1.ADJUSTMENT_STATUS source_75
57552 , l1.REQ_ENCUM_UPG_OPTION source_77
57553 , l1.REQ_UPG_ENC_TYPE_ID source_78
57554 FROM xla_events_gt xet
57555 , PO_REQ_EXTRACT_DETAIL_V l1
57556 , PO_REQ_LINES_REF_V l3
57557 WHERE xet.event_id between x_first_event_id and x_last_event_id
57558 and xet.event_date between p_pad_start_date and p_pad_end_date
57559 and xet.event_class_code = C_EVENT_CLASS_CODE
57560 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
57561 AND l1.req_line_id = l3.req_line_id (+) ;
57562
57563 --
57564 BEGIN
57565 IF g_log_enabled THEN
57566 l_log_module := C_DEFAULT_MODULE||'.EventClass_89';
57567 END IF;
57568 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57569 trace
57570 (p_msg => 'BEGIN of EventClass_89'
57571 ,p_level => C_LEVEL_PROCEDURE
57572 ,p_module => l_log_module);
57573 END IF;
57574
57575 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
57576 trace
57577 (p_msg => 'p_application_id = '||p_application_id||
57578 ' - p_base_ledger_id = '||p_base_ledger_id||
57579 ' - p_target_ledger_id = '||p_target_ledger_id||
57580 ' - p_language = '||p_language||
57581 ' - p_currency_code = '||p_currency_code||
57582 ' - p_sla_ledger_id = '||p_sla_ledger_id
57583 ,p_level => C_LEVEL_STATEMENT
57584 ,p_module => l_log_module);
57585 END IF;
57586 --
57587 -- initialze arrays
57588 --
57589 g_array_event.DELETE;
57590 l_rec_array_event := l_null_rec_array_event;
57591 --
57592 --------------------------------------
57593 -- 4262811 Initialze MPA Line Number
57594 --------------------------------------
57595 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
57596
57597 --
57598
57599 --
57600 OPEN header_cur;
57601 --
57602 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
57603 trace
57604 (p_msg => 'SQL - FETCH header_cur'
57605 ,p_level => C_LEVEL_STATEMENT
57606 ,p_module => l_log_module);
57607 END IF;
57608 --
57609 LOOP
57610 FETCH header_cur BULK COLLECT INTO
57611 l_array_entity_id
57612 , l_array_legal_entity_id
57613 , l_array_entity_code
57614 , l_array_transaction_num
57615 , l_array_event_id
57616 , l_array_class_code
57617 , l_array_event_type
57618 , l_array_event_number
57619 , l_array_event_date
57620 , l_array_transaction_date
57621 , l_array_reference_num_1
57622 , l_array_reference_num_2
57623 , l_array_reference_num_3
57624 , l_array_reference_num_4
57625 , l_array_reference_char_1
57626 , l_array_reference_char_2
57627 , l_array_reference_char_3
57628 , l_array_reference_char_4
57629 , l_array_reference_date_1
57630 , l_array_reference_date_2
57631 , l_array_reference_date_3
57632 , l_array_reference_date_4
57633 , l_array_event_created_by
57634 , l_array_budgetary_control_flag
57635 , l_array_source_9
57636 , l_array_source_10
57637 , l_array_source_76
57638 , l_array_source_79
57639 , l_array_source_80
57640 LIMIT l_rows;
57641 --
57642 IF (C_LEVEL_EVENT >= g_log_level) THEN
57643 trace
57644 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
57645 ,p_level => C_LEVEL_EVENT
57646 ,p_module => l_log_module);
57647 END IF;
57648 --
57649 EXIT WHEN l_array_entity_id.COUNT = 0;
57650
57651 -- initialize arrays
57652 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
57653 XLA_AE_LINES_PKG.g_rec_lines := NULL;
57654
57655 --
57656 -- Bug 4458708
57657 --
57658 XLA_AE_LINES_PKG.g_LineNumber := 0;
57659
57660
57661 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
57662 g_last_hdr_idx := l_array_event_id.LAST;
57663 --
57664 -- loop for the headers. Each iteration is for each header extract row
57665 -- fetched in header cursor
57666 --
57667 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
57668
57669 --
57670 -- set event info as cache for other routines to refer event attributes
57671 --
57672 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
57673 (p_application_id => p_application_id
57674 ,p_primary_ledger_id => p_primary_ledger_id
57675 ,p_base_ledger_id => p_base_ledger_id
57676 ,p_target_ledger_id => p_target_ledger_id
57677 ,p_entity_id => l_array_entity_id(hdr_idx)
57678 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
57679 ,p_entity_code => l_array_entity_code(hdr_idx)
57680 ,p_transaction_num => l_array_transaction_num(hdr_idx)
57681 ,p_event_id => l_array_event_id(hdr_idx)
57682 ,p_event_class_code => l_array_class_code(hdr_idx)
57683 ,p_event_type_code => l_array_event_type(hdr_idx)
57684 ,p_event_number => l_array_event_number(hdr_idx)
57685 ,p_event_date => l_array_event_date(hdr_idx)
57686 ,p_transaction_date => l_array_transaction_date(hdr_idx)
57687 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
57688 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
57689 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
57690 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
57691 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
57692 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
57693 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
57694 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
57695 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
57696 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
57697 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
57698 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
57699 ,p_event_created_by => l_array_event_created_by(hdr_idx)
57700 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
57701
57702 --
57703 -- set the status of entry to C_VALID (0)
57704 --
57705 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
57706
57707 --
57708 -- initialize a row for ae header
57709 --
57710 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
57711
57712 l_event_id := l_array_event_id(hdr_idx);
57713
57714 --
57715 -- storing the hdr_idx for event. May be used by line cursor.
57716 --
57717 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
57718
57719 --
57720 -- store sources from header extract. This can be improved to
57721 -- store only those sources from header extract that may be used in lines
57722 --
57723
57724 g_array_event(l_event_id).array_value_char('source_9') := l_array_source_9(hdr_idx);
57725 g_array_event(l_event_id).array_value_char('source_10') := l_array_source_10(hdr_idx);
57726 g_array_event(l_event_id).array_value_num('source_76') := l_array_source_76(hdr_idx);
57727 g_array_event(l_event_id).array_value_date('source_79') := l_array_source_79(hdr_idx);
57728 g_array_event(l_event_id).array_value_num('source_80') := l_array_source_80(hdr_idx);
57729
57730 --
57731 -- initilaize the status of ae headers for diffrent balance types
57732 -- the status is initialised to C_NOT_CREATED (2)
57733 --
57734 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
57735 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
57736 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
57737
57738 --
57739 -- call api to validate and store accounting attributes for header
57740 --
57741
57742 ------------------------------------------------------------
57743 -- Accrual Reversal : to get date for Standard Source (NONE)
57744 ------------------------------------------------------------
57745 l_acc_rev_gl_date_source := NULL;
57746
57747 l_rec_acct_attrs.array_acct_attr_code(1) := 'ENCUMBRANCE_TYPE_ID';
57748 l_rec_acct_attrs.array_num_value(1) := g_array_event(l_event_id).array_value_num('source_80');
57749 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_DATE';
57750 l_rec_acct_attrs.array_date_value(2) := g_array_event(l_event_id).array_value_date('source_79');
57751
57752
57753 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
57754
57755 XLA_AE_HEADER_PKG.SetJeCategoryName;
57756
57757 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
57758 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
57759 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
57760 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
57761 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
57762
57763
57764 --
57765 xla_ae_header_pkg.SetHdrDescription(
57766 p_description => Description_5 (
57767 p_application_id => p_application_id
57768 , p_source_9 => g_array_event(l_event_id).array_value_char('source_9')
57769 , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
57770 )
57771 );
57772 --
57773
57774 -- No header level analytical criteria
57775
57776 --
57777 --accounting attribute enhancement, bug 3612931
57778 --
57779 l_trx_reversal_source := SUBSTR(NULL, 1,30);
57780
57781 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
57782 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
57783
57784 xla_accounting_err_pkg.build_message
57785 (p_appli_s_name => 'XLA'
57786 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
57787 ,p_token_1 => 'ACCT_ATTR_NAME'
57788 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
57789 ,p_token_2 => 'PRODUCT_NAME'
57790 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
57791 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
57792 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
57793 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
57794
57795 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
57796 --
57797 -- following sets the accounting attributes needed to reverse
57798 -- accounting for a distributeion
57799 --
57800 xla_ae_lines_pkg.SetTrxReversalAttrs
57801 (p_event_id => l_event_id
57802 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
57803 ,p_trx_reversal_source => l_trx_reversal_source);
57804
57805 END IF;
57806
57807
57808 ----------------------------------------------------------------
57809 -- 4262811 - update the header statuses to invalid in need be
57810 ----------------------------------------------------------------
57811 --
57812 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
57813
57814
57815 -----------------------------------------------
57816 -- No accrual reversal for the event class/type
57817 -----------------------------------------------
57818 ----------------------------------------------------------------
57819
57820 --
57821 -- this ends the header loop iteration for one bulk fetch
57822 --
57823 END LOOP;
57824
57825 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
57826 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
57827
57828 --
57829 -- insert dummy rows into lines gt table that were created due to
57830 -- transaction reversals
57831 --
57832 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
57833 l_result := XLA_AE_LINES_PKG.InsertLines;
57834 END IF;
57835
57836 --
57837 -- reset the temp_line_num for each set of events fetched from header
57838 -- cursor rather than doing it for each new event in line cursor
57839 -- Bug 3939231
57840 --
57841 xla_ae_lines_pkg.g_temp_line_num := 0;
57842
57843
57844
57845 --
57846 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
57847 --
57848 --
57849 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
57850
57851 trace
57852 (p_msg => 'SQL - FETCH line_cur'
57853 ,p_level => C_LEVEL_STATEMENT
57854 ,p_module => l_log_module);
57855
57856 END IF;
57857 --
57858 --
57859 LOOP
57860 --
57861 FETCH line_cur BULK COLLECT INTO
57862 l_array_entity_id
57863 , l_array_legal_entity_id
57864 , l_array_entity_code
57865 , l_array_transaction_num
57866 , l_array_event_id
57867 , l_array_class_code
57868 , l_array_event_type
57869 , l_array_event_number
57870 , l_array_event_date
57871 , l_array_transaction_date
57872 , l_array_reference_num_1
57873 , l_array_reference_num_2
57874 , l_array_reference_num_3
57875 , l_array_reference_num_4
57876 , l_array_reference_char_1
57877 , l_array_reference_char_2
57878 , l_array_reference_char_3
57879 , l_array_reference_char_4
57880 , l_array_reference_date_1
57881 , l_array_reference_date_2
57882 , l_array_reference_date_3
57883 , l_array_reference_date_4
57884 , l_array_event_created_by
57885 , l_array_budgetary_control_flag
57886 , l_array_extract_line_num
57887 , l_array_source_7
57888 , l_array_source_11
57889 , l_array_source_13
57890 , l_array_source_16
57891 , l_array_source_33
57892 , l_array_source_34
57893 , l_array_source_35
57894 , l_array_source_47
57895 , l_array_source_53
57896 , l_array_source_54
57897 , l_array_source_55
57898 , l_array_source_56
57899 , l_array_source_57
57900 , l_array_source_58
57901 , l_array_source_60
57902 , l_array_source_62
57903 , l_array_source_63
57904 , l_array_source_64
57905 , l_array_source_75
57906 , l_array_source_77
57907 , l_array_source_78
57908 LIMIT l_rows;
57909
57910 --
57911 IF (C_LEVEL_EVENT >= g_log_level) THEN
57912 trace
57913 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
57914 ,p_level => C_LEVEL_EVENT
57915 ,p_module => l_log_module);
57916 END IF;
57917 --
57918 EXIT WHEN l_array_entity_id.count = 0;
57919
57920 XLA_AE_LINES_PKG.g_rec_lines := null;
57921
57922 --
57923 -- Bug 4458708
57924 --
57925 XLA_AE_LINES_PKG.g_LineNumber := 0;
57926 --
57927 --
57928
57929 FOR Idx IN 1..l_array_event_id.count LOOP
57930 --
57931 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
57932 --
57933 l_event_id := l_array_event_id(idx); -- 5648433
57934
57935 --
57936 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
57937 --
57938
57939 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
57940 (g_array_event(l_event_id).array_value_num('header_index'))
57941 ,'N'
57942 ) <> 'Y'
57943 THEN
57944 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
57945 trace
57946 (p_msg => 'Trancaction revesal option is not Y '
57947 ,p_level => C_LEVEL_STATEMENT
57948 ,p_module => l_log_module);
57949 END IF;
57950
57951 --
57952 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
57953 --
57954 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
57955 --
57956 -- set event info as cache for other routines to refer event attributes
57957 --
57958
57959 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
57960 l_previous_event_id := l_event_id;
57961
57962 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
57963 (p_application_id => p_application_id
57964 ,p_primary_ledger_id => p_primary_ledger_id
57965 ,p_base_ledger_id => p_base_ledger_id
57966 ,p_target_ledger_id => p_target_ledger_id
57967 ,p_entity_id => l_array_entity_id(Idx)
57968 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
57969 ,p_entity_code => l_array_entity_code(Idx)
57970 ,p_transaction_num => l_array_transaction_num(Idx)
57971 ,p_event_id => l_array_event_id(Idx)
57972 ,p_event_class_code => l_array_class_code(Idx)
57973 ,p_event_type_code => l_array_event_type(Idx)
57974 ,p_event_number => l_array_event_number(Idx)
57975 ,p_event_date => l_array_event_date(Idx)
57976 ,p_transaction_date => l_array_transaction_date(Idx)
57977 ,p_reference_num_1 => l_array_reference_num_1(Idx)
57978 ,p_reference_num_2 => l_array_reference_num_2(Idx)
57979 ,p_reference_num_3 => l_array_reference_num_3(Idx)
57980 ,p_reference_num_4 => l_array_reference_num_4(Idx)
57981 ,p_reference_char_1 => l_array_reference_char_1(Idx)
57982 ,p_reference_char_2 => l_array_reference_char_2(Idx)
57983 ,p_reference_char_3 => l_array_reference_char_3(Idx)
57984 ,p_reference_char_4 => l_array_reference_char_4(Idx)
57985 ,p_reference_date_1 => l_array_reference_date_1(Idx)
57986 ,p_reference_date_2 => l_array_reference_date_2(Idx)
57987 ,p_reference_date_3 => l_array_reference_date_3(Idx)
57988 ,p_reference_date_4 => l_array_reference_date_4(Idx)
57989 ,p_event_created_by => l_array_event_created_by(Idx)
57990 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
57991 --
57992 END IF;
57993
57994
57995
57996 --
57997 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
57998
57999 l_acct_reversal_source := SUBSTR(l_array_source_16(Idx), 1,30);
58000
58001 IF l_continue_with_lines THEN
58002 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
58003 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
58004
58005 xla_accounting_err_pkg.build_message
58006 (p_appli_s_name => 'XLA'
58007 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
58008 ,p_token_1 => 'LINE_NUMBER'
58009 ,p_value_1 => l_array_extract_line_num(Idx)
58010 ,p_token_2 => 'PRODUCT_NAME'
58011 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
58012 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
58013 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
58014 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
58015
58016 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
58017 --
58018 -- following sets the accounting attributes needed to reverse
58019 -- accounting for a distributeion
58020 --
58021
58022 --
58023 -- 5217187
58024 --
58025 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
58026 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
58027 g_array_event(l_event_id).array_value_num('header_index'));
58028 --
58029 --
58030
58031 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
58032 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_16(Idx);
58033 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
58034 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_47(Idx);
58035 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
58036 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_58(Idx);
58037 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
58038 l_rec_rev_acct_attrs.array_num_value(5) := TO_NUMBER(l_array_source_11(Idx));
58039 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
58040 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_33(Idx);
58041 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
58042 l_rec_rev_acct_attrs.array_char_value(7) := l_array_source_34(Idx);
58043 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
58044 l_rec_rev_acct_attrs.array_num_value(8) := l_array_source_35(Idx);
58045 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
58046 l_rec_rev_acct_attrs.array_num_value(9) := TO_NUMBER(l_array_source_11(Idx));
58047 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
58048 l_rec_rev_acct_attrs.array_num_value(10) := l_array_source_33(Idx);
58049 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
58050 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_34(Idx);
58051 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
58052 l_rec_rev_acct_attrs.array_num_value(12) := l_array_source_35(Idx);
58053 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
58054 l_rec_rev_acct_attrs.array_char_value(13) := l_array_source_77(Idx);
58055 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
58056 l_rec_rev_acct_attrs.array_num_value(14) := l_array_source_56(Idx);
58057 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
58058 l_rec_rev_acct_attrs.array_char_value(15) := l_array_source_54(Idx);
58059 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'UPG_CR_ENC_TYPE_ID';
58060 l_rec_rev_acct_attrs.array_num_value(16) := l_array_source_78(Idx);
58061 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'UPG_DR_ENC_TYPE_ID';
58062 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_78(Idx);
58063
58064
58065 xla_ae_lines_pkg.SetAcctReversalAttrs
58066 (p_event_id => l_event_id
58067 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
58068 ,p_calculate_acctd_flag => l_calculate_acctd_flag
58069 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
58070 END IF;
58071
58072 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
58073 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
58074
58075 --
58076 AcctLineType_72 (
58077 p_application_id => p_application_id
58078 ,p_event_id => l_event_id
58079 ,p_calculate_acctd_flag => l_calculate_acctd_flag
58080 ,p_calculate_g_l_flag => l_calculate_g_l_flag
58081 ,p_actual_flag => l_actual_flag
58082 ,p_balance_type_code => l_balance_type_code
58083 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
58084
58085 , p_source_7 => l_array_source_7(Idx)
58086 , p_source_11 => l_array_source_11(Idx)
58087 , p_source_13 => l_array_source_13(Idx)
58088 , p_source_16 => l_array_source_16(Idx)
58089 , p_source_33 => l_array_source_33(Idx)
58090 , p_source_34 => l_array_source_34(Idx)
58091 , p_source_35 => l_array_source_35(Idx)
58092 , p_source_47 => l_array_source_47(Idx)
58093 , p_source_53 => l_array_source_53(Idx)
58094 , p_source_54 => l_array_source_54(Idx)
58095 , p_source_55 => l_array_source_55(Idx)
58096 , p_source_56 => l_array_source_56(Idx)
58097 , p_source_57 => l_array_source_57(Idx)
58098 , p_source_58 => l_array_source_58(Idx)
58099 , p_source_60 => l_array_source_60(Idx)
58100 , p_source_62 => l_array_source_62(Idx)
58101 , p_source_63 => l_array_source_63(Idx)
58102 , p_source_64 => l_array_source_64(Idx)
58103 , p_source_75 => l_array_source_75(Idx)
58104 , p_source_76 => g_array_event(l_event_id).array_value_num('source_76')
58105 , p_source_77 => l_array_source_77(Idx)
58106 , p_source_78 => l_array_source_78(Idx)
58107 );
58108 If(l_balance_type_code = 'A') THEN
58109 l_actual_gain_loss_ref := l_gain_or_loss_ref;
58110 END IF;
58111
58112 --
58113
58114
58115 --
58116 AcctLineType_77 (
58117 p_application_id => p_application_id
58118 ,p_event_id => l_event_id
58119 ,p_calculate_acctd_flag => l_calculate_acctd_flag
58120 ,p_calculate_g_l_flag => l_calculate_g_l_flag
58121 ,p_actual_flag => l_actual_flag
58122 ,p_balance_type_code => l_balance_type_code
58123 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
58124
58125 , p_source_11 => l_array_source_11(Idx)
58126 , p_source_13 => l_array_source_13(Idx)
58127 , p_source_16 => l_array_source_16(Idx)
58128 , p_source_33 => l_array_source_33(Idx)
58129 , p_source_34 => l_array_source_34(Idx)
58130 , p_source_35 => l_array_source_35(Idx)
58131 , p_source_47 => l_array_source_47(Idx)
58132 , p_source_53 => l_array_source_53(Idx)
58133 , p_source_54 => l_array_source_54(Idx)
58134 , p_source_55 => l_array_source_55(Idx)
58135 , p_source_56 => l_array_source_56(Idx)
58136 , p_source_57 => l_array_source_57(Idx)
58137 , p_source_58 => l_array_source_58(Idx)
58138 , p_source_60 => l_array_source_60(Idx)
58139 , p_source_75 => l_array_source_75(Idx)
58140 , p_source_76 => g_array_event(l_event_id).array_value_num('source_76')
58141 , p_source_77 => l_array_source_77(Idx)
58142 , p_source_78 => l_array_source_78(Idx)
58143 );
58144 If(l_balance_type_code = 'A') THEN
58145 l_actual_gain_loss_ref := l_gain_or_loss_ref;
58146 END IF;
58147
58148 --
58149
58150
58151 --
58152 AcctLineType_78 (
58153 p_application_id => p_application_id
58154 ,p_event_id => l_event_id
58155 ,p_calculate_acctd_flag => l_calculate_acctd_flag
58156 ,p_calculate_g_l_flag => l_calculate_g_l_flag
58157 ,p_actual_flag => l_actual_flag
58158 ,p_balance_type_code => l_balance_type_code
58159 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
58160
58161 , p_source_11 => l_array_source_11(Idx)
58162 , p_source_16 => l_array_source_16(Idx)
58163 , p_source_33 => l_array_source_33(Idx)
58164 , p_source_34 => l_array_source_34(Idx)
58165 , p_source_35 => l_array_source_35(Idx)
58166 , p_source_47 => l_array_source_47(Idx)
58167 , p_source_53 => l_array_source_53(Idx)
58168 , p_source_54 => l_array_source_54(Idx)
58169 , p_source_55 => l_array_source_55(Idx)
58170 , p_source_56 => l_array_source_56(Idx)
58171 , p_source_57 => l_array_source_57(Idx)
58172 , p_source_58 => l_array_source_58(Idx)
58173 , p_source_76 => g_array_event(l_event_id).array_value_num('source_76')
58174 , p_source_77 => l_array_source_77(Idx)
58175 , p_source_78 => l_array_source_78(Idx)
58176 );
58177 If(l_balance_type_code = 'A') THEN
58178 l_actual_gain_loss_ref := l_gain_or_loss_ref;
58179 END IF;
58180
58181 --
58182
58183 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
58184 -- or secondary ledger that has different currency with primary
58185 -- or alc that is calculated by sla
58186 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
58187 (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'))
58188
58189 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
58190 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
58191 AND (l_actual_flag = 'A')) THEN
58192 XLA_AE_LINES_PKG.CreateGainOrLossLines(
58193 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
58194 ,p_application_id => p_application_id
58195 ,p_amb_context_code => 'DEFAULT'
58196 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
58197 ,p_event_class_code => C_EVENT_CLASS_CODE
58198 ,p_event_type_code => C_EVENT_TYPE_CODE
58199
58200 ,p_gain_ccid => -1
58201 ,p_loss_ccid => -1
58202
58203 ,p_actual_flag => l_actual_flag
58204 ,p_enc_flag => null
58205 ,p_actual_g_l_ref => l_actual_gain_loss_ref
58206 ,p_enc_g_l_ref => null
58207 );
58208 END IF;
58209 END IF;
58210 END IF;
58211
58212 ELSE
58213 --
58214 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
58215 --
58216 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
58217 trace
58218 (p_msg => 'Trancaction revesal option is Y'
58219 ,p_level => C_LEVEL_STATEMENT
58220 ,p_module => l_log_module);
58221 END IF;
58222 END IF;
58223
58224 END LOOP;
58225 l_result := XLA_AE_LINES_PKG.InsertLines ;
58226 end loop;
58227 close line_cur;
58228
58229
58230 --
58231 -- insert headers into xla_ae_headers_gt table
58232 --
58233 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
58234
58235 -- insert into errors table here.
58236
58237 END LOOP;
58238
58239 --
58240 -- 4865292
58241 --
58242 -- Compare g_hdr_extract_count with event count in
58243 -- CreateHeadersAndLines.
58244 --
58245 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
58246
58247 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
58248 trace (p_msg => '# rows extracted from header extract objects '
58249 || ' (running total): '
58250 || g_hdr_extract_count
58251 ,p_level => C_LEVEL_STATEMENT
58252 ,p_module => l_log_module);
58253 END IF;
58254
58255 CLOSE header_cur;
58256 --
58257
58258 --
58259 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58260 trace
58261 (p_msg => 'END of EventClass_89'
58262 ,p_level => C_LEVEL_PROCEDURE
58263 ,p_module => l_log_module);
58264 END IF;
58265 --
58266 RETURN l_result;
58267 EXCEPTION
58268 WHEN xla_exceptions_pkg.application_exception THEN
58269
58270 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
58271
58272
58273 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
58274
58275 RAISE;
58276 WHEN OTHERS THEN
58277 xla_exceptions_pkg.raise_message
58278 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.EventClass_89');
58279 END EventClass_89;
58280 --
58281
58282 ---------------------------------------
58283 --
58284 -- PRIVATE PROCEDURE
58285 -- insert_sources_90
58286 --
58287 ----------------------------------------
58288 --
58289 PROCEDURE insert_sources_90(
58290 p_target_ledger_id IN NUMBER
58291 , p_language IN VARCHAR2
58292 , p_sla_ledger_id IN NUMBER
58293 , p_pad_start_date IN DATE
58294 , p_pad_end_date IN DATE
58295 )
58296 IS
58297
58298 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'REQUISITION_BURDEN_ALL';
58299 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'REQUISITION_BURDEN';
58300 p_apps_owner VARCHAR2(30);
58301 l_log_module VARCHAR2(240);
58302 BEGIN
58303 IF g_log_enabled THEN
58304 l_log_module := C_DEFAULT_MODULE||'.insert_sources_90';
58305 END IF;
58306 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58307
58308 trace
58309 (p_msg => 'BEGIN of insert_sources_90'
58310 ,p_level => C_LEVEL_PROCEDURE
58311 ,p_module => l_log_module);
58312
58313 END IF;
58314
58315 -- select APPS owner
58316 SELECT oracle_username
58317 INTO p_apps_owner
58318 FROM fnd_oracle_userid
58319 WHERE read_only_flag = 'U'
58320 ;
58321
58322 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
58323 trace
58324 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
58325 ' - p_language = '||p_language||
58326 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
58327 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
58328 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
58329 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
58330 ,p_level => C_LEVEL_STATEMENT
58331 ,p_module => l_log_module);
58332 END IF;
58333
58334
58335 --
58336 INSERT INTO xla_diag_sources --hdr2
58337 (
58338 event_id
58339 , ledger_id
58340 , sla_ledger_id
58341 , description_language
58342 , object_name
58343 , object_type_code
58344 , line_number
58345 , source_application_id
58346 , source_type_code
58347 , source_code
58348 , source_value
58349 , source_meaning
58350 , created_by
58351 , creation_date
58352 , last_update_date
58353 , last_updated_by
58354 , last_update_login
58355 , program_update_date
58356 , program_application_id
58357 , program_id
58358 , request_id
58359 )
58360 SELECT
58361 event_id
58362 , p_target_ledger_id
58363 , p_sla_ledger_id
58364 , p_language
58365 , object_name
58366 , object_type_code
58367 , line_number
58368 , source_application_id
58369 , source_type_code
58370 , source_code
58371 , SUBSTR(source_value ,1,1996)
58372 , SUBSTR(source_meaning ,1,200)
58373 , xla_environment_pkg.g_Usr_Id
58374 , TRUNC(SYSDATE)
58375 , TRUNC(SYSDATE)
58376 , xla_environment_pkg.g_Usr_Id
58377 , xla_environment_pkg.g_Login_Id
58378 , TRUNC(SYSDATE)
58379 , xla_environment_pkg.g_Prog_Appl_Id
58380 , xla_environment_pkg.g_Prog_Id
58381 , xla_environment_pkg.g_Req_Id
58382 FROM (
58383 SELECT xet.event_id event_id
58384 , 0 line_number
58385 , CASE r
58386 WHEN 1 THEN 'PA_XLA_BC_PKT_REQ_HEADER_V'
58387
58388 ELSE null
58389 END object_name
58390 , CASE r
58391 WHEN 1 THEN 'HEADER'
58392
58393 ELSE null
58394 END object_type_code
58395 , CASE r
58396 WHEN 1 THEN '201'
58397
58398 ELSE null
58399 END source_application_id
58400 , 'S' source_type_code
58401 , CASE r
58402 WHEN 1 THEN 'GL_DATE'
58403
58404 ELSE null
58405 END source_code
58406 , CASE r
58407 WHEN 1 THEN TO_CHAR(h2.GL_DATE)
58408
58409 ELSE null
58410 END source_value
58411 , null source_meaning
58412 FROM xla_events_gt xet
58413 , PA_XLA_BC_PKT_REQ_HEADER_V h2
58414 ,(select rownum r from all_objects where rownum <= 1 and owner = p_apps_owner)
58415 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
58416 AND xet.event_class_code = C_EVENT_CLASS_CODE
58417 AND h2.event_id = xet.event_id
58418
58419 )
58420 ;
58421 --
58422 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
58423
58424 trace
58425 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
58426 ,p_level => C_LEVEL_STATEMENT
58427 ,p_module => l_log_module);
58428
58429 END IF;
58430 --
58431
58432
58433
58434 --
58435 INSERT INTO xla_diag_sources --line2
58436 (
58437 event_id
58438 , ledger_id
58439 , sla_ledger_id
58440 , description_language
58441 , object_name
58442 , object_type_code
58443 , line_number
58444 , source_application_id
58445 , source_type_code
58446 , source_code
58447 , source_value
58448 , source_meaning
58449 , created_by
58450 , creation_date
58451 , last_update_date
58452 , last_updated_by
58453 , last_update_login
58454 , program_update_date
58455 , program_application_id
58456 , program_id
58457 , request_id
58458 )
58459 SELECT event_id
58460 , p_target_ledger_id
58461 , p_sla_ledger_id
58462 , p_language
58463 , object_name
58464 , object_type_code
58465 , line_number
58466 , source_application_id
58467 , source_type_code
58468 , source_code
58469 , SUBSTR(source_value,1,1996)
58470 , SUBSTR(source_meaning ,1,200)
58471 , xla_environment_pkg.g_Usr_Id
58472 , TRUNC(SYSDATE)
58473 , TRUNC(SYSDATE)
58474 , xla_environment_pkg.g_Usr_Id
58475 , xla_environment_pkg.g_Login_Id
58476 , TRUNC(SYSDATE)
58477 , xla_environment_pkg.g_Prog_Appl_Id
58478 , xla_environment_pkg.g_Prog_Id
58479 , xla_environment_pkg.g_Req_Id
58480 FROM (
58481 SELECT xet.event_id event_id
58482 , l1.line_number line_number
58483 , CASE r
58484 WHEN 1 THEN 'PA_XLA_PROJECT_REF_V'
58485 WHEN 2 THEN 'PA_XLA_TASK_REF_V'
58486 WHEN 3 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58487 WHEN 4 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58488 WHEN 5 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58489 WHEN 6 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58490 WHEN 7 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58491 WHEN 8 THEN 'PA_XLA_PROJECT_REF_V'
58492 WHEN 9 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58493 WHEN 10 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58494 WHEN 11 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58495 WHEN 12 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58496 WHEN 13 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58497 WHEN 14 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58498 WHEN 15 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58499 WHEN 16 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58500 WHEN 17 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58501 WHEN 18 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58502 WHEN 19 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58503 WHEN 20 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58504 WHEN 21 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58505 WHEN 22 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58506 WHEN 23 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58507 WHEN 24 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58508 WHEN 25 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58509 WHEN 26 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58510 WHEN 27 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58511 WHEN 28 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58512 WHEN 29 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58513 WHEN 30 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58514 WHEN 31 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58515 WHEN 32 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58516 WHEN 33 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58517 WHEN 34 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58518 WHEN 35 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58519 WHEN 36 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58520 WHEN 37 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58521 WHEN 38 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58522 WHEN 39 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58523 WHEN 40 THEN 'PA_XLA_BC_PKT_REQ_DETAIL_V'
58524
58525 ELSE null
58526 END object_name
58527 , CASE r
58528 WHEN 1 THEN 'LINE'
58529 WHEN 2 THEN 'LINE'
58530 WHEN 3 THEN 'LINE'
58531 WHEN 4 THEN 'LINE'
58532 WHEN 5 THEN 'LINE'
58533 WHEN 6 THEN 'LINE'
58534 WHEN 7 THEN 'LINE'
58535 WHEN 8 THEN 'LINE'
58536 WHEN 9 THEN 'LINE'
58537 WHEN 10 THEN 'LINE'
58538 WHEN 11 THEN 'LINE'
58539 WHEN 12 THEN 'LINE'
58540 WHEN 13 THEN 'LINE'
58541 WHEN 14 THEN 'LINE'
58542 WHEN 15 THEN 'LINE'
58543 WHEN 16 THEN 'LINE'
58544 WHEN 17 THEN 'LINE'
58545 WHEN 18 THEN 'LINE'
58546 WHEN 19 THEN 'LINE'
58547 WHEN 20 THEN 'LINE'
58548 WHEN 21 THEN 'LINE'
58549 WHEN 22 THEN 'LINE'
58550 WHEN 23 THEN 'LINE'
58551 WHEN 24 THEN 'LINE'
58552 WHEN 25 THEN 'LINE'
58553 WHEN 26 THEN 'LINE'
58554 WHEN 27 THEN 'LINE'
58555 WHEN 28 THEN 'LINE'
58556 WHEN 29 THEN 'LINE'
58557 WHEN 30 THEN 'LINE'
58558 WHEN 31 THEN 'LINE'
58559 WHEN 32 THEN 'LINE'
58560 WHEN 33 THEN 'LINE'
58561 WHEN 34 THEN 'LINE'
58562 WHEN 35 THEN 'LINE'
58563 WHEN 36 THEN 'LINE'
58564 WHEN 37 THEN 'LINE'
58565 WHEN 38 THEN 'LINE'
58566 WHEN 39 THEN 'LINE'
58567 WHEN 40 THEN 'LINE'
58568
58569 ELSE null
58570 END object_type_code
58571 , CASE r
58572 WHEN 1 THEN '275'
58573 WHEN 2 THEN '275'
58574 WHEN 3 THEN '201'
58575 WHEN 4 THEN '201'
58576 WHEN 5 THEN '201'
58577 WHEN 6 THEN '201'
58578 WHEN 7 THEN '201'
58579 WHEN 8 THEN '275'
58580 WHEN 9 THEN '201'
58581 WHEN 10 THEN '201'
58582 WHEN 11 THEN '201'
58583 WHEN 12 THEN '201'
58584 WHEN 13 THEN '201'
58585 WHEN 14 THEN '201'
58586 WHEN 15 THEN '201'
58587 WHEN 16 THEN '201'
58588 WHEN 17 THEN '201'
58589 WHEN 18 THEN '201'
58590 WHEN 19 THEN '201'
58591 WHEN 20 THEN '201'
58592 WHEN 21 THEN '201'
58593 WHEN 22 THEN '201'
58594 WHEN 23 THEN '201'
58595 WHEN 24 THEN '201'
58596 WHEN 25 THEN '201'
58597 WHEN 26 THEN '201'
58598 WHEN 27 THEN '201'
58599 WHEN 28 THEN '201'
58600 WHEN 29 THEN '201'
58601 WHEN 30 THEN '201'
58602 WHEN 31 THEN '201'
58603 WHEN 32 THEN '201'
58604 WHEN 33 THEN '201'
58605 WHEN 34 THEN '201'
58606 WHEN 35 THEN '201'
58607 WHEN 36 THEN '201'
58608 WHEN 37 THEN '201'
58609 WHEN 38 THEN '201'
58610 WHEN 39 THEN '201'
58611 WHEN 40 THEN '201'
58612
58613 ELSE null
58614 END source_application_id
58615 , 'S' source_type_code
58616 , CASE r
58617 WHEN 1 THEN 'PROJECT_NAME'
58618 WHEN 2 THEN 'TASK_NAME'
58619 WHEN 3 THEN 'EXPENDITURE_ORGANIZATION_ID'
58620 WHEN 4 THEN 'EXPENDITURE_TYPE'
58621 WHEN 5 THEN 'BUDGET_ACCOUNT'
58622 WHEN 6 THEN 'MAIN_OR_BACKING_CODE'
58623 WHEN 7 THEN 'BURDEN_COST_FLAG'
58624 WHEN 8 THEN 'PROJ_BURDEN_DISPLAY_METHOD'
58625 WHEN 9 THEN 'ACCOUNTING_REVERSAL_FLAG'
58626 WHEN 10 THEN 'ALLOC_TO_APPLN_ID'
58627 WHEN 11 THEN 'ALLOC_TO_DIST_TYPE'
58628 WHEN 12 THEN 'ALLOC_TO_ENTITY_CODE'
58629 WHEN 13 THEN 'ALLOC_TO_FIRST_DIST_ID'
58630 WHEN 14 THEN 'ALLOC_TO_FIRST_SYS_TRANS_ID'
58631 WHEN 15 THEN 'ALLOC_TO_SECOND_DIST_ID'
58632 WHEN 16 THEN 'LINE_TYPE_NAME'
58633 WHEN 17 THEN 'ENC_UPG_CR_ACCT_CLASS'
58634 WHEN 18 THEN 'ENC_UPG_CR_ACCOUNT'
58635 WHEN 19 THEN 'ENTERED_AMT'
58636 WHEN 20 THEN 'CURRENCY_CODE'
58637 WHEN 21 THEN 'ACCOUNTED_AMT'
58638 WHEN 22 THEN 'ENC_UPG_DR_ACCT_CLASS'
58639 WHEN 23 THEN 'ENC_UPG_DR_ACCOUNT'
58640 WHEN 24 THEN 'USE_ENC_UPG_ATTRIB_FLAG'
58641 WHEN 25 THEN 'ENC_UPG_CR_ENC_TYPE_ID'
58642 WHEN 26 THEN 'ENC_UPG_DR_ENC_TYPE_ID'
58643 WHEN 27 THEN 'REQ_APPLICATION_ID'
58644 WHEN 28 THEN 'REQ_DISTRIBUTION_TYPE'
58645 WHEN 29 THEN 'REQ_ENTITY_CODE'
58646 WHEN 30 THEN 'REQ_FIRST_DIST_ID'
58647 WHEN 31 THEN 'REQ_FIRST_SYS_TRANS_ID'
58648 WHEN 32 THEN 'REQ_SECOND_DIST_ID'
58649 WHEN 33 THEN 'REQ_DISTRIBUTION_ID'
58650 WHEN 34 THEN 'PA_APPLICATION_ID'
58651 WHEN 35 THEN 'PA_DISTRIBUTION_TYPE'
58652 WHEN 36 THEN 'PA_ENTITY_CODE'
58653 WHEN 37 THEN 'PA_FIRST_DIST_ID'
58654 WHEN 38 THEN 'PA_FIRST_SYS_TRANS_ID'
58655 WHEN 39 THEN 'PA_SECOND_DIST_ID'
58656 WHEN 40 THEN 'DOCUMENT_DISTRIBUTION_TYPE'
58657
58658 ELSE null
58659 END source_code
58660 , CASE r
58661 WHEN 1 THEN TO_CHAR(l3.PROJECT_NAME)
58662 WHEN 2 THEN TO_CHAR(l4.TASK_NAME)
58663 WHEN 3 THEN TO_CHAR(l1.EXPENDITURE_ORGANIZATION_ID)
58664 WHEN 4 THEN TO_CHAR(l1.EXPENDITURE_TYPE)
58665 WHEN 5 THEN TO_CHAR(l1.BUDGET_ACCOUNT)
58666 WHEN 6 THEN TO_CHAR(l1.MAIN_OR_BACKING_CODE)
58667 WHEN 7 THEN TO_CHAR(l1.BURDEN_COST_FLAG)
58668 WHEN 8 THEN TO_CHAR(l3.PROJ_BURDEN_DISPLAY_METHOD)
58669 WHEN 9 THEN TO_CHAR(l1.ACCOUNTING_REVERSAL_FLAG)
58670 WHEN 10 THEN TO_CHAR(l1.ALLOC_TO_APPLN_ID)
58671 WHEN 11 THEN TO_CHAR(l1.ALLOC_TO_DIST_TYPE)
58672 WHEN 12 THEN TO_CHAR(l1.ALLOC_TO_ENTITY_CODE)
58673 WHEN 13 THEN TO_CHAR(l1.ALLOC_TO_FIRST_DIST_ID)
58674 WHEN 14 THEN TO_CHAR(l1.ALLOC_TO_FIRST_SYS_TRANS_ID)
58675 WHEN 15 THEN TO_CHAR(l1.ALLOC_TO_SECOND_DIST_ID)
58676 WHEN 16 THEN TO_CHAR(l1.LINE_TYPE_NAME)
58677 WHEN 17 THEN TO_CHAR(l1.ENC_UPG_CR_ACCT_CLASS)
58678 WHEN 18 THEN TO_CHAR(l1.ENC_UPG_CR_ACCOUNT)
58679 WHEN 19 THEN TO_CHAR(l1.ENTERED_AMT)
58680 WHEN 20 THEN TO_CHAR(l1.CURRENCY_CODE)
58681 WHEN 21 THEN TO_CHAR(l1.ACCOUNTED_AMT)
58682 WHEN 22 THEN TO_CHAR(l1.ENC_UPG_DR_ACCT_CLASS)
58683 WHEN 23 THEN TO_CHAR(l1.ENC_UPG_DR_ACCOUNT)
58684 WHEN 24 THEN TO_CHAR(l1.USE_ENC_UPG_ATTRIB_FLAG)
58685 WHEN 25 THEN TO_CHAR(l1.ENC_UPG_CR_ENC_TYPE_ID)
58686 WHEN 26 THEN TO_CHAR(l1.ENC_UPG_DR_ENC_TYPE_ID)
58687 WHEN 27 THEN TO_CHAR(l1.REQ_APPLICATION_ID)
58688 WHEN 28 THEN TO_CHAR(l1.REQ_DISTRIBUTION_TYPE)
58689 WHEN 29 THEN TO_CHAR(l1.REQ_ENTITY_CODE)
58690 WHEN 30 THEN TO_CHAR(l1.REQ_FIRST_DIST_ID)
58691 WHEN 31 THEN TO_CHAR(l1.REQ_FIRST_SYS_TRANS_ID)
58692 WHEN 32 THEN TO_CHAR(l1.REQ_SECOND_DIST_ID)
58693 WHEN 33 THEN TO_CHAR(l1.REQ_DISTRIBUTION_ID)
58694 WHEN 34 THEN TO_CHAR(l1.PA_APPLICATION_ID)
58695 WHEN 35 THEN TO_CHAR(l1.PA_DISTRIBUTION_TYPE)
58696 WHEN 36 THEN TO_CHAR(l1.PA_ENTITY_CODE)
58697 WHEN 37 THEN TO_CHAR(l1.PA_FIRST_DIST_ID)
58698 WHEN 38 THEN TO_CHAR(l1.PA_FIRST_SYS_TRANS_ID)
58699 WHEN 39 THEN TO_CHAR(l1.PA_SECOND_DIST_ID)
58700 WHEN 40 THEN TO_CHAR(l1.DOCUMENT_DISTRIBUTION_TYPE)
58701
58702 ELSE null
58703 END source_value
58704 , CASE r
58705 WHEN 3 THEN XLA_00201_AAD_S_000005_BC_PKG.GetMeaning(
58706 1011404
58707 ,TO_CHAR(l1.EXPENDITURE_ORGANIZATION_ID)
58708 ,'EXPENDITURE_ORGANIZATION_ID'
58709 ,'S'
58710 ,201)
58711 WHEN 7 THEN fvl14.meaning
58712
58713 ELSE null
58714 END source_meaning
58715 FROM xla_events_gt xet
58716 , PA_XLA_BC_PKT_REQ_DETAIL_V l1
58717 , PA_XLA_PROJECT_REF_V l3
58718 , PA_XLA_TASK_REF_V l4
58719 , fnd_lookup_values fvl14
58720 , (select rownum r from all_objects where rownum <= 40 and owner = p_apps_owner)
58721 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
58722 AND xet.event_class_code = C_EVENT_CLASS_CODE
58723 AND l1.event_id = xet.event_id
58724 AND l3.project_id=l1.project_id AND l4.task_id=l1.task_id AND fvl14.lookup_type(+) = 'BC_PKT_BURDEN_COST_FLAG'
58725 AND fvl14.lookup_code(+) = l1.BURDEN_COST_FLAG
58726 AND fvl14.view_application_id(+) = 275
58727 AND fvl14.language(+) = USERENV('LANG')
58728
58729 )
58730 ;
58731 --
58732 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
58733
58734 trace
58735 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
58736 ,p_level => C_LEVEL_STATEMENT
58737 ,p_module => l_log_module);
58738
58739 END IF;
58740
58741
58742 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58743 trace
58744 (p_msg => 'END of insert_sources_90'
58745 ,p_level => C_LEVEL_PROCEDURE
58746 ,p_module => l_log_module);
58747 END IF;
58748 EXCEPTION
58749 WHEN xla_exceptions_pkg.application_exception THEN
58750 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
58751 trace
58752 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
58753 ,p_level => C_LEVEL_EXCEPTION
58754 ,p_module => l_log_module);
58755 END IF;
58756 RAISE;
58757 WHEN OTHERS THEN
58758 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
58759 trace
58760 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
58761 ,p_level => C_LEVEL_EXCEPTION
58762 ,p_module => l_log_module);
58763 END IF;
58764 xla_exceptions_pkg.raise_message
58765 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.insert_sources_90');
58766 END insert_sources_90;
58767 --
58768
58769 ---------------------------------------
58770 --
58771 -- PRIVATE FUNCTION
58772 -- EventClass_90
58773 --
58774 ----------------------------------------
58775 --
58776 FUNCTION EventClass_90
58777 (p_application_id IN NUMBER
58778 ,p_base_ledger_id IN NUMBER
58779 ,p_target_ledger_id IN NUMBER
58780 ,p_language IN VARCHAR2
58781 ,p_currency_code IN VARCHAR2
58782 ,p_sla_ledger_id IN NUMBER
58783 ,p_pad_start_date IN DATE
58784 ,p_pad_end_date IN DATE
58785 ,p_primary_ledger_id IN NUMBER)
58786 RETURN BOOLEAN IS
58787 --
58788 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'REQUISITION_BURDEN_ALL';
58789 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'REQUISITION_BURDEN';
58790
58791 l_calculate_acctd_flag VARCHAR2(1) :='N';
58792 l_calculate_g_l_flag VARCHAR2(1) :='N';
58793 --
58794 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
58795 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
58796 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
58797 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
58798 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
58799 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
58800 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
58801 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
58802 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
58803 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
58804 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
58805 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
58806 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
58807 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
58808 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
58809 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
58810 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
58811 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
58812 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
58813 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
58814 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
58815 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
58816 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
58817 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
58818
58819 l_event_id NUMBER;
58820 l_previous_event_id NUMBER;
58821 l_first_event_id NUMBER;
58822 l_last_event_id NUMBER;
58823
58824 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
58825 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
58826 --
58827 --
58828 l_result BOOLEAN := TRUE;
58829 l_rows NUMBER := 1000;
58830 l_event_type_name VARCHAR2(80) := 'All';
58831 l_event_class_name VARCHAR2(80) := 'Burden for Requisition';
58832 l_description VARCHAR2(4000);
58833 l_transaction_reversal NUMBER;
58834 l_ae_header_id NUMBER;
58835 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
58836 l_log_module VARCHAR2(240);
58837 --
58838 l_acct_reversal_source VARCHAR2(30);
58839 l_trx_reversal_source VARCHAR2(30);
58840
58841 l_continue_with_lines BOOLEAN := TRUE;
58842 --
58843 l_acc_rev_gl_date_source DATE; -- 4262811
58844 --
58845 type t_array_event_id is table of number index by binary_integer;
58846
58847 l_rec_array_event t_rec_array_event;
58848 l_null_rec_array_event t_rec_array_event;
58849 l_array_ae_header_id xla_number_array_type;
58850 l_actual_flag VARCHAR2(1) := NULL;
58851 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
58852 l_balance_type_code VARCHAR2(1) :=NULL;
58853 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
58854
58855 --
58856 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
58857 --
58858
58859 TYPE t_array_source_79 IS TABLE OF PA_XLA_BC_PKT_REQ_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
58860
58861 TYPE t_array_source_3 IS TABLE OF PA_XLA_PROJECT_REF_V.PROJECT_NAME%TYPE INDEX BY BINARY_INTEGER;
58862 TYPE t_array_source_4 IS TABLE OF PA_XLA_TASK_REF_V.TASK_NAME%TYPE INDEX BY BINARY_INTEGER;
58863 TYPE t_array_source_5 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.EXPENDITURE_ORGANIZATION_ID%TYPE INDEX BY BINARY_INTEGER;
58864 TYPE t_array_source_6 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.EXPENDITURE_TYPE%TYPE INDEX BY BINARY_INTEGER;
58865 TYPE t_array_source_11 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.BUDGET_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
58866 TYPE t_array_source_13 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.MAIN_OR_BACKING_CODE%TYPE INDEX BY BINARY_INTEGER;
58867 TYPE t_array_source_14 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.BURDEN_COST_FLAG%TYPE INDEX BY BINARY_INTEGER;
58868 TYPE t_array_source_15 IS TABLE OF PA_XLA_PROJECT_REF_V.PROJ_BURDEN_DISPLAY_METHOD%TYPE INDEX BY BINARY_INTEGER;
58869 TYPE t_array_source_16 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.ACCOUNTING_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
58870 TYPE t_array_source_17 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.ALLOC_TO_APPLN_ID%TYPE INDEX BY BINARY_INTEGER;
58871 TYPE t_array_source_18 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.ALLOC_TO_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
58872 TYPE t_array_source_19 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.ALLOC_TO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
58873 TYPE t_array_source_20 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.ALLOC_TO_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
58874 TYPE t_array_source_21 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.ALLOC_TO_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
58875 TYPE t_array_source_22 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.ALLOC_TO_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
58876 TYPE t_array_source_30 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.LINE_TYPE_NAME%TYPE INDEX BY BINARY_INTEGER;
58877 TYPE t_array_source_31 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.ENC_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
58878 TYPE t_array_source_32 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.ENC_UPG_CR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
58879 TYPE t_array_source_33 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.ENTERED_AMT%TYPE INDEX BY BINARY_INTEGER;
58880 TYPE t_array_source_34 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
58881 TYPE t_array_source_35 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.ACCOUNTED_AMT%TYPE INDEX BY BINARY_INTEGER;
58882 TYPE t_array_source_36 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.ENC_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
58883 TYPE t_array_source_37 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.ENC_UPG_DR_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
58884 TYPE t_array_source_38 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
58885 TYPE t_array_source_39 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.ENC_UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
58886 TYPE t_array_source_40 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.ENC_UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
58887 TYPE t_array_source_41 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.REQ_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
58888 TYPE t_array_source_42 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.REQ_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
58889 TYPE t_array_source_43 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.REQ_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
58890 TYPE t_array_source_44 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.REQ_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
58891 TYPE t_array_source_45 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.REQ_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
58892 TYPE t_array_source_46 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.REQ_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
58893 TYPE t_array_source_47 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.REQ_DISTRIBUTION_ID%TYPE INDEX BY BINARY_INTEGER;
58894 TYPE t_array_source_68 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.PA_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
58895 TYPE t_array_source_69 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.PA_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
58896 TYPE t_array_source_70 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.PA_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
58897 TYPE t_array_source_71 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.PA_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
58898 TYPE t_array_source_72 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.PA_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
58899 TYPE t_array_source_73 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.PA_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
58900 TYPE t_array_source_74 IS TABLE OF PA_XLA_BC_PKT_REQ_DETAIL_V.DOCUMENT_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
58901
58902 l_array_source_79 t_array_source_79;
58903
58904 l_array_source_3 t_array_source_3;
58905 l_array_source_4 t_array_source_4;
58906 l_array_source_5 t_array_source_5;
58907 l_array_source_6 t_array_source_6;
58908 l_array_source_11 t_array_source_11;
58909 l_array_source_13 t_array_source_13;
58910 l_array_source_14 t_array_source_14;
58911 l_array_source_14_meaning t_array_lookup_meaning;
58912 l_array_source_15 t_array_source_15;
58913 l_array_source_16 t_array_source_16;
58914 l_array_source_17 t_array_source_17;
58915 l_array_source_18 t_array_source_18;
58916 l_array_source_19 t_array_source_19;
58917 l_array_source_20 t_array_source_20;
58918 l_array_source_21 t_array_source_21;
58919 l_array_source_22 t_array_source_22;
58920 l_array_source_30 t_array_source_30;
58921 l_array_source_31 t_array_source_31;
58922 l_array_source_32 t_array_source_32;
58923 l_array_source_33 t_array_source_33;
58924 l_array_source_34 t_array_source_34;
58925 l_array_source_35 t_array_source_35;
58926 l_array_source_36 t_array_source_36;
58927 l_array_source_37 t_array_source_37;
58928 l_array_source_38 t_array_source_38;
58929 l_array_source_39 t_array_source_39;
58930 l_array_source_40 t_array_source_40;
58931 l_array_source_41 t_array_source_41;
58932 l_array_source_42 t_array_source_42;
58933 l_array_source_43 t_array_source_43;
58934 l_array_source_44 t_array_source_44;
58935 l_array_source_45 t_array_source_45;
58936 l_array_source_46 t_array_source_46;
58937 l_array_source_47 t_array_source_47;
58938 l_array_source_68 t_array_source_68;
58939 l_array_source_69 t_array_source_69;
58940 l_array_source_70 t_array_source_70;
58941 l_array_source_71 t_array_source_71;
58942 l_array_source_72 t_array_source_72;
58943 l_array_source_73 t_array_source_73;
58944 l_array_source_74 t_array_source_74;
58945
58946 --
58947 CURSOR header_cur
58948 IS
58949 SELECT /*+ leading(xet) cardinality(xet,1) */
58950 -- Event Class Code: REQUISITION_BURDEN
58951 xet.entity_id
58952 ,xet.legal_entity_id
58953 ,xet.entity_code
58954 ,xet.transaction_number
58955 ,xet.event_id
58956 ,xet.event_class_code
58957 ,xet.event_type_code
58958 ,xet.event_number
58959 ,xet.event_date
58960 ,xet.transaction_date
58961 ,xet.reference_num_1
58962 ,xet.reference_num_2
58963 ,xet.reference_num_3
58964 ,xet.reference_num_4
58965 ,xet.reference_char_1
58966 ,xet.reference_char_2
58967 ,xet.reference_char_3
58968 ,xet.reference_char_4
58969 ,xet.reference_date_1
58970 ,xet.reference_date_2
58971 ,xet.reference_date_3
58972 ,xet.reference_date_4
58973 ,xet.event_created_by
58974 ,xet.budgetary_control_flag
58975 , h2.GL_DATE source_79
58976 FROM xla_events_gt xet
58977 , PA_XLA_BC_PKT_REQ_HEADER_V h2
58978 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
58979 and xet.event_class_code = C_EVENT_CLASS_CODE
58980 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
58981
58982 ORDER BY event_id
58983 ;
58984
58985
58986 --
58987 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
58988 IS
58989 SELECT /*+ leading(xet) cardinality(xet,1) */
58990 -- Event Class Code: REQUISITION_BURDEN
58991 xet.entity_id
58992 ,xet.legal_entity_id
58993 ,xet.entity_code
58994 ,xet.transaction_number
58995 ,xet.event_id
58996 ,xet.event_class_code
58997 ,xet.event_type_code
58998 ,xet.event_number
58999 ,xet.event_date
59000 ,xet.transaction_date
59001 ,xet.reference_num_1
59002 ,xet.reference_num_2
59003 ,xet.reference_num_3
59004 ,xet.reference_num_4
59005 ,xet.reference_char_1
59006 ,xet.reference_char_2
59007 ,xet.reference_char_3
59008 ,xet.reference_char_4
59009 ,xet.reference_date_1
59010 ,xet.reference_date_2
59011 ,xet.reference_date_3
59012 ,xet.reference_date_4
59013 ,xet.event_created_by
59014 ,xet.budgetary_control_flag
59015 , l1.LINE_NUMBER
59016 , l3.PROJECT_NAME source_3
59017 , l4.TASK_NAME source_4
59018 , l1.EXPENDITURE_ORGANIZATION_ID source_5
59019 , l1.EXPENDITURE_TYPE source_6
59020 , l1.BUDGET_ACCOUNT source_11
59021 , l1.MAIN_OR_BACKING_CODE source_13
59022 , l1.BURDEN_COST_FLAG source_14
59023 , fvl14.meaning source_14_meaning
59024 , l3.PROJ_BURDEN_DISPLAY_METHOD source_15
59025 , l1.ACCOUNTING_REVERSAL_FLAG source_16
59026 , l1.ALLOC_TO_APPLN_ID source_17
59027 , l1.ALLOC_TO_DIST_TYPE source_18
59028 , l1.ALLOC_TO_ENTITY_CODE source_19
59029 , l1.ALLOC_TO_FIRST_DIST_ID source_20
59030 , l1.ALLOC_TO_FIRST_SYS_TRANS_ID source_21
59031 , l1.ALLOC_TO_SECOND_DIST_ID source_22
59032 , l1.LINE_TYPE_NAME source_30
59033 , l1.ENC_UPG_CR_ACCT_CLASS source_31
59034 , l1.ENC_UPG_CR_ACCOUNT source_32
59035 , l1.ENTERED_AMT source_33
59036 , l1.CURRENCY_CODE source_34
59037 , l1.ACCOUNTED_AMT source_35
59038 , l1.ENC_UPG_DR_ACCT_CLASS source_36
59039 , l1.ENC_UPG_DR_ACCOUNT source_37
59040 , l1.USE_ENC_UPG_ATTRIB_FLAG source_38
59041 , l1.ENC_UPG_CR_ENC_TYPE_ID source_39
59042 , l1.ENC_UPG_DR_ENC_TYPE_ID source_40
59043 , l1.REQ_APPLICATION_ID source_41
59044 , l1.REQ_DISTRIBUTION_TYPE source_42
59045 , l1.REQ_ENTITY_CODE source_43
59046 , l1.REQ_FIRST_DIST_ID source_44
59047 , l1.REQ_FIRST_SYS_TRANS_ID source_45
59048 , l1.REQ_SECOND_DIST_ID source_46
59049 , l1.REQ_DISTRIBUTION_ID source_47
59050 , l1.PA_APPLICATION_ID source_68
59051 , l1.PA_DISTRIBUTION_TYPE source_69
59052 , l1.PA_ENTITY_CODE source_70
59053 , l1.PA_FIRST_DIST_ID source_71
59054 , l1.PA_FIRST_SYS_TRANS_ID source_72
59055 , l1.PA_SECOND_DIST_ID source_73
59056 , l1.DOCUMENT_DISTRIBUTION_TYPE source_74
59057 FROM xla_events_gt xet
59058 , PA_XLA_BC_PKT_REQ_DETAIL_V l1
59059 , PA_XLA_PROJECT_REF_V l3
59060 , PA_XLA_TASK_REF_V l4
59061 , fnd_lookup_values fvl14
59062 WHERE xet.event_id between x_first_event_id and x_last_event_id
59063 and xet.event_date between p_pad_start_date and p_pad_end_date
59064 and xet.event_class_code = C_EVENT_CLASS_CODE
59065 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
59066 AND l3.project_id=l1.project_id AND l4.task_id=l1.task_id AND fvl14.lookup_type(+) = 'BC_PKT_BURDEN_COST_FLAG'
59067 AND fvl14.lookup_code(+) = l1.BURDEN_COST_FLAG
59068 AND fvl14.view_application_id(+) = 275
59069 AND fvl14.language(+) = USERENV('LANG')
59070 ;
59071
59072 --
59073 BEGIN
59074 IF g_log_enabled THEN
59075 l_log_module := C_DEFAULT_MODULE||'.EventClass_90';
59076 END IF;
59077 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59078 trace
59079 (p_msg => 'BEGIN of EventClass_90'
59080 ,p_level => C_LEVEL_PROCEDURE
59081 ,p_module => l_log_module);
59082 END IF;
59083
59084 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
59085 trace
59086 (p_msg => 'p_application_id = '||p_application_id||
59087 ' - p_base_ledger_id = '||p_base_ledger_id||
59088 ' - p_target_ledger_id = '||p_target_ledger_id||
59089 ' - p_language = '||p_language||
59090 ' - p_currency_code = '||p_currency_code||
59091 ' - p_sla_ledger_id = '||p_sla_ledger_id
59092 ,p_level => C_LEVEL_STATEMENT
59093 ,p_module => l_log_module);
59094 END IF;
59095 --
59096 -- initialze arrays
59097 --
59098 g_array_event.DELETE;
59099 l_rec_array_event := l_null_rec_array_event;
59100 --
59101 --------------------------------------
59102 -- 4262811 Initialze MPA Line Number
59103 --------------------------------------
59104 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
59105
59106 --
59107
59108 --
59109 OPEN header_cur;
59110 --
59111 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
59112 trace
59113 (p_msg => 'SQL - FETCH header_cur'
59114 ,p_level => C_LEVEL_STATEMENT
59115 ,p_module => l_log_module);
59116 END IF;
59117 --
59118 LOOP
59119 FETCH header_cur BULK COLLECT INTO
59120 l_array_entity_id
59121 , l_array_legal_entity_id
59122 , l_array_entity_code
59123 , l_array_transaction_num
59124 , l_array_event_id
59125 , l_array_class_code
59126 , l_array_event_type
59127 , l_array_event_number
59128 , l_array_event_date
59129 , l_array_transaction_date
59130 , l_array_reference_num_1
59131 , l_array_reference_num_2
59132 , l_array_reference_num_3
59133 , l_array_reference_num_4
59134 , l_array_reference_char_1
59135 , l_array_reference_char_2
59136 , l_array_reference_char_3
59137 , l_array_reference_char_4
59138 , l_array_reference_date_1
59139 , l_array_reference_date_2
59140 , l_array_reference_date_3
59141 , l_array_reference_date_4
59142 , l_array_event_created_by
59143 , l_array_budgetary_control_flag
59144 , l_array_source_79
59145 LIMIT l_rows;
59146 --
59147 IF (C_LEVEL_EVENT >= g_log_level) THEN
59148 trace
59149 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
59150 ,p_level => C_LEVEL_EVENT
59151 ,p_module => l_log_module);
59152 END IF;
59153 --
59154 EXIT WHEN l_array_entity_id.COUNT = 0;
59155
59156 -- initialize arrays
59157 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
59158 XLA_AE_LINES_PKG.g_rec_lines := NULL;
59159
59160 --
59161 -- Bug 4458708
59162 --
59163 XLA_AE_LINES_PKG.g_LineNumber := 0;
59164
59165
59166 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
59167 g_last_hdr_idx := l_array_event_id.LAST;
59168 --
59169 -- loop for the headers. Each iteration is for each header extract row
59170 -- fetched in header cursor
59171 --
59172 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
59173
59174 --
59175 -- set event info as cache for other routines to refer event attributes
59176 --
59177 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
59178 (p_application_id => p_application_id
59179 ,p_primary_ledger_id => p_primary_ledger_id
59180 ,p_base_ledger_id => p_base_ledger_id
59181 ,p_target_ledger_id => p_target_ledger_id
59182 ,p_entity_id => l_array_entity_id(hdr_idx)
59183 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
59184 ,p_entity_code => l_array_entity_code(hdr_idx)
59185 ,p_transaction_num => l_array_transaction_num(hdr_idx)
59186 ,p_event_id => l_array_event_id(hdr_idx)
59187 ,p_event_class_code => l_array_class_code(hdr_idx)
59188 ,p_event_type_code => l_array_event_type(hdr_idx)
59189 ,p_event_number => l_array_event_number(hdr_idx)
59190 ,p_event_date => l_array_event_date(hdr_idx)
59191 ,p_transaction_date => l_array_transaction_date(hdr_idx)
59192 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
59193 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
59194 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
59195 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
59196 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
59197 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
59198 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
59199 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
59200 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
59201 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
59202 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
59203 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
59204 ,p_event_created_by => l_array_event_created_by(hdr_idx)
59205 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
59206
59207 --
59208 -- set the status of entry to C_VALID (0)
59209 --
59210 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
59211
59212 --
59213 -- initialize a row for ae header
59214 --
59215 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
59216
59217 l_event_id := l_array_event_id(hdr_idx);
59218
59219 --
59220 -- storing the hdr_idx for event. May be used by line cursor.
59221 --
59222 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
59223
59224 --
59225 -- store sources from header extract. This can be improved to
59226 -- store only those sources from header extract that may be used in lines
59227 --
59228
59229 g_array_event(l_event_id).array_value_date('source_79') := l_array_source_79(hdr_idx);
59230
59231 --
59232 -- initilaize the status of ae headers for diffrent balance types
59233 -- the status is initialised to C_NOT_CREATED (2)
59234 --
59235 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
59236 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
59237 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
59238
59239 --
59240 -- call api to validate and store accounting attributes for header
59241 --
59242
59243 ------------------------------------------------------------
59244 -- Accrual Reversal : to get date for Standard Source (NONE)
59245 ------------------------------------------------------------
59246 l_acc_rev_gl_date_source := NULL;
59247
59248 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
59249 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_79');
59250
59251
59252 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
59253
59254 XLA_AE_HEADER_PKG.SetJeCategoryName;
59255
59256 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
59257 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
59258 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
59259 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
59260 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
59261
59262
59263 -- No header level analytical criteria
59264
59265 --
59266 --accounting attribute enhancement, bug 3612931
59267 --
59268 l_trx_reversal_source := SUBSTR(NULL, 1,30);
59269
59270 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
59271 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
59272
59273 xla_accounting_err_pkg.build_message
59274 (p_appli_s_name => 'XLA'
59275 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
59276 ,p_token_1 => 'ACCT_ATTR_NAME'
59277 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
59278 ,p_token_2 => 'PRODUCT_NAME'
59279 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
59280 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
59281 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
59282 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
59283
59284 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
59285 --
59286 -- following sets the accounting attributes needed to reverse
59287 -- accounting for a distributeion
59288 --
59289 xla_ae_lines_pkg.SetTrxReversalAttrs
59290 (p_event_id => l_event_id
59291 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
59292 ,p_trx_reversal_source => l_trx_reversal_source);
59293
59294 END IF;
59295
59296
59297 ----------------------------------------------------------------
59298 -- 4262811 - update the header statuses to invalid in need be
59299 ----------------------------------------------------------------
59300 --
59301 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
59302
59303
59304 -----------------------------------------------
59305 -- No accrual reversal for the event class/type
59306 -----------------------------------------------
59307 ----------------------------------------------------------------
59308
59309 --
59310 -- this ends the header loop iteration for one bulk fetch
59311 --
59312 END LOOP;
59313
59314 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
59315 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
59316
59317 --
59318 -- insert dummy rows into lines gt table that were created due to
59319 -- transaction reversals
59320 --
59321 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
59322 l_result := XLA_AE_LINES_PKG.InsertLines;
59323 END IF;
59324
59325 --
59326 -- reset the temp_line_num for each set of events fetched from header
59327 -- cursor rather than doing it for each new event in line cursor
59328 -- Bug 3939231
59329 --
59330 xla_ae_lines_pkg.g_temp_line_num := 0;
59331
59332
59333
59334 --
59335 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
59336 --
59337 --
59338 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
59339
59340 trace
59341 (p_msg => 'SQL - FETCH line_cur'
59342 ,p_level => C_LEVEL_STATEMENT
59343 ,p_module => l_log_module);
59344
59345 END IF;
59346 --
59347 --
59348 LOOP
59349 --
59350 FETCH line_cur BULK COLLECT INTO
59351 l_array_entity_id
59352 , l_array_legal_entity_id
59353 , l_array_entity_code
59354 , l_array_transaction_num
59355 , l_array_event_id
59356 , l_array_class_code
59357 , l_array_event_type
59358 , l_array_event_number
59359 , l_array_event_date
59360 , l_array_transaction_date
59361 , l_array_reference_num_1
59362 , l_array_reference_num_2
59363 , l_array_reference_num_3
59364 , l_array_reference_num_4
59365 , l_array_reference_char_1
59366 , l_array_reference_char_2
59367 , l_array_reference_char_3
59368 , l_array_reference_char_4
59369 , l_array_reference_date_1
59370 , l_array_reference_date_2
59371 , l_array_reference_date_3
59372 , l_array_reference_date_4
59373 , l_array_event_created_by
59374 , l_array_budgetary_control_flag
59375 , l_array_extract_line_num
59376 , l_array_source_3
59377 , l_array_source_4
59378 , l_array_source_5
59379 , l_array_source_6
59380 , l_array_source_11
59381 , l_array_source_13
59382 , l_array_source_14
59383 , l_array_source_14_meaning
59384 , l_array_source_15
59385 , l_array_source_16
59386 , l_array_source_17
59387 , l_array_source_18
59388 , l_array_source_19
59389 , l_array_source_20
59390 , l_array_source_21
59391 , l_array_source_22
59392 , l_array_source_30
59393 , l_array_source_31
59394 , l_array_source_32
59395 , l_array_source_33
59396 , l_array_source_34
59397 , l_array_source_35
59398 , l_array_source_36
59399 , l_array_source_37
59400 , l_array_source_38
59401 , l_array_source_39
59402 , l_array_source_40
59403 , l_array_source_41
59404 , l_array_source_42
59405 , l_array_source_43
59406 , l_array_source_44
59407 , l_array_source_45
59408 , l_array_source_46
59409 , l_array_source_47
59410 , l_array_source_68
59411 , l_array_source_69
59412 , l_array_source_70
59413 , l_array_source_71
59414 , l_array_source_72
59415 , l_array_source_73
59416 , l_array_source_74
59417 LIMIT l_rows;
59418
59419 --
59420 IF (C_LEVEL_EVENT >= g_log_level) THEN
59421 trace
59422 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
59423 ,p_level => C_LEVEL_EVENT
59424 ,p_module => l_log_module);
59425 END IF;
59426 --
59427 EXIT WHEN l_array_entity_id.count = 0;
59428
59429 XLA_AE_LINES_PKG.g_rec_lines := null;
59430
59431 --
59432 -- Bug 4458708
59433 --
59434 XLA_AE_LINES_PKG.g_LineNumber := 0;
59435 --
59436 --
59437
59438 FOR Idx IN 1..l_array_event_id.count LOOP
59439 --
59440 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
59441 --
59442 l_event_id := l_array_event_id(idx); -- 5648433
59443
59444 --
59445 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
59446 --
59447
59448 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
59449 (g_array_event(l_event_id).array_value_num('header_index'))
59450 ,'N'
59451 ) <> 'Y'
59452 THEN
59453 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
59454 trace
59455 (p_msg => 'Trancaction revesal option is not Y '
59456 ,p_level => C_LEVEL_STATEMENT
59457 ,p_module => l_log_module);
59458 END IF;
59459
59460 --
59461 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
59462 --
59463 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
59464 --
59465 -- set event info as cache for other routines to refer event attributes
59466 --
59467
59468 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
59469 l_previous_event_id := l_event_id;
59470
59471 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
59472 (p_application_id => p_application_id
59473 ,p_primary_ledger_id => p_primary_ledger_id
59474 ,p_base_ledger_id => p_base_ledger_id
59475 ,p_target_ledger_id => p_target_ledger_id
59476 ,p_entity_id => l_array_entity_id(Idx)
59477 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
59478 ,p_entity_code => l_array_entity_code(Idx)
59479 ,p_transaction_num => l_array_transaction_num(Idx)
59480 ,p_event_id => l_array_event_id(Idx)
59481 ,p_event_class_code => l_array_class_code(Idx)
59482 ,p_event_type_code => l_array_event_type(Idx)
59483 ,p_event_number => l_array_event_number(Idx)
59484 ,p_event_date => l_array_event_date(Idx)
59485 ,p_transaction_date => l_array_transaction_date(Idx)
59486 ,p_reference_num_1 => l_array_reference_num_1(Idx)
59487 ,p_reference_num_2 => l_array_reference_num_2(Idx)
59488 ,p_reference_num_3 => l_array_reference_num_3(Idx)
59489 ,p_reference_num_4 => l_array_reference_num_4(Idx)
59490 ,p_reference_char_1 => l_array_reference_char_1(Idx)
59491 ,p_reference_char_2 => l_array_reference_char_2(Idx)
59492 ,p_reference_char_3 => l_array_reference_char_3(Idx)
59493 ,p_reference_char_4 => l_array_reference_char_4(Idx)
59494 ,p_reference_date_1 => l_array_reference_date_1(Idx)
59495 ,p_reference_date_2 => l_array_reference_date_2(Idx)
59496 ,p_reference_date_3 => l_array_reference_date_3(Idx)
59497 ,p_reference_date_4 => l_array_reference_date_4(Idx)
59498 ,p_event_created_by => l_array_event_created_by(Idx)
59499 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
59500 --
59501 END IF;
59502
59503
59504
59505 --
59506 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
59507
59508 l_acct_reversal_source := SUBSTR(l_array_source_16(Idx), 1,30);
59509
59510 IF l_continue_with_lines THEN
59511 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
59512 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
59513
59514 xla_accounting_err_pkg.build_message
59515 (p_appli_s_name => 'XLA'
59516 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
59517 ,p_token_1 => 'LINE_NUMBER'
59518 ,p_value_1 => l_array_extract_line_num(Idx)
59519 ,p_token_2 => 'PRODUCT_NAME'
59520 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
59521 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
59522 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
59523 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
59524
59525 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
59526 --
59527 -- following sets the accounting attributes needed to reverse
59528 -- accounting for a distributeion
59529 --
59530
59531 --
59532 -- 5217187
59533 --
59534 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
59535 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
59536 g_array_event(l_event_id).array_value_num('header_index'));
59537 --
59538 --
59539
59540 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
59541 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_16(Idx);
59542 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
59543 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_47(Idx);
59544 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_IDENTIFIER_2';
59545 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_6(Idx);
59546 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'DISTRIBUTION_TYPE';
59547 l_rec_rev_acct_attrs.array_char_value(5) := l_array_source_30(Idx);
59548 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ACCT_CLASS';
59549 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_31(Idx);
59550 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_CCID';
59551 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_32(Idx);
59552 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_ENTERED_AMT';
59553 l_rec_rev_acct_attrs.array_num_value(8) := l_array_source_33(Idx);
59554 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_ENTERED_CURR';
59555 l_rec_rev_acct_attrs.array_char_value(9) := l_array_source_34(Idx);
59556 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_CR_LEDGER_AMT';
59557 l_rec_rev_acct_attrs.array_num_value(10) := l_array_source_35(Idx);
59558 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ACCT_CLASS';
59559 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_36(Idx);
59560 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_CCID';
59561 l_rec_rev_acct_attrs.array_num_value(12) := l_array_source_37(Idx);
59562 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_AMT';
59563 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_33(Idx);
59564 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_ENTERED_CURR';
59565 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_34(Idx);
59566 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_DR_LEDGER_AMT';
59567 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_35(Idx);
59568 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_OPTION';
59569 l_rec_rev_acct_attrs.array_char_value(16) := l_array_source_38(Idx);
59570 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'REVERSED_DISTRIBUTION_ID1';
59571 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_47(Idx);
59572 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'REVERSED_DISTRIBUTION_ID2';
59573 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_6(Idx);
59574 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_TYPE';
59575 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_30(Idx);
59576 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
59577 l_rec_rev_acct_attrs.array_num_value(20) := l_array_source_39(Idx);
59578 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
59579 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_40(Idx);
59580
59581
59582 xla_ae_lines_pkg.SetAcctReversalAttrs
59583 (p_event_id => l_event_id
59584 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
59585 ,p_calculate_acctd_flag => l_calculate_acctd_flag
59586 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
59587 END IF;
59588
59589 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
59590 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
59591
59592 --
59593 AcctLineType_11 (
59594 p_application_id => p_application_id
59595 ,p_event_id => l_event_id
59596 ,p_calculate_acctd_flag => l_calculate_acctd_flag
59597 ,p_calculate_g_l_flag => l_calculate_g_l_flag
59598 ,p_actual_flag => l_actual_flag
59599 ,p_balance_type_code => l_balance_type_code
59600 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
59601
59602 , p_source_3 => l_array_source_3(Idx)
59603 , p_source_4 => l_array_source_4(Idx)
59604 , p_source_5 => l_array_source_5(Idx)
59605 , p_source_6 => l_array_source_6(Idx)
59606 , p_source_13 => l_array_source_13(Idx)
59607 , p_source_14 => l_array_source_14(Idx)
59608 , p_source_14_meaning => l_array_source_14_meaning(Idx)
59609 , p_source_15 => l_array_source_15(Idx)
59610 , p_source_16 => l_array_source_16(Idx)
59611 , p_source_17 => l_array_source_17(Idx)
59612 , p_source_18 => l_array_source_18(Idx)
59613 , p_source_19 => l_array_source_19(Idx)
59614 , p_source_20 => l_array_source_20(Idx)
59615 , p_source_21 => l_array_source_21(Idx)
59616 , p_source_22 => l_array_source_22(Idx)
59617 , p_source_30 => l_array_source_30(Idx)
59618 , p_source_31 => l_array_source_31(Idx)
59619 , p_source_32 => l_array_source_32(Idx)
59620 , p_source_33 => l_array_source_33(Idx)
59621 , p_source_34 => l_array_source_34(Idx)
59622 , p_source_35 => l_array_source_35(Idx)
59623 , p_source_36 => l_array_source_36(Idx)
59624 , p_source_37 => l_array_source_37(Idx)
59625 , p_source_38 => l_array_source_38(Idx)
59626 , p_source_39 => l_array_source_39(Idx)
59627 , p_source_40 => l_array_source_40(Idx)
59628 , p_source_41 => l_array_source_41(Idx)
59629 , p_source_42 => l_array_source_42(Idx)
59630 , p_source_43 => l_array_source_43(Idx)
59631 , p_source_44 => l_array_source_44(Idx)
59632 , p_source_45 => l_array_source_45(Idx)
59633 , p_source_46 => l_array_source_46(Idx)
59634 , p_source_47 => l_array_source_47(Idx)
59635 );
59636 If(l_balance_type_code = 'A') THEN
59637 l_actual_gain_loss_ref := l_gain_or_loss_ref;
59638 END IF;
59639
59640 --
59641
59642
59643 --
59644 AcctLineType_14 (
59645 p_application_id => p_application_id
59646 ,p_event_id => l_event_id
59647 ,p_calculate_acctd_flag => l_calculate_acctd_flag
59648 ,p_calculate_g_l_flag => l_calculate_g_l_flag
59649 ,p_actual_flag => l_actual_flag
59650 ,p_balance_type_code => l_balance_type_code
59651 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
59652
59653 , p_source_3 => l_array_source_3(Idx)
59654 , p_source_4 => l_array_source_4(Idx)
59655 , p_source_5 => l_array_source_5(Idx)
59656 , p_source_6 => l_array_source_6(Idx)
59657 , p_source_13 => l_array_source_13(Idx)
59658 , p_source_14 => l_array_source_14(Idx)
59659 , p_source_14_meaning => l_array_source_14_meaning(Idx)
59660 , p_source_15 => l_array_source_15(Idx)
59661 , p_source_16 => l_array_source_16(Idx)
59662 , p_source_17 => l_array_source_17(Idx)
59663 , p_source_18 => l_array_source_18(Idx)
59664 , p_source_19 => l_array_source_19(Idx)
59665 , p_source_20 => l_array_source_20(Idx)
59666 , p_source_21 => l_array_source_21(Idx)
59667 , p_source_22 => l_array_source_22(Idx)
59668 , p_source_30 => l_array_source_30(Idx)
59669 , p_source_31 => l_array_source_31(Idx)
59670 , p_source_32 => l_array_source_32(Idx)
59671 , p_source_33 => l_array_source_33(Idx)
59672 , p_source_34 => l_array_source_34(Idx)
59673 , p_source_35 => l_array_source_35(Idx)
59674 , p_source_36 => l_array_source_36(Idx)
59675 , p_source_37 => l_array_source_37(Idx)
59676 , p_source_38 => l_array_source_38(Idx)
59677 , p_source_39 => l_array_source_39(Idx)
59678 , p_source_40 => l_array_source_40(Idx)
59679 , p_source_41 => l_array_source_41(Idx)
59680 , p_source_42 => l_array_source_42(Idx)
59681 , p_source_43 => l_array_source_43(Idx)
59682 , p_source_44 => l_array_source_44(Idx)
59683 , p_source_45 => l_array_source_45(Idx)
59684 , p_source_46 => l_array_source_46(Idx)
59685 , p_source_47 => l_array_source_47(Idx)
59686 );
59687 If(l_balance_type_code = 'A') THEN
59688 l_actual_gain_loss_ref := l_gain_or_loss_ref;
59689 END IF;
59690
59691 --
59692
59693
59694 --
59695 AcctLineType_47 (
59696 p_application_id => p_application_id
59697 ,p_event_id => l_event_id
59698 ,p_calculate_acctd_flag => l_calculate_acctd_flag
59699 ,p_calculate_g_l_flag => l_calculate_g_l_flag
59700 ,p_actual_flag => l_actual_flag
59701 ,p_balance_type_code => l_balance_type_code
59702 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
59703
59704 , p_source_3 => l_array_source_3(Idx)
59705 , p_source_4 => l_array_source_4(Idx)
59706 , p_source_5 => l_array_source_5(Idx)
59707 , p_source_6 => l_array_source_6(Idx)
59708 , p_source_13 => l_array_source_13(Idx)
59709 , p_source_16 => l_array_source_16(Idx)
59710 , p_source_17 => l_array_source_17(Idx)
59711 , p_source_18 => l_array_source_18(Idx)
59712 , p_source_19 => l_array_source_19(Idx)
59713 , p_source_20 => l_array_source_20(Idx)
59714 , p_source_21 => l_array_source_21(Idx)
59715 , p_source_22 => l_array_source_22(Idx)
59716 , p_source_30 => l_array_source_30(Idx)
59717 , p_source_31 => l_array_source_31(Idx)
59718 , p_source_32 => l_array_source_32(Idx)
59719 , p_source_33 => l_array_source_33(Idx)
59720 , p_source_34 => l_array_source_34(Idx)
59721 , p_source_35 => l_array_source_35(Idx)
59722 , p_source_36 => l_array_source_36(Idx)
59723 , p_source_37 => l_array_source_37(Idx)
59724 , p_source_38 => l_array_source_38(Idx)
59725 , p_source_39 => l_array_source_39(Idx)
59726 , p_source_40 => l_array_source_40(Idx)
59727 , p_source_47 => l_array_source_47(Idx)
59728 , p_source_68 => l_array_source_68(Idx)
59729 , p_source_69 => l_array_source_69(Idx)
59730 , p_source_70 => l_array_source_70(Idx)
59731 , p_source_71 => l_array_source_71(Idx)
59732 , p_source_72 => l_array_source_72(Idx)
59733 , p_source_73 => l_array_source_73(Idx)
59734 , p_source_74 => l_array_source_74(Idx)
59735 );
59736 If(l_balance_type_code = 'A') THEN
59737 l_actual_gain_loss_ref := l_gain_or_loss_ref;
59738 END IF;
59739
59740 --
59741
59742
59743 --
59744 AcctLineType_62 (
59745 p_application_id => p_application_id
59746 ,p_event_id => l_event_id
59747 ,p_calculate_acctd_flag => l_calculate_acctd_flag
59748 ,p_calculate_g_l_flag => l_calculate_g_l_flag
59749 ,p_actual_flag => l_actual_flag
59750 ,p_balance_type_code => l_balance_type_code
59751 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
59752
59753 , p_source_3 => l_array_source_3(Idx)
59754 , p_source_4 => l_array_source_4(Idx)
59755 , p_source_5 => l_array_source_5(Idx)
59756 , p_source_6 => l_array_source_6(Idx)
59757 , p_source_11 => l_array_source_11(Idx)
59758 , p_source_13 => l_array_source_13(Idx)
59759 , p_source_14 => l_array_source_14(Idx)
59760 , p_source_14_meaning => l_array_source_14_meaning(Idx)
59761 , p_source_15 => l_array_source_15(Idx)
59762 , p_source_16 => l_array_source_16(Idx)
59763 , p_source_17 => l_array_source_17(Idx)
59764 , p_source_18 => l_array_source_18(Idx)
59765 , p_source_19 => l_array_source_19(Idx)
59766 , p_source_20 => l_array_source_20(Idx)
59767 , p_source_21 => l_array_source_21(Idx)
59768 , p_source_22 => l_array_source_22(Idx)
59769 , p_source_30 => l_array_source_30(Idx)
59770 , p_source_31 => l_array_source_31(Idx)
59771 , p_source_32 => l_array_source_32(Idx)
59772 , p_source_33 => l_array_source_33(Idx)
59773 , p_source_34 => l_array_source_34(Idx)
59774 , p_source_35 => l_array_source_35(Idx)
59775 , p_source_36 => l_array_source_36(Idx)
59776 , p_source_37 => l_array_source_37(Idx)
59777 , p_source_38 => l_array_source_38(Idx)
59778 , p_source_39 => l_array_source_39(Idx)
59779 , p_source_40 => l_array_source_40(Idx)
59780 , p_source_41 => l_array_source_41(Idx)
59781 , p_source_42 => l_array_source_42(Idx)
59782 , p_source_43 => l_array_source_43(Idx)
59783 , p_source_44 => l_array_source_44(Idx)
59784 , p_source_45 => l_array_source_45(Idx)
59785 , p_source_46 => l_array_source_46(Idx)
59786 , p_source_47 => l_array_source_47(Idx)
59787 , p_source_74 => l_array_source_74(Idx)
59788 );
59789 If(l_balance_type_code = 'A') THEN
59790 l_actual_gain_loss_ref := l_gain_or_loss_ref;
59791 END IF;
59792
59793 --
59794
59795
59796 --
59797 AcctLineType_65 (
59798 p_application_id => p_application_id
59799 ,p_event_id => l_event_id
59800 ,p_calculate_acctd_flag => l_calculate_acctd_flag
59801 ,p_calculate_g_l_flag => l_calculate_g_l_flag
59802 ,p_actual_flag => l_actual_flag
59803 ,p_balance_type_code => l_balance_type_code
59804 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
59805
59806 , p_source_3 => l_array_source_3(Idx)
59807 , p_source_4 => l_array_source_4(Idx)
59808 , p_source_5 => l_array_source_5(Idx)
59809 , p_source_6 => l_array_source_6(Idx)
59810 , p_source_11 => l_array_source_11(Idx)
59811 , p_source_13 => l_array_source_13(Idx)
59812 , p_source_14 => l_array_source_14(Idx)
59813 , p_source_14_meaning => l_array_source_14_meaning(Idx)
59814 , p_source_15 => l_array_source_15(Idx)
59815 , p_source_16 => l_array_source_16(Idx)
59816 , p_source_17 => l_array_source_17(Idx)
59817 , p_source_18 => l_array_source_18(Idx)
59818 , p_source_19 => l_array_source_19(Idx)
59819 , p_source_20 => l_array_source_20(Idx)
59820 , p_source_21 => l_array_source_21(Idx)
59821 , p_source_22 => l_array_source_22(Idx)
59822 , p_source_30 => l_array_source_30(Idx)
59823 , p_source_31 => l_array_source_31(Idx)
59824 , p_source_32 => l_array_source_32(Idx)
59825 , p_source_33 => l_array_source_33(Idx)
59826 , p_source_34 => l_array_source_34(Idx)
59827 , p_source_35 => l_array_source_35(Idx)
59828 , p_source_36 => l_array_source_36(Idx)
59829 , p_source_37 => l_array_source_37(Idx)
59830 , p_source_38 => l_array_source_38(Idx)
59831 , p_source_39 => l_array_source_39(Idx)
59832 , p_source_40 => l_array_source_40(Idx)
59833 , p_source_41 => l_array_source_41(Idx)
59834 , p_source_42 => l_array_source_42(Idx)
59835 , p_source_43 => l_array_source_43(Idx)
59836 , p_source_44 => l_array_source_44(Idx)
59837 , p_source_45 => l_array_source_45(Idx)
59838 , p_source_46 => l_array_source_46(Idx)
59839 , p_source_47 => l_array_source_47(Idx)
59840 , p_source_74 => l_array_source_74(Idx)
59841 );
59842 If(l_balance_type_code = 'A') THEN
59843 l_actual_gain_loss_ref := l_gain_or_loss_ref;
59844 END IF;
59845
59846 --
59847
59848
59849 --
59850 AcctLineType_70 (
59851 p_application_id => p_application_id
59852 ,p_event_id => l_event_id
59853 ,p_calculate_acctd_flag => l_calculate_acctd_flag
59854 ,p_calculate_g_l_flag => l_calculate_g_l_flag
59855 ,p_actual_flag => l_actual_flag
59856 ,p_balance_type_code => l_balance_type_code
59857 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
59858
59859 , p_source_3 => l_array_source_3(Idx)
59860 , p_source_4 => l_array_source_4(Idx)
59861 , p_source_5 => l_array_source_5(Idx)
59862 , p_source_6 => l_array_source_6(Idx)
59863 , p_source_13 => l_array_source_13(Idx)
59864 , p_source_16 => l_array_source_16(Idx)
59865 , p_source_17 => l_array_source_17(Idx)
59866 , p_source_18 => l_array_source_18(Idx)
59867 , p_source_19 => l_array_source_19(Idx)
59868 , p_source_20 => l_array_source_20(Idx)
59869 , p_source_21 => l_array_source_21(Idx)
59870 , p_source_22 => l_array_source_22(Idx)
59871 , p_source_30 => l_array_source_30(Idx)
59872 , p_source_31 => l_array_source_31(Idx)
59873 , p_source_32 => l_array_source_32(Idx)
59874 , p_source_33 => l_array_source_33(Idx)
59875 , p_source_34 => l_array_source_34(Idx)
59876 , p_source_35 => l_array_source_35(Idx)
59877 , p_source_36 => l_array_source_36(Idx)
59878 , p_source_37 => l_array_source_37(Idx)
59879 , p_source_38 => l_array_source_38(Idx)
59880 , p_source_39 => l_array_source_39(Idx)
59881 , p_source_40 => l_array_source_40(Idx)
59882 , p_source_47 => l_array_source_47(Idx)
59883 , p_source_68 => l_array_source_68(Idx)
59884 , p_source_69 => l_array_source_69(Idx)
59885 , p_source_70 => l_array_source_70(Idx)
59886 , p_source_71 => l_array_source_71(Idx)
59887 , p_source_72 => l_array_source_72(Idx)
59888 , p_source_73 => l_array_source_73(Idx)
59889 , p_source_74 => l_array_source_74(Idx)
59890 );
59891 If(l_balance_type_code = 'A') THEN
59892 l_actual_gain_loss_ref := l_gain_or_loss_ref;
59893 END IF;
59894
59895 --
59896
59897
59898 --
59899 AcctLineType_81 (
59900 p_application_id => p_application_id
59901 ,p_event_id => l_event_id
59902 ,p_calculate_acctd_flag => l_calculate_acctd_flag
59903 ,p_calculate_g_l_flag => l_calculate_g_l_flag
59904 ,p_actual_flag => l_actual_flag
59905 ,p_balance_type_code => l_balance_type_code
59906 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
59907
59908 , p_source_3 => l_array_source_3(Idx)
59909 , p_source_4 => l_array_source_4(Idx)
59910 , p_source_5 => l_array_source_5(Idx)
59911 , p_source_6 => l_array_source_6(Idx)
59912 , p_source_13 => l_array_source_13(Idx)
59913 , p_source_14 => l_array_source_14(Idx)
59914 , p_source_14_meaning => l_array_source_14_meaning(Idx)
59915 , p_source_15 => l_array_source_15(Idx)
59916 , p_source_16 => l_array_source_16(Idx)
59917 , p_source_17 => l_array_source_17(Idx)
59918 , p_source_18 => l_array_source_18(Idx)
59919 , p_source_19 => l_array_source_19(Idx)
59920 , p_source_20 => l_array_source_20(Idx)
59921 , p_source_21 => l_array_source_21(Idx)
59922 , p_source_22 => l_array_source_22(Idx)
59923 , p_source_30 => l_array_source_30(Idx)
59924 , p_source_31 => l_array_source_31(Idx)
59925 , p_source_32 => l_array_source_32(Idx)
59926 , p_source_33 => l_array_source_33(Idx)
59927 , p_source_34 => l_array_source_34(Idx)
59928 , p_source_35 => l_array_source_35(Idx)
59929 , p_source_36 => l_array_source_36(Idx)
59930 , p_source_37 => l_array_source_37(Idx)
59931 , p_source_38 => l_array_source_38(Idx)
59932 , p_source_39 => l_array_source_39(Idx)
59933 , p_source_40 => l_array_source_40(Idx)
59934 , p_source_41 => l_array_source_41(Idx)
59935 , p_source_42 => l_array_source_42(Idx)
59936 , p_source_43 => l_array_source_43(Idx)
59937 , p_source_44 => l_array_source_44(Idx)
59938 , p_source_45 => l_array_source_45(Idx)
59939 , p_source_46 => l_array_source_46(Idx)
59940 , p_source_47 => l_array_source_47(Idx)
59941 , p_source_74 => l_array_source_74(Idx)
59942 );
59943 If(l_balance_type_code = 'A') THEN
59944 l_actual_gain_loss_ref := l_gain_or_loss_ref;
59945 END IF;
59946
59947 --
59948
59949
59950 --
59951 AcctLineType_84 (
59952 p_application_id => p_application_id
59953 ,p_event_id => l_event_id
59954 ,p_calculate_acctd_flag => l_calculate_acctd_flag
59955 ,p_calculate_g_l_flag => l_calculate_g_l_flag
59956 ,p_actual_flag => l_actual_flag
59957 ,p_balance_type_code => l_balance_type_code
59958 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
59959
59960 , p_source_3 => l_array_source_3(Idx)
59961 , p_source_4 => l_array_source_4(Idx)
59962 , p_source_5 => l_array_source_5(Idx)
59963 , p_source_6 => l_array_source_6(Idx)
59964 , p_source_13 => l_array_source_13(Idx)
59965 , p_source_14 => l_array_source_14(Idx)
59966 , p_source_14_meaning => l_array_source_14_meaning(Idx)
59967 , p_source_15 => l_array_source_15(Idx)
59968 , p_source_16 => l_array_source_16(Idx)
59969 , p_source_17 => l_array_source_17(Idx)
59970 , p_source_18 => l_array_source_18(Idx)
59971 , p_source_19 => l_array_source_19(Idx)
59972 , p_source_20 => l_array_source_20(Idx)
59973 , p_source_21 => l_array_source_21(Idx)
59974 , p_source_22 => l_array_source_22(Idx)
59975 , p_source_30 => l_array_source_30(Idx)
59976 , p_source_31 => l_array_source_31(Idx)
59977 , p_source_32 => l_array_source_32(Idx)
59978 , p_source_33 => l_array_source_33(Idx)
59979 , p_source_34 => l_array_source_34(Idx)
59980 , p_source_35 => l_array_source_35(Idx)
59981 , p_source_36 => l_array_source_36(Idx)
59982 , p_source_37 => l_array_source_37(Idx)
59983 , p_source_38 => l_array_source_38(Idx)
59984 , p_source_39 => l_array_source_39(Idx)
59985 , p_source_40 => l_array_source_40(Idx)
59986 , p_source_41 => l_array_source_41(Idx)
59987 , p_source_42 => l_array_source_42(Idx)
59988 , p_source_43 => l_array_source_43(Idx)
59989 , p_source_44 => l_array_source_44(Idx)
59990 , p_source_45 => l_array_source_45(Idx)
59991 , p_source_46 => l_array_source_46(Idx)
59992 , p_source_47 => l_array_source_47(Idx)
59993 , p_source_74 => l_array_source_74(Idx)
59994 );
59995 If(l_balance_type_code = 'A') THEN
59996 l_actual_gain_loss_ref := l_gain_or_loss_ref;
59997 END IF;
59998
59999 --
60000
60001 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
60002 -- or secondary ledger that has different currency with primary
60003 -- or alc that is calculated by sla
60004 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
60005 (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'))
60006
60007 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
60008 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
60009 AND (l_actual_flag = 'A')) THEN
60010 XLA_AE_LINES_PKG.CreateGainOrLossLines(
60011 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
60012 ,p_application_id => p_application_id
60013 ,p_amb_context_code => 'DEFAULT'
60014 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
60015 ,p_event_class_code => C_EVENT_CLASS_CODE
60016 ,p_event_type_code => C_EVENT_TYPE_CODE
60017
60018 ,p_gain_ccid => -1
60019 ,p_loss_ccid => -1
60020
60021 ,p_actual_flag => l_actual_flag
60022 ,p_enc_flag => null
60023 ,p_actual_g_l_ref => l_actual_gain_loss_ref
60024 ,p_enc_g_l_ref => null
60025 );
60026 END IF;
60027 END IF;
60028 END IF;
60029
60030 ELSE
60031 --
60032 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
60033 --
60034 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
60035 trace
60036 (p_msg => 'Trancaction revesal option is Y'
60037 ,p_level => C_LEVEL_STATEMENT
60038 ,p_module => l_log_module);
60039 END IF;
60040 END IF;
60041
60042 END LOOP;
60043 l_result := XLA_AE_LINES_PKG.InsertLines ;
60044 end loop;
60045 close line_cur;
60046
60047
60048 --
60049 -- insert headers into xla_ae_headers_gt table
60050 --
60051 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
60052
60053 -- insert into errors table here.
60054
60055 END LOOP;
60056
60057 --
60058 -- 4865292
60059 --
60060 -- Compare g_hdr_extract_count with event count in
60061 -- CreateHeadersAndLines.
60062 --
60063 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
60064
60065 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
60066 trace (p_msg => '# rows extracted from header extract objects '
60067 || ' (running total): '
60068 || g_hdr_extract_count
60069 ,p_level => C_LEVEL_STATEMENT
60070 ,p_module => l_log_module);
60071 END IF;
60072
60073 CLOSE header_cur;
60074 --
60075
60076 --
60077 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60078 trace
60079 (p_msg => 'END of EventClass_90'
60080 ,p_level => C_LEVEL_PROCEDURE
60081 ,p_module => l_log_module);
60082 END IF;
60083 --
60084 RETURN l_result;
60085 EXCEPTION
60086 WHEN xla_exceptions_pkg.application_exception THEN
60087
60088 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
60089
60090
60091 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
60092
60093 RAISE;
60094 WHEN OTHERS THEN
60095 xla_exceptions_pkg.raise_message
60096 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.EventClass_90');
60097 END EventClass_90;
60098 --
60099
60100 --
60101 --+============================================+
60102 --| |
60103 --| PRIVATE FUNCTION |
60104 --| |
60105 --+============================================+
60106 --
60107 FUNCTION CreateHeadersAndLines
60108 (p_application_id IN NUMBER
60109 ,p_base_ledger_id IN NUMBER
60110 ,p_target_ledger_id IN NUMBER
60111 ,p_pad_start_date IN DATE
60112 ,p_pad_end_date IN DATE
60113 ,p_primary_ledger_id IN NUMBER)
60114 RETURN BOOLEAN IS
60115 l_created BOOLEAN:=FALSE;
60116 l_event_id NUMBER;
60117 l_event_date DATE;
60118 l_language VARCHAR2(30);
60119 l_currency_code VARCHAR2(30);
60120 l_sla_ledger_id NUMBER;
60121 l_log_module VARCHAR2(240);
60122
60123 BEGIN
60124 --
60125 IF g_log_enabled THEN
60126 l_log_module := C_DEFAULT_MODULE||'.CreateHeadersAndLines';
60127 END IF;
60128 --
60129 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60130 trace
60131 (p_msg => 'BEGIN of CreateHeadersAndLines'
60132 ,p_level => C_LEVEL_PROCEDURE
60133 ,p_module => l_log_module);
60134 END IF;
60135
60136 l_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
60137 l_currency_code := xla_ae_journal_entry_pkg.g_cache_ledgers_info.currency_code;
60138 l_sla_ledger_id := xla_ae_journal_entry_pkg.g_cache_ledgers_info.sla_ledger_id;
60139
60140 --
60141 -- initialize array of lines with NULL
60142 --
60143 xla_ae_lines_pkg.SetNullLine;
60144
60145 --
60146 -- initialize header extract count -- Bug 4865292
60147 --
60148 g_hdr_extract_count:= 0;
60149
60150
60151 l_created := EventClass_85(
60152 p_application_id => p_application_id
60153 , p_base_ledger_id => p_base_ledger_id
60154 , p_target_ledger_id => p_target_ledger_id
60155 , p_language => l_language
60156 , p_currency_code => l_currency_code
60157 , p_sla_ledger_id => l_sla_ledger_id
60158 , p_pad_start_date => p_pad_start_date
60159 , p_pad_end_date => p_pad_end_date
60160 , p_primary_ledger_id => p_primary_ledger_id
60161 );
60162
60163
60164
60165 IF ( g_diagnostics_mode ='Y' ) THEN
60166
60167 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
60168 trace
60169 (p_msg => 'CALL Transaction Objects Diagnostics'
60170 ,p_level => C_LEVEL_STATEMENT
60171 ,p_module => l_log_module);
60172
60173 END IF;
60174
60175 insert_sources_85(
60176 p_target_ledger_id => p_target_ledger_id
60177 , p_language => l_language
60178 , p_sla_ledger_id => l_sla_ledger_id
60179 , p_pad_start_date => p_pad_start_date
60180 , p_pad_end_date => p_pad_end_date
60181 );
60182
60183 END IF;
60184
60185 l_created := EventClass_86(
60186 p_application_id => p_application_id
60187 , p_base_ledger_id => p_base_ledger_id
60188 , p_target_ledger_id => p_target_ledger_id
60189 , p_language => l_language
60190 , p_currency_code => l_currency_code
60191 , p_sla_ledger_id => l_sla_ledger_id
60192 , p_pad_start_date => p_pad_start_date
60193 , p_pad_end_date => p_pad_end_date
60194 , p_primary_ledger_id => p_primary_ledger_id
60195 );
60196
60197
60198
60199 IF ( g_diagnostics_mode ='Y' ) THEN
60200
60201 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
60202 trace
60203 (p_msg => 'CALL Transaction Objects Diagnostics'
60204 ,p_level => C_LEVEL_STATEMENT
60205 ,p_module => l_log_module);
60206
60207 END IF;
60208
60209 insert_sources_86(
60210 p_target_ledger_id => p_target_ledger_id
60211 , p_language => l_language
60212 , p_sla_ledger_id => l_sla_ledger_id
60213 , p_pad_start_date => p_pad_start_date
60214 , p_pad_end_date => p_pad_end_date
60215 );
60216
60217 END IF;
60218
60219 l_created := EventClass_87(
60220 p_application_id => p_application_id
60221 , p_base_ledger_id => p_base_ledger_id
60222 , p_target_ledger_id => p_target_ledger_id
60223 , p_language => l_language
60224 , p_currency_code => l_currency_code
60225 , p_sla_ledger_id => l_sla_ledger_id
60226 , p_pad_start_date => p_pad_start_date
60227 , p_pad_end_date => p_pad_end_date
60228 , p_primary_ledger_id => p_primary_ledger_id
60229 );
60230
60231
60232
60233 IF ( g_diagnostics_mode ='Y' ) THEN
60234
60235 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
60236 trace
60237 (p_msg => 'CALL Transaction Objects Diagnostics'
60238 ,p_level => C_LEVEL_STATEMENT
60239 ,p_module => l_log_module);
60240
60241 END IF;
60242
60243 insert_sources_87(
60244 p_target_ledger_id => p_target_ledger_id
60245 , p_language => l_language
60246 , p_sla_ledger_id => l_sla_ledger_id
60247 , p_pad_start_date => p_pad_start_date
60248 , p_pad_end_date => p_pad_end_date
60249 );
60250
60251 END IF;
60252
60253 l_created := EventClass_88(
60254 p_application_id => p_application_id
60255 , p_base_ledger_id => p_base_ledger_id
60256 , p_target_ledger_id => p_target_ledger_id
60257 , p_language => l_language
60258 , p_currency_code => l_currency_code
60259 , p_sla_ledger_id => l_sla_ledger_id
60260 , p_pad_start_date => p_pad_start_date
60261 , p_pad_end_date => p_pad_end_date
60262 , p_primary_ledger_id => p_primary_ledger_id
60263 );
60264
60265
60266
60267 IF ( g_diagnostics_mode ='Y' ) THEN
60268
60269 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
60270 trace
60271 (p_msg => 'CALL Transaction Objects Diagnostics'
60272 ,p_level => C_LEVEL_STATEMENT
60273 ,p_module => l_log_module);
60274
60275 END IF;
60276
60277 insert_sources_88(
60278 p_target_ledger_id => p_target_ledger_id
60279 , p_language => l_language
60280 , p_sla_ledger_id => l_sla_ledger_id
60281 , p_pad_start_date => p_pad_start_date
60282 , p_pad_end_date => p_pad_end_date
60283 );
60284
60285 END IF;
60286
60287 l_created := EventClass_89(
60288 p_application_id => p_application_id
60289 , p_base_ledger_id => p_base_ledger_id
60290 , p_target_ledger_id => p_target_ledger_id
60291 , p_language => l_language
60292 , p_currency_code => l_currency_code
60293 , p_sla_ledger_id => l_sla_ledger_id
60294 , p_pad_start_date => p_pad_start_date
60295 , p_pad_end_date => p_pad_end_date
60296 , p_primary_ledger_id => p_primary_ledger_id
60297 );
60298
60299
60300
60301 IF ( g_diagnostics_mode ='Y' ) THEN
60302
60303 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
60304 trace
60305 (p_msg => 'CALL Transaction Objects Diagnostics'
60306 ,p_level => C_LEVEL_STATEMENT
60307 ,p_module => l_log_module);
60308
60309 END IF;
60310
60311 insert_sources_89(
60312 p_target_ledger_id => p_target_ledger_id
60313 , p_language => l_language
60314 , p_sla_ledger_id => l_sla_ledger_id
60315 , p_pad_start_date => p_pad_start_date
60316 , p_pad_end_date => p_pad_end_date
60317 );
60318
60319 END IF;
60320
60321 l_created := EventClass_90(
60322 p_application_id => p_application_id
60323 , p_base_ledger_id => p_base_ledger_id
60324 , p_target_ledger_id => p_target_ledger_id
60325 , p_language => l_language
60326 , p_currency_code => l_currency_code
60327 , p_sla_ledger_id => l_sla_ledger_id
60328 , p_pad_start_date => p_pad_start_date
60329 , p_pad_end_date => p_pad_end_date
60330 , p_primary_ledger_id => p_primary_ledger_id
60331 );
60332
60333
60334
60335 IF ( g_diagnostics_mode ='Y' ) THEN
60336
60337 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
60338 trace
60339 (p_msg => 'CALL Transaction Objects Diagnostics'
60340 ,p_level => C_LEVEL_STATEMENT
60341 ,p_module => l_log_module);
60342
60343 END IF;
60344
60345 insert_sources_90(
60346 p_target_ledger_id => p_target_ledger_id
60347 , p_language => l_language
60348 , p_sla_ledger_id => l_sla_ledger_id
60349 , p_pad_start_date => p_pad_start_date
60350 , p_pad_end_date => p_pad_end_date
60351 );
60352
60353 END IF;
60354
60355
60356 --
60357 -- Bug 4865292
60358 -- When the number of events and that of header extract do not match,
60359 -- set the no header extract flag to indicate there are some issues
60360 -- in header extract.
60361 --
60362 -- Event count context is set in xla_accounting_pkg.unit_processor.
60363 -- Build_Message for this error is called in xla_accounting_pkg.post_accounting
60364 -- to report it as a general error.
60365 --
60366 IF xla_context_pkg.get_event_count_context <> g_hdr_extract_count
60367 AND xla_context_pkg.get_event_nohdr_context <> 'Y' THEN
60368
60369 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
60370 trace
60371 (p_msg => '# of extracted headers and events does not match'
60372 ,p_level => C_LEVEL_STATEMENT
60373 ,p_module => l_log_module);
60374
60375 trace
60376 (p_msg => '# of extracted headers: '
60377 ||g_hdr_extract_count
60378 ,p_level => C_LEVEL_STATEMENT
60379 ,p_module => l_log_module);
60380
60381 trace
60382 (p_msg => '# of events in xla_events_gt: '
60383 ||xla_context_pkg.get_event_count_context
60384 ,p_level => C_LEVEL_STATEMENT
60385 ,p_module => l_log_module);
60386
60387 trace
60388 (p_msg => 'Event No Header Extract Context: '
60389 ||xla_context_pkg.get_event_nohdr_context
60390 ,p_level => C_LEVEL_STATEMENT
60391 ,p_module => l_log_module);
60392
60393 END IF;
60394
60395
60396 xla_context_pkg.set_event_nohdr_context
60397 (p_nohdr_extract_flag => 'Y'
60398 ,p_client_id => sys_context('USERENV','CLIENT_IDENTIFIER'));
60399
60400 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
60401 trace
60402 (p_msg => 'No Header Extract Flag is set to Y'
60403 ,p_level => C_LEVEL_STATEMENT
60404 ,p_module => l_log_module);
60405 END IF;
60406
60407 END IF;
60408
60409 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60410 trace
60411 (p_msg => 'END of CreateHeadersAndLines'
60412 ,p_level => C_LEVEL_PROCEDURE
60413 ,p_module => l_log_module);
60414 END IF;
60415
60416 RETURN l_created;
60417 EXCEPTION
60418 WHEN xla_exceptions_pkg.application_exception THEN
60419 RAISE;
60420 WHEN OTHERS THEN
60421 xla_exceptions_pkg.raise_message
60422 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.CreateHeadersAndLines');
60423 END CreateHeadersAndLines;
60424 --
60425 --
60426
60427 --
60428 --+============================================+
60429 --| |
60430 --| PUBLIC FUNCTION |
60431 --| |
60432 --+============================================+
60433 --
60434 FUNCTION CreateJournalEntries
60435 (p_application_id IN NUMBER
60436 ,p_base_ledger_id IN NUMBER
60437 ,p_pad_start_date IN DATE
60438 ,p_pad_end_date IN DATE
60439 ,p_primary_ledger_id IN NUMBER)
60440 RETURN NUMBER IS
60441 l_log_module VARCHAR2(240);
60442 l_array_ledgers xla_accounting_cache_pkg.t_array_ledger_id;
60443 l_temp_result BOOLEAN;
60444 l_result NUMBER;
60445 BEGIN
60446 --
60447 IF g_log_enabled THEN
60448 l_log_module := C_DEFAULT_MODULE||'.CreateJournalEntries';
60449 END IF;
60450 --
60451 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60452 trace
60453 (p_msg => 'BEGIN of CreateJournalEntries'||
60454 ' - p_base_ledger_id = '||TO_CHAR(p_base_ledger_id)
60455 ,p_level => C_LEVEL_PROCEDURE
60456 ,p_module => l_log_module);
60457
60458 END IF;
60459
60460 --
60461 g_diagnostics_mode:= xla_accounting_engine_pkg.g_diagnostics_mode;
60462
60463 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
60464 trace
60465 (p_msg => 'g_diagnostics_mode = '||g_diagnostics_mode
60466 ,p_level => C_LEVEL_STATEMENT
60467 ,p_module => l_log_module);
60468 END IF;
60469 --
60470 xla_ae_journal_entry_pkg.SetProductAcctDefinition
60471 (p_product_rule_code => 'PURCHASING_ENC_AAD'
60472 ,p_product_rule_type_code => 'S'
60473 ,p_product_rule_version => ''
60474 ,p_product_rule_name => 'Purchasing Encumbrance Application Accounting Definition'
60475 ,p_amb_context_code => 'DEFAULT'
60476 );
60477
60478 l_array_ledgers :=
60479 xla_ae_journal_entry_pkg.GetAlternateCurrencyLedger
60480 (p_base_ledger_id => p_base_ledger_id);
60481
60482 FOR Idx IN 1 .. l_array_ledgers.COUNT LOOP
60483 l_temp_result :=
60484 XLA_AE_JOURNAL_ENTRY_PKG.GetLedgersInfo
60485 (p_application_id => p_application_id
60486 ,p_base_ledger_id => p_base_ledger_id
60487 ,p_target_ledger_id => l_array_ledgers(Idx)
60488 ,p_primary_ledger_id => p_primary_ledger_id
60489 ,p_pad_start_date => p_pad_start_date
60490 ,p_pad_end_date => p_pad_end_date);
60491
60492 l_temp_result :=
60493 l_temp_result AND
60494 CreateHeadersAndLines
60495 (p_application_id => p_application_id
60496 ,p_base_ledger_id => p_base_ledger_id
60497 ,p_target_ledger_id => l_array_ledgers(Idx)
60498 ,p_pad_start_date => p_pad_start_date
60499 ,p_pad_end_date => p_pad_end_date
60500 ,p_primary_ledger_id => p_primary_ledger_id
60501 );
60502 END LOOP;
60503
60504
60505 IF (g_diagnostics_mode = 'Y' AND
60506 C_LEVEL_UNEXPECTED >= g_log_level AND
60507 xla_environment_pkg.g_Req_Id IS NOT NULL ) THEN
60508
60509 xla_accounting_dump_pkg.acctg_event_extract_log(
60510 p_application_id => p_application_id
60511 ,p_request_id => xla_environment_pkg.g_Req_Id
60512 );
60513
60514 END IF;
60515
60516 CASE l_temp_result
60517 WHEN TRUE THEN l_result := 0;
60518 ELSE l_result := 2;
60519 END CASE;
60520
60521 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60522 trace
60523 (p_msg => 'return value. = '||TO_CHAR(l_result)
60524 ,p_level => C_LEVEL_PROCEDURE
60525 ,p_module => l_log_module);
60526 trace
60527 (p_msg => 'END of CreateJournalEntries '
60528 ,p_level => C_LEVEL_PROCEDURE
60529 ,p_module => l_log_module);
60530 END IF;
60531
60532 RETURN l_result;
60533 EXCEPTION
60534 WHEN xla_exceptions_pkg.application_exception THEN
60535 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60536 trace
60537 (p_msg => 'ERROR. = '||sqlerrm
60538 ,p_level => C_LEVEL_PROCEDURE
60539 ,p_module => l_log_module);
60540 END IF;
60541 RAISE;
60542 WHEN OTHERS THEN
60543 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60544 trace
60545 (p_msg => 'ERROR. = '||sqlerrm
60546 ,p_level => C_LEVEL_PROCEDURE
60547 ,p_module => l_log_module);
60548 END IF;
60549 xla_exceptions_pkg.raise_message
60550 (p_location => 'XLA_00201_AAD_S_000005_BC_PKG.CreateJournalEntries');
60551 END CreateJournalEntries;
60552 --
60553 --=============================================================================
60554 --
60555 --
60556 --
60557 --
60558 --
60559 --
60560 --
60561 --
60562 --
60563 --
60564 --
60565 --
60566 --
60567 --
60568 --
60569 --
60570 --
60571 --
60572 --
60573 --
60574 --
60575 --
60576 --=============================================================================
60577 --=============================================================================
60578 -- *********** Initialization routine **********
60579 --=============================================================================
60580
60581 BEGIN
60582 g_log_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
60583 g_log_enabled := fnd_log.test
60584 (log_level => g_log_level
60585 ,module => C_DEFAULT_MODULE);
60586
60587 IF NOT g_log_enabled THEN
60588 g_log_level := C_LEVEL_LOG_DISABLED;
60589 END IF;
60590 --
60591 END XLA_00201_AAD_S_000005_BC_PKG;
60592 --